+ All Categories
Home > Documents > Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung...

Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung...

Date post: 05-Apr-2015
Category:
Upload: krimhilde-schlais
View: 105 times
Download: 2 times
Share this document with a friend
23
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 ([email protected])
Transcript
Page 1: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

PathfindingUniversität zu Köln

Softwaretechnologie II (Teil 1): Simulation und 3D ProgrammierungWintersemester 2011/2012

Dozent: Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz ([email protected])

Page 2: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

2

Finden einer Route, die◦ am kürzesten/schnellsten◦ sinnvoll ist

Beispiele für Einsatzgebiete◦ 3D-Simulationen, Computerspiele◦ Verkehrsplanung◦ Routing von Paketen im Internet

Was ist Pathfinding?

Page 3: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

3

1. Was ist Pathfinding?2. Graphen3. Dijkstra-Algorithmus4. A*-Algorithmus

Inhaltlicher Überblick

Page 4: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

4

Für Pathfinding benötigt:Nicht-negativer, gewichteter und gerichteter Graph, der das Problem modelliert.

Graphen

Page 5: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

5

Beispiel TES 5: Skyrim

Page 6: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

6

Allgemeiner Graph

Page 7: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

7

Nicht-negativer gewichteter Graph

Page 8: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

8

Nicht-negativer gewichteter und gerichteter Graph

Page 9: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

9

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

Page 10: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

10

Dijkstra-Algorithmus

1 12

2,5

5

2,54,5

ADB

E

4

C

Start

Ziel

cost: 0

Open: AClosed:

Page 11: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

11

Dijkstra-Algorithmus

1 12

2,5

5

2,54,5

ADB

E

4

C

Start

Ziel

cost: 0cost: 2,5

cost: 1

Open: B, CClosed: A

Page 12: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

12

Dijkstra-Algorithmus

1 12

2,5

5

2,54,5

ADB

E

4

C

Start

Ziel

cost: 0cost: 2

cost: 1

Open: B, EClosed: A, C cost: 5

Page 13: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

13

Dijkstra-Algorithmus

1 12

2,5

5

2,54,5

ADB

E

4

C

Start

Ziel

cost: 0cost: 2

cost: 1

Open: D, EClosed: A, B, C cost: 5

Page 14: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

14

Dijkstra-Algorithmus

1 12

2,5

5

2,54,5

ADB

E

4

C

Start

Ziel

cost: 0cost: 2

cost: 1

Open: EClosed: A, B, C, D cost: 5

Page 15: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

15

Schwächen: willkürlich dadurch unnötig viel fill

Dijkstra-Algorithmus

Page 16: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

16

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

A*-Algorithmus

Page 17: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

17

A*-Algorithmus

1 12

2,5

5

2,54,5

ADB

E

4

C

Start

Ziel

cost: 0

Open: AClosed:

heuristic: 0

heuristic: 2,3

heuristic: 4,9

heuristic: 4,2

heuristic: 6,1estimate: 6,1

Page 18: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

18

A*-Algorithmus

1 12

2,5

5

2,54,5

AD

E

4

Start

Ziel

cost: 0

Open: B, CClosed: A

heuristic: 0

heuristic: 2,3

estimate: 7,4heuristic: 4,9

heuristic: 4,2

heuristic: 6,1estimate: 6,1

C

B

estimate: 5,2

Page 19: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

19

A*-Algorithmus

1 12

2,5

5

2,54,5

AD

E

4

Start

Ziel

cost: 0

Open: B, CClosed: A

heuristic: 0

heuristic: 2,3

estimate: 6,9heuristic: 4,9

heuristic: 4,2

heuristic: 6,1estimate: 6,1

C

B

estimate: 5,2

Page 20: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

20

Dijkstra und A* im Vergleich

A*Dijkstra

Bildnachweis:http://en.wikipedia.org/wiki/File:Dijkstras_progress_animation.gifhttp://en.wikipedia.org/wiki/File:Astar_progress_animation.gif

Page 21: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

Dijkstra und A* im Vergleich

A*Dijkstra

20

Bildnachweis:http://en.wikipedia.org/wiki/File:Dijkstras_progress_animation.gifhttp://en.wikipedia.org/wiki/File:Astar_progress_animation.gif

Page 22: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

Dijkstra und A* im Vergleich

A*Dijkstra

20

Bildnachweis:http://en.wikipedia.org/wiki/File:Dijkstras_progress_animation.gifhttp://en.wikipedia.org/wiki/File:Astar_progress_animation.gif

Page 23: Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.

Vielen Dank!


Recommended