Sie sind auf Seite 1von 4

Sven Lucht, 5602320 Zettel 6 Aufgabe 2.

1 Die Idee des Algorithmus ist es, den ungerichteten Graphen als Flussnetzwerk zu betrachten. Jeder Kante des Graphen wird dabei in beide Richtungen eine Kapazitt von 1 zua gewiesen. Es werden willkrlich eine Quelle und eine Senke festgelegt. Der Algorithmus u sucht den maximalen Fluss bzw. den minimalen Schnitt. Da der Fluss uber die Kanten des minimalen Schnitts gleich der Kapazitt ist und die Kapazitt jeder Kante genau 1, a a ist der Fluss durch den minimalen Schnitt gleich der Kantenanzahl. Trennt man alle diese Kanten, hngen Quelle und Senke nicht mehr zusammen. Diese Zerlegung in zwei Zusama menhangskomponenten durch Entfernen von weniger Kanten ist nicht mglich, da dies dem o Satz des minimalen Schnitss widerspricht. Dies stellt zuerst nur die minimale Anzahl der Kanten dar, die entfernt werden muss, um zwei bestimmte Punkte zu trennen. Hlt man a den Startpunkt fest, fhrt diese Prozedur fr jeden Endpunkt aus und nimmt dann das u u Minimum uber alle diese Werte, erhlt man das globale Minimum, die minimale Anzahl a der Kanten. G=(V,E) ci,j 1, wenn c(i, j)E ci,j 0, sonst ZUSAMMENHANGSZAHL (G,c) n | V | z for i 2 to n do a FORD-FULKERSON(G,1,i) if a < z za Aufgabe 2.2 Zu einem Knoten mit Knotenkapazitt sind zwei Knoten ohne Knotenkapazitt aquivalent, a a die durch eine Kante mit der gleichen Kapazitt verbunden sind. Mit einem der Knoten a werden alle positiv gerichteten Kanten verbunden, mit dem anderen die negativ gerichteten.

Bei gegebenen c(u), c(u,v) und c(v,u) fr vV wird das quivaltene Flussnetzwerk mit dem u a + Knoten u fr ausgehende und u fr eingehende wie folgt deniert: u u c (v, u ) = c(v, u), v V c (u , v) = 0, v V \ u+ c (u+ , v) = c(u, v), v V c (v, u+ ) = 0, v V \ u c (u , u+ ) = c(u) Ein Netzwerk mit Knotenkapazitten habe einen maximalen Fluss f. a Mit f ein (u) wird der eingehende Fluss in u bezeichnet. Also: f ein (u) := vH f (v, u), H := {vV | f (v, u) > 0}. f aus ist analog auf H := {vV | f (v, u) < 0} deniert. 1 Damit gilt: 2 v | f (u, v) |= 1 | f ein (u) f aus (u) |= 1 | f ein (u) + f ein (u) |=| f ein (u) |=| 2 2 aus f (u) | Also: | f ein (u) | c(u) Annahme 1: Das modizierte Netzwerk hat einen greren maximalen Fluss. o Daraus folgt: Der Fluss durch mindestens einen der umgewandelten Knoten ist grer als o beim entsprechenden Knoten des unmodizierten Netzwerkes. Ferner muss dies ein Knoten gewesen sein, der saturiert war. Wren nur unsaturierte und/oder Knoten, die nicht a modiziert wurden, betroen, wre dies ein Widerspruch dazu, dass f der maximale Fluss a des Netzwerkes ist. Dann wrde gelten: c(u) = c(u , u+ ) f (u , u+ ) > f ein (u) = c(u) u Widerspruch!

Annahme 2: Das modizierte Netzwerk hat einen kleineren maximalen Fluss. Daraus folgt mit der gleichen Argumentation wie bei Annahme 1, dass die Kapazitt von a u nicht ausgeschpft ist. Dies steht im Widerspruch dazu, dass f der maximale Fluss ist. o Beide Annahmen sind widersprchlich. Der maximale Fluss bleibt daher erhalten. qed u

Aufgabe 2.3 Die Denition eines Flussnetzwerkes steht der eines ungerichteten Graphen entgegen. Wenn 2

der Graph ungerichtet ist, wrde die schiefe Symmetrie und die Erhaltung des Flusses ein u Widerspruch sein. Um dieses Dilemma zu umgehen, lsst sich das gewnschte Netzwerk N a u wie folgt denieren: Komplett analog zu 2.4 im Script, mit der zustzlichen Bedingung(*), dass c(u,v)=c(v,u) a gilt. Der Graph mit den Kapazitten ist ungerichtet, der Flu jedoch weiterhin gerichtet. a Aus dieser Dention folgt aber direkt, dass der Raum aller Flussnetzwerke mit Bedingung (*) ein Unterraum des Raumes aller Flussnetzwerke ist. Damit muss nichts umgewandelt werden.

Aufgabe 2.4 Gegeben: die Matrix des Flusses in jeder Kante, mit der der Betrag des Flusses von der Quelle zur Senke sein Maximum annimmt. Der Fluss von Knoten i zu j wird mit f i,j bezeichnet. Die Idee des Algorithmus ist, ein modiziertes Netzwerk zu benutzen, dass als Kapazitten a die fi,j benutzt. Damit wird vermieden, dass der Fluss in einmal saturierte Kanten wieder reduziert wird. Dadurch terminiert der Algorithmus in maximal m Schritten. Der einzige Unterschied zu Ford-Fulkerson ist, dass die Pfadliste gespeichert wird und Kanten, die saturiert sind, aus dem Residualnetzwerk gestrichen werden. G*(V,E,c) mit c(i,j)=f i,j , i, j V PFADLISTE (G,s,t) for alle Kanten (u,v) E(G) do f[u,v] 0; f[v,u] 0 j 0; while es existiert ein Pfad p von s nach t im Restnetzwerk Gf do cf (p) min{cf (u, v) | (u, v)gehrtzu p} o j j+1 r[j]=p for alle Kanten (u,v) von p do f [u, v] f [u, v] + cf (p) cf [u, v] = cf [u, v] cf (p) cf [v, u] = cf [v, u] + cf (p) f [v, u] f [u, v] if cf [u, v] = 0 then cf [v, u] = 0 Beweis: wenn in jedem Schritt eine Kante saturiert wird und bei einer bereits saturierten Kante der Fluss nicht wieder verringert wird, terminiert der Algorithmus nach m Schritten, da die Anzahl der saturierten Kanten streng monoton steigt. Beides trit auf den Algorithmus zu. Das cf (p) ist so gewhlt, dass der Kapaizt mindestens einer Kante entspricht. a a 3

Beim Update des residualen Netzwerkes, werden Kanten, die saturiert sind, komplett entfernt. Auch die Gegenrichtung wird gleich null gesetzt. Der Fluss kann hier also nicht mehr verringert werden.

Das könnte Ihnen auch gefallen