Maximale Flüsse in Netzwerken
Maximale Flüsse in Netzwerken
Maximale Flüsse in Netzwerken
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Flußnetzwerke<br />
6 Flüsse und Match<strong>in</strong>gs<br />
In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten<br />
<strong>in</strong>terpretiert, die über diese Kante pro Zeite<strong>in</strong>heit transportiert<br />
werden können.<br />
Wir können uns e<strong>in</strong>en Graphen als Versorgungsnetzwerk vorstellen,<br />
z.B. als Datennetz.<br />
Die entscheidende Frage ist, welchen maximalen Durchsatz wir erreichen<br />
können.<br />
Wieviele E<strong>in</strong>heiten können wir maximal von e<strong>in</strong>em Knoten zu e<strong>in</strong>em<br />
anderen pro Zeite<strong>in</strong>heit transportieren<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 165<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Flußnetzwerke<br />
Flußnetzwerk<br />
E<strong>in</strong> Flußnetzwerk ¡ ist e<strong>in</strong> Tupel ¡ ¢ £¥¤§¦©¨¦¦¥ beste-<br />
Def<strong>in</strong>ition 6.1.<br />
hend aus:<br />
, e<strong>in</strong>em gerichteten Graphen,<br />
£¦<br />
,<br />
¤¢<br />
e<strong>in</strong>er Kapazitätsfunktion auf den gerichteten Kanten<br />
"! ¨<br />
mit nichtnegativen Werten und<br />
, zwei ausgezeichneten Knoten, der Quelle und der Senke<br />
mit .<br />
)( ¢ #¦$&%' <br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 166
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Flußnetzwerke<br />
Fluß<br />
Def<strong>in</strong>ition 6.2. Es sei e<strong>in</strong> Flußnetzwerk. Für e<strong>in</strong>en Knoten+<br />
sei und .<br />
.-0/£ + 12¢435£76"¦ + 8%,§9 ;:=@£ + AB¢C3D£+ ¦E6FG%H§9<br />
E<strong>in</strong>e ¡ Abbildung ¢ heißt £¥¤§¦*¨¦¦$ Fluß auf ,<br />
%,<br />
wenn die folgenden<br />
¡<br />
Bed<strong>in</strong>gungen erfüllt s<strong>in</strong>d:<br />
J " I<br />
1. K)LMI £ENO L ¨P£QNO<br />
für alle NR%, ,<br />
d.h. die Kapazität wird für ke<strong>in</strong>e Kante überschritten und<br />
2. S TVUXWZY\[]_^5`DI £QNOa¢ S TVUXWPbdcVe]_^5`fI £ENO<br />
für alle+<br />
%,hgi3V¦$59<br />
,<br />
d.h. aus jedem Knoten fließt genausoviel heraus wie h<strong>in</strong>e<strong>in</strong>, mit Ausnahme<br />
der Quelle und Senke.<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 167<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Flußnetzwerke<br />
Lemma 6.1.<br />
Für e<strong>in</strong>en Fluß I e<strong>in</strong>es Flußnetzwerks ¡ ¢ £¥¤§¦*¨j¦©¦¥ gilt<br />
k £ I AB¢<br />
l<br />
bdcVe ]2mE` I £QNOon l<br />
TVUXW Y\[ ]2mE` I £QNOA¢ l<br />
TVUXW Y\[ ]> ` I £QNOon<br />
TVUXW<br />
l<br />
bdcVe ]> ` I £QNO<br />
TVUXW<br />
Def<strong>in</strong>ition 6.3. Der Wert aus Lemma 6.1 heißt Wert des Flusses<br />
auf .<br />
k<br />
E<strong>in</strong> Fluß £ mit für<br />
I<br />
alle Flüsse<br />
I<br />
auf ¡ heißt Maximalfluß<br />
IOq IOq ¡<br />
auf .<br />
¡ £ k .p £ I k I<br />
Das Maximalflußproblem besteht dar<strong>in</strong>, zu e<strong>in</strong>em gegebenen Flußnetzwerk<br />
e<strong>in</strong>en Maximalfluß zu bestimmen.<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 168
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Flußnetzwerke<br />
Zunehmender Weg<br />
Def<strong>in</strong>ition 6.4. Gegeben sei e<strong>in</strong> Flußnetzwerk mit e<strong>in</strong>em<br />
. E<strong>in</strong>e Folge heißt zunehmender Weg +r ¦Dststsu¦ +wv <br />
FlußI bzgl.I gdw.<br />
für ¡ e<strong>in</strong>e ¢ der £¥¤§¦*¨¦¦$ folgenden Bed<strong>in</strong>gungen erfüllt ist:<br />
£ yz¦Dsfss¦V{ ¢<br />
jedesx<br />
1.<br />
£+ -}|P~¦ + -=8%,<br />
und I £+ -7|~@¦ + -=a€ ¨P£+ -7|P~@¦ + -=<br />
“Vorwärtskante”<br />
2.<br />
£+ -¥¦ + -7|P~©8%,<br />
und I £+ -V¦ + -}|P~©G K “Rückwärtskante”<br />
Vorwärtskante<br />
+1<br />
+1<br />
−1<br />
Rückwärtskante<br />
+1<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 169<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Flußnetzwerke<br />
Offensichtlich können wir den Fluß erhöhen, wenn wir e<strong>in</strong>en zunehmenden<br />
Weg gefunden haben.<br />
Die Existenz e<strong>in</strong>es zunehmenden Weges ist also h<strong>in</strong>reichend für e<strong>in</strong>e<br />
Flußerhöhung.<br />
Der folgende Satz zeigt, daß dieses Kriterium auch notwendig ist.<br />
Satz 6.2. E<strong>in</strong> Fluß <strong>in</strong> e<strong>in</strong>em Flußnetzwerk ist genau dann e<strong>in</strong> Maximalfluß,<br />
wenn ke<strong>in</strong> zunehmender Weg von nach existiert.<br />
¡ I<br />
Beweis. “‚ ”: Wenn e<strong>in</strong> zunehmender Weg ƒ von nach existiert,<br />
dann kann k £ I <br />
um das M<strong>in</strong>imum der Werte ¨£ENO1n I £QNO<br />
für Vorwärtskanten<br />
vonƒ bzw. I £QNO<br />
für Rückwärtskanten vonƒ erhöht werden.<br />
”: Es gebe ke<strong>in</strong>en zunehmenden Weg von nach .<br />
<br />
Es sei<br />
“„<br />
die Menge der Knoten, die von aus mit e<strong>in</strong>em zunehmenden<br />
…<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 170
Für jede Kante £ + ¦ˆ‰¦ + % … ¦Šˆ % † gilt: I £+ ¦ˆ‰A¢ ¨P£+ ¦Eˆ‹<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Flußnetzwerke<br />
Weg erreichbar s<strong>in</strong>d, und sei † 2¢‡hg … .<br />
Für jede Kante gilt: + ¦ˆ % † ¦ + % … I £ŒˆŽ¦ + A¢ K<br />
Anschaulich: Die Kanten zwischen £Œˆ und bilden ¦ e<strong>in</strong>en Engpaß, der<br />
e<strong>in</strong>e Flußerhöhung verh<strong>in</strong>dert.<br />
† …<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 171<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Berechnung maximaler Flüsse<br />
Berechnung e<strong>in</strong>es Maximalflusses<br />
Satz 6.2 liefert die Basis zur Berechnung e<strong>in</strong>es Maximalflusses.<br />
1. Wir starten mit e<strong>in</strong>em beliebigen Fluß, z.B. I £ENO ¢ K für alle N‘%M .<br />
Weiter mit 2.<br />
2. Wenn es ke<strong>in</strong>en zunehmenden Weg bzgl.I gibt, dann STOP. Ansonsten<br />
weiter mit 3.<br />
3. Sei e<strong>in</strong> zunehmender Weg von nach<br />
~¦fsfstsu¦ +wv ¢ <br />
bzgl. und sei<br />
ƒ + ¦ +r £’¢ ¢<br />
I<br />
m<strong>in</strong> Vorwärtskante £ 3¥¨P£ + -}|P~¦ + -=on I £+ -7|P~”¦ + -$*•–£+ -7|~¦ + -=<br />
vonƒ<br />
Rückwärtskante<br />
9<br />
“ 2¢<br />
I £+ -V¦ + -}|P~©*•–£+ -¥¦ + -7|P~©<br />
vonƒ<br />
9 <br />
3 —<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 172
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Berechnung maximaler Flüsse<br />
Setze für jede Vorwärtskante .<br />
I £+ -7|P~@¦ + -$o˜ “ £ + -}|P~@¦ + -=<br />
Setze für<br />
I £+<br />
jede<br />
-7|P~@¦<br />
Rückwärtskante .<br />
+ -=12¢<br />
-7|~ 12¢ I £+ - ¦ + -7|~ on “ £ + - ¦ + -7|~ + ¦ - £+ I<br />
Weiter mit 2.<br />
Beispiel 6.1. Wir betrachten das folgende Flußnetzwerk. Die Kapazität<br />
ist für alle Kanten 1. Der Fluß ist zunächst auf allen Kanten 0.<br />
a<br />
0|1<br />
c<br />
0|1<br />
0|1<br />
s<br />
0|1<br />
t<br />
0|1<br />
0|1<br />
b<br />
0|1<br />
d<br />
ist e<strong>in</strong> zunehmender Weg mit . Alle Kanten des Weges<br />
s<strong>in</strong>d Vorwärtskanten.<br />
y ¢ “ £¦V8¦©¨¦$<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 173<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Berechnung maximaler Flüsse<br />
Flußerhöhung auf dem zunehmenden<br />
Weg ergibt den Graphen:<br />
a<br />
0|1<br />
c<br />
Auf der Rückwärtskante wird der<br />
Fluß verr<strong>in</strong>gert, ansonsten erhöht.<br />
a<br />
1|1<br />
c<br />
0|1<br />
1|1<br />
1|1<br />
1|1<br />
s<br />
1|1<br />
t<br />
s<br />
0|1<br />
t<br />
1|1<br />
0|1<br />
1|1<br />
1|1<br />
b<br />
mit . I a¢ y £ k<br />
0|1<br />
ist nun e<strong>in</strong> zunehmender<br />
Weg mit , wobei<br />
e<strong>in</strong>e Rückwärtskante ist.<br />
£¦Dš1¦©¨¦V8¦5›1¦$<br />
¢ “ y<br />
¦¨Z £œ<br />
d<br />
b<br />
1|1<br />
d<br />
Wir haben k £ I H¢ ž<br />
und es existiert<br />
ke<strong>in</strong> zunehmender Weg. Damit<br />
ist der angegebene Fluß e<strong>in</strong><br />
Maximalfluß.<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 174
m<strong>in</strong><br />
… — 3â9©¦©£B¢ £ — 3œˆ«9©¦ … B¢<br />
ˆ‰AB¢ ¦ “ £Œˆ‰12¢ 3 “ £76F¦*¨£¨6"¦ˆ‰on I £76"¦ˆ‰Š9<br />
£Œˆ‹AB¢46"¦=Ÿ£ +<br />
m<strong>in</strong><br />
… — 3â9©¦*£HB¢ £ — 3œˆ«9©¦ … B¢<br />
¡ ¦ “ £Œˆ‰¬2¢ 3 “ £76F¦ I £Œˆ ¦E6FŠ9<br />
£Œˆ‹1B¢C6"¦=Ÿw£Œˆ‰AB¢ +<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Berechnung maximaler Flüsse<br />
Markierungsalgorithmus<br />
Der Markierungsalgorithmus von Ford und Fulkerson (1956) konkretisiert<br />
das Verfahren zur Berechnung maximaler Flüsse.<br />
Man markiert sukzessive die Knoten ˆ auf e<strong>in</strong>em zunehmenden<br />
Weg mit drei Werten+<br />
£Œˆ‰¦=Ÿ£ ˆ‰¦ “ £Œˆ‰<br />
.<br />
ist der vonˆ Vorgänger <strong>in</strong> dem zunehmenden Weg.<br />
gibt die Richtung der verwendeten Kante an<br />
+<br />
( Vorwärtskante, Rückwärtskante).<br />
£Œˆ‰<br />
ist<br />
Ÿ£Œˆ‰<br />
der mögliche zusätzliche Fluß auf dem Weg .<br />
¢<br />
nachˆ £Œˆ‰ C¢ “ ¡<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 175<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Berechnung maximaler Flüsse<br />
Algorithmus 6.1. Gegeben sei e<strong>in</strong> Flußnetzwerk und<br />
e<strong>in</strong> <strong>in</strong>itialer Fluß . I £QNOa¢ K<br />
1. Setze ¡ .<br />
¢ £¥¤§¦*¨¦¦$ £XAB¢ ¤<br />
2. Wähle e<strong>in</strong>en Knoten .<br />
B¢43V”9*¦£HB¢43¥59*¦<br />
Setze<br />
“<br />
.<br />
£HB¢ £¥g¦3§6G9 …<br />
3. 6C% Für mit und £ :<br />
£¨6©¦Šˆ‰ %‘ I £76"¦Eˆ‹A€ ¨P£76"¦ˆ‹ … alleˆ %‘hg<br />
4. Für alleˆ %‘hg … mit £ ˆ ¦Q6F %‘ und I £Œˆ ¦Q6F8 K :<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 176
7. Falls<br />
Falls<br />
+ £Œˆ‰¦ I £76"¦ˆ‹AB¢ I £76"¦ˆ‹o˜ “<br />
Ÿ£Œˆ‰A¢ ¡ u6°B¢ + £Œˆ‰¦ I £Œˆ ¦E6FAB¢ I £Œˆ ¦Q6F±n “<br />
4u6°B¢ Ÿ£Œˆ‰A¢<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Berechnung maximaler Flüsse<br />
5. Falls £¢ ® , dann STOP. Falls ‘% … , dann weiter mit 6, ansonsten<br />
weiter mit 2.<br />
6.<br />
“ B¢ “ £dE¯Šˆ B¢<br />
.<br />
8. ˆ B¢ + £Œˆ‰<br />
. Fallsˆ ¢ , dann weiter mit 1, ansonsten weiter mit 7.<br />
Satz 6.3.<br />
Sei<br />
¡ ¢ £$¤§¦¨¦©¦¥<br />
e<strong>in</strong> Flußnetzwerk mit rationaler Kapazitätsfunktion¨<br />
. Dann berechnet Algorithmus 6.1 e<strong>in</strong>en maximalen Fluß<br />
I auf ¡ .<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 177<br />
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Berechnung maximaler Flüsse<br />
Bemerkung 6.1.<br />
Bei irrationalen Kapazitäten kann es vorkommen, daß der Markierungsalgorithmus<br />
immer weitere Verbesserungen des Flußwertes<br />
f<strong>in</strong>det, ohne jemals zu term<strong>in</strong>ieren.<br />
Auch bei ganzzahligen Kapazitäten ist die Laufzeit des Markierungsalgorithmus<br />
nicht polynomial, da die Anzahl der Schritte von<br />
¨<br />
abhängen kann.<br />
E<strong>in</strong>e polynomiale Lauzeit erhält man aber, wenn man für die Suche<br />
nach e<strong>in</strong>em zunehmenden Weg die Breitensuche e<strong>in</strong>setzt (Edmonds<br />
und Karp, 1972).<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 178
6. Flüsse <strong>in</strong> <strong>Netzwerken</strong> Berechnung maximaler Flüsse<br />
Satz 6.4.<br />
Ersetzt man <strong>in</strong> Algorithmus 6.1 den Schritt 2 durch<br />
2a. Wähle den Knoten 6 % £ , der zuerst <strong>in</strong> £ e<strong>in</strong>gefügt wurde. Setze<br />
£2¢ £¥gi3§69<br />
.<br />
dann berechnet der Markierungsalgorithmus für beliebige Kapazitätsfunktionen<br />
<strong>in</strong> ² £$•¥•³•_´ •µ”<br />
e<strong>in</strong>en Maximalfluß.<br />
Beispiel 6.2.<br />
Anwendung des Markierungsalgorithmus. Tafel ✎<br />
E<strong>in</strong>führung <strong>in</strong> die Graphentheorie — FH Bonn-Rhe<strong>in</strong>-Sieg, WS 02/03 179