Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Algorithm Engineering
Routing – Routing Protokolle
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.
Abschluss Gegeben Menge F von funktionalen Abhängigkeiten.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
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
Graphalgorithmen ( elementare A. )
Die 1-Baum-Relaxation des TSP mit der Subgradientenmethode
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Programmieren 2 Future Car Projekt Praktikum 6 - Graphen
Programmieren 2 Future Car Projekt Praktikum 6
Programmieren 2 Future Car Projekt Praktikum 6
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
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
Indoor Navigation Performance Analysis
Diskrete Mathe II Übung
Klausur „Diskrete Mathematik II“
PG 478 – Open Graph Drawing Framework Thema: Compounds & Force-Directed Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs [1999]
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Vortrag über Graphen Von Jörg Hendricks.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Chromatische Zahl.
Diskrete Mathematik II
Diskrete Mathematik II
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Animation von Dijkstra
Algorithmus von Dijkstra. 0 Algorithmus von Dijkstra s Priority Queue PQ: Knoten, Priorität Weglänge Kandidatenmenge.
Animation von Dijkstra
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
Analyse der Laufzeit von Algorithmen
Die Tiefensuche Vorgedanke: Die Sage von Theseus und dem Minotaurus
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.
Korrektheit von Programmen – Testen
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.
Optimierungs- Algorithmen
Der A*-Algorithmus.
Matchings (Paarungen) in Graphen
Programmiersprachen II Graph_Algorithmen Gewichtete Graphen - Minimum Spanning Tree und shortest path aus Implementierungssicht Prof. Dr. Reiner Güttler.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
Graphen.
Projekt Graphentheorie Eulerpfad
Der Dijkstra-Algorithmus
 Präsentation transkript:

Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka WEGE IN GRAPHEN Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka

Inhalt : Graphdefinition und Dijkstra-Algorithmus zweitkürzeste Wege in einem Graphen: Algorithmen von Pollack und Hoffman & Pavley (algorithmusverändernd) zweitkürzeste Wege in einem Graphen. Algorithmus von Azevedo (graphverändernd) Verallgemeinerung auf dritt und k-kürzeste Wege Vorstellung eines Programms

Graphdefinition Graph G=(E,V) besteht aus Knotenmenge V und Kantenmenge E  VxV Kante (v,w) verbindet Knoten v und w Beispiel: Straßennetz ! Städte sind Knotenmengen und Straßen bilden Kantenmengen Jeder Kante (v,w) ist Länge l(v,w)>0 zugeordnet

Der Dijkstra Algorithmus (Greedy - Algorithmus) Gegeben Startknoten s und Zielknoten z Kanten haben Gewichte und sind gerichtet Für jeden Knoten v suche kürzesten Weg von s nach v Benutzen von zwei Knotenmengen S und K (S enthält Knoten, für die der kürzeste Weg von s aus bereits bekannt ist K (Kandidaten) enthält mögliche Knoten, deren Distanz zu s am geringsten ist) Jedem Knoten wird eine Distanz dist(v) zugeordnet Zu jedem Knoten v wird sein Vorgänger vorg(v) festgehalten

Pseudocode des Dijkstra Algorithmus (1) S = {}; K = V; (2) dist(s) = 0; dist(v) = ¥ für alle v Î V \ {s}; (3) vorg(v) = -1 für alle v Î V; // Es sind noch keine kürzesten Wege bekannt. (4) while K ¹ {} do (5) wähle Knoten v aus K mit minimaler Distanz dist(v); (6) S = S È {v}; K = K \ {v}; (7) for jeden Nachbarknoten w Î K von v do (8) if dist(v) + l(v,w) < dist(w) then (9) dist(w) = dist(v) + l(v,w); // bisher bekannter kürzester Weg (10) vorg(w) = v; // von s nach w geht über v

Beispiel für die Anwendung des Dijkstraalgorithmus Kürzester Weg von einem Knoten s zu allen anderen Knoten (single source shortest paths problem) 13 13 1 4 1 4 5 5 b (1,2) + a (2,3) = 6 < b (1,5) + a (5,4) = 10 < b (1,5) + a (5,3) = 12 < a (1,4) = 13 1 1 5 a (1,2) = 2 < a (1,4) = 13 5 2 6 2 6 3 7 3 7 2 3 2 3 4 4 13 1 4 1 13 4 b (1,2) + a (2,5) = 5 < b (1,2) + a (2,3) = 6 < a (1,4) = 13 5 5 b (1,5) + a (5,4) = 10 < b (1,3) + a (3,4) = 12 < a (1,4) = 13 1 1 5 5 2 6 2 6 3 7 3 7 2 3 2 3 4 4

Zweitkürzeste Wege in einem Graphen Gesucht ist der zweitkürzeste Weg von s nach z Dijkstra ist dem Problem zweitkürzester Wege nicht gewachsen Lösung durch: Algorithmus von Pollack und Hoffman & Pavle (algorithmusverändernd) Algorithmus von Azevedo (graphverändernd)

Algorithmus von Pollack Dynamisches algorithmusveränderndes Verfahren Berechne den kürzesten Weg zwischen Start und Zielknoten (m Kanten) Entferne jeweils eine Kante des kürzesten Weges und berechne in dem neu entstandenen Graph wieder den kürzesten Weg zwischen Start und Zielknoten (m Berechnungen) Der kürzeste Weg dieser m Berechnungen ist der zweitkürzeste Weg zwischen Start und Zielknoten

Algorithmus von Pollack Kante 1 oder 2 wird weggelassen - kein kürzester Weg wird berechnet Kante 3 wird weggelassen - drittkürzester Weg wird berechnet Kante 4 – 8 wird weggelassen - zweitkürzester Weg wird berechnet

Der zweitkürzeste Weg von 1 nach 4 5 3 4 2 1 6 13 7 3 2 1 5 4 6 13 7 5 3 2 4 1 6 13 7 5 3 4 2 1 6 13 7

Der Algorithmus von Pollack findet keine Schleifen

Der Algorithmus von Hoffman & Pavley

Der zweitkürzeste Weg von 1 nach 4 3 2 1 5 4 6 13 7 5 3 2 4 1 6 13 7 5 3 4 2 1 6 13 7 5 3 4 2 1 6 13 7

Schleifenbeispiel für den Algorithmus von Hoffman & Pavley Die Kanten des kürzeste Wege Baumes zum Zielknoten hin sind violett Die kürzesten Wege von den Endknoten der Kanten 1 und 2 werden betrachtet Algorithmus erschafft zweitkürzesten Weg mit einem Zyklus

Schlingen am Anfang oder Ende ist. ster Weg zweitkürze ebenfalls der gefunden, der Weg auch wird so ist, rt) (undefinie daß ausgeht, davon man Wenn . 5 ) ( ster Weg. h automatisc und tigt berücksich dung Minimumbil bei , Damit wird denn t Eigenschaf die erfüllt Kante Die Betrachte zwischen Weg ste ist wieder Gesucht 3 2 1 , z, z , v s, v v w , z s u ,v (v z n i + ¹ = * d

Verfahrensvergleich Pollack Dynamisches Verfahren Berechne den kürzesten Weg w zwischen s und z Lasse eine Kante e von w weg. Berechne den kürzesten Weg im Graphen ohne die Kante e Minimiere über die so entstandenen kürzesten Wege Kürzester Weg ist gesperrt Nur schleifenfreie Wege werden gefunden Hoffman & Pavley Dynamisches Verfahren Berechne den kürzesten Weg w zwischen s und z Nimm jede Kante e deren Anfangsknoten ein Knoten von w ist und selbst keine Kante von w ist Berechne den kürzesten Weg vom Endknoten von e nach z und addiere den Weg nach s. Minimiere über die so entstandenen kürzesten Wege Zweitkürzester Weg wird als Variante des kürzesten Weges gesehen Auch Wege mit Schleifen werden gefunden

Algorithmus von Azevedo modifiziert von Schmid Statisches Verfahren (verändert nur den Graph nicht aber den kürzeste Wege- Algorithmus) Azevedo verwendet die Methode Pathdeletion (Wegeverbote).

Vorgehen bei Azevedo Erschaffe einen neuen Startknoten und einen neuen Zielknoten (später). Verdopple den kürzesten Weg ohne erste und letzte Kante bzw Knoten. (Wegeverdopplung) Weise der ersten Kante einen neuen Endknoten zu. (Umleitung) Ziehe alle Kanten über die der kürzeste Weg verlassen werden kann. (Verbindung mit dem Ausgangsgraphen)

Beispiel für den modifizierten Algorithmus von Azevedo Der kürzeste Weg ist nicht mehr begehbar (X). Der zweit und drittkürzeste Weg sind noch möglich (-- / --).

Der zweitkürzeste Weg (von 1 nach 4) 3 2 1 5 4 6 13 7 Der verdoppelte Weg ist blau. Die Verbindung mit dem Ausgangsgraphen ist grün. Die Kanten (2',5) und (5',4) werden nicht gezogen. Die Kante (1,2) wird zur Kante (1,2'). 5‘ 2‘ 1 3 7 2 5 4 6 13 5‘ 2‘ 1 3 7 2 5 4 6 13

Problem beim ersten Schritt Der Algorithmus von Azevedo kann in dieser Form einen zweitkürzesten Weg der Form: Schlinge - (alter) kürzester Weg oder (alter) kürzester Weg – Schlinge nicht erkennen. Lösung: Erschaffe einen neuen Startknoten und einen neuen Zielknoten. Verbinde den neuen Startknoten mit dem alten Startknoten durch eine Kante der Länge 0. Verbinde den alten Zielknoten mit dem neuen Zielknoten durch eine Kante der Länge 0.

Beispiel für einen erweiterten Graphen incl. ersten Schritt Der zweitkürzeste Weg (rot) beinhaltet die Schlinge beim Startknoten

Drittkürzeste Wege nach Pollack

k kürzeste Wege nach Pollack

Drittkürzeste Wege nach Azevedo

k - kürzeste Wege nach Azevedo

Der schlimmste Fall