620 likes | 748 Views
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)
E N D
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
80 20 30 20 15 80 15 Do Du Ha W D K
Do 80 Du 20 Ha 30 20 15 W D 15 80 K Beispiel Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do 80 Du 20 Ha 30 20 15 W D 15 80 K Algorithmus von Dijkstra: Beispiel Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do 80 80 20 Du 20 Du Ha Ha 30 20 15 W D 15 80 K Algorithmus von Dijkstra: Beispiel Do Do Du Ha Minimaler Abstand von Do Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do Do 80 80 20 Du 20 Du Ha Ha 30 20 15 W 15 W D 15 80 K Algorithmus von Dijkstra: Beispiel W Minimaler Abstand von DO Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do 80 Du 20 Ha 30 20 15 W D 15 80 K Algorithmus von Dijkstra: Beispiel abgearbeitet W noch in Arbeit noch nicht betrachtet
Do Do 80 80 20 Du 20 Du Ha Ha 30 20 15 W 15 W D Kürzester Weg 15 80 K Algorithmus von Dijkstra: Beispiel Bereits vorhanden Du Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do Do 80 20 Du 20 Ha Ha 30 20 15 W 15 80 W D Du D K 15 80 K Algorithmus von Dijkstra: Beispiel 30 D Du K Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do Do 80 20 Du 20 Ha Ha 30 20 15 W 15 30 80 W D kürzester Weg Du D K 15 80 K Algorithmus von Dijkstra: Beispiel Bereits vorhanden D Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do Do 80 20 Du 20 Ha Ha 30 20 15 W 15 30 80 W D Du K 15 80 D K Algorithmus von Dijkstra: Beispiel 20 D Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do Do 80 20 Du 20 Ha Ha 30 20 15 W 15 30 80 W D kürzester Weg Du K 20 15 80 D K Algorithmus von Dijkstra: Beispiel Bereits vorhanden Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do Do 80 20 Du 20 Ha Ha 30 20 15 W 15 30 80 W D D Du K 20 15 80 D K Algorithmus von Dijkstra: Beispiel K Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Do Do 80 20 Du 20 Ha Ha 30 20 15 W 15 W D D 30 Du 20 15 80 D K K Algorithmus von Dijkstra: Beispiel 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 Kirot und Kigrü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 KiBLAU wenn Ki bereits BLAU färbe Kante von K zu Kigrü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
Hamburg Berlin Brüssel Prag Frankfurt München Wien Mailand Dijkstra: Richtungslos • 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
Hamburg Berlin Brüssel Prag Frankfurt München Mailand Schön wäre ... • 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
330 390 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 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 4 3 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 4 3 S 2 1 4 3 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
6 Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 4 5 2 1 3 4 3 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
6 Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 4 5 2 1 3 4 3 S 2 1 4 2+6=8 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
2 Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 4 5 2 1 3 3+2=5 4 3 S 2 1 4 2+6=8 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
2 Summe minimal Dijkstra mit Geometrie: Beispiel 5 E 7 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 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 3+2=5 4 3 S 2 1 4 2+6=8 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 3+2=5 4 3 S 2 1 4 2+6=8 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
3 Dijkstra mit Geometrie: Beispiel 5 7+3=10 E 7 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 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 5 7+3=10 E 7 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Summe minimal Dijkstra mit Geometrie: Beispiel 9+0=9 5 7+3=10 E 7 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 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 5 7+3=10 E 7 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 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 5 7+3=10 E 7 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 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 5 7+3=10 E 7 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 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 5 7+3=10 E 7 9+4=13 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 3 1+6=7 2 2 4 8 10 9 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
Summe minimal Dijkstra mit Geometrie: Beispiel 6+0=6 5 7+3=10 E 7 9+4=13 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 S 2 1 4 2+6=8 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 5 7+3=10 E 7 9+4=13 5 6 2 4 5 2 1 4+2=6 3 3+2=5 4 3 Fertig, da Zielknoten E blau kürzester Weg gefunden S 2 1 4 2+6=8 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
21 Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 3 10 10 2 10 10 S 1 E Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
21 Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 3 10 10 2 10+20=30 10 10 S 1 E 10+10=20 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
21 Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 3 10 10 2 10+20=30 10 10 S 1 E 31+0=31 10+10=20 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4
21 Beispiel: Kann die Richtung auf den falschen Weg führen? Gesucht: kürzester Weg von S nach E 20+10=30 3 10 10 2 10+20=30 10 10 S 1 E 31+0=31 10+10=20 Gerhard Gröger - Diskrete Mathematik II - 2. Semester - SS 2002 - Vorlesung 4