23.06.2013 Aufrufe

aktuelle Version des Vorlesungsskripts - ZIB

aktuelle Version des Vorlesungsskripts - ZIB

aktuelle 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 Bäume und Wege<br />

(b) D enthält genau dann einen negativen gerichteten Kreis, wenn ein Hauptdiagonalelement<br />

von W negativ ist. △<br />

Beweis. Zur Notationsvereinfachung bezeichnen wir die Anfangsmatrix W aus Schritt 1.<br />

mit W 0 , die Matrix W nach Beendigung <strong>des</strong> l-ten Durchlaufs der äußeren Schleife von<br />

Schritt 2. mit W l . Durch Induktion über l = 0, 1, . . . , n zeigen wir, dass W l genau dann<br />

die Matrix der kürzesten Längen von (i, j)-Wegen (bzw. (i, i)-Kreisen) ist, bei denen die<br />

Knoten 1, . . . , l als innere Knoten auftreten können, wenn D keinen negativen Kreis in der<br />

Knotenmenge 1, . . . , l besitzt. Ist letzteres der Fall, so gilt wl ii < 0 für ein i ∈ {1, . . . , l}.<br />

Für l = 0 ist die Behauptung offenbar richtig. Angenommen, sie ist für l ≥ 0 richtig,<br />

und wir haben die äußere Schleife von Schritt 2. zum (l + 1)-sten Male durchlaufen. Bei<br />

diesem Durchlauf haben wir folgenden Schritt ausgeführt.<br />

Falls w l ij > w l i,l+1 + wl l+1,j , dann setze wl+1<br />

ij := w l i,l+1 + wl l+1,j ,<br />

d. h. wir haben die (nach Induktionsvoraussetzung) kürzeste Länge eines (i, j)-Weges<br />

über die Knoten 1, . . . , l verglichen mit der Summe der kürzesten Längen eines (i, l + 1)-<br />

Weges und eines (l + 1, j)-Weges jeweils über die Knoten 1, . . . , l. Die letztere Summe<br />

repräsentiert also die Länge eines kürzesten (i, j)-Weges über 1, . . . , l+1, der den Knoten<br />

l + 1 enthält. Falls diese Summe kleiner als wl ij ist, setzen wir wl+1<br />

ij := wl i,l+1 + wl l+1,j ,<br />

andernfalls w l+1<br />

ij = wl ij . Daraus folgt die Behauptung, es sei denn, wl ij > wl i,l+1 + wl l+1,j<br />

und die Verkettung, sagen wir K <strong>des</strong> (i, l + 1)-Weges mit dem (l + 1, j)-Weg ist gar kein<br />

Weg, d. h. K ist eine gerichtete (i, j)-Kette, die einen Knoten min<strong>des</strong>tens zweimal enthält.<br />

Die Kette K enthält natürlich einen (i, j)-Weg, sagen wir K, und K geht aus K dadurch<br />

hervor, dass wir die in K vorkommenden gerichteten Kreise entfernen. Der Knoten l + 1<br />

ist nach Konstruktion in einem der Kreise enthalten, also ist K ein (i, j)-Weg, der nur<br />

Knoten aus {1, . . . , l} enthält, d. h. wl ij ≤ c(K). Aus c(K) = wl i,l+1 + wl l+1,j < wl ij folgt,<br />

dass min<strong>des</strong>tens einer der aus K entfernten gerichteten Kreise eine negative Länge hat.<br />

Für jeden Knoten i dieses negativen Kreises muss folglich w l+1<br />

ii < 0 gelten. Daraus folgt<br />

die Behauptung. ✷<br />

Der FLOYD-Algorithmus liefert also explizit einen Kreis negativer Länge, falls ein<br />

solcher existiert.<br />

(5.27) Korollar. Für einen Digraphen D mit Bogengewichten, der keine negativen gerichteten<br />

Kreise enthält, kann ein kürzester gerichteter Kreis in O(n 3 ) Schritten bestimmt<br />

werden. △<br />

Beweis. Wir führen den FLOYD-Algorithmus aus. Nach Beendigung <strong>des</strong> Verfahrens<br />

ist in wii, i = 1, . . . , n die Länge eines kürzesten gerichteten Kreises, der den Knoten<br />

i enthält, verzeichnet. Wir wählen einen Wert wii, der so klein wie möglich ist, und<br />

rekonstruieren aus der Matrix P , wie oben angegeben, den gerichteten Kreis, der i enthält.<br />

Dieser ist ein kürzester gerichteter Kreis in D. Diese “Nachbearbeitung” erfordert lediglich<br />

O(n) Operationen, also ist die worst-case-Komplexität <strong>des</strong> FLOYD-Algorithmus auch die<br />

Laufzeitschranke für das Gesamtverfahren. ✷<br />

102

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!