28.11.2012 Aufrufe

Datenstrukturen und Algorithmen - Software Modeling and Verification

Datenstrukturen und Algorithmen - Software Modeling and Verification

Datenstrukturen und Algorithmen - Software Modeling and Verification

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!