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.
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