Fachhochschule Wedel Lokale Variante des Algorithmus von Dijkstra zur Berechnung kürzester Wege und das Problem der Aktualisierung von Wegen bei Leitungsausfällen vorgetragen von Alex Prentki Seminararbeit WS04/05 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Agenda Problemstellung Grundlagen der Graphentheorie Der Dijkstra Algorithmus Problem bei Leitungsausfällen Lösungsansätze Fazit Seite 2 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Problemstellung Finden kürzester Wege interessant in vielen Bereichen – Routingverfahren (RIP & OSPF) – Logistik: Transportwege in einem Distributionssystem – KI: viele Probleme können als Suchprobleme dargestellt werden Seite 3 Problem: Häufig sehr viele Knoten im Suchraum – Beispiel Schach: 25 Züge bei gegebener Stellung möglich 5 eigene und 5 gegnerische Züge vorausplanen es müssen 2513 Züge überschaut werden! Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Grundlagen der Graphentheorie Ein ungerichteter Graph besteht aus einer Menge E von Ecken und einer Menge K von Kanten. Die Ecken werden oft auch Knoten oder Punkte genannt. „Ungerichtet“ heißt es deswegen, weil zwischen Anfangs- und Endpunkt der Kante nicht unterschieden wird. e 2 e3 k2 k 1 k5 e1 k3 k4 „gerichtet“ Seite 4 e5 Dienstag, 21. Dezember 2004 e4 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Grundlagen der Graphentheorie Von Nachbarn spricht man, wenn zwei Ecken e und f eines ungerichteten Graphen benachbart sind, d.h. wenn es eine Kante von e nach f gibt. e1 e2 e4 e3 Seite 5 e5 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Grundlagen der Graphentheorie Ein Pfad von einem Anfangsknoten a zu einem Endknoten z ist eine Knotenfolge (oder auch Kantenfolge) von p Knoten e1,e2,...,ep mit e1=a, ep=z. Die Knotenfolge kann einen Knoten mehrfach durchlaufen. (Wiederholungsmöglichkeit) e2 e3= z e1= a e4 e5 Seite 6 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Grundlagen der Graphentheorie Ein Weg von einem Anfangsknoten a zu einem Endknoten z ist ein Pfad, bei dem alle verwendeten Kanten verschieden sind (ohne Wiederholungsmöglichkeit). Ist der Startknoten gleich dem Endknoten des Weges, so heißt der Weg geschlossen, andernfalls heißt er offen. e2 e3= z „offen“ e1= a e4 e5 Seite 7 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Grundlagen der Graphentheorie Ein Weg von einem Anfangsknoten a zu einem Endknoten z ist ein Pfad, bei dem alle verwendeten Kanten verschieden sind (ohne Wiederholungsmöglichkeit). Ist der Startknoten gleich dem Endknoten des Weges, so heißt der Weg geschlossen, andernfalls heißt er offen. e2= a = z e3 e5 e4 „geschlossen“ e1 Seite 8 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Grundlagen der Graphentheorie Bei bewerteten Graphen wird jeder Kante ein Wert aus der praktischen Anwendung zugewiesen. Die Länge eines Weges zwischen einem Startknoten s und einem Zielknoten z ist dann gegeben als die Summe der Bewertungen auf den Kanten des Weges. Hamburg Länge = 980km 150 280 Berlin Hannover 190 460 Frankfurt Seite 9 Dresden Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Grundlagen der Graphentheorie kW-Baum Ein kürzeste-Wege-Baum ist immer ein Untergraph eines kantenbewerteten Graphen G, bei dem alle Kantenbewertungen positiv bzw. ≥ 0 sind. Der kW-baum ist ein gerichteter Baum mit der Wurzel w. „umfassender“ Graph G kW-Baum w Seite 10 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Edsger Wybe Dijkstra (1930-2002) Geboren in Rotterdam International angesehener Computer Wissenschaftler Lebte lange in Holland und arbeitete an der Eindhoven Universität für Technologie Anfang der 70er war er in der Forschungsabteilung der „Burroughs Corporation“ tätig 1972 Turing Award 1984 - 2000 Lehrstuhl an der University of Texas Seite 11 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Der Dijkstra Algorithmus Basiert auf einer geschickten Auswahl des zu bearbeitenden Knotens. 1. Definition und Initialisierung der Distanz D: Alle Knoten, die nicht unmittelbare Nachbarn der Wurzel sind, erhalten D = ∞ 2. Bildung von zwei Mengen Menge B enthält alle Knoten, für welche schon ein Weg von der Wurzel aus bekannt ist. Ein Knoten i ist in B, wenn D[i] ≠ ∞ Menge E enthält alle endgültig markierten Knoten. Seite 12 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Der Dijkstra Algorithmus 3. Auswahl des Knotens mit der geringsten Distanz 4. Vorgänger dieses Knotens merken 5. Knoten aus B entfernen und in E einfügen 6. Distanzen zu „neuen“ Nachbarn ermitteln 7. Wiederholung ab Schritt 3 bis Zielknoten in E eingefügt oder alle Knoten bearbeitet wurden Jeder Knoten kennt nun den Vorgänger, über den er am schnellsten zu erreichen ist! Seite 13 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Der Dijkstra Algorithmus - Anfangszustand V=A B 7 ∞ 2 ∞ 4 C 1 ∞ 13 ∞ 5 Wurzel A Z(iel) G ∞ ∞ 6 10 F 4 ∞ 9 3 ∞ E 5 ∞ 1 ∞ D B = { G,F B,G,F } } E = { B} } Seite 14 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Der Dijkstra Algorithmus – Schritt 2 V=A B 7 ∞ 2 ∞ 4 ∞ 10 F C ∞ 5 Wurzel A A → B → C = 11 G V=A ∞ ∞ A→B→G=6 ∞ ∞ E ∞ Z(iel) ∞ D B = { G,F G,F,C F,C } } E = { B,G B} } Seite 15 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Der Dijkstra Algorithmus – Schritt 3 V=A B 4 10 A → G → F = 11 F B = { F,E C,F,E C,F } } E = { B,G B,G,C } } 6 ∞ C 1 ∞ 2 5 Wurzel A Seite 16 7 A → BV=G → C = 11 G V=A ∞ ∞ A→G→C=6 ∞ 9 ∞ E ∞ Z(iel) ∞ D A → G → E = 14 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Der Dijkstra Algorithmus – Schritt 4 V=A B 4 2 1 5 Wurzel A 13 ∞ A → G → C → Z = 19 Z(iel) G V=A 10 6 A → G → F = 11 F V=A B = { F,E,Z E,Z F,E } } E = { B,G,C,F B,G,C } } Seite 17 V=G C 7 ∞ 9 ∞ E ∞ ∞ D A → G → E = 14 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Der Dijkstra Algorithmus – Schritt 5 V=A B 4 2 1 13 A → G → C → Z = 19 5 Wurzel A Z(iel) G V=A 10 6 F V=A B = { E,Z Z} } E = { B,G,C,F,E B,G,C,F } } Seite 18 V=G C 7 ∞ 9 3 ∞ A→ E V=F G → ∞ ∞ D E = 14 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Der Dijkstra Algorithmus – Schritt 6 V=A B 4 V=G C 7 2 1 A → G → C → Z = 19 5 Wurzel A 13 G V=A 10 6 F V=A 4 ∞ 9 3 E V=F 5 ∞ Z(iel) V=E ∞ D B={Z Z,D D }} } Kürzester Weg von A nach A→ F→ E→ Z D == 17 18Z = 17 E = { B,G,C,F,E,Z B,G,C,F,E } } Seite 19 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Problem der Aktualisierung von Wegen bei Leitungsausfällen Szenario Leitung fällt auf Grund eines Unwetterschadens aus Router bemerken den Ausfall und starten eine komplette Neuberechnung ALLER Wege Router tauschen die Informationen untereinander aus sehr hoher Rechenaufwand Warum gibt es nichts effizienteres? Seite 20 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Problem der Aktualisierung von Wegen bei Leitungsausfällen ... weil die Wissenschaft sich mit der Laufzeit O[n2] des Dijkstra Algorithmus zufrieden gibt! Der scheinbar sehr hohe Rechenaufwand relativiert sich durch die steigende Rechenleistung der Hardware Wir wollen uns damit jedoch jetzt nicht zufrieden stellen lassen! Seite 21 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Lösungsansatz Idee Router haben einmal alle kürzesten Wege für jedes Ziel berechnet und diese abgespeichert Der Router müsste bei einem Ausfall nun lediglich einen Weg kennen, über den er diesen umgeht, bis er auf einen anderen Knoten des ursprünglichen Pfades trifft. Ab dort würde der „alte“ Pfad dann fortgesetzt. Dieser Pfad soll im Folgenden Umgehungsweg heißen Umgehungspfade wurden vorher berechnet und Router soll bei Ausfall sofort auf diesen umschalten Seite 22 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Lösungsansatz Konsequenzen Router müssen für jedes Ziel einen zusätzlichen Umgehungsweg berechnen: Dijkstra Algorithmus läuft normal, bricht aber früher ab. (wenn ein Knoten des ursprünglichen Pfades erreicht) Diese Pfade könnten im Router als Array abgespeichert werden: Umgehungswege[i] = j Seite 23 i = ausgefallener Knoten j = Umgehungsknoten Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Realisierung – Beipiel 1 A mussFGfällt als aus Umgehungsweg kennen, Router G kennt dann bereits den Weg über E nach Z 7 B 4 2 1 13 5 Wurzel A Z(iel) G V=A 6 10 F V=A Seite 24 C 4 1 9 3 E V=F 5 Dienstag, 21. Dezember 2004 D © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Realisierung – Beipiel 2 F muss G als Umgehungsweg kennen, Router E ist defekt G nutzt dann ebenfalls seinen Umgehungsweg über C nach Z 7 B 4 2 1 13 5 Wurzel A Z(iel) G V=A 6 10 F V=A Seite 25 C 4 1 9 3 E V=F 5 Dienstag, 21. Dezember 2004 D © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Bewertung des Lösungsansatzes + Leitungsausfall kann sofort umgangen werden + weniger Rechenaufwand - Mehr Speicherbedarf Umgehungswege nur partiell optimal (Beispiel 2) Keine „echte“ Lösung des Problems, aber Einsatz für zeitkritische Leitungsabschnitte denkbar Seite 26 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Fazit Zielsetzung dieser Arbeit war es, eine Einführung in die graphentheoretische Wegoptimierung zu geben den Dijkstra Algorithmus zu veranschaulichen Herrn Dijkstra mit einer besseren Lösung zu übertreffen! Seite 27 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki Seminararbeit WS04/05 Fachhochschule Wedel Ende Vielen Dank für Ihre Aufmerksamkeit Seite 28 Dienstag, 21. Dezember 2004 © 2004 Alex Prentki