Datenstrukturen und Algorithmen - Software Modeling and Verification
Datenstrukturen und Algorithmen - Software Modeling and Verification
Datenstrukturen und Algorithmen - Software Modeling and Verification
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Maximaler Fluss Flussnetzwerke<br />
Fluss in einem Flussnetzwerk<br />
Definition (Fluss)<br />
Ein Fluss ist eine Funktion f : V × V → IR, mit folgenden Eigenschaften:<br />
Beschränkung: Für u, v ∈ V gilt f (u, v) � c(u, v).<br />
Asymmetrie: Für u, v ∈ V gilt f (u, v) = −f (v, u).<br />
Flusserhaltung: Für u ∈ V − {s, t} gilt: �<br />
f (u, v) = 0.<br />
Definition (Wert eines Flusses)<br />
v∈V<br />
Der Wert |f | eines Flusses ist der Gesamtfluss aus der Quelle s:<br />
|f | = �<br />
f (s, u).<br />
u∈V<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 5/27<br />
Maximaler Fluss Flussnetzwerke<br />
Maximale Flüsse<br />
Problem (Maximaler Fluss)<br />
Finde einen maximalen Fluss in einem gegebenen Flussnetzwerk.<br />
Beispiel (Anwendungen)<br />
◮ Wie groß ist der maximale Datendurchsatz zwischen zwei Computern<br />
in einem Netzwerk?<br />
◮ Wie kann der Verkehr in einem Straßennetz so geleitet werden, dass<br />
möglichst viele Autos in einer gegeben Zeitspanne ein Ziel erreichen?<br />
◮ Wie viele Leitungen müssen zerstört sein, damit zwei Computer nicht<br />
mehr mitein<strong>and</strong>er kommunizieren können?<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 7/27<br />
Maximaler Fluss Flussnetzwerke<br />
Darstellung von Flüssen<br />
s<br />
5/16<br />
4/13<br />
4<br />
A<br />
B<br />
3/10<br />
2/12<br />
9<br />
7/14<br />
6/7<br />
C<br />
D<br />
8/20<br />
1/4<br />
◮ Jeder Knoten liegt auf einem Pfad von der Quelle s zur Senke t.<br />
◮ Für (u, v) �∈ E ist c(u, v) = 0.<br />
◮ Wir beschriften Kanten mit f (u, v)/c(u, v), falls f (u, v) > 0.<br />
◮ Negative Flüsse f (u, v) < 0 werden nicht explizit angegeben.<br />
◮ Der eingezeichnete Fluss f hat den Wert |f | = 9.<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 6/27<br />
Maximaler Fluss Flussnetzwerke<br />
Ein maximaler Fluss<br />
s<br />
14/16<br />
10/13<br />
4<br />
A<br />
B<br />
10<br />
12/12<br />
1/9<br />
11/14<br />
7/7<br />
C<br />
D<br />
20/20<br />
4/4<br />
◮ Ein maximaler Fluss in diesem Beispiel hat den Wert |f | = 24.<br />
◮ Es kann mehrere maximale Flüsse geben.<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 8/27<br />
t<br />
t