Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 13.04.00 Suche des kürzesten Weges in einem Netz.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 13.04.00 Suche des kürzesten Weges in einem Netz."—  Präsentation transkript:

1

2 Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 13.04.00 Suche des kürzesten Weges in einem Netz Foliendesign: cand. geod. Jörg Steinrücken

3 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

4 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

5 4 Algorithmus von Dijkstra: Beispiel

6 Do Ha W Du K D 15 80 15 80 20 30 20

7 6 Do Ha W Du K D 20 15 80 20 30 15 Beispiel

8 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 effiziente Lösung: berechne alle kürzesten Wege und wähle den von x nach z aus Algorithmus von Dijkstra: jeder Schritt sitzt („Greedy“-Algorithmus)

9 8 Do Ha W Du K D 20 15 80 20 30 15 Algorithmus von Dijkstra: Beispiel

10 9 Do Ha Du 20 80 20 30 W K D 8015 Do Du Ha Do Algorithmus von Dijkstra: Beispiel Minimaler Abstand von Do Du 80 Ha 20

11 10 Do Ha W Du K D 20 80 20 30 15 W Algorithmus von Dijkstra: Beispiel Do DuHa 8020 W 15 Minimaler Abstand von DO

12 11 Do Ha W Du K D 20 80 20 30 15 W Algorithmus von Dijkstra: Beispiel abgearbeitet noch in Arbeit noch nicht betrachtet

13 12 Do DuHa W 8020 15 Do Ha W Du K D 20 80 20 30 15 Bereits vorhanden Du Kürzester Weg Algorithmus von Dijkstra: Beispiel

14 13 Du Do Ha W 20 15 Do Ha W Du K D 20 80 20 30 15 K D Du Algorithmus von Dijkstra: Beispiel 30 K 80 D

15 14 DuDK Do Ha W 20 15 3080 D Do Ha W Du K D 20 80 20 30 15 Bereits vorhanden kürzester Weg Algorithmus von Dijkstra: Beispiel

16 15 DuK Do Ha W D 20 15 3080 D Do Ha W Du K D 20 80 20 30 15 Algorithmus von Dijkstra: Beispiel 20

17 16 20 Do Ha W Du K D 80 20 30 15 Bereits vorhanden Algorithmus von Dijkstra: Beispiel kürzester Weg DuK Do Ha W D 20 15 3080 20

18 17 Do Ha W Du K D 20 80 20 30 15 D K Algorithmus von Dijkstra: Beispiel KDu Do Ha W D 20 15 3080 20

19 18 Do Ha W D K Du 20 15 30 20 K Do Ha W Du D 20 80 20 30 15 D K K Algorithmus von Dijkstra: Beispiel 15

20 19 Formulierung des Algorithmus Bezeichnungen S Startknoten K beliebiger Knoten im Graphen dist (K) Abstand des Knotens K vom Startknoten S GRÜN Knotenmenge BLAU Knotenmenge succ (K) Menge der Nachfolger(-Nachbarn) von K  für alle Elemente dist (K, K‘) Distanz (Zeit) der Kante (K, K‘)

21 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( K i  succ(K) ) { if (K i  (GRÜN  BLAU) //noch nicht besuchter Knoten färbe die Kante (K,K i ) rot; färbe K i grün; dist(K i ) = dist(K) + dist(K,K i ); }

22 21 Formulierung des Algorithmus dist(K i ) = dist(K) + dist(K,K i ); } else { if(K i  GRÜN) { // K i erneut erreicht if(dist(K i ) > dist(K) + dist(K,K i )) { färbe die Kante (K,K i ) rot; färbe die bisher rote Kante zu K i grün; dist(K i ) = dist(K) + dist(K,K i ); } else { färbe (K,K i ) grün }}} else { färbe (K,K i ) grün }}} // k i  BLAU

23 22 soweit der Algorithmus, aber... wie finde ich schnell alle Nachfolger eines Knoten? –for( K i  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

24 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

25 Schönen Dank für Ihre Aufmerksamkeit und Auf Wiedersehen


Herunterladen ppt "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 13.04.00 Suche des kürzesten Weges in einem Netz."

Ähnliche Präsentationen


Google-Anzeigen