folyamok

Upload: aron-may

Post on 23-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Folyamok

    1/6

    1. Halozati folyamok

    Defincio: LegyenG = (V, E) egy iranytott graf, melynek minden (u, v) elenadott egy nemnegatv c(u, v) kapacitas. A grafnak kituntetjuk ket pontjat:az s termelot es a t fogyasztot. Ekkor a (G; c; s; t) negyest halozatnaknevezzuk.

    Szemlelteteskeppen feltehetjuk, hogy a halozattal egy vzvezetekrendszertabrazolunk. A halozat minden egyes iranytott elet egy vezeteknek kepzelhet-juk el, amin keresztul a vz folyik. Minden egyes vezeteknek meghatarozottkapacitasa van, ami a legnagyobb vzmennyiseg, ami a vezeteken at tud foly-ni. A graf pontjai a vezetekek elagazasi pontjai, amelyekben, ha nem a

    termelorol es a fogyasztorol van szo, vz nem gyulhet ossze. Vagyis a befolyovzmennyisegnek egy pontban meg kell egyeznie a kifolyo vzmennyiseggel.A halozati folyam ezen tulajdonsagat megmaradasi szabalynak nevezzuk.

    Defincio: Legyen (G; c; s; t) egy halozat. Halozati folyamnak (vagycsak folyamnak) nevezzuk a kovetkezo ket tulajdonsaggal rendelkezof :ER+ fuggvenyt:Kapacitas megszortas: f(u, v) c(u, v) teljesul minden (u, v) E-re.Megmaradasi szabaly:

    {f(u, v)|(u, v) E}

    {f(v, u)|(v, u) E}=

    0 minden u V {s, t}-re.

    Mivel celunk az s pontbol a leheto legtobb vzmennyiseg eljuttatasa t-be, ezert a tovabbiakban feltehetjuk, hogy az s pontba nem lep be el, at pontbol pedig nem lep ki el. Ekkor a folyam erteke egyenlo az s-bolkilepo folyamertekek osszegevel (ami termeszetesen egyenlo a t-be belepofolyamertekek osszegevel.

    Defincio: Vagasnak nevezunk egy X Vponthalmazt, melyre s Xde t / X. Az X vagas erteke az X-bol kilepo elek kapacitasainak azosszege. Az Xvagas erteket c(X)-szel jeloljuk.

    1

  • 7/24/2019 Folyamok

    2/6

    Pelda:

    ts

    a b

    c

    d e

    2/5

    3/8

    3/6 2/4

    1/5

    1/1

    1/4 0/2

    1/22/3

    Az abran egy halozati folyamra lathatunk peldat. Az elekre rt szamokkozul az elso a folyamerteket, a masodik pedig az el kapacitasat jeloli. Latha-to, hogy minden elen legfeljebb akkora a folyamertek, mint az el kapacitasa;tovabba a termelo illetve a fogyaszto kivetelevel minden pontba ami befolyik,az tovabb is folyik. A folyam erteke 6, hiszen s-bol osszesen 6 egysegnyi vzlep ki.

    Szamtsuk ki az (s,b,d) vagas erteket! Ehhez az osszes olyan elnek, mely-nek a kezdopontja az (s,b,d) pontok valamelyike, a vegpontja viszont nem(!),ossze kell adni a kapacitasait. Ezek az elek az sa, sc, dc, de, bt elek, gy az(s,b,d) vagas erteke 3+6+2+1+8=20.

    Azt mondjuk, hogy egy folyam maximalis, ha az erteke maximalis.Minimalis vagasnak nevezunk egy vagast, ha az erteke minimalis. Amaximalis folyamok es a minimalis vagasok kozott szoros kapcsolat all fenn;nevezetesen a maximalis folyam erteke egyenlo a minimalis vagas ertekevel!A celunk a maximalis folyam meghatarozasa. Ehhez szuksegunk lesz meg ajavto ut fogalmara:

    Legyen mostfegy folyam. Legyen a grafbans = v0, v1, . . . , vk =t egy ut,amely nem feltetlenul halad az iranytas szerint. Az ut egye elet elore elnekhvjuk, ha e = (vi1, vi) valamely i-re. Hasonloan hatra elnek nevezzuk azut egy e elet, ha e= (vi, vi1) valamely i-re. Tegyuk fel, hogy az ut mindenelore elen f(e) < c(e), es minden hatraelen f(e) > 0. Az ilyen utat javto

    utnak hvjuk. Ha letezik javto ut, akkor a novelhetjuk a folyam erteketa kovetkezo modon: az elore eleken megnoveljuk a folyam erteket, a hatraeleken csokkentjuk a folyamerteket ugyanazzal a mennyiseggel. 2 dolograkell figyelnunk: mikor az elore eleken novelunk, akkor a kapacitas fole nemmehetunk; mikor a hatra eleken csokkentunk, akkor 0 ala nem mehetunk.Formalisan megfogalmazva:

    legyen1=min(c(e) f(e)|eeloreel), 2=min(f(e)|e hatrael) es=min(1, 2). Az elore es hatra elek defincioja miatt >0. Az elore elekennoveljuk meg a folyam erteket -nal, a hatra eleken pedig csokkentsuk a fo-

    2

  • 7/24/2019 Folyamok

    3/6

    lyam erteket -nal. Konnyen lathato, hogy gy egy olyan folyamot kaptunk,

    melynek erteke -nal nagyobb a reginel.

    A kovetkezo abran javto utra lathatunk egy peldat:

    s

    a b

    t

    c

    d

    e f

    2/4

    2/7

    3/3

    3/3 4/5 3/3

    2/2

    1/4

    1/2

    1/1 1/5

    Az abran adott folyamra nezve az s a b d c e ft javtout, hiszen az sa, ab, ef, f t elek elore elek mind teltetlenek, a db, cd, ecelek pedig hatraelek, es mindegyiken pozitv a folyamertek. Az sa elen 2-velnovelhetnenk a folyamot, azabelen 5-tel novelhetnenk a folyamot, azef elen3-mal novelhetnenk a folyamot, az f t elen 4-gyel novelhetnenk a folyamot; adbelen 1-gyel csokkenthetnenk a folyamot, acdelen 4-gyel csokkenthetnenk afolyamot, az ec elen pedig 1-gyel csokkenthetnenk a folyamot; ezert a javtout minden elen 1-gyel valtoztatunk: az elore eleken 1-gyel megnoveljuk afolyamerteket, a visszaeleken pedig 1-gyel lecsokkentjuk.A javtas utan a kovetkezo folyamot kapjuk:

    s

    a b

    t

    c

    d

    e f

    3/3

    3/3 3/3

    2/2

    3/4

    3/7

    0/2

    3/5

    0/1

    2/4

    2/5

    Belathato, hogy egy f folyam pontosan akkor maximalis, ha nem letezikjavto utf-re nezve. Ebbol maris kapunk egy algoritmust a maximalis folyammegkeresesere:

    3

  • 7/24/2019 Folyamok

    4/6

    Ford-Fulkerson algoritmusa maximalis folyam keresesere:

    Legyen kezdetben a folyamertek minden elen 0. Amg az aktualis folyamranezve letezik javto ut, addig egy javto ut menten noveljuk a folyam erteket.Ha mar nem letezik javto ut, akkor a folyam maximalis.

    Ha mar meghataroztuk a maximalis folyamot, akkor a minimalis vagastis konnyen megkaphatjuk. Azon pontok halmaza ugyanis, amelyekbe megleteziks-bol javto ut, egy minimalis vagast hataroz meg.Az algoritmus mukodeset a kovetkezo peldan kovethetjuk nyomon:

    s

    a b

    t

    c

    d

    e f

    0/1

    0/4

    0/7

    0/3

    0/5 0/3

    0/2

    0/3

    0/2

    0/4

    0/5

    Kezdetben minden elen 0 a folyamertek. Ekkor peldaul az s-c-d-t ut egyjavto ut, melynek minden ele elore el. Az scesdtelek miatt 3 tudjuk novelnia folyam erteket, azaz az ut minden elen noveljuk a folyamerteket harommal.

    s

    a b

    t

    c

    d

    e f

    0/1

    0/4

    0/7

    0/3

    0/2

    0/2

    0/4

    0/5

    3/3 3/5 3/3

    A kovetkezo lepesben mondjuk megtalaljuk az s-e-c-d-b-t javto utat(termeszetesen mas javto utat is vehettunk volna). Ennek az utnak ismetminden ele elore el, es mivel az ec elen csak 1-gyel tudunk novelni, ezert azut minden elen 1-gyel noveljuk a folyamerteket.

    4

  • 7/24/2019 Folyamok

    5/6

    s

    a b

    t

    c

    d

    e f

    0/4

    0/7

    0/4

    0/5

    3/3 3/3

    1/2

    1/1

    4/5

    1/2

    1/3

    A kovetkezo lepesben vegyuk mondjuk az s-e-f-t javto utat. Ennekszinten minden ele elore el; se-n 1-gyel novelhetunk (hiszen mar folyik raj-ta 1!), ef-n 4-gyel, f t-n 5-tel, ezert mindharom elen eggyel noveljuk a fo-lyamerteket.

    s

    a b

    t

    c

    d

    e f

    0/4

    0/7

    3/3 3/3

    1/1

    4/5

    1/2

    1/3

    2/2

    1/4

    1/5

    Most az s-a-b-t javto uton a bt el miatt minden elen 2-vel novelhetjuk afolyamerteket.

    s

    a b

    t

    c

    d

    e f

    3/3 3/3

    1/1

    4/5

    1/2

    2/2

    1/4

    1/5

    2/4

    2/7

    3/3

    5

  • 7/24/2019 Folyamok

    6/6

    Meg mindig letezik javto ut, nevezetesen az s-a-b-d-c-e-f-t ut. Az sa,

    ab, ef es f t elek elore elek, ezeken az sa el miatt 2-vel lehetne novelni afolyamerteket; a db, cd es ec elek pedig visszaelek, ezeken pedig az ec elmiatt 1-gyel lehetne csokkenteni a folyamerteket. Igy az ut minden elen1-gyel valtoztatunk; az elore eleken 1-egyel noveljuk, a hatraeleken 1-gyelcsokkentjuk a folyamertekeket.

    s

    a b

    t

    c

    d

    e f

    3/3

    3/3 3/3

    2/2

    3/4

    3/7

    0/2

    3/5

    0/1

    2/4

    2/5

    Viszont most mar nem letezik t-be javto ut, gy ez a folyam maximalis,az erteke pedig 3+3+2.

    Adjunk meg egy minimalis vagast is! s-bol a-ba el tudunk jutni javtouton, hiszen az sa el elore el lenne es teltetlen. a-bolb-be is tovabb tudunkmenni javto uton, hiszen az ab el elore el lenne es teltetlen; vagyis megb-be is van javto ut sbol. b-bol t-be nem tudunk tovabb menni, hiszen a btel elore el es teltett; hasonloan b-bol d-be sem tudunk tovabbmenni, merta db el vissza el, es 0 ra jta a folyamertek. s-bol sem c-be, sem e-be nemtudunk javto uton eljutni, mert az sc es az se el is teltett. Igy javto utmar csak azs, a, bpontokba van, ezert ez a harom pont egy minimalis vagasthataroz meg. Erdemes kiszamolni, hogy ennek a vagasnak az erteke 8, amimegegyezik a maximalis folyam ertekevel. Ez altalaban is gy van:

    Tetel: A maximalis folyam erteke megegyezik a minimalis vagas ertekevel.

    6