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
Finden einer Route, die am kürzesten/schnellsten sinnvoll ist Beispiele für Einsatzgebiete 3D-Simulationen, Computerspiele Verkehrsplanung Routing von Paketen im Internet 2
1. Was ist Pathfinding? 2. Graphen 3. Dijkstra-Algorithmus 4. A*-Algorithmus 3
Für Pathfinding benötigt: Nicht-negativer, gewichteter und gerichteter Graph, der das Problem modelliert. 4
5
6
7
8
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 9
10
11
12
13
14
Schwächen: willkürlich dadurch unnötig viel fill 15
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 16
17
18
19
A* Dijkstra 20 Bildnachweis:
A* Dijkstra 20 Bildnachweis:
A* Dijkstra 20 Bildnachweis: