Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


Einladung zum C++ für Einsteiger-Workshop
  AntwortAntworten (über Gastzugang)    
  AntwortAntworten (über Gastzugang)    
 
Themen-Optionen Ansicht
Alt 05.02.10, 19:06   #1 (permalink)
Mitglied Gold
 
Registriert seit: Apr 2007
Beiträge: 183
Renommee-Modifikator: 6
thomy800 hat eine blütenweiße Weste

Algorithmus - Weg finden

Hi,

ich bin auf der Suche nach einem geeigneten Algorithmus, den kürzesten Weg von A nach B zu finden.
Meine Umgebung (2D) besteht
a) aus Vektoren in einer Liste. Dies sind Linien mit einem Anfang und einem Ende, die bunt auf dem Feld verteild sind.
b) zusätzlich habe ich ein n*m-Feld aus boolischen Werten, wo diese Linien eingetragen sind.
Ich denke, man braucht dafür nur a) oder b) ...

Ich habe natürlich mal gegoogelt, aber irgendwie finden sich da für meinen Fall nur unpassende Algorithmen, die von Knoten ausgehen (wie A-stern etc.)...
Kann mir jemand was geeigneteres empfehlen?

MfG thomy800
__________________
Hier kommt der Genuss!
  thomy800 ist offline  
 
Alt 05.02.10, 20:59   #2 (permalink)
dki
Mitglied
 
Registriert seit: Sep 2008
Beiträge: 21
Renommee-Modifikator: 0
dki hat eine blütenweiße Weste

AW: Algorithmus - Weg finden

Dijkstra wäre ein Algorithmus der den kürzesten Weg von A nach B bestimmt

http://de.wikipedia.org/wiki/Dijkstra-Algorithmus
  dki ist offline  
 
Alt 05.02.10, 21:53   #3 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.159
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: Algorithmus - Weg finden

Hallo,

siehe auch:
http://www-i1.informatik.rwth-aachen...hmus/algo7.php

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 05.02.10, 22:51   #4 (permalink)
Mitglied Gold
 
Registriert seit: Apr 2007
Beiträge: 183
Renommee-Modifikator: 6
thomy800 hat eine blütenweiße Weste

AW: Algorithmus - Weg finden

Hmm.. die beiden Links sind aber genau das, was nicht geht. Mein Problem liegt nicht umbedingt darin, den kürzesten weg zu finden, sondern viel eher, überhaupt einen zu finden, der nicht kollidiert.
Ich habe mal ein Bild erstellt, wo Beispiellinien (die Hindernisse) eingetragen sind, und 2 Wege, die als Resultat ausgespuckt werden sollten.
Der Knackpunkt ist z.B. so eine Kurve. Würde ich dem Weg das Ende der Linie als Zwischenpunkt übergeben, dann hätte ich automatisch eine Kollision, was der Algorithmus ja gerade versucht zu vermeiden. Also muss ich einen gewissen Abstand einhalten. Aber in welche Richtung soll der Abstand gehen? senkrecht/waagerecht zur Linie? Oder mehrere zwischenPunkte in eine Kurve einfügen? Wenn ja, wie soll die Kurve aussehen? Ich weiß ja beim generieren des Wegs noch nicht, wie die nächste Linie aussieht, und die nächste Linie ist ja von der Kurve abhängig..
War das etwas verständlich?
Miniaturansicht angehängter Grafiken
Algorithmus -  Weg finden-weg.png  
__________________
Hier kommt der Genuss!

Geändert von thomy800 (05.02.10 um 22:53 Uhr).
  thomy800 ist offline  
 
Alt 05.02.10, 23:11   #5 (permalink)
Mitglied Diamant
 
Benutzerbild von SilentWarrior  
 
Registriert seit: Dec 2001
Ort: Romanshorn (Schweiz)
Beiträge: 3.131
Renommee-Modifikator: 34
SilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz sein

AW: Algorithmus - Weg finden

Dann musst du das Problem eben auf eines reduzieren, das mit Dijkstra lösbar ist. Dazu erstellst du aus deinem Problem einen Graphen, der als Knoten die Endpunkte aller „Mauern“ sowie den Start- und Endpunkt hat. Eine Kante zwischen zwei Knoten hat es genau dann, wenn diese durch eine gerade Linie miteinander verbunden werden können. Kantengewichte sind einfach die Distanz zwischen zwei Punkten. Der kürzeste Weg auf diesem Graphen ist auch der kürzeste Weg für dein Problem.
  SilentWarrior ist offline  
 
Alt 05.02.10, 23:16   #6 (permalink)
ɐɯıǝɹ
 
Benutzerbild von Matthias Reitinger tutorials.de Premium-User 
 
Registriert seit: Dec 2001
Ort: Bayern
Beiträge: 5.245
Renommee-Modifikator: 53
Matthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes Ansehen

AW: Algorithmus - Weg finden

Hallo,

du könntest dir einen Graphen derart definieren:
  • Die Knotenmenge enthält genau den Start und das Ziel sowie sämtliche Eck-/Endpunkte deiner Streckenzüge.
  • Zwei Knoten sind genau dann über eine Kante verbunden, wenn sie sich „sehen“ können, also die direkte Verbindungslinie kein Hindernis schneidet. Zwei Knoten, zwischen denen eine Strecke verläuft, sollen auch über eine Kante verbunden sein.
  • Das Kantengewicht ist einfach der euklidische Abstand der jeweiligen Knoten.

Darauf kannst du dann Dijkstra, A*, etc. anwenden.

Grüße,
Matthias

\edit: Ach, zu langsam.
__________________
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”


Aktuelles Coding Quiz: #13 - Zahlengewurschtel
  Matthias Reitinger ist offline  
 
Alt 06.02.10, 00:55   #7 (permalink)
Mitglied Gold
 
Registriert seit: Apr 2007
Beiträge: 183
Renommee-Modifikator: 6
thomy800 hat eine blütenweiße Weste

AW: Algorithmus - Weg finden

Das ist ne Idee
__________________
Hier kommt der Genuss!
  thomy800 ist offline  
 
Alt 06.02.10, 01:11   #8 (permalink)
ɐɯıǝɹ
 
Benutzerbild von Matthias Reitinger tutorials.de Premium-User 
 
Registriert seit: Dec 2001
Ort: Bayern
Beiträge: 5.245
Renommee-Modifikator: 53
Matthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes AnsehenMatthias Reitinger genießt hohes Ansehen

AW: Algorithmus - Weg finden

Hallo,

mir ist gerade aufgefallen, dass es doch nicht ganz so einfach ist. Würde man den Graphen so wie von SilentWarrior und mir vorgeschlagen aufbauen, könnte man an Eckpunkten von Hindernissen durch diese hindurchlaufen. Man kann das Problem aber lösen, indem man für solche Eckpunkte mehrere Knoten erzeugt. Ich hab grade keine Zeit mir zu überlegen, wie das dann genau vonstatten gehen müsste. Aber nur mal als Warnung, dass der von uns geschilderte „naive“ Ansatz nicht funktionieren wird.

Grüße,
Matthias
__________________
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”


Aktuelles Coding Quiz: #13 - Zahlengewurschtel
  Matthias Reitinger ist offline  
 
Alt 06.02.10, 11:39   #9 (permalink)
Mitglied Gold
 
Registriert seit: Apr 2007
Beiträge: 183
Renommee-Modifikator: 6
thomy800 hat eine blütenweiße Weste

AW: Algorithmus - Weg finden

Ja, das ist mir auch schon aufgefallen. Bin aber noch am grübeln wie man das am besten löst..
__________________
Hier kommt der Genuss!
  thomy800 ist offline  
 
Alt 06.02.10, 12:00   #10 (permalink)
Mitglied Diamant
 
Benutzerbild von SilentWarrior  
 
Registriert seit: Dec 2001
Ort: Romanshorn (Schweiz)
Beiträge: 3.131
Renommee-Modifikator: 34
SilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz seinSilentWarrior kann auf vieles stolz sein

AW: Algorithmus - Weg finden

Ich würde einfach für jede Mauer zwei Kanten und entsprechend vier Knoten machen. Die beiden Endknoten werden verbunden, wenn keine andere Mauer anliegt (und somit der Weg zur anderen Seite der Mauer nicht versperrt ist.
  SilentWarrior ist offline  
 
Alt 06.02.10, 12:15   #11 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.159
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: Algorithmus - Weg finden

Hallo,

poste doch mal bitte ein paar Beispieldaten, mit dem man etwas herumspielen kann...

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 06.02.10, 13:32   #12 (permalink)
Mitglied Gold
 
Registriert seit: Apr 2007
Beiträge: 183
Renommee-Modifikator: 6
thomy800 hat eine blütenweiße Weste

AW: Algorithmus - Weg finden

@ SilentWarrior:
Ich glaube daraus lässt sich was machen
Man kann zusätzlich zu den Linien beim Generieren Rechtecke erstellen, wo die Linie die Mittellinie bildet. Die Rechtecke können dann die Breite 1 (2 Kanten) bekommen und die Länge der Linie (die anderen 2 Kanten).
An den 4 ecken kommen jeweils Knoten im Abstand r (vorrausgesetzt, sie liegen nicht in oder zu dich an einer anderen Wand). So ist gewehrleistet, dass ein Objekt zwischen den Lücken auch durch passt.

@ Thomas Darimont:
An was für Daten denkst du da? Ein Bildchen hatte ich ja schon erstellt (wo dementprechend Bsp-Daten eingetragen sind).
__________________
Hier kommt der Genuss!

Geändert von thomy800 (06.02.10 um 13:38 Uhr).
  thomy800 ist offline  
 
Alt 06.02.10, 13:37   #13 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.159
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: Algorithmus - Weg finden

Hallo,

Zitat:
@ Thomas Darimont:
An was für Daten denkst du da? Ein Bildchen hatte ich ja schon erstellt (wo dementprechend Bsp-Daten eingetragen sind).
Ich meine ein konkretes Beispiel mit Daten zu deinem Szenario:
Zitat:
Meine Umgebung (2D) besteht
a) aus Vektoren in einer Liste. Dies sind Linien mit einem Anfang und einem Ende, die bunt auf dem Feld verteild sind.
b) zusätzlich habe ich ein n*m-Feld aus boolischen Werten, wo diese Linien eingetragen sind.
Das Bild hilft dein Problem zu beschreiben... aber ohne sich erst selber Beispieldaten zu machen kann man dein Problem nur theoretisch bearbeiten...
Du könntest dir ja ein sinnvolles Datenformat ausdenken und dein Beispiel darin beschreiben. Dann kann man mit diesen Beispieldaten rumspielen.

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 06.02.10, 14:10   #14 (permalink)
Mitglied Gold
 
Registriert seit: Apr 2007
Beiträge: 183
Renommee-Modifikator: 6
thomy800 hat eine blütenweiße Weste

AW: Algorithmus - Weg finden

Etwas in der Art?

Radius r (Abstand) = 1
Linien: 2 (Vektorform)
Weg: hier nur einer, auch in Vektorform
Start (0|0) und Ende (7|6) sind eingetragen.
Miniaturansicht angehängter Grafiken
Algorithmus -  Weg finden-weg1.png  
__________________
Hier kommt der Genuss!

Geändert von thomy800 (06.02.10 um 14:26 Uhr).
  thomy800 ist offline  
 
Alt 06.02.10, 15:55   #15 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.159
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: Algorithmus - Weg finden

Hallo,

ich dachte da eher an ein textformat (ähnlich wie wir es auch bei unseren coding quizes machen) das man leicht im programm einlesen kann.
Will man jetzt Beispiel nachmachen muss man die Linien / Punktkoordinaten erst noch aus dem Bild rausfummeln... den Schritt könntest du uns ersparen

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
 
 
Lesezeichen:


Themen-Optionen
Ansicht
Ähnliche Themen
 
Thema Autor Forum Antworten Letzter Beitrag
RSA Algorithmus spliff Algorithmen & Datenstrukturen mit Java 2 12.02.09 10:54
Algorithmus um Vertex zu finden kuhlmaehn Coders Talk 7 23.09.08 15:31
Algorithmus finden anyany Visual Basic 6.0 3 02.03.07 23:14
sha-256 Algorithmus lib ? Anime-Otaku Algorithmen & Datenstrukturen mit Java 3 18.12.06 13:15
Algorithmus für AVG FireFlow C/C++ 6 23.01.05 21:43
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 134
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 261
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 148
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 100
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 189
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 79,79%
150 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 20,21%
38 Stimmen
Stimmen gesamt: 188
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,30252 Sekunden mit 27 queries