23.06.2013 Aufrufe

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!