„Lange Nacht der Wissenschaft“ Ein Klassiker – Die Mathematik der Kürzesten Wege Thomas Schlechte 09.06.2007 Thomas Schlechte Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) [email protected] http://www.zib.de/schlechte 2 Überblick Problem – Motivation Graphentheorie und Euler Der Algorithmus von Dijkstra Grenzen des Modells Ein Verkehrs-Paradoxon Thomas Schlechte 3 Hier will ich hin ! Motivation Die Frage ist: „Wie komme ich hin ?“ Hier bin ich ! Thomas Schlechte 4 Umsetzbar, Schnell und Richtig ! Ziel Antwort ! Mögliche Antwort: • Links in die Tiergartenstraße • Rechts in die Hofjägerallee • Kreisverkehr Rechts in die Altonaerstrasse • Rechts in die Bachstrasse Thomas Schlechte 5 Welchen Weg suchen wir ? Ziele • • • • schnellster kürzester günstigster ... Thomas Schlechte 6 Überall im Alltag ! Anwendungen Routenplaner Navigationssysteme Fahrplanauskunft Thomas Schlechte 7 Aber wie funktioniert das ? Lösung Lokalisierung GPS Thomas Schlechte Routing 8 Realität tze, ä S , nen thmen o i t i n i Def e, Algori is Bewe Thomas Schlechte Mathematik Lösungen Evaluieren Problem Modellieren Abstraktion 9 Modellierung Kreuzungen Knoten Strassen Kanten Fahrzeiten Kantengewichten t 2 5 1 5 3 2 1 1 3 1 6 4 Thomas Schlechte 1 4 2 2 1 3 1 s 10 Graphentheorie Modellierung Graph G =(V,A) V = Menge aller Knoten {s,t,1,2,3,4,5,6} A = Menge aller Kanten {(s,1),(s,2),(s,4)....} c = Abbildung der Kosten (Fahrzeiten) {c(s,1) -> 1, c(s,4) -> 3, .....} t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 11 Kürzeste Wege Problem Modellierung Gegeben: Graph G =(V,A), Kostenfunktion c(a) Gesucht: kürzester Weg von s nach (mit minimalen Kosten bzgl. c(a) ) t 5 2 3 6 4 Thomas Schlechte 1 s t 12 Historisches Leonhard Euler (1707-1783) Thomas Schlechte Scans erstellt von Wladimir Velminski für seine Doktotarbeit in Kunstgeschichte an der HU bei Prof. Bredekamp (~2008) 13 Königsberg Thomas Schlechte 14 Das Problem a Grüne Brücke b Köttelbrücke c Krämerbrücke d Schmiedebrücke e Honigbrücke g Holzbrücke f Hohe Brücke Thomas Schlechte „Das Problem, das ziemlich bekannt sein soll, war folgendes. Zu Königsberg in Preußen ist eine Insel A, genannt „der Kneiphof“, und der Fluß, der sie umfließt, teilt sich in zwei Arme, wie dies aus Fig. 1 ersichtlich ist. Über die Arme dieses Flußes führen sieben Brücken a, b, c, d, e, f und g. Nun wurde gefragt, ob jemand seinen Spaziergang so einrichten könne, daß er jede dieser Brücken einmal und nicht mehr als einmal überschreite. Es wurde mir gesagt, daß einige diese Möglichkeit verneinen, andere daran zweifeln, daß aber niemand sie erhärte. Hieraus bildete ich mir folgendes höchst allgemeine Problem: Wie auch die Gestalt des Flußes und seine Verteilung in Arme, sowie die Anzahl der Brücken ist, zu finden, ob es möglich sei, jede Brücke genau einmal zu überschreiten oder nicht.“ 15 Enumeration Anzahl der Spaziergänge (im schlimmsten Fall) Hier: Allgemein: Formel) 7!/2 = 7*6*5*4*3 = 2.520 n!/ 2 ≈ n n e − n 2π n / 2 (Stirling- „Was das Königsberger Problem von den sieben Brücken betrifft, so könnte man es lösen durch eine genaue Aufzählung aller Gänge, die möglich sind; denn dann wüßte man, ob einer derselben der Bedingung genügt oder keiner. Diese Lösungsart ist aber wegen der großen Zahl von Kombinationen zu mühsam und schwierig, und zudem könnte sie in andern Fragen, wo noch viel mehr Brücken vorhanden sind, gar nicht mehr angewendet werden. Würde die Untersuchung in der eben erwähnten Weise geführt, so würde Vieles gefunden, wonach gar nicht gefragt war; dies ist zweifellos der Grund, warum dieser Weg so beschwerlich wäre. Darum habe ich diese Methode fallengelassen und eine andere gesucht, die nur so weit reicht, daß sie erweist, ob ein solcher Spaziergang gefunden werden kann oder nicht; denn ich vermutete, daß eine solche Methode viel einfacher sein würde.“ Thomas Schlechte 16 Kombinatorische Explosion Enumeration n Lineares Quadratisches Exponentielles Wachstum (n) Wachstum (n²) Wachstum (n!) 1 2 3 ... 5 Thomas Schlechte 6 6 36 720 10 10 100 362880 13 13 169 479001600 17 Das Problem a Grüne Brücke b Köttelbrücke c Krämerbrücke C d Schmiedebrücke e Honigbrücke g Holzbrücke f Hohe Brücke A B Thomas Schlechte D 18 Graphentheorie C Knoten Kanten Grad 3 D Satz: Die Anzahl der ungeraden Knoten ist gerade. A B Thomas Schlechte D 19 Graphentheorie 0 Knoten Kanten Grad 3 D Satz: Die Anzahl der ungeraden Knoten ist gerade. 0 0 Thomas Schlechte 0 20 Graphentheorie 1 Knoten Kanten Grad 3 D Satz: Die Anzahl der ungeraden Knoten ist gerade. 0 0 Thomas Schlechte 1 21 Graphentheorie Knoten 1 Kanten Grad 3 D Satz: Die Anzahl der ungeraden Knoten ist gerade. 1 0 Thomas Schlechte 2 22 Graphentheorie Knoten 2 Kanten Grad 3 D Satz: Die Anzahl der ungeraden Knoten ist gerade. 2 0 Thomas Schlechte 2 23 Graphentheorie Knoten 2 Kanten Grad 3 D Satz: Die Anzahl der ungeraden Knoten ist gerade. 3 1 Thomas Schlechte 2 24 Graphentheorie Knoten 2 Kanten Grad 3 D Satz: Die Anzahl der ungeraden Knoten ist gerade. 3 2 Thomas Schlechte 3 25 Graphentheorie Knoten 3 Kanten Grad 3 D Satz: Die Anzahl der ungeraden Knoten ist gerade. 4 2 Thomas Schlechte 3 26 Graphentheorie Satz: Die Anzahl der ungeraden Knoten ist gerade. Beweis: Kanten++: uu → gg (-2) ug → gu (±0) gg → uu (+2) 3 5 3 Thomas Schlechte 3 27 Graphentheorie Lösung: Es gibt keinen (Euler-) Weg, weil 3 mehr als 2 Knoten ungeraden Grad haben. 5 3 Thomas Schlechte 3 28 Graphentheorie Satz: Einen Eulerweg gibt 3 es genau dann, wenn G zusammenhängend ist und höchstens 2 5 Knoten ungeraden Grad haben. 3 Thomas Schlechte 3 29 Graphentheorie Satz: Algorithmischer Beweis: Einen Eulerweg gibt es genau dann, Starte in beliebigen Knoten wenn G Laufe Kanten ab bis man zurückkehrt zusammenhängend Lösche Kreis ist und höchstens 2 Wiederhole das bis keine Kanten mehr da sind Knoten ungeraden Grad haben. Zerlegung in Kreise und maximal einen Weg ! Thomas Schlechte 30 Graphentheorie Satz: Einen Eulerweg gibt es genau dann, wenn G zusammenhängend ist und höchstens 2 Knoten ungeraden Grad haben. Thomas Schlechte 31 Eulerweg ... ist einfach! Wir können leicht entweder einen Eulerweg finden oder beweisen, dass es keine gibt. Thomas Schlechte 32 Beispiele ... ist einfach! Wir können leicht (linearer Zeit) entweder eine Eulertour finden oder beweisen, dass es keine gibt. Thomas Schlechte 33 Kürzeste Wege Problem Kürzeste Wege Gegeben: Graph G =(V,A), Kostenfunktion c(a) Gesucht: kürzester Weg von (minimale Kosten) s nach t 5 2 3 6 4 Thomas Schlechte 1 s t 34 Dijkstra‘s - Idee t Edsgar W. Dijkstra (1930-2002) z s kürzester s-t-Weg <= kürzester s-z-Weg Thomas Schlechte + kürzester z-t-Weg 35 Lösung Knoten : aktuelle kürzeste Distanz : s 1 2 3 4 5 6 t 0 ? ? ? ? ? ? ? t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 36 Lösung s Annahme: Keine negativen Gewichte s 1 2 3 4 5 6 t 0 ? ? ? ? ? ? ? - Knoten fertig - aktueller Knoten t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 37 Lösung s Annahme: Keine negativen Gewichte s 1 2 3 4 5 6 t 0 1 2 ? 3 ? ? ? - Knoten fertig - aktueller Knoten t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 38 Lösung s Annahme: Keine negativen Gewichte s 1 2 3 4 5 6 t 0 1 2 2 3 ? ? ? - Knoten fertig - aktueller Knoten t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 39 Lösung s Annahme: Keine negativen Gewichte s 1 2 3 4 5 6 t 0 1 2 2 3 3 ? ? - Knoten fertig - aktueller Knoten t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 40 Lösung s Annahme: Keine negativen Gewichte s 1 2 3 4 5 6 t 0 1 2 2 3 3 ? 7 - Knoten fertig - aktueller Knoten t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 41 Lösung s Annahme: Keine negativen Gewichte s 1 2 3 4 5 6 t 0 1 2 2 3 3 7 4 - Knoten fertig - aktueller Knoten t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 42 Lösung s Annahme: Keine negativen Gewichte s 1 2 3 4 5 6 t 0 1 2 2 3 3 7 4 - Knoten fertig - aktueller Knoten t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 43 Lösung s Annahme: Keine negativen Gewichte s s 1 s 3 4 5 s 1 2 3 4 5 6 t 0 1 2 2 3 3 7 4 - Knoten fertig - aktueller Knoten t 5 1 5 3 2 1 1 6 4 Thomas Schlechte 1 3 4 2 2 1 3 1 s 44 Grenzen • Kapazitäten der Kanten (Fahrbahnen) • Fahrzeitfunktionen (wachsend) s Thomas Schlechte t 45 Erweiterung Fahrzeitfunktionen in Abhängigkeit der fahrenden Autos ! Fahrzeit x 4 Anzahl der Autos Je mehr Autos auf einer Strasse fahren, umso grösser wird die Fahrzeit ! 4 1 Thomas Schlechte x 2 46 Nash-Gleichgewicht Gleichgewichte „Eine intuitive Definition“: John F. Nash (1928-) Thomas Schlechte Das Nash-Gleichgewicht beschreibt eine Situation, in der sich keiner der Spieler mehr aus seiner Froschperspektive heraus verbessern kann. 47 Nash-Gleichgewicht Gleichgewichte John F. Nash (1928-) 11 s t 10 + x Im Gleichgewicht hätten alle eine Fahrzeit von 11 ! Thomas Schlechte 48 Beispiel 10x 50 + x s t 1 50 + x 2 10x Thomas Schlechte 49 Keiner kann sich verbessern ! Lösung 83 83 83 50 + x 30 10x 30 30 s 1 50 + x 53 53 53 t 2 83 10x 83 83 Im Gleichgewicht haben alle eine Fahrzeit von 83 ! Thomas Schlechte 50 Ausbau des Netzes durch neue Verbindung ?!? Ausbau Szenario Dietrich Braess (1930-2002) 30 30 30 83 83 50 + x 83 10x s t 1 10 + x 50 + x 53 53 53 Thomas Schlechte 2 10x 83 83 83 51 Ausbau des Netzes durch neue Verbindung ?!? Ausbau Szenario 10x 40 40 40 40 s t 1 51 10 + x 50 + x 52 52 Thomas Schlechte 93 93 50 + x 93 2 10x 82 82 81 52 Keiner kann sich verbessern ! Neues Gleichgewicht 10x 40 40 40 40 s 92 50 + x 92 t 1 52 52 10 + x 50 + x 52 52 2 10x 92 92 92 92 Im neuen Gleichgewicht haben alle eine Fahrzeit von 92 ! Thomas Schlechte 53 Braess-Paradoxon Trotz Ausbau des Netzes haben sich alle um 9 Minuten verschlechtert ?!? Thomas Schlechte 54 Die Mathematik der kürzesten Wege Vielen Dank für die Aufmerksamkeit ! Thomas Schlechte