Problem maksimalnog toka
U teoriji optimizacije Problem maksimalnog protoka uključuje nalaženje podesnog protoka kroz jedno-izvornu jedno-završnu transportnu mrežu koja je maksimalna.
Problem maksimalnog protoka se može posmatrati kao specijalni slučaj kompleksnijih problema transportnih mreža kao što je problem kruženja. Maksimalna vrednost s-t toka(odnosno toka od izvora ka završnom toku je jednak minimalnom kapacitetu s-t preseka(odnsno preseka od s do t) u mreži, kao što je navedeno u maksimalni-protok minimalni-presek teoremi. _TOC_
Istorija uredi
Problem Maksimalnog toka je prvi put formulisan 1954 od strane T. E Harris kao pojednostavljen model toka sovjetske železnice[1]. U 1955. godini Lester R. Ford. Jr i Delbert R. Fulkerson napravili su prvi poznati algoritam Ford-Fulkerson algoritam.[2][3]
Tokom vremena otkrivena su razna poboljšana rešenjaProblema maksimalnog protoka, posebno algoritam najraće promene puta od Edmondsa i Karpa i nezavisno Dinitz-a. Algoritam blokiaranja toka od Dinitz-a. Algoritam guranja-oznake od Goldberg-a i Tarjan-a. Binarno blokiranje toka Goldberg-a i Rao-a. Algoritam električnog toka Kristiano, Kelner, Madri i Spielman-a nalazi otprilike optimalan maksimalni tok , ali radi samo sa neusmerenim grafovima.
Definicija uredi
Neka je N=(V, E) mreža sa s, t∈V čvorovima koji su izvor i ponor od N respektivno Kapacitet čvora je slikanje c:E→R+ gde je Cuv ili C(u, v). Predstavlja makcimalan protok kroz čvor. Protok je slikanje f:E'→R+ gde je fu, v ili f(u, v) pod utiskom ograničenja:
1.fuv≤cuv za svako (u, v)∈V(Ograničenje kapaciteta:protok kroz čvor ne može da nadmaši njegov kapacitet)
2.Σu:(u, v)∈Ef(u, v)=Σu:(u, v)∈Efsv za svako v∈B\{s, t}(Konzervacija protoka:suma protoka koja ulazi u čvor mora da bude jednaka sumi protoka koja izlazi iz čvora , osim izvora i ponora).
Vrednost protoka je deFinisana jednakošću |f|=Σv:(s, v)∈Efsv gde s je izvor od N. Predstavlja količinu protoka koja prolazi od izvora do ponora.
u Problemu maksimalnog protoka treba maksimizovati |f| , tako da postoji što više protoka od s do t.
Rešenja uredi
Mozemo da definišemo rezidualni graf koja daje sistematični način za traženje unapred-unazad operacije. da bi mogao da se nađe maksimalni protok.
Sa zadatom transportnom mrežom G , i protokom f u g , možemo da deFinišemo rezidualni graf Gf od G sa respektom po f kao što sledi:
1. Skup čvorova od Gf je isti kao i G.
2. Svaki čvor e=(u, v) od Gf je sa kapacitetom od Ce-F(e).
3. Svaki čvor e'=(v, u) Gf je sa kapacitetom od f(e).
Sledeća tabela prikazuje algoritme za rešavanje problema maksimalnog protoka.
Metoda | Kompleksnost | Opis |
Linearno programiranje | Ograničenja su zadata sa definicijom legalnog protoka. | |
ford-fulkerson algoritam | O(maks f) | Sve dok postoji putanja kroz Rezidualni graf, poslati minimum preostalih kapaciteta kroz putanju. Algoritam radi camo ako su sve težine celi brojevi. Inače je moguće da ford-fulkersonov algoritam neće konvergirati ka maksimalnoj vrednosti. |
Edmonds-Karp algoritam | O(VE2) | Specijalizacija ford-fulkerson algoritma , nalaženje uveličavajuće putanje sa pretragom grafa u širinu. |
Dinitcovo blokiranje protoka algoritma | O(V2E) | U svakoj Fazi algoritma gradi se slojevit graf sa pretragom u širinu u rezidualnom grafu. Maksimalni protok u slojevitom grafu može biti izračunat u O(VE) vremenu, a maksimalni broj Faza je n-1. U mrežama sa jediničhim kapacitetima , Dinitcov algoritam se završava u O(Ekoren(V)) |
Generalni puš-relabel algoritam maksimalnog protoka | O(V2E) | Puš-relabel algoritam održava predtok takođe tok funkcije sa mogućnošću viška u čvorovima. Algoritam se izvršava dok postoji čvor sa viškom takođe aktivnim čvorom u grafu. Puš operacija povećava protok na rezidualnim granama , a visina na kontrolama grafa čije se rezidualne grane mogu "gurnuti“. Visina funkcije je promenjena sa relabel operacijom. Korektna definicija ovih operacija garantuje da je rezultujući protok funkcije je maksimalni protok |
Puš-relabel algoritam sa fIfO pravilom selekcije čvora | O(V3) | puš-relabel algoritam varijanta koja uvek bira najskorije korišćen aktivni čvor i izvodi puš operacije dok ostatak nije pozitivan ili dok ne postoji prihvatljiv ostatak grana od ovog čvora |
Dinitcovo blokiranje protoka algoritma sa dinamičkim drvetom | O(VElog(V)) | Strustura podataka dinamičkog drveća ubrzava izračunavanje maksimalnog protoka u slojevitom grafu do O(E log(B)) |
Puš-relabel algoritam sa dinamičkim drvetom | O(BElog(B2/E)) | Algoritam gradi drveća ograničehe veličine na rezidualnom grafu s obzirom na visinu funkcije. Ova drveća daju više-nivoa puš operacije |
Binarno blokiranje protoka sa dinamičkim drvetom | O(Emin(V2/3/sup>, koren(E))log(V2/E)log U) | Vrednost U odgovara maksimumu kapaciteta mreže. |
MPM(Malhotra, Pramodh-Kumar i Maheshvari) Algoritam | O(B3) | |
Džim Orlinov + KRT(King, Rao, Tarjan) Algoritam | O(VE) | Orlinov algoritam rešava problem maksimalnog protoka u O(VE) vremenu za m≤O(h(16/15)-e) dok ga KRT rešava u O(VE) za m>n1+e |
Teorema integralnog toka uredi
Po teoremi integralnog toka:
Ako svaki čvor u transortnoj mreži ima integralni kapacitet , onda postoji integralni maksimum protoka.
Upotreba uredi
Više-izvorni više-ponorni problem maksimalnog protoka
sa zadatom mrežom N=(V, E) sa skupom izvora S={s1, ..., sn} i skup ponora T = {t1, ..., tn} umesto samo jednog izvora i ponora Treba da nađemo maksimalni protok preko n. Možemo da transformišemo više-izvorni, više-ponorni problem u problem maksimalnog protoka dodavanjem integrisanog izvora koji se povezuje za svaki čvor u S i integrisani ponor za koji su svi čvorovi iz T povezani(Takođe poznati kao super-izvor i super-ponor)Sa beskonačnim kapacitetom na svakoj grani(videti figuru 4.1.1).
Pokrivač minimalne putanje u direktnom acikličnom grafu
Sa zadatim grafom G=(V, E) treba da nađemo minimalni broj putanja da pokrijemo svaki čvor u V. Možemo da konstruišemo bipartitivni graf G=(Vizlazno∪Vulazno, E) od G gde:
1. Vizlazno={v∈V: v ima pozitivan izlazni stepen}.
2. Vulazno={v∈V: v ima pozitivan ulazni stepen}.
3. E = {(u, v)∈(Vizlazno, Vulazno): (u, v)∈E}.
Onda može biti prikazano preko Konigove teoreme G ima usaglašenu veličinu od m samo ako postoji n-m putanja koji pokrivaju svaki čvor u grafu G gde je n broj čvorova u G. Dakle problem se može rešiti nalaženjem maksimalnog broja uparivanja u G.
Maksimalna brojnost bipartitivnog uparivanja
Sa zadatim bipartitivnom grafom G=(Z∪Dž, E) Treba da nađemo maksimalni broj povezivanja u G , to je povezivanje koje sadrža maksimalni mogući broj grana. Ovaj problem se može trasformisati u problem maksimalnog protoka konstruisanjem mreže N = (Z∪Dž∪{s, t}, E' } gde:
1. E sadrži grane u G usmerene od Dž do Z
2.(s, dž)∈E' za svako dž∈Dž i (z, t)∈E' za svako z∈Z
3.c(e)=1 za svako e∈E'
Onda Maksimalna vrednost Protoka u N je jednaka veličini maksimalnog uparivanja u G.
Problem Maksimalnog protoka sa kapacitetom čvorova
U zadatoj mreži N=(V, E) gde posotji kapacitet za svaki čvor , kao i za svaku granu postoji preslikavanje c:V→R+ obeleženo sa c(v) tako da protok f mora da ispunjava uslove ograničenja kapaciteta kao i konzervacije protoka i takođe ograničenje kapaciteta čvorova.
Σi∈V fiv≤c(v) za svako v∈V\{s, t}
drugim rečima količina protoka koja prolazi kroz čvor ne može da nadmašuje njegov kapacitet.
Da bi se našao maksimalni protok kroz N Mo+emo da trnsformišemo problem u prvobitni problem maksimalnog protoka tako što ćemo da proširimo N. Prvo svaki v∈V zamenimo sa vulazno i vizlazno , gde je vulazno povezano granama koje ulaze u v , a vizlazno je povezano granama koje izlaze iz v, onda pridodati kapacitet c(v) grani koja povezuje vulazno i vizlazno(videti figuru 4.4.1 ali opaziti da su vulazno i vizlazno pogrešno zamenjeni). U ovoj proširenoj mreži ograničenje kapaciteta čvorava je uklonjeno pa se problem može tretirati kao prvobitni problem maksimalnog protoka.
Maksimalna nezavisna putanja
Sa zadatim usmerenim grafom G=(V, E) i dva čvora s i t , treba da nađemo maksimalni broj nezavisnih putanja od s do t. Dve putanje su nezavisne ako nemaju zajednički čvor osim s i t. Možemo da konstruišemo mrežu N=(V, E) od grafa g sa kapacitetima čvorova gde:
1.s i t su izvor i ponor od N u tom redosledu.
2.c(v)=1 za svako v∈V
3.c(e)=1 za svako e∈E
Onda je vrednost maksimalnog protoka jednaka Maksimalnom broju putanja od s do t.
Maksimalna putanja disjunktnih grana
Sa zadatim usmerenim grafom G=(V, E) i dva čvora s i t treba da nađemo maksimalni broj putanja sa disjunktnim granama od s do t. Ovaj problem možemo da transformišemo u problem maksimalnog protoka konstruisanjem mreže N=(V, E) iz G gde su s i t izvor i ponor (u tom redosledu) i svakoj grani pridružimo jedinični kapacitet.
Vidi još uredi
Reference uredi
- ^ Aleksander Schrijver,"O Istoriji transportacije i problema maksimalnog protoka"
- ^ ford L. R., JR;Fulkerson D. R. "Maksimalni protok kroz mrežu"
- ^ ford L. R., JR;fulkerson D. R. "Protok u mreži"