R3 Flussprobleme

Maximaler Fluss, Minimaler Schnitt ( Min-Cut / Max-Flow)

Griffig formuliert lautet die Regel Min-Cut, Max-Flow. Das bedeutet nichts anderes, als dass ein Schnitt an der Stelle des Netzwerks mit der geringsten Kapazität (Min-Cut) den maximalen Fluss (Max-Flow) bestimmt.

Schnitt

Einen Schnitt durch das Netzwerk kann man sich recht bildlich vorstellen, in dem man alle Kanten zerschneidet, sodass der Graph in zwei Teile zerfällt. Im vorliegenden Fall sind Schnitte zwischen Quelle und Senke von Interesse.

Etwas formaler ausgedrückt:

Die Knoten V werden in zwei Mengen U und U‘ geteilt:

V={U;U'}

Die Menge U enthalte die Quelle und U‘ die Senke.

Die Kanten T die U und verbinden sind die Schnittkanten. Die Schnittkanten lassen sich wiederum in Vorwärtskanten TV , die von U nach führen und die Rückwärtskanten TR, die von nach U führen, unterteilen.

beispiel_schnitte
Abb. 3-2: Beispiele für Schnitte zwischen Quelle und Senke

Minimaler Schnitt

Soweit zu Schnitten allgemein, wir sind auf der Suche nach dem minimalen Schnitt. Nun könnte man auf die Idee kommen, alle möglichen Schnitte zu bilden und zu schauen, wie groß die Kapazität der Schnitte ist. Es gibt im Allgemeinen sehr viele Möglichkeiten für Quelle-Senke-Schnitte. Von daher ist das Vorgehen alle möglichen Quelle-Senke-Schnitte durchzuprobieren nicht zielführend.

Flussvergrößernde Kette

Eine Flussvergrößernde Kette wird auch als Flussvergrößender Pfad bezeichnet, im Englischen „augmenting path“.

Der Ansatz zum Auffinden des maximalen Flusses und auch des minimalen Schnittes läuft über die Flussvergrößernde Kette. Dabei wird eine Kette (=ein Weg der auch Pfeile entgegen der Richtung benutzt) gesucht, die von der Quelle zu Senke führt und es ermöglicht den Fluss zu vergrößern.

Dabei sind zwei Fälle zu unterscheiden:

Fall 1: Fluss xij geringer als Kapazität kij

Als Teil dieser Kette kommen Kanten infrage, auf denen der aktuelle Fluss xij geringer als die Kapazität kij ist, also auf denen der Fluss noch gesteigert werden kann. Wenn von der Quelle zur Senke ein Weg p der aus solchen Kanten besteht, gefunden werden kann, lässt sich der Fluss durch das gesamte Netzwerk vergrößern. Die Kante auf dem Weg p, die die geringste Vergrößerung zulässt, ist maßgeblich für die Vergrößerung des Flusses.

maximale_flusserhoehung

In der nachfolgenden Abbildung ist basierend auf einem vorab vorhanden Fluss eine Flussvergrößernde Kette eingetragen.

Steigerung_fluss
Abb. 3-3: Steigerung des Flusses auf den Kanten

Eigentlich ist dieser Fall recht trivial. Es gibt allerdings noch ein zweiten Fall, der auch betrachtet werden muss, um sicher zu gehen, dass der maximale Fluss gefunden wird.

Fall 2: Fluss xij größer als 0

Auf der Suche nach der Flussvergrößernden Kette p müssen auch alle Kanten mit einem Fluss größer als 0 betrachtet werden. Hintergrund ist, dass auch durch Senken des Flusses auf einer Kante der Fluss zwischen Quelle und Senke insgesamt vergrößert werden kann, wie nachfolgende Skizze zeigt.

steigerung_durch_senkung
Abb. 3-5: Steigerung des Gesamtflusses durch Senken auf einzelnen Kanten

Durch Senken des Flusses von B nach C um 1 kann der Fluss von Quelle zu Senke erhöht werden. Bildlich gesprochen wird die eine Einheit die über die Kante (B;C) fließt über (B;D) umgeleitet. Dadurch kann die freie Kapazität auf (A;C) genutzt werden.

Eine Flussvergrößernde Kette kann Kanten aus beiden Fällen enthalten. Die mögliche Flusserhöhung ergibt sich aus der minimalen Änderungsmöglichkeit der Kanten beider Fälle.

flusserhoehung_durch_senken_und_steigern

Die Flusserhaltung, d.h. dass die Summe der Zu- und Abflüsse in allen Zwischenknoten erhalten bleibt, ist gewährleistet:

Zusammenhang zwischen Maximalem Fluss und Flussvergrößernder Kette

zurueck
weiter