Diskrete Mathematik II - PowerPoint PPT Presentation

Diskrete mathematik ii
Download
1 / 23

  • 97 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.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

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

Diskrete Mathematik II

Vorlesung 1

SS 2001

Algorithmus von Dijkstra


Bersicht ber das semester

Ü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

Ü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

Algorithmus von Dijkstra: Beispiel

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


Diskrete mathematik ii

80

20

30

20

15

80

15

Do

Du

Ha

W

D

K


Beispiel

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

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


Algorithmus von dijkstra beispiel1

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


Algorithmus von dijkstra beispiel2

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


Algorithmus von dijkstra beispiel3

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


Algorithmus von dijkstra beispiel4

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


Algorithmus von dijkstra beispiel5

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


Algorithmus von dijkstra beispiel6

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


Algorithmus von dijkstra beispiel7

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


Algorithmus von dijkstra beispiel8

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


Algorithmus von dijkstra beispiel9

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


Algorithmus von dijkstra beispiel10

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


Algorithmus von dijkstra beispiel11

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

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 algorithmus1

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 algorithmus2

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

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

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