finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
5.3 Kürzeste Wege<br />
1, 2, . . . , n bezeichnet sind. Wir nennen einen Bogen (u, v) einen Aufwärtsbogen, falls<br />
u < v gilt, andernfalls heißt (u, v) Abwärtsbogen. Wir sprechen von einem Richtungswechsel,<br />
wenn in einem (s, v)-Weg ein Abwärtsbogen auf einen Aufwärtsbogen folgt oder<br />
umgekehrt. Da s = 1, ist der erste Bogen immer ein Aufwärtsbogen, also ist der erste<br />
Richtungswechsel immer aufwärts nach abwärts. Um einfacher argumentieren zu können,<br />
bezeichnen wir mit DIST(v, m) den Inhalt <strong>des</strong> Vektors DIST(v) nach Beendigung der<br />
m-ten Iteration der äußeren Schleife.<br />
Wir behaupten nun:<br />
DIST(v, m) = min{c(W ) | W ist ein gerichteter (1, v)-Weg mit<br />
höchstens m Richtungswechseln}, 0 ≤ m ≤ n − 2.<br />
Da ein (1, v)-Weg höchstens n − 1 Bögen und somit höchstens n − 2 Richtungswechsel<br />
besitzt, folgt der Satz aus dem Beweis unserer Behauptung.<br />
Wir beweisen unsere Behauptung durch Induktion über m. Für m = 0 ist der Durchlauf<br />
der Schritte 3 und 4 nichts anderes als Algorithmus (angewendet auf s = 1 und den<br />
azyklischen Digraphen der Aufwärtsbögen, der keinen gerichteten und somit auch keinen<br />
gerichteten negativen Kreis enthält), <strong>des</strong>sen Korrektheit wir in Satz (5.21) bewiesen<br />
haben. DIST(v, 0) enthält somit die Länge <strong>des</strong> kürzesten (1, v)-Weges ohne Richtungswechsel,<br />
die Behauptung für m = 0 ist also richtig.<br />
Nehmen wir nun an, dass unsere Behauptung für m ≥ 0 richtig ist und dass wir Schleife<br />
2 zum (m+1)-sten Male durchlaufen haben. Wir müssen zwei Fälle unterscheiden: m+1<br />
gerade oder ungerade. Wir führen den Fall m + 1 ungerade vor, der andere Fall folgt<br />
analog. Die Menge der (1, v)-Wege mit höchstens m + 1 Richtungswechseln besteht aus<br />
folgenden Wegen:<br />
(a) (1, v)-Wege mit höchstens m Richtungswechseln,<br />
(b) (1, v)-Wege mit genau m + 1 Richtungswechseln.<br />
Die Minimallänge der Wege in (a) kennen wir nach Induktionsvoraussetzung bereits,<br />
sie ist DIST(v, m).<br />
Wir haben angenommen, dass s = 1 gilt, also ist der erste Bogen eines jeden Weges ein<br />
Aufwärtsbogen. Für einen (1, v)-Weg mit m + 1 Richtungswechseln und m + 1 ungerade<br />
ist daher der letzte Bogen ein Abwärtsbogen.<br />
Zur Bestimmung <strong>des</strong> Minimums in (b) führen wir eine weitere Induktion über u =<br />
n, n−1, . . . , v +1 durch. Da jeder Weg, der in n endet mit einem Aufwärtsbogen aufhört,<br />
gibt es keinen (1, n)-Weg mit genau m + 1 Richtungswechseln, also gilt DIST(n, m) =<br />
DIST(n, m + 1).<br />
Nehmen wir nun an, dass wir wissen, dass DIST(w, m + 1) für n ≥ w ≥ u > v + 1<br />
die Länge eines kürzesten (1, w)-Weges mit höchstens m + 1 Richtungswechseln ist. Zur<br />
Bestimmung der Länge eines kürzesten (1, u − 1)-Weges mit höchstens m + 1 Richtungswechseln<br />
müssen wir die Länge eines kürzesten (1, u − 1)-Weges mit höchsten m<br />
Richtungswechseln (diese ist in DIST(u − 1, m) gespeichert) vergleichen mit der Länge<br />
eines kürzesten (1, u − 1)-Weges mit genau m + 1 Richtungswechseln.<br />
99