Diskrete Mathematik II Vorlesung 4 SS 2002 Dijkstra-Erweiterungen zur Behandlung realer Straßennetze
Überblick: zwei Dijkstra - Erweiterungen Dijkstra: Finden kürzester Wege in Graphen Reale Netze stellen besondere Anforderungen Größe des Netzwerkes (Effizienz) Dijkstra-Erweiterung "Dijkstra mit Geometrie" Straßenverkehrsordnung (Abbiege- und Wendeverbote) Übergang von Netzen zu Graphen Ansätze: Modifikation des Graphen Modifikation von Dijkstra nur kurzer Ausblick Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do 80 20 Du 30 20 Ha 15 W D 80 15 K
Beispiel Do Ha W Du K D 20 15 80 30 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel Do Ha W Du K D 20 15 80 30 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel Do Ha Du 20 80 30 W K D 15 Do Do Du Du 80 Ha 20 Ha Minimaler Abstand von Do Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel Do Ha W Du K D 20 80 30 15 Do Du Ha 80 20 W 15 W Minimaler Abstand von DO Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel Do Ha W Du K D 20 80 30 15 abgearbeitet W noch in Arbeit noch nicht betrachtet
Algorithmus von Dijkstra: Beispiel 15 Do Ha W Du K D 20 80 30 Do Du Ha W 80 20 15 Kürzester Weg Bereits vorhanden Du Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel 15 Do Ha W Du K D 20 80 30 Du Do Ha W 20 15 30 K 80 D D Du K Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel Do Ha W Du K D 20 80 30 15 Du D K Do Ha W 20 15 30 80 Bereits vorhanden kürzester Weg D Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel Do Ha W Du K D 20 80 30 15 Du K Do Ha W D 20 15 30 80 20 D Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel 20 Do Ha W Du K D 80 30 15 Du K Do Ha W D 20 15 30 80 kürzester Weg Bereits vorhanden Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel Do Ha W Du K D 20 80 30 15 K Du Do Ha W D 20 15 30 80 K Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra: Beispiel Do Ha W Du D 20 80 30 15 Do Ha W D K Du 20 15 30 15 K K Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Algorithmus von Dijkstra - Wiederholung algorithmus Dijkstra (S) BLAU = ; GRÜN = {S}; dist(S) = 0; while( GRÜN ) wähle Knoten K aus GRÜN mit kleinstem dist(K) nimm K aus GRÜN heraus und färbe ihn BLAU; für jeden Nachfolger Ki von K wenn Ki noch nicht besucht färbe Kante von K zu Ki rot und Ki grün; dist(Ki) = dist(K) + dist(K,Ki) wenn Ki GRÜN (erneut erreicht) wenn neuer Weg kürzer als alter Weg setze neuen Weg rot und alten grün setze dist(Ki) auf neuen Wert färbe Ki BLAU wenn Ki bereits BLAU färbe Kante von K zu Ki grün Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Eigenschaften von Dijkstra - Wiederholung Ermittelt kürzeste Wege von einem Startknoten zu allen anderen Praxis: kürzester Weg von Startknoten zu einem Zielknoten man kann aufhören, sobald Zielknoten blau ist (kürzester Weg gefunden) dennoch .... Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra: Richtungslos Hamburg kürzester Weg von Frankfurt nach Hamburg Berlin Brüssel Prag Frankfurt München Wien Mailand Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra: Richtungslos Hamburg kürzester Weg von Frankfurt nach Hamburg Berlin Brüssel Prag Frankfurt München Wien Mailand Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra: Richtungslos Hamburg kürzester Weg von Frankfurt nach Hamburg Berlin Brüssel Prag Frankfurt München Wien Mailand Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra: Richtungslos Hamburg kürzester Weg von Frankfurt nach Hamburg Berlin Brüssel Prag Frankfurt München Wien Mailand Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra: Richtungslos Hamburg kürzester Weg von Frankfurt nach Hamburg Berlin Brüssel Prag Frankfurt München Wien Mailand Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra: Richtungslos Hamburg Frankfurt Brüssel Prag Berlin Mailand München Wien kürzester Weg von Frankfurt nach Hamburg Alle Knoten innerhalb des Kreises werden bearbeitet Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Schön wäre ... Hamburg kürzester Weg von Frankfurt nach Hamburg Berlin Brüssel Prag Berlin Mailand München kürzester Weg von Frankfurt nach Hamburg Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Erweiterung von Dijkstra Dijkstra nutzt die Geometrie der Knoten/Kanten nicht aus richtungslos: Die Richtung von Start- zum Zielknoten wird nicht berücksichtigt Erweiterung von Dijkstra "Dijkstra mit Geometrie" Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Idee HH Gesucht: kürzester Weg von K nach HH Dijkstra wählt BN aus (Weg zu K minimal) Dijkstra mit Geometrie wählt D aus (Summe von Weg zu K und Abstand zu HH minimal) Richtung: minimaler Abstand zu Zielknoten 330 390 30 D 30+330=360 30 K 20 BN 20 20+390=410 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Von Dijkstra zu "Dijkstra mit Geometrie" Nur eine Änderung: Auswahl des nächsten zu bearbeitenden (grünen) Knotens Dijkstra: Knoten mit minimalem besten bisher gefundenen Weg Dijkstra mit Geometrie: Knoten, bei dem Summe aus besten bisher gefundenem Weg und Euklidscher Abstand des Knotens zu Zielknoten minimal ist Beispiel .... Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 4 5 2 1 3 3 4 Gesucht: Kürzester Weg von S nach E S 2 1 4 3 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 4 5 2 1 3 3 4 S 2 1 4 3 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 5 E 6 7 5 6 2 4 5 2 1 3 3 4 S 2 1 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 6 2 4 5 2 1 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 2 4 5 2 1 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 5 E 2 7 5 6 2 4 5 2 1 4+2=6 Summe minimal 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 3 7+3=10 5 E 7 5 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 9+0=9 7+3=10 5 E 7 5 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 9+0=9 7+3=10 5 E 7 5 6 2 4 5 2 1 4+2=6 Summe minimal 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 9+0=9 7+3=10 5 E 7 5 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 9+0=9 7+3=10 5 E 7 5 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 6+0=6 7+3=10 5 E 7 5 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 6+0=6 7+3=10 5 E 7 5 9+4=13 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 6+0=6 Summe minimal 7+3=10 5 E 7 5 9+4=13 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Beispiel 6+0=6 7+3=10 5 E 7 5 9+4=13 6 2 4 5 2 1 4+2=6 3+2=5 3 3 4 Fertig, da Zielknoten E blau kürzester Weg gefunden S 2 1 2+6=8 4 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Abstand Euklidscher Abstand: Schätzung für den unbekannten noch zurückzulegenden Weg einfach zu ermitteln Problem: berücksichtigt nicht tatsächlichen Verlauf von Wegen Topographie (Flüsse, Gebirge, etc.) Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Dijkstra mit Geometrie: Heuristik Einbeziehung der Geometrie/Richtung: "Heuristik" Heuristik: Daumenregel, die beim Suchen hilft findet oft keine optimale Lösung, sondern nur Annäherungen an optimale Lösung Dijkstra mit Geometrie: optimale Lösung, wenn Euklidscher Abstand zu Zielknoten kleiner als tatsächlicher kürzester Weg OK, wenn Kantenkosten = Weglänge Kantenkosten = Fahrtzeit? S E Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 3 10 10 2 10 21 10 S 1 E Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 3 10 10 10+20=30 2 10 21 10 S 1 E 10+10=20 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 3 10 10 10+20=30 2 10 21 10 S 1 E 10+10=20 31+0=31 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 20+10=30 3 10 10 10+20=30 2 10 21 10 S 1 E 10+10=20 31+0=31 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 20+10=30 3 10 10 10+20=30 2 10 30+0=30 21 10 S 1 E 10+10=20 31+0=31 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Beispiel: Kann die Richtung auf den falschen Weg führen? Abstand von 3 zu E größer als Länge der Kante von 3 zu E E würde vor 3 ausgewählt (nicht optimal) 20+10=30 3 10 10 10+20=30 2 10 30+0=30 21 10 S 1 E 10+10=20 31+0=31 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Resümee Algorithmus "Dijkstra mit Geometrie" Erweiterung von Dijkstra durch Einbeziehung der Richtung zum Ziel (Heuristik) zielgerichtete Suche findet optimale Lösung, wenn Kantenkosten=Weglänge Im Bereich Informatik/"Künstliche Intelligenz" unter dem Namen A* („A Stern“) bekannt Mailand Hamburg Frankfurt Hamburg Frankfurt Mailand Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Teil 2: Dijkstra - Straßenverkehrsordnung Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Abbiegeverbote 1 B C 1 1 1 Z A D 1 1 Abbiegeverbot: Wenn man von S kommt, darf man bei A nicht links abbiegen S Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Abbiegeverbote und Dijkstra 1 B C 1 1 1 Z A D 1 1 S Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Abbiegeverbote und Dijkstra 1 B C 1 1 1 1 Z A D 1 1 S Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Abbiegeverbote und Dijkstra 2 1 B C 1 1 1 1 Z A D 1 1 S Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Abbiegeverbote und Dijkstra 1 B C 1 1 1 Z A D 1 1 Da A bereits abgearbeitet (blau) ist, bricht Algorithmus hier ab (findet keine Lösung) S Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Abbiegeverbote und Dijkstra Problem 1: Dijkstra findet keine Lösung Problem 2: Lösungspfad (rot) enthält Zyklus! 1 B C 1 1 1 Z A D 1 1 S Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Lösungsansätze Änderung des Algorithmus Änderung des Graphen A2 A A1 Transformation des Graphen mit Abbiegeverbot in einen ohne dann Anwendung von Standard-Dijkstra A2 A A1 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Fortsetzung in der Übung .....