Diskrete mathematik ii
Sponsored Links
This presentation is the property of its rightful owner.
1 / 23

Diskrete Mathematik II PowerPoint PPT Presentation


  • 84 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1


Ü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


Algorithmus von Dijkstra: Beispiel

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1


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

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1


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


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


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


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


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

Lutz Plümer - Diskrete Mathematik - 2. Semester - SS 2001 - Vorlesung 1


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


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


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


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


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


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


Formulierung des Algorithmus

Bezeichnungen

SStartknoten

Kbeliebiger 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


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


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


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


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


  • Login