aktuelle Version des Vorlesungsskripts - ZIB
aktuelle Version des Vorlesungsskripts - ZIB
aktuelle 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 Flüsse mit minimalen Kosten<br />
Ein Ende ist nicht abzusehen. Es gibt (zurzeit) kein global bestes Verfahren, weder bezüglich<br />
der beweisbaren Laufzeit, noch in Bezug auf Effizienz im praktischen Einsatz.<br />
Die Literatur ist allerdings voll mit Tabellen mit derzeitigen „Weltrekorden“ bezüglich<br />
der worst-case-Laufzeit unter speziellen Annahmen an die Daten. Alle derzeit gängigen<br />
Verfahren können — gut implementiert — Probleme <strong>des</strong> Typs (7.1) mit Zigtausenden<br />
von Knoten und Hunderttausenden oder gar Millionen von Bögen mühelos lösen.<br />
Wir haben in dieser Vorlesung nicht genügend Zeit, um auf diese Details und Feinheiten<br />
einzugehen. Wir werden zunächst ein kombinatorisches Verfahren und die zugrundeliegende<br />
Theorie vorstellen. Um den Algorithmus und den Satz, auf dem seine Korrektheit<br />
beruht, darstellen zu können, führen wir einige neue Begriffe ein.<br />
Sei x ein zulässiger (s, t)-Fluss in D und sei C ein (nicht notwendigerweise gerichteter)<br />
Kreis in D. Diesem Kreis C können wir offenbar zwei Orientierungen geben. Ist eine<br />
Orientierung von C gewählt, so nennen wir einen Bogen auf C, der in Richtung der<br />
Orientierung verläuft, Vorwärtsbogen, andernfalls nennen wir ihn Rückwärtsbogen. Ein<br />
Kreis C heißt augmentierend bezüglich x, wenn es eine Orientierung von C gibt, so dass<br />
xa < ca für alle Vorwärtsbögen a ∈ C und dass 0 < xa für alle Rückwärtsbögen a ∈ C<br />
gilt (vergleiche Definition (6.8)). Ein Kreis kann offenbar bezüglich beider, einer oder<br />
keiner Richtung augmentierend sein. Sprechen wir von einem augmentierenden Kreis C,<br />
so unterstellen wir fortan, dass eine Orientierung von C fest gewählt ist, bezüglich der C<br />
augmentierend ist.<br />
Die Summe der Kostenkoeffizienten der Vorwärtsbögen minus der Summe der Kostenkoeffizienten<br />
der Rückwärtsbögen definieren wir als die Kosten eines augmentierenden<br />
Kreises. (Wenn ein Kreis in Bezug auf beide Orientierungen augmentierend ist, können<br />
die beiden Kosten verschieden sein!) Das zentrale Resultat dieses Abschnitts ist das<br />
Folgende.<br />
(7.2) Satz. Ein zulässiger (s, t)-Fluss x in D mit Wert f hat genau dann minimale<br />
Kosten, wenn es bezüglich x keinen augmentierenden Kreis mit negativen Kosten gibt.△<br />
Beweis. Wir beweisen zunächst nur die triviale Richtung. (Satz (7.6) liefert die Rückrichtung.)<br />
Gibt es einen augmentierenden Kreis C bezüglich x, so setzen wir:<br />
<br />
cij − xij (i, j) ∈ C Vorwärtsbogen,<br />
ε := min<br />
(7.3)<br />
(i, j) ∈ C Rückwärtsbogen.<br />
Definieren wir<br />
x ′ ij :=<br />
xij<br />
⎧<br />
⎪⎨ xij + ε falls (i, j) ∈ C Vorwärtsbogen,<br />
xij − ε<br />
⎪⎩<br />
falls (i, j) ∈ C Rückwärtsbogen,<br />
falls (i, j) ∈ A \ C,<br />
xij<br />
(7.4)<br />
dann ist x ′ ∈ R A trivialerweise ein zulässiger (s, t)-Fluss mit Wert val(x ′ ) = f. Hat der<br />
augmentierende Kreis C negative Kosten γ < 0, dann gilt offenbar <br />
(i,j)∈A wijx ′ ij =<br />
<br />
(i,j)∈A wijxij +εγ. Gibt es also einen augmentierenden Kreis bezüglich x mit negativen<br />
Kosten, dann kann x nicht kostenminimal sein. ✷<br />
130