vorgetragen von Alex Prentki 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 To replace the title / subtitle with your own: Click on the title block -> select all the text by pressing Ctrl+A -> press Delete key -> type your own text
Agenda Problemstellung Grundlagen der Graphentheorie Der Dijkstra Algorithmus Problem bei Leitungsausfällen Lösungsansätze A pot file is a Design Template file, which provides you the “look” of the presentation You apply a pot file by opening the Task Pane with View > Task Pane and select Slide Design – Design Templates. Click on the word Browse… at bottom of Task Pane and navigate to where you stored BlueOnyx Deluxe.pot (black background) or BluePearl Deluxe.pot (white background) and click on Apply. You can switch between black and white background by navigating to that pot file and click on Apply. Another easier way to switch background is by changing color scheme. Opening the Task Pane, select Slide Design – Color Schemes and click on one of the two schemes. All your existing content (including Business Unit or Product Names) will be switched without any modification to color or wording. Start with Blank Presentation, then switch to the desired Design Template Start a new presentation as Blank Presentation You can switch to Blue Onyx Deluxe.pot by opening the Task Pane with View > Task Pane and select Slide Design – Design Templates. Click on the word Browse… at bottom of Task Pane and navigate to where you stored BlueOnyx Deluxe.pot (black background) and click on Apply. Your existing content will take on Blue Onyx’s black background, and previous black text will turn to white. You should add your Business Unit or Product Name by modifying it on the Slide Master You switch to the Slide Master view by View > Master > Slide Master. Click on the Title Page thumbnail icon on the left, and click on the Business Unit or Product Name field to modify it. Click on the Bullet List Page thumbnail icon on the left, and click on the Business Unit or Product Name field to modify it. Click on Close Master View button on the floating Master View Toolbar You can turn on the optional date and footer fields by View > Header and Footer Suggested footer on all pages including Title Page: Presentation Title | Confidential Date and time field can be fixed, or Update automatically. It appears to the right of the footer. Slide number field can be turned on as well. It appears to the left of the footer. Fazit Samstag, 22. September 2018
Problemstellung Routingverfahren (RIP & OSPF) 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 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! Samstag, 22. September 2018
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. e2 e3 k2 k1 k5 k3 e1 k4 e4 e5 „gerichtet“ Samstag, 22. September 2018
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 e5 e3 Samstag, 22. September 2018
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 Samstag, 22. September 2018
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 Samstag, 22. September 2018
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 „geschlossen“ e1 e4 e5 Samstag, 22. September 2018
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 150 Länge = 980km 280 Berlin Hannover 190 460 Dresden Frankfurt Samstag, 22. September 2018
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 Samstag, 22. September 2018
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 Samstag, 22. September 2018
Der Dijkstra Algorithmus Basiert auf einer geschickten Auswahl des zu bearbeitenden Knotens. Definition und Initialisierung der Distanz D: Alle Knoten, die nicht unmittelbare Nachbarn der Wurzel sind, erhalten D = ∞ 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. Samstag, 22. September 2018
Der Dijkstra Algorithmus Auswahl des Knotens mit der geringsten Distanz Vorgänger dieses Knotens merken Knoten aus B entfernen und in E einfügen Distanzen zu „neuen“ Nachbarn ermitteln 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! Samstag, 22. September 2018
Der Dijkstra Algorithmus - Anfangszustand V=A ∞ B 7 C ∞ ∞ 4 2 1 ∞ 13 5 Wurzel A Z(iel) G ∞ 4 ∞ 1 ∞ ∞ 10 6 9 ∞ ∞ 3 5 D F E B = { B,G,F } B = { G,F } E = { } E = { B } Samstag, 22. September 2018
Der Dijkstra Algorithmus – Schritt 2 A → B → C = 11 V=A ∞ B 7 C ∞ ∞ 4 2 ∞ 5 Wurzel A A → B → G = 6 Z(iel) G ∞ V=A ∞ ∞ ∞ 10 ∞ ∞ D F E B = { G,F } B = { F,C } B = { G,F,C } E = { B,G } E = { B } Samstag, 22. September 2018
Der Dijkstra Algorithmus – Schritt 3 A → B → C = 11 V=A V=G B 7 C ∞ 4 2 1 ∞ 5 Wurzel A A → G → C = 6 Z(iel) G ∞ V=A ∞ ∞ ∞ 10 6 9 ∞ ∞ A → G → F = 11 D F E A → G → E = 14 B = { C,F,E } B = { C,F } B = { F,E } E = { B,G } E = { B,G,C } Samstag, 22. September 2018
Der Dijkstra Algorithmus – Schritt 4 V=A V=G B 7 C 4 2 1 ∞ 13 A → G → C → Z = 19 5 Wurzel A Z(iel) G ∞ V=A ∞ 10 6 9 ∞ ∞ A → G → F = 11 D F E V=A A → G → E = 14 B = { E,Z } B = { F,E,Z } B = { F,E } E = { B,G,C } E = { B,G,C,F } Samstag, 22. September 2018
Der Dijkstra Algorithmus – Schritt 5 V=A V=G B 7 C 4 2 1 13 A → G → C → Z = 19 5 Wurzel A Z(iel) G ∞ V=A ∞ 10 6 9 ∞ ∞ 3 D F E V=A V=F A → G → E = 14 B = { E,Z } B = { Z } E = { B,G,C,F,E } E = { B,G,C,F } Samstag, 22. September 2018
Der Dijkstra Algorithmus – Schritt 6 V=A V=G B 7 C 4 2 1 13 A → G → C → Z = 19 5 Wurzel A Z(iel) G ∞ V=E 4 V=A ∞ 10 6 9 ∞ 3 5 D F E V=A V=F B = { D } B = { Z,D } B = { Z } Kürzester Weg von A nach Z = 17 A → F → E → D = 18 A → F → E → Z = 17 E = { B,G,C,F,E } E = { B,G,C,F,E,Z } Samstag, 22. September 2018
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? Samstag, 22. September 2018
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! Samstag, 22. September 2018
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 Samstag, 22. September 2018
Konsequenzen Lösungsansatz 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 i = ausgefallener Knoten j = Umgehungsknoten Samstag, 22. September 2018
Realisierung – Beipiel 1 A muss G als Umgehungsweg kennen, G kennt dann bereits den Weg über E nach Z Router F fällt aus B 7 C 4 2 1 13 5 Wurzel A Z(iel) G 4 V=A 1 10 6 9 3 5 D F E V=A V=F Samstag, 22. September 2018
Realisierung – Beipiel 2 F muss G als Umgehungsweg kennen, G nutzt dann ebenfalls seinen Umgehungsweg über C nach Z Router E ist defekt B 7 C 4 2 1 13 5 Wurzel A Z(iel) G 4 V=A 1 10 6 9 3 5 D F E V=A V=F Samstag, 22. September 2018
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 Samstag, 22. September 2018
Fazit Zielsetzung dieser Arbeit war es, eine Einführung in die graphen- theoretische Wegoptimierung zu geben den Dijkstra Algorithmus zu veranschaulichen Herrn Dijkstra mit einer besseren Lösung zu übertreffen! Samstag, 22. September 2018
Vielen Dank für Ihre Aufmerksamkeit Ende Vielen Dank für Ihre Aufmerksamkeit Samstag, 22. September 2018