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.

7.1 Flüsse mit minimalen Kosten<br />

Durch iterative Wiederholung dieser Konstruktion erhalten wir nach höchstens |B ′ | Schritten<br />

einen (s, t)-Weg in N und einen gerichteten Kreis in N ′ , <strong>des</strong>sen Kosten negativ sind<br />

und der keinen Bogen aus B ′ enthält. Folglich ist dieser Kreis ein negativer Kreis in N.<br />

Widerspruch!<br />

Die Konstruktion verläuft wie folgt. Da C ′ ∩ B ′ = ∅, gibt es einen Bogen (u, v) ∈ P<br />

mit (v, u) ∈ C ′ . Wir wählen denjenigen Bogen (u, v) ∈ P , der auf dem Weg von s nach t<br />

entlang P der erste Bogen mit (v, u) ∈ C ′ ist. Wir unterscheiden zwei Fälle.<br />

Fall 1: C ′ ∩ B ′ enthält min<strong>des</strong>tens zwei Bögen.<br />

Sei (y, x) der nächste Bogen auf dem gerichteten Kreis C ′ nach (v, u), der in B ′ ist.<br />

Wir konstruieren einen (s, t)-Pfad P ⊆ A wie folgt. Wir gehen von s aus entlang<br />

P nach u, dann von u entlang C ′ nach y und von y entlang P nach t. Starten wir<br />

nun in v, gehen entlang P zu x und dann entlang C ′ nach v, so erhalten wir eine<br />

geschlossene gerichtete Kette P ′ ⊆ A ′ . Aus wuv = −w ′ vu und wxy = −w ′ yx folgt,<br />

dass w(P ) + w ′ (C ′ ) = w(P ) + w ′ (P ′ ) gilt. P ist die Vereinigung von gerichteten<br />

Kreisen C ′ 1 , . . . , C′ k ⊆ A mit einem gerichteten (s, t)-Weg Q ⊆ A, und P ′ ist die<br />

Vereinigung von gerichteten Kreisen C ′ k+1 , . . . , C′ r ⊆ A ′ . Da P kostenminimal in N<br />

ist, gilt w(P ) ≤ w(Q), und somit gibt es wegen w(P )+w ′ (P ′ ) = w(Q)+ k<br />

w(C<br />

i=1<br />

′ i )+<br />

r<br />

w<br />

i=k+1<br />

′ (C ′ i ) min<strong>des</strong>tens einen gerichteten Kreis in A′ , sagen wir K ′ , der negative<br />

Kosten hat. Nach Konstruktion gilt |K ′ ∩ B ′ | < |C ′ ∩ B ′ |.<br />

Fall 2: Der Bogen (u, v) ist der einzige Bogen auf P mit (v, u) ∈ C ′ ∩ B ′ .<br />

Wir konstruieren einen gerichteten (s, t)-Pfad P ⊆ A wie folgt. Wir starten in s<br />

und folgen P bis u, dann folgen wir dem gerichteten Weg von u entlang C ′ bis<br />

v und dann wieder dem gerichteten Weg von v entlang P bis t. Offenbar ist P<br />

in A enthalten und ein gerichteter (s, t)-Pfad in N. Aus wuv = −w ′ vu folgt direkt<br />

w(P ) + w ′ (C ′ ) = w(P ). Der gerichtete (s, t)-Pfad P ist die Vereinigung eines (s, t)-<br />

Weges Q und einiger gerichteter Kreise C ′ 1 , . . . , C′ k . Da P ein (s, t)-Weg in N mit<br />

minimalen Kosten ist, gilt w(Q) ≥ w(P ), und aus w(Q) = w(P ) − k i=1 w(C′ 1 )<br />

folgt, dass min<strong>des</strong>tens einer der Kreise C ′ i negativ ist. Da alle C′ i in A enthalten<br />

sind, enthält A einen negativen Kreis. Widerspruch! ✷<br />

Damit können wir nun einen Algorithmus zur Lösung <strong>des</strong> Minimalkosten-Flussproblems<br />

angeben.<br />

(7.8) Algorithmus.<br />

Eingabe: Digraph D = (V, A), mit Kapazitäten c ∈ R A + und Kosten w ∈ R A , zwei<br />

verschiedene Knoten s, t ∈ V und ein Flusswert f.<br />

Ausgabe: Ein zulässiger (s, t)-Fluss x mit Wert f, der kostenminimal unter allen zulässigen<br />

(s, t)-Flüssen mit Wert f ist, oder die Aussage, dass kein zulässiger (s, t)-Fluss<br />

mit Wert f existiert.<br />

1. Setze x(a) = 0 für alle a ∈ A (bzw. starte mit einem zulässigen (s, t)-Fluss mit<br />

Wert nicht größer als f).<br />

135

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!