Der Algorithmus nach Dijkstra

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Algorithm Engineering
Berechne den optimalen (kürzesten, schnellsten) Weg
Man bestimme den „minimalen aufspannenden Baum“ des Graphen.
Single-Source Shortest Paths: SSSP
Minimum Spanning Tree: MST
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Zerlegung von Graphen.
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
ADS Vorlesung Prof. Dr. W. Conen, FH Gelsenkirchen
Marco Barz Seminar über Algorithmen SoSe2007
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Diskrete Mathe II Übung
Problemstellung Berechne die Summe der Quadrate aller natürlichen Zahlen bis zu einer vorgegebenen Zahl (bspw. 100)! Oder mathematisch: Berechne.
Algorithmen und Komplexität
Zahlen mit Zahlen ausmessen
Minimum Spanning Tree: MST
Kürzeste Wege in Straßennetzwerken Problemstellung –von einem Start zu einem Ziel (point-to-point) –(un)gerichteter Graph, Kantenkosten = Reisezeiten.
Hinweise zum 10. Übungsblatt zu GIN1b, WS04/05 Prof. Dr. W. Conen (Version 1.0alpha, )
Khatuna Khvedelidze Teona Khizanishvili
Vortrag über Graphen Von Jörg Hendricks.
Kurt Mehlhorn Konstantinos Panagiotou
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Diskrete Mathematik II
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Animation von Dijkstra
Algorithmus von Dijkstra. 0 Algorithmus von Dijkstra s Priority Queue PQ: Knoten, Priorität Weglänge Kandidatenmenge.
Animation von Dijkstra
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Jan Hinzmann – – GIS Praxis II – Slide 1/10 Der Algorithmus von Dijkstra (Berechnung kürzester Wege in bewerteten Graphen) GIS Praxis II, Jan Hinzmann,
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Analyse der Laufzeit von Algorithmen
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Minimal spannende Bäume
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd Foliendesign:
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Diskrete Mathe II Übung IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Gruppeneinteilung Gruppe A: Mo 12:00 – 12:45 Uhr –bis einschließlich.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd.
Seminarvortrag über LOG-SPACE von Rasmus Krause
Der A*-Algorithmus.
Programmiersprachen II Graph_Algorithmen Gewichtete Graphen - Minimum Spanning Tree und shortest path aus Implementierungssicht Prof. Dr. Reiner Güttler.
Addition und Subtraktion von Brüchen für die Jahrgangsstufe 6 Bearbeite jede Aufgabe schriftlich im Heft oder auf einem Blatt. Prüfe immer zuerst, ob du.
Graphen.
Adiazenzmatrix des Graphen
Philip Schill Erik Kurrat Simon Walther
Das Problem des Handlungsreisenden
Referenten: Moritz S., Ina B. und Sebastian R.
Projekt Graphentheorie Eulerpfad
Der Dijkstra-Algorithmus
Graphen.
TexPoint fonts used in EMF.
TexPoint fonts used in EMF.
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
 Präsentation transkript:

Der Algorithmus nach Dijkstra

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 2 + 1 + 1 + 3 = 7 .

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.)

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.

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.

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.

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 ∞