aktuelle Version des Vorlesungsskripts - ZIB
aktuelle Version des Vorlesungsskripts - ZIB
aktuelle Version des Vorlesungsskripts - ZIB
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