Dizkré Maemaika MSc hallgaók zámára 4. Előadá Előadó: Hajnal Péer Jegyzeelő: Cenkei Ania 200. zepember 27. Emlékezeő. H = ( G,,, c) egy hálóza, ahol G egy irányío gráf kijelöl cúcok (: forrá, : nyelő), c : E(G) R 0 egy kapaciáfüggvény. Egy f folyam egy hálózaban az élekhez úgy rendel anyagmennyiége (való zámo), hogy minden e élhez rendel zám [0, c(e)]-be een, ovábbá a forráól, nyelőől különböző cúcokra eljeüljön az anyagmegmaradá örvénye. Egy V -vágá egy hálózaban a cúcok V (G) = S T felozáa ké rézre, amelyre eljeül, hogy S é T. Vegyük egy ezőlege f folyamo é V -vágá. A folyam éréke, illeve a vágá kapaciáa, illeve a közük lévő vizony: é(f) : def = e: xy E x S y T f(e) e: xy E y S x T f(e) A folyamok főéele: A kövekezők ekvivalenek: (i) f opimáli folyam, (ii) nem léezik javíó-ú f-re, (iii) van olyan V vágá, hogy c(v) = é(f). e: xy E x S y T c(e) : def = c(v). Folyamok főéelének kövekezményei. Kövekezmény (Maximáli folyam-minimáli vágá éel, M F M C éel). Legyen (G;,, c) egy hálóza. Ekkor max{é(f) :f egy megengede folyam a H hálózaban} = = min{c(v) : V egy -vágá a H hálózaban} Bizonyíá. : Tezőlege f folyamra é ezőlege V -vágára é(f) c(v). Ez az opimáli folyamra é minimáli kapaciáú vágára alkalmazva kapjuk, hogy a bal oldal nem nagyobb a jobb oldalnál. : Vegyünk egy maximáli érékű folyamo, legyen ez f max. Tehá é(f max ) := max{é(f) : f folyam}. A főéel alapján van olyan V vágá, amelyre é(f max ) = c(v) eljeül. Ebből adódik a hiányzó egyenlőlenég 2. Kövekezmény. Ado hálózaban egy maximáli érékű folyam algorimikuan megalálhaó. 4-
Bizonyíá. A bizonyíá egy konkré algorimu leíráa. Az algorimu Ford é Fulkeron 956-ban publikála. Ford Fulkeron-algorimu: (Inicializálá) Legyen f az azonoan 0 folyam (minden élen 0 anyagmennyiég folyik). // A hálóza üre. (Címke-inicializálá) -e címkézzük meg. // A forrá aralmazó 0 hozú ú javíó-ú-kezdemény. (Címkekierjezé I) Kereünk olyan xy él, amelyre x címkéze, y nem címkéze é a raja folyó anyagmennyiég nem éri el a kapaciá. Címkézzük meg y-. (Címkekierjezé II) Kereünk olyan yx él, amelyre x címkéze, y nem címkéze é a raja folyó anyagmennyiég poziív. Címkézzük meg y-. // Megalál javíó-ú-kezdeményeke mohón hozabíunk. (Sikere kereé) címké kap. // megcímkézéének oká vizakereve egy forrá-nyelő ua // kapunk, amely javíó ú lez. f-e javíuk a megalál javíó ú alapján. Töröljük a címkéke. Térjünk viza a (Címke-inicializálá) lépéhez. (Sikerelen kereé) nem kap címké é a címkekierjezéek kifulladnak. Leállunk, az akuáli f az eljárá oupuja. // Ekkor f opimáli, a címkéze/nem címkéze cúcok // egy ez bizonyíó vágá adnak. Az algorimu címkekierjezéi lépéeiben rejlő kereé ninc rézleeen leírva. Álalában öbb leheőég i van. Az implemenációól függ, hogy az algorimu melyike alálja meg. Így a Ford Fulkeron-algorimu igazából egy eljárá ozály (ahogy például a zimplex algorimu i). Egy konkré megvalóíáá emlíjük meg. Ekkor a címkekiozáok fáziokban örénnek. Egy fáziban az előző fáziban címké kapo ponok ölik be az x cúc zerepé. Az öze leheége címkekierjezéek elvégzée zárja be a fázi. A címkézé a zéleégi kereé filozófiája alapján működik. Könnyen láhaó, hogy ikere kereé eeén a leheő legrövidebb javíó ua alálja meg ez az algorimu. Ez az eljárá a Ford Fulkeron-algorimu Edmond Karp-válozaa. (Ez Edmond é Karp 972-ben íra le. Egy ovábbi finomíá Dinic nevéhez fűződik.) Az algorimuban öbb ciklu i zerepel. A címkekierjezéek imélée nem problémá. Mohó módon végezzük, a címkék halmaza nő. Vége imélé ikere kereéhez vagy elakadához veze. A javíáok imélée azonban problémá. Ké eredmény emelünk ki bizonyíá nélkül. Megjegyezzük, hogy felezük (az a gyakorlaban irreáli felvé), hogy pono való-arimeiká végzünk. Példa. Van olyan hálóza, amelyben a Ford Fulkeron-algorimu javíáok végelen orozaá végzi é a (zükégzerűen konvergáló) folyamérék nem i ar a maximáli folyamérékhez. 3. Téel (Edmond Karp-éel). A Ford Fulkeron-algorimu Edmond Karpválozaa O(n 5 ) javíá uán zükégzerűen leáll. 4-2
Egy jóval reáliabb feléel zerin az inpuban (a hálózaban) zereplő zámok mind racionáliak. Azaz c : E(G) Q 0. Egyzerű kálázáal (mérékegyégváláal) felehejük, hogy c : E(G) N. Ekkor ninc i zükég a Ford Fulkeron-algorimu ügye implemenáláára. Ez a kövekező kövekezményben fejjük ki. 4. Kövekezmény. Legyen (G,,, c) egy hálóza, ahol c egy egéz érékű függvény, azaz c: E( G) N. Ekkor léezik olyan opimáli folyam, amely zinén egéz érékű. Bizonyíá. Az fogjuk beláni, hogy ha az inpu minden komponene egéz (minden él kapaciáá egy egéz zám írja le), akkor a Ford Fulkeron-algorimu fuava cak egéz érékek fordulnak elő. Továbbá az algorimu leáll, azaz kizámol egy opimáli folyamo, ami így egéz érékű függvény ír le. Az algorimu az f 0 folyamból indul ki. Azaz az inpuban rejlő érékek melle cak 0-k jelennek meg. A ovábbi zámokhoz zámolá folyamán juunk. Új zámokra akkor lez zükégünk, ha P javíó-ua alálunk é f-ről áérünk f javíáára. Emlékezzünk a zükége zámanra: Legyen δ előre = min{c(e) f(e) : e E előre }, δ hára = min{f(e) : c E hára } Ahol E előre az előremuaó élek halmaza é E hára a háramuaó élek halmaza P -n. δ = min{δ előre, δ hára } > 0. f(e), e E(P ), f(e) := f(e) + δ, e E előre (P ), f(e) δ, e E hára (P ). Abból ahogyan f(e)- definiáluk, láhaó, hogy minden kizámol érék egéz, feléve hogy kiinduló érékeink egézek (özeadá, kivoná, minimum érék véele egéz zámokon végrehajva egéz zámoka eredményez). Speciálian δ i egéz, így éréke legalább, azaz minden növelé legalább -gyel növeli a folyam éréké. Ebből kövekezik, hogy Ford Fulkeron-algorimu le fog állni é a kizámol opimáli folyam bizonyíja a éel. Példa. H hálóza c kapaciáfüggvénnyel. Három opimáli folyammal, amelyek közül keő különböző, egéz érékű é egyharmadik egye éleken irracionáli anyagmennyiéggel. 0 c azonoan 0 0 p 2 p 2 p 2 Emlékezeő. Ké él függelennek nevezünk, ha végponjaik négy különböző pono adnak. Egy G gráf éleinek egy M halmaz pároíának nevezünk, ha a benne lévő élek páronkén függelenek é nem hurkok. ν(g) = max{ M : M pároíá G-ben} 4-3
Egy L V (G) halmaz lefogó halmaznak nevezünk, ha minden e E(G) élnek legalább az egyik végponja L-ben van. τ(g) := min{ L : S lefogó ponhalmaz G-ben}. Minden G gráfra τ(g) ν(g) hizen egy opimáli pároíának i minden élé le kell fogni egy ponal é pároíá eeén ezeke a feladaoka mind különböző cúcok oldhaják cak meg. 5. Kövekezmény (Kőnig-éel). Legyen G páro gráf. Ekkor ν(g) = τ(g). Bizonyíá. Az állíá érdemi réze, hogy ν(g) τ(g). Ehhez a G páro gráfból egy H hálózao konruálunk: Legyen A é F a páro gráf ké zínozálya. A elemei legyenek az aló, F elemei a felő ponok. A hálóza gráfja Ĝ lez. Ehhez felvezünk ké új pono (forrá) é (nyelő). G élei melle -ből minden F -beli ponba veze ponoan egy él, é minden A-beli ponból veze ponoan egy él -be. Minden éle lefele irányíunk, ehá F é A köz F -ből A-ba muanak a G gráf élei. Legyen c azaz minden élen maximum anyagmennyiég áramolha.. Állíá: max é(f) = ν(g) f folyam H-ban. Állíá bizonyíáa: Legyen M egy pároíá G-ben. Ekkor definiálhaó egy f M folyam, amire é(f M ) = M. Valóban, egyégnyi anyagmennyiég folyjon -ből minden felő pároío cúchoz, M élein é minden aló pároío ponból -hez. A öbbi élen 0 anyagmennyiég folyjon. Ebből adódik, hogy max f folyam H-ban é(f) ν(g). Fordíva vegyünk egy opimáli f : E(H) {0, } folyamo (lád előző kövekezmény). Legyen F op = {e : f op (e) = } E(G). Tudjuk, hogy f F befoka eggyel egyenlő, ovábbá a A a kifoka eggyel egyenlő. Azaz, ha az eredei gráf egy e = fa élén folyik anyagmennyiég (eeünkben ez zükégzerűen egyégnyi), akkor ez az anyagmegmaradá örvényei alapján cak az f élen kerezül jöhe (é a elje mennyiége elzállíja az e él), majd az a élen a elje zállío anyagmennyiég -be ju. Így ha E op E(G) elemei nézzük, akkor ké eee kizárhaunk: () Nem leheége felő özefuáa az éleknek azaz hogy F egy ponjából ké él induljon. (2) Nem leheége aló özefuá em, azaz olyan hogy egy A-beli ponból ké él induljon ki. Azaz F op azon élei, amelyek az eredei gráfunk élei egy M pároíá alkonak G-ben. Az ({} F, A {}) vágá menén mérve éréké M -e kapunk. Így kapjuk a hiányzó max f folyam H-ban é(f) ν(g) egyenlőlenége. 4-4
2. Állíá: min c(v) = τ(g) V vágá 2. Állíá bizonyíáa: Legyen V op = (S, T ) opimáli vágá, A ké oldal elnevezéé válazuk úgy, hogy az forrá S oldalon van, nyelő T oldalon van. Ha lenne e = xy E( G) E(Ĝ) él a vágában (azaz középél) akkor együk a kövekező. Ha x S, y T, akkor az y pono dobjuk á a máik oldalra: S = S {y}, T = T \{y}. Mivel minden él kapaciáa, ezér a válozaá (ádobá) haáa a vágá kapaciáára: legalább egy G-éllel cökken é pon egy -be vezeő éllel nő a kapaciá. De az eredő kapaciá nem cökkenhe, azaz a módoío ( S, T ) vágá i opimáli. S F T F T F T F S A S A T A S A Ha x T, y S, akkor haonlóan kezelheő a probléma. Ezen öle iméléével Ṽ op vágához juunk, ami opimáli, de G-nak már ninc S-ből T -be menő éle. Ekkor a Ṽop vágáon kerezül már nem halad él. c(ṽop) = S A + T F, ahol (S A) (T F ) G-ben lefogó ponhalmaz (ezen cúchalmaz elkerülő élek nem lehenek gráfunkban), ehá a minimum vágákapaciá egy lefogó ponhalmaz méree, peciálian legalább τ. Tehá c(ṽop) τ(g). Továbbá a gondolamene megfordíáával alálhaó τ(g) kapaciáú vágá. Így kapjuk a máodik állíá. Az MFMC éel alapján max é(f) = min c(v), ami a ké bizonyío állíá f folyam V vágá H ban H-ban alapján éppen Kőnig-éel állíáá adja. A kövekező kövekezmény kimondáa elő egy fono ézrevéel emelünk ki. Ézrevéel. Legyen G,, V (G) egy hálóza, amelyben minden él kapaciáa. Legyen f : E( G) {0, } egy egéz érékű függvény. Ekkor f leírhaó egy F élhalmazzal (azon élek halmazával, ahol folyik anygmennyiég/egyégnyi anyagmennyiég folyik). Ez az azonoíá ugyanaz min az E( G) rézhalmazai é az E( G)-n érelmeze karakeriziku függvények azonoíáa. Állíá: Legyen F egy élhalmaz G-ben. A kövekezők ekvivalenek: (i) F egy f folyamo ír le. (ii) Minden nem nyelő é nem forrá cúcra ugyanannyi F -él fu be, min ahány kifu. (iii) F felírhaó i P i i Q i i C i alakban, ahol a P i halmazok egy-egy forrá-nyelő irányío ú élhalmaza, a Q i halmazok egy-egy nyelő-forrá irányío ú élhalmaza, a C i halmazok egy-egy irányío kör élhalmaza. (A jelölében o van az a feléel, hogy az unió agjai DISZJUNKT élhalmazok.) 4-5
Az állíá bizonyíáa: (i) é (ii) ekvivalenciája nyilvánvaló. Az anyagmegmaradái örvények ké oldalán lévő özegek éppen bemenő, illeve kifuó F -éleke zámolnak egy nem nyelő, nem forrá cúcra. (iii) (ii) könnyen ellenőrizheő. Az ekvivalencia lényege (ii) (iii). Ez egy algorimual írjuk le.. ee: F -ben van irányío kör. Legyen C egy irányío kör élhalmaza. Ekkor F C-re i eljeülnek (ii) fokzám feléelei. Rekurzív módon megkerehejük F C felbonáá/dekompozíciójá, amihez C- hozzáadva kapjuk a bizonyíandó felboná F -re. 2. ee: F -ben ninc irányío kör é F nem üre. e egy él F -ben. Ekkor a fokzám feléelek mia e- előre/hára kierjezhejük egy P maximáli úá. Ennek ké végponja cak a forrá-nyelő pár. Ekkor F P -re i eljeülnek (ii) fokzám feléelei. Rekurzív módon megkerehejük F P felbonáá/dekompozíciójá, amihez P - hozzáadva kapjuk a bizonyíandó felboná F -re. A elje (mohó) algorimu F zébonáára: Amíg F Ha alálunk, vegyük ki egy C irányío kör élhalmazá F -ből é F -e helyeeíük F C-vel. // A megalál C egy leheőég egy özeevőre. // Mohó módon az oupu rézévé ezük. Vegyük ki egy P irányío forrá-nyelő vagy nyelő-forrá ú élhalmazá é F -e helyeeíük F P -vel. // A megalál P egy leheőég egy özeevőre. // Mohó módon az oupu rézévé ezük. Az ézrevéel egy kié finomíjuk: Ha a feni dekompozícióban k darab -ú, l darab -ú zerepel, akkor a megfelelő f folyamra érék(f) = k l. Speciálian, ha f egy opimáli folyam, akkor l = 0. Ső opimaliá eeén F dekompozíciójából elhagyhaók az irányío körök (amennyiben zerepelnek). Így egy F 0 zinén opimáli folyamo kódoló élhalmaz kapunk. Nevezzünk egy élhalmaz egyzerűnek, ha van olyan dekompozíciója, amelyben nem zerepelnek irányío körök é -uak. A feni megállapíáainka a kövekezőképpen özegezhejük. 6. Lemma. Legyen ( G;, ; c) egy hálóza, amely kapaciáfüggvénye az azonoan függvény. Ekkor van olyan opimáli folyam, amely egy egyzerű élhalmazzal azonoío. A maximáli folyamérék éppen az egyzerű dekompozícióban az -uak záma. Ezekuán már könnyen kapjuk a ovábbi kövekezményeke: 7. Téel (Menger-éele). G egy irányío gráf, V ké ( ) kiünee cúccal. Ekkor max{k :P,..., P k éldizjunk uak} = = min{ L : L E( G), G L-ben ninc ú}. Megjegyzé. A éel a kövekező meével világíhajuk meg: Tegyük fel, lakóelep, belváro, a rendőrök udják, hogy bünözők a lakóelepről a belvároba aranak. Uak lezáráával zerenék ellenőrizni a belvároba bemenő forgalma 4-6
(amely a krez bearáával örénik, azaz az úzakazok irányíáa zerin halad mindenki). A bizonyíandó állíá bal oldala a bünözők függelen erveinek maximáli záma, míg a jobb oldal a rendőrök zámára lezárandó úzakazok minimáli záma. Bizonyíá. : Egyzerű. A feni meén alapuló konkré példa jól megvilágíja az állíá. Tegyük fel, hogy a bal oldal éréke 0. Azaz a bünözők 0 éldizjunk ervvel állhanak elő. Minden úlezárá legfeljebb egy erve akadályozha meg (i haználjuk a ervek függelenégé/éldizjunkágá). Azaz a rendőrök zámára legalább 0 ú lezáráa zükége. : A felada gráfjában minden él kapaciáa legyen. Az így kapo H hálózaban az opimáli folyamok köz lez egy, amely egy egyzerű élhalmazzal azonoíhaó. Ha éréke k, akkor k éldizjunk úra zézedheő. Ez megfordíva i igaz. k éldizjunk úból özerakhaó egy k érékű folyam. Azaz max{k : P,..., P k éldizjunk uak} = max{é(f) : F folyam H-ban} A Menger-éelben zereplő élhalmazoka nevezzük zeparáló élhalmazoknak (elhagyáuk uán nem lez ú G-ben). Minden -vágá S-T élei egy zeparáló halmaz adnak. Fordíva i igaz: Bármely L zeparáló élhalmaznak van olyan rézhalmaza ami egy vágá élhalmaza: Például a V = (-ből G L-ben elérheő cúcok, -ből G L-ben nem elérheő cúcok) vágá S-T élei L egy rézhalmazá adják. Azaz a minimáli zeparáló halmaz megkapjuk, ha vezük az az -vágá, amely S-T élei a legkeveebben vannak. Máréz min c(v) = min { xy : x S, y T }. V vágá V vágá Özegezve min{c(v) : V egy -vágá} = min{ L : L E( G), G L-ben ninc ú}. Az MFMC-éel kövekezménye a Menger-éel. A éelben az alapgráf irányíoága nem lényege. 8. Kövekezmény (Menger éele (irányíalan gráfban élfüggelen uakra vonakozó váloza)). Legyen G egy irányíalan gráf, é, ké pon a gráfban. Ekkor max{k :P,..., P k éldizjunk uak} = = min{ L : L E(G), G L-ben ninc ú}. Cak vázoljuk ennek egy leheége igazoláá: Legyen G az a gráf, amelye G- ből úgy kapunk, hogy minden e = xy élé helyeeíjük ké éllel: egy xy é egy yx éllel (azaz az e él oda-viza irányío ké példányával). Írjuk fel az MFMC-éel. A maximáli folyamérék kombinaoriku leíráánal kell egy kié óvaonak lennünk. Vegyünk egy f : E( G) {0, } opimáli folyamo é az ez leíró F élhalmaz. Ez egyzerűvé eheő egy mohó algorimual. Ez úgy alkalmazzuk, hogy az odaviza menő élpároka (keő hozú irányío köröke) dobjuk el F -ből. Ha ezek 4-7
elfogyak, akkor fejezzük be az egyzerűvé éel. Legyen F 0 a kapo élhalmaz. (ebben minden eredei élnak maximum egy példánya zerepel). F 0 éldizjunk -uak élhalmazainak uniója. Ezek G-ben megfelelnek -uak élhalmazainak. Ezek előzee előkézüleeink mia éldizjunk uak leznek G-ben. (Az előkézüleek nélkül ez nem udnánk.) Azaz a maximáli folyamérék éppen a bizonyíandó egyenlőég bal oldala. A ovábbi réze a bizonyíának eljeen analóg az irányío eeel. Továbbá úrendzerünk éldizjunkága helyeeíheő az úrendzer belő ponhalmazainak páronkéni dizjunkágára vonakozó feléellel. 9. Kövekezmény (Menger éele (ponfüggelen uakra vonakozó válozaok)). (i) Legyen G egy irányío gráf, é legyen, ké pon a gráfban. Tegyük fel, hogy ninc irányío él, a gráfban. Ekkor max{k :P,..., P k ponfüggelen ú} = = min{ U : U V ( G)\{, } é G U-ban ninc ú}. (ii) Legyen G egy irányíalan gráf, é legyen, ké pon a gráfban. Tegyük fel, hogy ninc él a gráfban. Ekkor max{k :P,..., P k ponfüggelen ú} = = min{ U : U v( G)\{, } elválazja -e é -}. Imé cak vázoljuk mi a eendő, ha ezen válozao zerenénk a feniek uán igazolni. (i)-hez legyen G az a gráf amely G-ből nyerünk a kövekező módon: Legyen V ( G ) = {, } {x be, x ki : x V ( G) {, }}. Minden e = xy E( G) élnek feleljen meg egy e = x ki, y be él (legyen ki = be = é ki = be = ). E( G ) élhalmaz alkoák ezek az élek é az { x be x ki : x V ( G) {, }} élek. Írjuk fel az MFMC-éel G gráfra. A kapo ké egyenlőég ké oldaláról láuk be, hogy a bizonyíandó egyenlőég egy-egy oldalával egyenlők. (ii)-hez korábbi öleeinke kell özegezni. A rézleek kidolgozáá az érdeklődő hallgaókra bízzuk. 4-8