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 Ford-Fulkerson-Methode<br />
Übersicht<br />
1 Flussnetzwerke<br />
2 Ford-Fulkerson-Methode<br />
Restnetzwerke<br />
Algorithmus<br />
Schnitte<br />
3 Edmonds-Karp-Algorithmus<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 13/27<br />
Maximaler Fluss Ford-Fulkerson-Methode<br />
Restnetzwerke<br />
Definition (Restnetzwerk Gf )<br />
„Netzwerk minus Fluss = Restnetzwerk“<br />
Gegeben sei das Flussnetzwerk G = (V , E, c) <strong>und</strong> ein Fluss f , dann ist<br />
Gf = (V , Ef , cf ) das Restnetzwerk (auch: Residualnetzwerk) zu G <strong>und</strong> f<br />
mit:<br />
Ef = { (u, v) ∈ V × V | cf (u, v) > 0 },<br />
<strong>und</strong><br />
cf die Restkapazität von G.<br />
cf (u, v) = c(u, v) − f (u, v),<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 15/27<br />
Maximaler Fluss Ford-Fulkerson-Methode<br />
Ford-Fulkerson-Methode – Idee<br />
12/16<br />
s 4 10<br />
7<br />
t<br />
13<br />
12/12<br />
14<br />
1. Suche einen Pfad p von s nach t.<br />
9<br />
12/20<br />
2. Setze den Fluss der Kanten in p um die kleinste Kapazität in p.<br />
3. Suche einen Pfad p von s nach t, aus Kanten mit freier Kapazität.<br />
4. Ergänze den Fluss der Kanten in p um die kleinste Restkapazität in p.<br />
5. Wiederhole 3. <strong>und</strong> 4. bis es keinen Pfad p mehr gibt.<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 14/27<br />
Maximaler Fluss Ford-Fulkerson-Methode<br />
Augmentierende Pfade<br />
16/16<br />
s<br />
13<br />
4<br />
A<br />
B<br />
12/12<br />
4/10<br />
4/9<br />
14<br />
7<br />
C<br />
D<br />
16/20<br />
t s<br />
4 13<br />
Flussnetzwerk G Restnetzwerk Gf<br />
◮ Ein s-t-Pfad p in Gf heißt augmentierender Pfad<br />
(vergrößernder Pfad).<br />
◮ cf (p) = min{ cf (u, v) | (u, v) ∈ p } heißt Restkapazität von p.<br />
Der Pfad im obigen Beispiel hat die Restkapazität 4.<br />
Joost-Pieter Katoen <strong>Datenstrukturen</strong> <strong>und</strong> <strong>Algorithmen</strong> 16/27<br />
16<br />
8<br />
A<br />
B<br />
6<br />
4<br />
12<br />
5<br />
4<br />
14<br />
7<br />
C<br />
D<br />
16<br />
4<br />
4<br />
t