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

Diskrete Mathematik II PowerPoint PPT Presentation


  • 72 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

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