Datenstrukturen und Algorithmen - Software Modeling and Verification
Datenstrukturen und Algorithmen - Software Modeling and Verification
Datenstrukturen und Algorithmen - Software Modeling and Verification
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Maximaler Fluss Flussnetzwerke<br />
Mehrere Quellen <strong>und</strong> Senken<br />
∞<br />
∞<br />
s3<br />
s s2<br />
t2 t<br />
∞<br />
s1<br />
3<br />
3<br />
10 5<br />
10 5<br />
10 5<br />
◮ Es kann auch Flussnetzwerke mit mehrere Quellen oder Senken geben.<br />
◮ Sie können durch eine neue „Superquelle“ <strong>und</strong> „Supersenke“ in ein<br />
St<strong>and</strong>ard-Flussnetzwerk überführt werden.<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 9/27<br />
Maximaler Fluss Flussnetzwerke<br />
Beweis: f (X, X) = 0<br />
Beh.: f (X, X) = 0<br />
f (X, X) = 1<br />
�<br />
� �<br />
f (x1, x2) +<br />
2<br />
x1∈X x2∈X<br />
� �<br />
x1∈X x2∈X<br />
= 1<br />
�<br />
� �<br />
f (x1, x2) +<br />
2<br />
x1∈X x2∈X<br />
� �<br />
x1∈X x2∈X<br />
= 1 � � �<br />
�<br />
f (x1, x2) + f (x2, x1)<br />
2<br />
= 0<br />
x1∈X x2∈X<br />
6<br />
6<br />
t3<br />
t1<br />
∞<br />
∞<br />
∞<br />
�<br />
f (x1, x2)<br />
�<br />
f (x2, x1)<br />
Für den Beweis benötigen wir lediglich die Eigenschaft der Asymmetrie.<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 11/27<br />
Maximaler Fluss Flussnetzwerke<br />
Flüsse zwischen Knotenmengen<br />
Notationen<br />
f (x, Y ) = �<br />
f (x, y) für Y ⊆ V<br />
y∈Y<br />
f (X, y) = �<br />
f (x, y) für X ⊆ V<br />
x∈X<br />
f (X, Y ) = �<br />
x∈X y∈Y<br />
�<br />
f (x, y) für X, Y ⊆ V<br />
Eigenschaften von Flüssen zwischen Mengen<br />
Falls f ein Fluss für G = (V , E, c) ist, dann gilt:<br />
1. f (X, X) = 0 für X ⊆ V<br />
2. f (X, Y ) = −f (Y , X) für X, Y ⊆ V<br />
3. f (X ∪ Y , Z) = f (X, Z) + f (Y , Z) für X, Y , Z ⊆ V : X ∩ Y = ∅<br />
4. f (Z, X ∪ Y ) = f (Z, X) + f (Z, Y ) für X, Y , Z ⊆ V : X ∩ Y = ∅<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 10/27<br />
Maximaler Fluss Flussnetzwerke<br />
Eingehender Fluss in der Senke<br />
Wie groß ist der an der Senke eingehende Fluss?<br />
Aufgr<strong>und</strong> der Flusserhaltung ist zu erwarten, dass er dem austretenden<br />
Fluss an der Quelle entspricht:<br />
Beweis:<br />
f (s, V ) = f (V , t)<br />
f (s, V ) = f (V , V ) − f (V − {s}, V )<br />
= −f (V − {s}, V )<br />
= f (V , V − {s})<br />
= f (V , t) + f (V , V − {s, t}) | Flusserhaltung<br />
= f (V , t)<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 12/27