250 likes | 370 Views
Hálótervezés. Készítette: Kosztyán Zsolt Tibor kzst@almos.vein.hu kzst@vision.vein.hu http ://vision.vein.hu/~kzst/oktatas/halo/index.htm. 3. Szeparáló halmazok.
E N D
Hálótervezés Készítette: Kosztyán Zsolt Tibor kzst@almos.vein.hu kzst@vision.vein.hu http://vision.vein.hu/~kzst/oktatas/halo/index.htm 3.
Szeparáló halmazok • Egy egyszerű, összefüggő gráf éleinek F részhalmazát szeparáló él halmaznak mondjuk, ha F éleket a gráfból elhagyva a gráf nem lesz összefüggő. • Egy egyszerű, összefüggő gráf csúcsainak V részhalmazát szeparáló csúcspont halmaznak mondjuk, ha a V csúcsokat elhagyva a gráfból a gráf nem lesz összefüggő.
Vágás, összefüggőség • Egy G gráf F szeparáló él halmazát vágásnak nevezzük, ha F-nek nincs olyan valódi F' részhalmaza, amely szintén G szeparáló él halmaza volna. • Egy G gráf él szerinti összefüggősége e(G) az a legkisebb szám, amelyre teljesül, hogy létezik G-nek e(G) darab olyan éle, amelyeket törölve G-ből a megmaradt gráf már nem összefüggő vagy a megmaradt gráf a triviális gráf.(pl. itt e(G)=1)
Páros gráfok • Azt mondjuk, hogy egy G=(N,A) gráf páros gráf, ha N1,N2 halmaz, melyre N1N2=N, N1N2=, és (n1,n2)A esetén • ha n1 N1 , akkorn2 N2 • ha n1 N2 , akkorn2 N1
Párosítás - fogalmak • A G páros gráf éleinek M részhalmazát párosításnak mondjuk, ha M bármely élének nincs közös végpontja. • Más szóval, M elemei párosítják (egymáshoz rendelik) a G páros gráf csúcspontjait. M-t teljesnek mondjuk ha M lefedi G csúcsait, s maximálisnak, ha nem létezik M-nél nagyobb elem számú M' párosítása G-nek. • A G gráf éleinek M halmazát függetlennek mondjuk, ha M bármely két élének nincs közös végpontja. Az Mfüggetlenél halmazt teljesnek mondjuk, ha M végpontjai között G minden pontja szerepel. Az M elemei két azonos számosságu részhalmazra bontják G pontjait, ezért nyilván igaz a következő állítás.
Párosítás – a Magyar módszer • Tegyük fel hogy a páros gráfunk csúcsai N1 ill. N2 nem üres diszjunkt halmazoknak. Legyen adott G-nek egy M párosítása (M lehet üres is). G-nek valamely e1,e2,e3,e4,...,ek útját alternáló útnak fogjuk nevezni, ha az élek felváltva elemei M-nek illetve (A\M)-nek, például e1M, e2M, e3M, e4M,...., N1 N2 Legyen M’ a G=(N,A) gráf egy párosítása. Ekkor egy olyan M’-alternáló út, amelynek mindkét végpontja párosítatlan, M’-re nézve javító út, vagy röviden M’-javító út.
Párosítás – a Magyar módszer • N1’,N2’ jelöli N1 ill. N2M által le nem fedett pontjait. Ha találunk olyan alternáló e1,e2,e3,e4,...,ek utat, mely N2’-ből indul és N1’-ben végződik, akkor az e1,e2,e3,e4,...,ek út M-ben lévő páros indexű éleit cseréljük ki a nem M-ben lévő páratlan indexűekre. • Az így nyert új M' párosítása G-nek és M'-nek eggyel több eleme van mint M-nek. A következő lépésben meghatározzuk az M'-höz tartozó N1’’,N2’’ halmazokat és keressünk olyan alternáló utat, mely N2’’-ből indul és N1’’-ben végződik.
Párosítás – a Magyar módszer • Az alternáló út páros indexű éleit M'-ből törölve, s M'-höz csatolva az út páratlan indexű éleit a G-nek egy M'' párosítását kapjuk, melynek eggyel több eleme van, mint M'-nek. Az algoritmust addig lehet folytatni amíg találunk a fent említett típusú alternáló utakat. • Meg lehet mutatni, hogy mikor már nem lelünk alkalmas alternáló utat az utolsó lépésben kapott M(n) párosítás maximális párosítás.
Maximális folyamok - fogalmak • Adott egy G=(N,A) súlyozott, irányított gráf és ennek két különböző pontja, s és t, melyeket forrásnak és nyelőnek nevezünk. (A forrásból csak kiinduló, a nyelőbe csak bejövő élek mennek). Adott még egy az éleken értelmezett c:AR+ pozitív értékű kapacitásfüggvény. Ekkor G=(N,A) gráfot hálózatnak nevezzük. • Az f:N2 R függvényt folyamnak hívjuk, ha teljesülnek a következők: f(n1,n2)=-f(n2,n1) (n1,n2)A, n1,n2N f(n1,n2)c(n1,n2), n1,n2N
Maximális folyamok - fogalmak • Ha f(n1,n2)=c(n1,n2) akkor az (n1,n2) párat telitettnek nevezzük. Az f folyam értéke, melyet |f|-fel jelölünk, az s-ből kimenő összes folyam, azaz • Legyen G=(N,A) egy hálózat. Legyen adott a hálózatban egy s forrás és egy t nyelő. Legyen N1,N2N egy partícója N-nek, vagyis N1N2=N, és N1N2 =. Legyen továbbá sN1, tN2.Ekkor N1,N2 halmazt s,t-vágásnak hívjuk. Az N1,N2 kapacitásán mennyiséget értjük.
Maximális folyamok - fogalmak • Ha f egy folyam G-hálózaton, akkor definiáljuk az N1,N2 vágáson áthaladó folyamot. Ezt jelöljük f(N1,N2)-vel. ahol • Tetszőleges N1,N2,s,t - vágásra igazak a következők: • |f|=f(N1,N2) • |f| c(N1,N2) és az egyenlőség elérhető
Maximális folyamok - fogalmak • Adott egy G=(N,A) hálózat egy s forrás, és egy t nyelő. Adott továbbá egy c:AR+ pozitív értékű kapacitásfüggvény. Jelölje r:AR maradék kapacitás függvényt, ahol n1,n2N esetén r(n1,n2):=c(n1,n2)--f(n1,n2). Az f folyamhoz tartozó javító gráf a Gf=(N,Af) az élein értelmezett r kapacitás függvénnyel, ahol Af ={(n1,n2)| n1,n2N, r(n1,n2)>0}.
Maximális folyamok - fogalmak • Adott egy G=(N,A) hálózat egy s forrás, és egy t nyelő. Adott továbbá egy c:AR+ pozitív értékű kapacitásfüggvény.Legyen továbbá f egy folyam G-n. A Gf-beli irányított s,t utakat növelő utaknak hívjuk. Egy növelő úton szereplő élek maradék kapacitásainak minimumát az úthoz tartozó kritikus kapacitásnak az úthoz tartozó éleket kritikus éleknek nevezzük.
Maximális folyamok – a probléma • Adott egy G=(N,A) hálózat egy s forrás, és egy t nyelő. Adott továbbá egy c:AR+ pozitív értékű kapacitásfüggvény. Keressünk a hálózathoz f:N2R maximális folyamot.
Ford-Fulkerson algoritmus • f0,f1,..,fk=f* folyamok sorozatát konstruáljuk a következő képpen: • f0 folyam a azonosan nulla folyam. • Az fi birtokában fi+1–et úgy kapjuk, hogy Gfi javító gráfban keresünk egy javító utat az út mentén a di kapacitással növelve kapjuk az fi+1–folyamot. Érvényes tehát az|fi+1|=|fi|+diösszefüggés. • Akkor álunk meg, ha a folyamhoz már nem létezik növelő út.
Edmondson – Karp heurisztika O(m2n) • A folyam növelésére mindig a legrövidebb, vagy a legkevesebb élből álló növelő utak egyikét válasszuk.
Hálózatok alsó korlátokkal • Adott egy G=(N,A) hálózat egy s forrás, és egy t nyelő. Adott továbbá egy c:AR+ pozitív értékű kapacitásfüggvény. Keressünk a hálózathoz f:N2R maximális folyamot, úgy hogy adott egy k:AR+ függvény, melyre teljesül: k(n1,n2)f(n1,n2)c(n1,n2) (n1,n2)A, n1,n2N • Ekkor a feladat visszavezethető az előző feladatra.
Hálózatok alsó korlátokkal – megengedett megoldás keresése • Tegyük fel, hogy G hálózatban s,t között nincs él. Ha van, akkor konstruáljunk egy olyan G’ hálózatot, melyben s,t-között nincs él: iktassunk be egy plusz csúcsot s, és t közé.
Hálózatok alsó korlátokkal – megengedett megoldás keresése • Készítsünk G” alsó korlátok nélküli hálózatot a következőképpen: • Vegyünk fel a G=(N,A) pontjai mellé egy új forrást és egy új nyelőt; legyenek ezek S és T. G”=(N”,A”), N”=N{S,T}. A”-t úgy képezzük, hogy A éleit megtartjuk, S-ből valamennyi csúcsba (T-n kívül) élet húzunk, valamint valamennyi csúcsból (S-en kívül) T-be húzunk élet, valamint t-ből s-be végtelen kapacitással élet húzunk.
Hálózatok alsó korlátokkal – megengedett megoldás keresése • (n1,n2)A esetén c”(n1,n2):=c(n1,n2)-k(n1,n2) • (n1,n2)A” esetén • (n1,n2)A” esetén
Hálózatok alsó korlátokkal – megengedett megoldás keresése • G hálózatban akkor és csak akkor van megengedett megoldás, ha G” hálózatban maximális folyamának értéke: • Ha létezik megengedett megoldás, akkor ebből a minimális folyamból kiindulva konstruálható maximális folyam.