• Nem Talált Eredményt

A Ford-Fulkerson eljárás a maximális folyam meghatározására

15. Hálózati problémák 136

15.3. A Ford-Fulkerson eljárás a maximális folyam meghatározására

Tekintsük el˝oször a címkézési eljárást:

1. lépés. Címkézzük meg a forrást.

138

2. lépés. Címkézzük meg a csúcsokat és az éleket a forrásba vezet˝o mesterséges él kivételével a következ˝o szabályok szerint.

Ha az x csúcs már kapott címkét, de az y még nem, és (x, y) ∈ I, akkor címkézzük meg az y csúcsot és az(x, y) élt. Ekkor az (x, y) éltel˝oremen˝o élnek hívjuk.

Ha az x csúcs már kapott címkét, de az y csúcs még nem, és(y, x)∈R, akkor címkézzük meg az y csúcsot és az(y, x) élt. Az utóbbithátramen˝o élnek nevezzük.

3. lépés. Folytassuk a címkézési eljárást, amíg a nyel˝o címkét nem kap, vagy már nem lehet további csúcsokat címkével ellátni.

Ha a címkézéssel elérjük a nyel˝ot, akkor lesz a forrás és a nyel˝o között egy címkézett élekb˝ol álló lánc. Jelölje ezt C. A C-beli éleken átmen˝o folyam alkalmas módosításával egyrészt meg˝orizhetjük a folyam lehetségességét, másrészt növelhetjük a folyamot.

A Ford-Fulkerson módszer a fentiek alapján:

1. lépés. Keressünk egy lehetséges folyamot (a minden élen 0 érték˝u folyam mindig lehetséges).

2. lépés. A címkézési eljárással kíséreljük meg elérni a nyel˝ot. Ha nem lehet a nyel˝ot így megcímkézni, akkor az aktuális lehetséges folyam maximális. Ha elértük a nyel˝ot, akkor folytassuk az eljárást a 3. lépésnél.

3. lépés. Határozzunk meg egy magasabb érték˝u lehetséges folyamot úgy, hogy a megcímkézett láncon az el˝oremutató élek értékeit növeljük, a hátramutatókét pedig csökkentsük a

k= min

(x,y)∈C∩Rmin r(x, y), min

(x,y)∈C∩Ii(x, y)

értékkel. Folytassuk az algoritmust a 2. lépéssel.

PÉLDA. Tekintsük ismét a

1 2

3 4

1

1 1

3 3

maximális folyam feladatot.

Az els˝o lépés egy lehetséges folyam meghatározása. Legyen ez az, amelyik minden élhez a nulla folyamot rendeli hozzá.

Ezután kezdjünk egy címkézési eljárást. El˝oször a forrás, az 1. csúcs kap címkét, majd ez alapján egy olyan él, ami ebb˝ol kivezet. Most ez esetben címkét kap a 2. csúcs, és az (1, 2) él. Ezt folytatva a nyel˝oig tartó címkézett láncot (most utat) kapunk:

1−2−3−4.

Az el˝oz˝o lánc csak el˝oremen˝o éleket tartalmaz. A lehetséges folyamb˝ovítési lehet˝oségek rendre:

i(1,2) = 1, i(2,3) = 1 ´es i(3,4) = 1.

139

Ez alapján az eddigi folyam a címkézett láncunk mentén 1-el növelhet˝o. Ez alapján az ehhez tartozó lehetséges folyam értéke 1.

A lehetséges folyam javítása során azokat az éleket kell vizsgálni a címkézés során, amelyek kapacitását még nem merítettük ki. Ezek alapján már csak egy címkézhet˝o láncot lehet képezni, amely eléri a nyel˝ot, ez az

1−3−2−4.

Ezen belül a 3−2él hátramutató, ennek értékét legfeljebb 1-el lehet csökkenteni. Az eddigi lehetséges folyam ismét 1-el növelhet˝o. Ezután a lehetséges folyam:

x12= 1, x13= 1, x24= 1, ´es x34= 1.

Ennek a lehetséges folyamnak az értéke 2.

Ezután látható, hogy további címkézett láncot már nem lehet képezni, tehát az el˝oz˝o lehetséges

fo-lyam egyben maximális is.

Legyen V0 egy hálózat csúcsainak tetsz˝oleges olyan halmaza, amely tartalmazza a nyel˝ot, de nem tartalmazza a forrást. Ekkor a hálózat olyan (i,j) éleinek halmazát, amelyek ikezd˝ocsúcsa nemV0-beli, a j végpont viszont V0-beli,a hálózat egy vágásának nevezzük. A vágás tehát élek egy olyan halmaza, amelyeket ha elhagyunk a hálózatból, akkor a forrásból a nyel˝o a továbbiakban már nem lesz elérhet˝o.

Avágás kapacitásaa vágást alkotó élekb˝ol a forrástól a nyel˝o felé vezet˝ok kapacitásainak összege. A következ˝o két segédtétel adja meg a vágások és a maximális folyamok közti összefüggést.

SEGÉDTÉTEL. A forrásból a nyel˝obe vezet˝o folyamok er˝osségét bármelyik vágás kapacitása felülr˝ol korlátozza.

BIZONYÍTÁS. Tekintsük egy hálózat valamely V0 vágását. A hálózat többi csúcsának halmaza legyen V. Válasszunk egy tetsz˝oleges folyamot, legyen ennek értéke f, az (i, j) élen áthaladó mennyiséget pedig xij. Összegezzük aV-beli összes csúcsra a folyammeg˝orzési feltételeket. Ez azt adja, hogy mivel kiesnek az olyan élekre vonatkozó tagok, amelyek mindkét végpontja V-ben van, ezért

X

i∈V, j∈V0

xij − X

i∈V0, j∈V

xij =f.

Az ebben az egyenletben szerepl˝o els˝o összeg egyenl˝o a V0-nek megfelel˝o vágás kapacitásával. Mivel minden xij érték nemnegatív, így a második összeg is nemnegatív. Ebb˝ol adódik a segédtétel állítása: a

folyamok értéke legfeljebb annyi lehet mint a vágásoké.

A segédtételb˝ol az is következik, hogy bármely vágás értéke fels˝o korlátja a forrásból a nyel˝obe áramló maximális folyam értékének. Tehát ha találunk egy olyan lehetséges folyamot, amelynek értéke egyenl˝o egy vágás kapacitásával, akkor találtunk egy maximális folyamot. Ez egy fajta gyenge dualitást fejez ki.

Tekintsük most azt az esetet, amikor egy adott lehetséges folyamra vonatkozóan a címkézési eljárás nem tudja elérni a nyel˝ot. Legyen ekkor a címkézetlen csúcsok halmaza által meghatározott a vizsgált vágás.

SEGÉDTÉTEL. Ha a címkézési eljárás nem tudja elérni a nyel˝ot, akkor a kimaradó, nem címkézett csú-csok által meghatározott vágás kapacitása megegyezik az aktuális folyam er˝osségével.

BIZONYÍTÁS. Legyen a korábbi jelöléseknek megfelel˝oen V az aktuális folyam mellett megcímkézett csúcsok halmaza, ésV0 pedig a címkézetleneké. Tekintsünk egy(i, j) élet a vágásból, úgy, hogy i∈V

140

és j ∈ V0. Ekkor az xij értéknek egyenl˝onek kell lennie az (i, j) él kapacitásával, hiszen különben tovább tudtunk volna haladni egy megfelel˝o el˝oremen˝o éllel, és akkor j nem aV0-be tartozna.

Tekintsünk ezután egy olyan(i, j) élt, amelyre i∈V0 ésj ∈ V. Ekkor viszont xij = 0 kell hogy teljesüljön, hiszen különben a címkézési eljárásban egy hátramen˝o éllel el tudtuk volna érni az icsúcsot, és így az nem tartozhatna a V0 halmazba.

Az aktuális lehetséges folyamra tehát az teljesül az el˝oz˝o segédtételben igazolt X

i∈V, j∈V0

xij − X

i∈V0, j∈V

xij =f egyenlet alapján, hogy a jelen vágás kapacitása egyenl˝o a P

i∈V, j∈V0xij összeggel, és az adott folyam

er˝osségével.

Az eddigi megállapítások szerint tehát amikor a nyel˝ot nem lehet megcímkézni a forrásból indulva, akkor az aktuális lehetséges folyam egy maximális folyam. Ez összhangban van a Ford-Fulkerson módszerrel.