23.06.2013 Aufrufe

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.3 Kürzeste Wege<br />

(5.25) FLOYD-Algorithmus.<br />

Eingabe: Digraph D = (V, A), V = {1, . . . , n} mit Gewichten c(a) (können auch negativ<br />

sein), für alle a ∈ A.<br />

Ausgabe: Eine (n, n)-Matrix W = (wij), so dass für i = j wij die Länge <strong>des</strong> kürzesten<br />

(i, j)-Weges und wii die Länge eines kürzesten gerichteten Kreises, der i enthält,<br />

ist (eine Matrix mit diesen Eigenschaften nennt man Kürzeste-Weglängen-Matrix)<br />

und eine (n, n)-Matrix P = (pij), so dass pij der vorletzte Knoten eines kürzesten<br />

(i, j)-Weges (bzw. (i, i)-Kreises) ist.<br />

1. DO i = 1 TO n:<br />

DO j = 1 TO n:<br />

<br />

c((i, j)) falls (i, j) ∈ A<br />

END<br />

END.<br />

wij :=<br />

pij :=<br />

<br />

+∞ andernfalls<br />

i falls (i, j) ∈ A<br />

0 andernfalls (bedeutet, zur Zeit kein Weg bekannt)<br />

2. DO l = 1 TO n:<br />

DO i = 1 TO n:<br />

DO j = 1 TO n:<br />

Falls wij > wil + wlj,<br />

setze wij := wil + wlj und pij := plj.<br />

(Falls i = j und wii < 0, kann abgebrochen werden.)<br />

END<br />

END<br />

END.<br />

3. Gib W und P aus. △<br />

Für zwei Knoten i, j kann der in P gespeicherte kürzeste (i, j)-Weg wie folgt bestimmt<br />

werden. Setze k := 1 und vk := pij.<br />

Ist vk = i dann STOP, andernfalls setze vk+1 := pivk , k := k + 1 und wiederhole,<br />

d. h. wir iterieren so lange bis ein Knoten, sagen wir vs, der Knoten i ist, dann ist<br />

(i = vs, vs−1, vs−2, . . . , v1, j)<br />

ein kürzester (i, j)-Weg. Überzeugen Sie sich, dass dies stimmt!<br />

(5.26) Satz. Sei D = (V, A) ein Digraph mit beliebigen Bogengewichten c(a) für alle<br />

a ∈ A. Sei W die (n, n)-Matrix, die vom FLOYD-Algorithmus produziert wird, dann gilt:<br />

(a) Der FLOYD-Algorithmus liefert genau dann eine Kürzeste-Weglängen-Matrix W ,<br />

wenn D keinen negativen gerichteten Kreis enthält.<br />

101

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!