230 likes | 380 Views
Pathfinding. Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent : Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz (cweitz0@smail.uni-koeln.de). Was ist Pathfinding ?. Finden einer Route, die
E N D
Pathfinding Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz (cweitz0@smail.uni-koeln.de)
Was ist Pathfinding? • Finden einer Route, die • am kürzesten/schnellsten • sinnvoll ist • Beispiele für Einsatzgebiete • 3D-Simulationen, Computerspiele • Verkehrsplanung • Routing von Paketen im Internet
Inhaltlicher Überblick • Was ist Pathfinding? • Graphen • Dijkstra-Algorithmus • A*-Algorithmus
Graphen • Für Pathfinding benötigt: Nicht-negativer, gewichteter und gerichteter Graph, der das Problem modelliert.
Dijkstra-Algorithmus • Entwickelt um kürzeste Route durch alle Punkte zu finden • Iteriert über die Knoten eines Graphen • Für Punkt-zu-Punkt-Pathfinding zu aufwändig => Abbruchbedingung: Zielknoten ist hat kleinste Kosten aller nicht besuchten Knoten
Dijkstra-Algorithmus Schwächen: • willkürlich • dadurch unnötig viel fill
A*-Algorithmus • Grundidee wie Dijkstra-Algorithmus • Nutzt Heuristiken um Abstand zum Ziel zu schätzen • Dadurch im Regelfall schneller als Dijkstra für das gegebene Problem • Abbruchbedingung: Zielknoten hat niedrigste Schätzkosten der offenen Knoten, bzw. Zielknoten ist auf Liste der offenen Knoten
Dijkstra und A* im Vergleich Dijkstra A* Bildnachweis: http://en.wikipedia.org/wiki/File:Dijkstras_progress_animation.gif http://en.wikipedia.org/wiki/File:Astar_progress_animation.gif
Dijkstra und A* im Vergleich Dijkstra A* Bildnachweis: http://en.wikipedia.org/wiki/File:Dijkstras_progress_animation.gif http://en.wikipedia.org/wiki/File:Astar_progress_animation.gif
Dijkstra und A* im Vergleich Dijkstra A* Bildnachweis: http://en.wikipedia.org/wiki/File:Dijkstras_progress_animation.gif http://en.wikipedia.org/wiki/File:Astar_progress_animation.gif