Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der Algorithmus nach Dijkstra

Ähnliche Präsentationen


Präsentation zum Thema: "Der Algorithmus nach Dijkstra"—  Präsentation transkript:

1 Der Algorithmus nach Dijkstra

2 Bewertete Graphen b d 2 4 5 8 4 2 a e g 2 2 1 1 3 1 5 3 1 c f 3
Bei einem bewerteten Graphen ist jede Kante mit einer positiven Zahl (der Bewertung) beschriftet. Die Bewertung eines Pfades ist die Summe der Bewertungen seiner Kanten. Der eingezeichnete Pfad a-c-e-f-g hat die Bewertung =

3 Beispiele für Bewertungen
Typische Anwendungen für bewertete Graphen sind Entfernungsprobleme. Wenn also z. B. jeder Knoten eine Ortschaft darstellt, dann gibt es zwischen je zwei Nachbarorten eine Kante, die mit der kürzesten Straßenentfernung (in Kilometer) beschriftet ist. Viele Navigationssystemen arbeiten mit zwei verschiedenen Bewertungen für jede Kante, die je nach Routenoption aktiviert werden: einerseits die Entfernung in Kilometer, andererseits die Zeitdauer für diese Entfernung. (Je nach Straßenverhältnissen sind diese beiden Größen nicht proportional zueinander.)

4 Der Algorithmus nach Dijkstra
Um von einem Ausgangsknoten a aus die kürzeste Entfernung zu allen anderen Knoten der Zusammenhangskomponente zu bestimmen, geht man wie folgt vor: 1. Für jeden Knoten n: entf(n) = ∞; markiert(n) = false . 2. entf(a) = 0 . 3. Wiederhole, solange es unmarkierte Knoten mit endlicher Entfernung gibt: 3.1 Wähle den unmarkierten Knoten mit kleinster Entfernung als aktiven Knoten k. 3.2 markiert(k) = true . 3.3 Berechne für alle Nachbarn n des aktiven Knotens k: entf(n) = min (entf(n), entf(k) + bewertung(k, n)) 4. Lies nun an jedem Knoten seine Entfernung von a ab.

5 Beispiel b b e e 1 2 4 1 3 5 h h 3 1 a a c c f f 3 2 2 2 2 5 2 i i 7 d
3,b b b e e 1 2 4 1 3 5 7,f 8,e h h 3,a 2,b 4,c 3 1 a a c c f f 3 2 2 2 2 5 2 i i 7 d d g g 10,g 9,f 8,h 1 2,a 3,d 4,c Wenn man zu den Entfernungen noch den Herkunftsknoten notiert, erhält man hinterher den Dijkstrabaum der kürzesten Entfernungen von a zu jedem anderen Knoten.

6 Dijkstra im Labyrinth Wir betrachten jedes Kästchen des Labyrinths als eigenen Knoten. Ausgangsknoten ist der Eingang. Die Entfernung zwischen zwei Nachbarkästchen ist immer 1 Schritt. Der Algorithmus vereinfacht sich darum wie folgt. 1. Jedes Kästchen ist unmarkiert und hat Entfernung ∞ . 2. Der Eingang hat Entfernung 0. Wir fangen an mit e = 0. 3. Wiederhole, solange es Kästchen der Entfernung e gibt: 3.1 Beschrifte jedes erreichbare Nachbarkästchen eines Kästchens der Entfernung e, welches bisher die Entfernung ∞ hat, mit e + 1. 3.2 Erhöhe e um 1. 4. Lies nun an jedem Kästchen seine Entfernung vom Eingang ab.

7 Ein Beispiellabyrinth
@ 1 2 3 4 5 6 7 8 9 5 10 10 9 8 7 6 13 12 11 11 7 12 13 12 10 9 8 9 10 11 14 13 12 11 9 12 14 10 13 14 15 15 14 13 12 11 12 13 14 16


Herunterladen ppt "Der Algorithmus nach Dijkstra"

Ähnliche Präsentationen


Google-Anzeigen