Graphendurchlauf

32
Lukas Masuch GRAPHEN DURCHLAUF

Transcript of Graphendurchlauf

Page 1: Graphendurchlauf

Lukas Masuch

GRAPHEN DURCHLAUF

Page 2: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Gliederung

Historische Probleme Königsberger Brückenproblem

Problem des Handlungsreisenden

Tiefensuche Prinzip

Dijkstra-Algorithmus Prinzip

Ausblicke A*-Algorithmus

2

Page 3: Graphendurchlauf

Prinzip und Implementierung

Tiefensuche 6

Page 4: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche 7

Uninformierter Suchalgorithmus

Anwendungen:

Vielseitige Anwendungsmöglichkeit in

verschiedenen Algorithmen

Bearbeitung aller Knoten eines Graphen (auch

Knotensuche möglich)

Page 5: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 8

A

B

F

C

E

D

G

Ausgangsgraph – Markierung aller Knoten als unbesucht

Page 6: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 9

A

B

F

C

E

D

G

Auswahl eines beliebigen Knotens als Startknoten – Markierung als besucht

Page 7: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 10

A

B

F

C

E

D

G

Rekursiver Durchgang aller unbesuchter Knoten

Page 8: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 11

A

B

F

C

E

D

G

Rekursiver Durchgang aller unbesuchter Knoten

Page 9: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 12

A

B

F

C

E

D

G

Rekursiver Durchgang aller unbesuchter Knoten

Page 10: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 13

A

B

F

C

E

D

G

Rekursiver Durchgang aller unbesuchter Knoten

Page 11: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 14

A

B

F

C

E

D

G

Rekursiver Durchgang aller unbesuchter Knoten

Page 12: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 15

A

B

F

C

E

D

G

Rekursiver Durchgang aller unbesuchter Knoten

Page 13: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Tiefensuche - Prinzip 16

A

B

F

C

E

D

G

Ende: Alle Knoten wurden besucht

Page 14: Graphendurchlauf

Prinzip und Implementierung

Dijkstra-Algorithmus 18

Page 15: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus 19

Entwickelt von Edsger W. Dijkstra (1959)

Greedy-Algorithmus (optimal)

Anwendungen:

Routenplaner für ein Straßennetz

Routing-Algorithmus im Internet

Berechnung des kürzesten Pfades zwischen einem

Startknoten und einem Zielknoten in einem

kantengewichteten Graphen

Page 16: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus - Prinzip 20

Knoten A B C D E F G

Gewichtung 0 ∞ ∞ ∞ ∞ ∞ ∞

© Lukas Masuch – 05.06.2012

A

B

F

C

E

D

3

3

3

1

1

7

1 6

8

G 11

3

Page 17: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus - Prinzip 21

0

A

1 - A

B

7 - A

F

C

E

D

3

3

3

1

1

7

1 6

8

Knoten B F D E C G

Gewichtung 1 7 ∞ ∞ ∞ ∞

G 11

3

Page 18: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus - Prinzip 22

0

A

1 - A

B

7 - A

F

4 - B

C

E

D

3

3

3

1

1

7

1 6

8

Knoten C F E D G

Gewichtung 4 7 ∞ ∞ ∞

G 11

3

Page 19: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus - Prinzip 23

0

A

1 - A

B

7 - A

F

4 - B

C

10-C

E

12-C

D

3

3

3

1

1

7

1 6

8

Knoten F E D G

Gewichtung 7 10 12 15

15-C

G

11

3

Page 20: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus - Prinzip 24

0

A

1 - A

B

7 - A

F

4 - B

C

10-C

8 - F

E

12-C

D

3

3

3

1

1

7

1 6

8

Knoten E D G

Gewichtung 8 12 15

15-C

G

11

3

Page 21: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus - Prinzip 25

0

A

1 - A

B

7 - A

F

4 - B

C

10-C

8 - F

E

12-C

11-E

D

3

3

3

1

1

7

1 6

8

Knoten D G

Gewichtung 11 15

15-C

G

11

3

Page 22: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus - Prinzip 26

0

A

1 - A

B

7 - A

F

4 - B

C

10-C

8 - F

E

12-C

11-E

D

3

3

3

1

1

7

1 6

8

15-C

G

11

3

Knoten G

Gewichtung 15

Page 23: Graphendurchlauf

© Lukas Masuch – 05.06.2012

Dijkstra-Algorithmus - Prinzip 27

0

A

1 - A

B

7 - A

F

4 - B

C

10-C

8 - F

E

12-C

11-E

D

3

3

3

1

1

7

1 6

8

15-C

G

11

3

Kürzester Weg: A-F-E-D = 11

Page 24: Graphendurchlauf

A*-Algorithmus

Ausblick 29

Page 25: Graphendurchlauf

© Lukas Masuch – 05.06.2012

A*-Algorithmus - Prinzip 30

Knoten A B C D E F G

Gewichtung 0 ∞ ∞ ∞ ∞ ∞ ∞

h=10

A

h=9

B

h=4

F

h=8

C

h=2

E

h=0

D

3

3

3

1

1

7

1 6

8

h=1

G

11

3

Page 26: Graphendurchlauf

© Lukas Masuch – 05.06.2012

A*-Algorithmus - Prinzip 31

Knoten B F D E C G

Gewichtung 10 11 ∞ ∞ ∞ ∞

A

0+1+9

=10

1-A

B

0+7+4

=11

7-A

F

h=8

C

h=2

E

h=0

D

3

3

3

1

1

7

1 6

8

h=1

G

11

3

Page 27: Graphendurchlauf

© Lukas Masuch – 05.06.2012

A*-Algorithmus - Prinzip 32

Knoten F C E D G

Gewichtung 11 12 ∞ ∞ ∞

A

1-A

B

F=11

7-A

F

F=12

4-B

C

h=2

E

h=0

D

3

3

3

1

1

7

1 6

8

h=1

G

11

3

Page 28: Graphendurchlauf

© Lukas Masuch – 05.06.2012

A*-Algorithmus - Prinzip 33

Knoten E C D G

Gewichtung 10 12 ∞ ∞

A

1-A

B

7-A

F

F=12

4-B

C

F=10

8-F

E

h=0

D

3

3

3

1

1

7

1 6

8

h=1

G

11

3

Page 29: Graphendurchlauf

© Lukas Masuch – 05.06.2012

A*-Algorithmus - Prinzip 34

Knoten D C G

Gewichtung 11 12 ∞

A

1-A

B

7-A

F

F=12

4-B

C

8-F

E

F=11

11-E

D

3

3

3

1

1

7

1 6

8

h=1

G

11

3

Page 30: Graphendurchlauf

© Lukas Masuch – 05.06.2012

A*-Algorithmus - Prinzip 35

Knoten C G

Gewichtung 12 ∞

A

1-A

B

7-A

F

F=12

4-B

C

8-F

E

F=11

11-E

D

3

3

3

1

1

7

1 6

8

h=1

G

11

3

Page 31: Graphendurchlauf

© Lukas Masuch – 05.06.2012

A*-Algorithmus - Prinzip 36

0

A

1 - A

B

7 - A

F

8 - F

E

11-E

D

3

3

3

1

1

7

1 6

8

11

3

Kürzester Weg: A-F-E-D = 11

F=12

4-B

C

h=1

G

Page 32: Graphendurchlauf

FRAGEN?

Lukas Masuch