30.12.2014 Aufrufe

Maximale Flüsse in Netzwerken

Maximale Flüsse in Netzwerken

Maximale Flüsse in Netzwerken

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!