1 / 23

Diskrete Mathematik II

Diskrete Mathematik II. Vorlesung 1 SS 2001. Algorithmus von Dijkstra. Übersicht über das Semester. zwei besonders wichtige Algorithmen für GIS kürzeste Wege in einem Netz Überlagerung von Netzen, Bestimmung aller Schnittpunkte effiziente Zugriffsstrukturen für räumliche Objekte.

manjit
Télécharger la présentation

Diskrete Mathematik II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra

  2. Übersicht über das Semester • zwei besonders wichtige Algorithmen für GIS • kürzeste Wege in einem Netz • Überlagerung von Netzen, Bestimmung aller Schnittpunkte • effiziente Zugriffsstrukturen für räumliche Objekte Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  3. Übersicht Vorlesung I • der kürzeste Weg von A nach B in einem Netz • Beispiel • Problemstellung • Animation des Algorithmus • Formulierung des Algorithmus in Pseudocode • erforderliche Datenstrukturen Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  4. Algorithmus von Dijkstra: Beispiel Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  5. 80 20 30 20 15 80 15 Do Du Ha W D K

  6. Do 80 Du 20 Ha 30 20 15 W D 15 80 K Beispiel Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  7. Kürzeste Wege: Idee • Gegeben: Gerichteter Graph, dessen Kanten mit Zahlen (Kosten, z.B. km oder min.) beschriftet sind • Aufgabe: Berechnung des kürzesten Weges x  z von einem Startknoten x zu einem Zielknoten z • erste Idee: Berechne alle Wege und wähle den kürzesten • Beobachtung: wenn der kürzeste Weg von x nach z über y führt, sind die Teilwege x  y und y  z ebenfalls kürzeste Wege • effizienteLösung: berechne alle kürzesten Wege und wähle den von x nach z aus • Algorithmus von Dijkstra: jeder Schritt sitzt („Greedy“-Algorithmus) Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  8. Do 80 Du 20 Ha 30 20 15 W D 15 80 K Algorithmus von Dijkstra: Beispiel Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  9. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  10. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  11. 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

  12. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  13. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  14. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  15. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  16. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  17. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  18. 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 Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  19. Formulierung des Algorithmus Bezeichnungen SStartknoten K beliebiger Knoten im Graphen dist (K)Abstand des Knotens K vom Startknoten S GRÜNKnotenmenge BLAU Knotenmenge succ (K) Menge der Nachfolger(-Nachbarn) von K  für alle Elemente dist (K, K‘) Distanz (Zeit) der Kante (K, K‘) Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  20. Formulierung des Algorithmus algorithm Dijkstra (S) //berechne alle kürzesten Wege von S aus} BLAU = ; GRÜN = {S}; dist(S) = 0; while( GRÜN  ) { wähle K  GRÜN, so daß  K‘  GRÜN: dist(K)  dist(K‘); färbe K blau; for( Ki  succ(K) ) { if (Ki  (GRÜN  BLAU) //noch nicht besuchter Knoten färbe die Kante (K,Ki) rot; färbe Ki grün; dist(Ki) = dist(K) + dist(K,Ki); } Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  21. Formulierung des Algorithmus dist(Ki) = dist(K) + dist(K,Ki); } else { if(Ki  GRÜN) { // Ki erneut erreicht if(dist(Ki) > dist(K) + dist(K,Ki)) { färbe die Kante (K,Ki) rot; färbe die bisher rote Kante zu Kigrün; dist(Ki) = dist(K) + dist(K,Ki); } else { färbe (K,Ki) grün }}} else { färbe (K,Ki) grün }}} // ki  BLAU Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  22. soweit der Algorithmus, aber ... • wie finde ich schnell alle Nachfolger eines Knoten? • for( Ki  succ(K) )... • wie finde ich schnell • K  GRÜN, so daß  K‘  GRÜN:dist(K)  dist(K‘); • Datenstruktur für den Graphen • Datenstruktur für die grünen (aktiven) Knoten • der schrittweise Entwurf des Algorithmus läßt diese Fragen zunächst absichtlich offen • zugunsten der Konzentration auf die wesentliche Idee Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

  23. Ist der Algorithmus denn überhaupt korrekt? • Für jeden grünen Knoten gilt:unter den rot-grünen Wegen ist der rote der kürzeste. • Beweis: Induktion über die Folge der blau gefärbten Knoten • Für jeden blauen Knoten gilt:unter allen Wegen ist der rote der kürzeste. • Beweis: Induktion über die Folge der blau gefärbten Knoten • Aufgabe: • Plausibilität am Beispiel • versuchen Sie einen allgemeingültigen Beweis Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1

More Related