matching

19

Upload: marijana-markov

Post on 07-Jul-2016

224 views

Category:

Documents


0 download

DESCRIPTION

Matching, graph

TRANSCRIPT

Page 1: Matching
Page 2: Matching
Page 3: Matching

Maksimalno sparivanje u proizvoljnim grafovima. Nije lako smanjiti redukovani slučaj u generalnom slučaju u flow problemu. Maksimalno poklapanje znači poklapanje maksimalnog kardinaliteta i neproširivo poklapanje nije uvek i maksimalno.

a) originalni graf;b) maksimalno sparivanje, ali maximum sparivanje je pod c)

1-faktor teorema

Kardinalnost sparivanja u grafu G=(V,E) ne može da premaši |V|/2, i sparivanje ove veličine postoji ako je |V| paran broj i G tad ima 1-faktor. U bipartitnom slučaju, 1-faktor se isto zove i perfektno sparivanje.

Sledi dokaz 1-faktor teoreme Tuta koji je karakterističan za pokazivanje postojanja perfektnog sparivanja.Rezultat je generalizacija Hall’s marriage teoreme.

Neka je G=(V,E) graf, gde je S podskup od V. Označavamo sa p(S) broj povezanih komponenti neparnog kardinaliteta u grafu G\S. Ako G ima perfektno sparivanje M, onda najmanje jedan vrh od svake neparne komponente( to je svaka povezana komponenta neparnog kardinaliteta) mora da bude incident sa jednom ivicom u M čiji je drugi vrh sadržan u S; s tim je p(S)<= |S|. Teorema navodi jedan potreban uslov koji je zapravo i dovoljan za sam dokaz.

T1 (1-faktor teorema)

Neka je G = (V,E) graf. Tada G ima perfektno sparivanje akko ima ispunjene sl. uslove:

(T)p(S)<=|S| za svaki podskup S od V, gde je p(S) broj neparnih komponenti od G\S.

Dokaz:Neka je S = ∅. Uslov (T) je neophodan i on nam pokazuje da je |V| je paran, |V|=2n. Upotrebićemo indukciju po n.Slučaj za n=1 je trivijalan. p(S)≡|S| (mod 2) za svako S ⊆V.

Page 4: Matching

Slede dva slučaja:1. p(S) <|S| za sve podskupove S sa 2 ≤ |S| ≤ 2n.

U pogledu teoreme p(S) ≤ |S| − 2. Biramo neki vrh e = uv od G i razmatramo graf H=G\A, gde he A={u,v}. Za svaki podskup S od V\A, neka je p’(S) broj neparnih komponenti H\S. Pretpostavimo da takav skup zadovoljava p’(S)>|S|. Tada

p(S ∪A) = p’(S) >|S| = |S ∪A| − 2,pa s tim, p(S ∪A) ≥ |S ∪A| što je kontradikcija. S tim, uvek je p(S)≤|S|, pa H zadovoljava uslov (T). Inducijskom hipotezom, H priznaje perfektno sparivanje M. Tada je M ∪ {e} perfektno sparivanje za G.

2. Postoji podskup S od V sa p(S) = |S| ≥ 2. Izaberimo maksimalan podskup R sa ovim prioritetom. Svaka komponenta G\R mora biti neparna. Pretpostavimo suprotno, i dopustimo da je C parna komponenta. Tada možemo dodati vrh a od C za R za dobivanje dalje neparne komponente, koja je kontradiktorna maksimalnosti od R.

Sada, neka je R’ skup svih (neophodno neparnih) komponenata od H=G\R i razmatramo bipartitan graf B sa skupom vrhova R R’ za koji vrh r u R i komponenta C u R’ su susedi akko tamo je ivica rc u G sa cC. Pokažimo da je B kompletno sparivanje. Neka je J skup neparnih komponenti od H i neka je T skupivica u R koje su susedne nekoj komponenti u J. Sada uslov (T) za G implicira |J| ≤p(T) ≤ |T|,tako da je B kompletno. Sada, možemo izabrati vrh x iz svake komponente i udružiti sa vrhom yx iz R tako da je xyx uvek ivica u G i svi yx su raydvojeni. Ovo udružuje sparivanje M od G. Za svaku komonentu C, indukovani graf Gc na skupu vrhova C\x je perfektno sparivanje Mc. Tada unija M i svo sparivanje Mc će sklopiti željeno sparivanje G.Na kraju proverićemo uslov (T) za Gc . Za poskup W od C\x, neka je pc(W) broj neparnih komponenti Gc \W. Pretpostavimo pc(W)>|W| za svaki podskup W. Teorema implicira pc(W)>=|W|+2, pa p(W ∪R ∪ {x}) = pC(W) + p(R) −1 ≥ |W| + |R| + 1 = |W ∪R ∪ {x}|.Ovoa je kontradiktornost maksimalnosti R. S tim, (T) zaista sadrži Gc i naš dokaz je završen.

Povećanje putevaKoristićemo uvećavanje puteva sa poštovanjem datog(ne još maksimalnog) sparivanja M u grafu G=(V,E) za konstruisanje sparianja M’ veće kardinalnosti. Razmotrimo bipartitan slučaj. Imamo maksimalno sparivanje upotrebom maksimalnog protoka na odgovarajućoj 0-1 mreži. Sada želimo da opišemo uvečanje puteva koji se pojavljuju unutar procesa G. Neka je M sparivanje kardinalnosti k u G, i sa f označimo odgovarajući 0-1 protok. Tada uvećavajući put izgleda :s−→v1 −→v2 ←−. . . −→v2n−2 ←−v2n−1 −→v2n −→t,gde su v1 i v2 vrhovi koji nisu incidentni sa bilo kojim zasićenom ivicom i gde su ivice v2i,v2i+1

pozadinske ivice (one su zasićene). Ivice v1 i v2n su izložene sa poštovanjenjem M, i ivice v2i,v2i+1

su sadržane u M kao put P čije ivice pripadaju u M naizmenično ivicama ne sadržanih u M. Takav put je nazvan ivećavajuči put ako nj start i end vrh su najdalje izloženi vrhovi.

Page 5: Matching

Primer:

Podebljane ivice u grafu G, prikazane u slici 1. ispod, formiraju sparivanje M. Vrhovi a, f i y su izloženi sa poštovanjem M, i sekvence (a,b,c,d,e,f) i (a,b,c,u,v,w,x,y) definišu uvećavajuće puteve P i P’. Menjajući uloge ivicama i neivicama M na putu P’ sklapa se sparivanje M’ kardinalnosti |M|+1, prikazano na slici 2., gde zamenjujemo M sa MP’, gde označava simetričnu različitost. M’ je maksimalno sparivanje G, kao je tamo samo jedan izložen vrh.

Slika 1.(graf G sa sparivanjem M)

Page 6: Matching

Slika 2.(sparivanje M’=MP’)

T2 (teorema uvećanja puta)

Sparivanje M u grafu G je maksimalno akko ne postoji povećavajući put u odnosu na M.

Dokaz:

Neka je M maksimalno. Ako bi postojao uvećavajući put P u G, mogči bi zameniti M sa M’=MP, tada M’ je sparivanje kardinalnosti |M|+1, što je kontradikcija.

Sada, pretpostavimo da M nije maksimalno sparivanje, pokazaćemo postojanje uvećavajučeg puta i razmotrićemo podgraf H od G određen ivicama MM’. Svaki vrh od H ima stepen najviše 2, takođe, vrh v ima stepen 2 i incident je sa tačno jednom ivicom iz M i jednom iz M’. Tada, povezujuća komponenta u H, koja sadrži više od jednog vrha mora biti ili cikl parne dužine(gde ivice M i M’ naiymenične) ili put formiran sa smenjujućom sekvencom ivica. Ako M’ sadrži više ivica nego M, tada postoji bar jedan put P čija prva i poslednja ivica pripada M’. Tada P je uvećavajući put u odnosu prema M, gde su mu završni vrhovi izloženi.

Lema1

Neka je G graf, M sparivanje u G, i u izložen vrh sa poštovanjem prema M. Neka je P uvećavajući put, i M’=MP. Ako nema uve’avaju;eg puta u odnosu na M započetog u u, tada ne postoji uvećavajući put u odnosu na M’ koji započinje u u , takođe.

Dokaz:

Neka su v i w završni vrhovi od P, zapis u≠v, w. Pretpostavimo da postoji uvećavajući put P’ u odnsou na M’ koji počinje u u. Ako P i P’ nemaju zajedničkih vrhova, tada P’ je uvećavajući put

Page 7: Matching

u odnosu na M, što je kontradiktorno pretpostavci. Sada, neka je u’ prvi vrh od P’ koji se nalazi isto i u P, i pustimo e da je jedina ivica od M’ incidentna u’. Tada u’ deli put P u dva dela, koji ne sadrže e. Pozovimo P’ iz u za u’ sa P’1 . Tada, P1P’1 je uvećavajući put u odnosu na M koji započinje u u , što je kontradiktorno. Dato na slici 3. :

Slika 3.

Naizmenična stabla i cvetovi

Prvi polinomski algoritam za određivanje maksimalnog sparivanja je poznat kao Edmondov algoritam, baziran na korišćenju uvećavajućih puteva po teoremi T2.

Algoritam1:

Neka je G = (V,E) graf sa temenima V = {1, . . . , n}. Algoritam konstruiše neproširivo sparivanje M opisano nizom mate: za ij ∈ M, mate(i) = j i mate(j) = i, gde je mate(k) = 0 za izložene temena k. Promenljiva nrex označava broj izloženih temena uzimajući u obzir M.

Procedure INMATCH(G; mate, nrex)(1) nrex ← n;(2) for i = 1 to n do mate(i) ← 0 od(3) for k = 1 to n − 1 do(4) if mate(k) = 0 and there exists j ∈ Ak with mate(j) = 0(5) then choose j ∈ Ak with mate(j) = 0;(6) mate(j) ← k; mate(k) ← j; nrex ← nrex −2(7) fi(8) od

Naš sledeći zadatak je da osmislimo efikasnu tehniku za načaženje augmentativnih putanja; ovaj problem je zapravo teži nego što nam se može činiti na prvi pogled. Počinjemo izborom izloženog temena r (uzimajući u obzir sparivanje M od G). Ako postoji izloženo teme s susedno sa r, možemo odmah proširiti M, tako što ćemo prosto dodati ivicu rs. Naravno, ovaj slučaj se ne može desiti ako je M konstruisano sa algoritmom 13.3.1.

Page 8: Matching

U suprotnom, uzimamo r kao početno teme za BFS i stavljamo sva temena a1, . . . , ap susedna od r u prvi sloj; primetimo da su sva tri temena zasićena. Kako tražimo alternativne putanje, stavljamo samo temena bi = mate(ai) u drugi sloj. Sledeći sloj se sastoji od svih temena c1, . . . , cq koji su susedni bi, i gde spajajuća ivica nije uvrštena u M. Nastavljamo na ovaj način; kao što ćemo uskoro videti, neke poteškoće ovde mogu nastati.

Ako naiđemo na izloženo teme u jednom od neparnih slojeva, tražimo povećavajuću putanju. Ovo povlaći sledeću definiciju: podstablo T od G sa korenom r se naziva alternirajuće stablo ako je r izloženo teme, i ako svaka putanja počevši od r jeste alternirajuća putanja. Temena u slojevima 0, 2, 4, su takozvana spoljna temena, a temena 1, 3, 5 su unutrašnja temena od T. Stoga alternirajuće stablo izgleda kao stablo prikazano na slici 4.

Slika 4. Alternirajuće stablo

Pretpostavimo da je sloj 2i – 1 već napravljen. Ako ni jedno teme u ovom sloju nije izloženo, sledeći sloj je lako napraviti: prosto se dodaje teme w = mate(v) i ivica vw u T za svako teme v u sloju 2i −1. Poteškoće mogu nastati kad se konstruišu naredni slojevi unutrašnjih temena. Neka je x teme u sloju 2i, i neka je y ≠ mate(x) teme susedno x. Postoje 4 moguća slučaja:

Slučaj 1: y je izloženo (još nije sadržano u T). Tada nalazimo povećavajuću putanju.

Slučaj 2: y nije izloženo, i ni y niti mate(y) nisu sadržani u T. Tada stavljamo y u sloj 2i + 1 i mate(y) u sloj 2i + 2.

Slučaj 3: y se već nalazi u T kao unutrašnje teme. Zapazimo da dodavanje ivice xy ka T bi napravilo krug jednakih dužina u T; vidi sliku. Kako T već sadrži alternativnu putanju od r ka unutrašnjem temenu y,

Page 9: Matching

takve ivice bi bile suvišne za ovu svrhu. Kasnije ćemo pokazati da je ovo zaista tačno, da bi smo mogli da ignorišemo ovaj slučaj.

Slučaj 4: y je već sadržano u T kao spoljno teme. Primetimo da dodavanje ivice xy ka T bi napravilo krug neparne dužine 2k + 1 u T za koje ivice k primadaju M; vidi sliku

Page 10: Matching

Ovakvi krugovi se nazivaju cvetovi; ovi cvetovi – koji se naravno ne mogu javiti biparnom slučaju –uzrokuju teškoće prikazane iznad: ivice koje kreiraju cvet sa drvetom konstruisanim do te mere, ne mogu biti tek tako ignorisani. Npr razmotrimo cvet prikazan na slici. Svako teme a, b, c, d, e ,f mogu biti dosegnute preko dve različite alternativne putanje sa početkom od temena r: za jednu putanju, teme će biti spoljšnje, a za drugu putanju, teme će biti unutrašnje. Npr, a je unutrašnje teme u odnosu na (r, a), i spoljšnje teme u odnosu na (r, b, d, e, f, c, a). Pretpostavimo sada da postoji ivica ax za koje je x izloženo; tada (r, b, d, e, f, c, a, x) će biti povećana putanja. Ako prosto isključimo ivicu fc kada konstruišemo T, taja je vrlo moguće da nećemo naći povećanu putanju koristeći naš pristup (iako takva putanja zapravo postoji); graf G u slici pruđa jednostavan primer za ovaj fenomen.

Poteškoća nastale iz slučaja 4 se izbegavaju u algoritmu Edmonda tako što se cvetovi skupljaju ka jednim temenima. U kasnijoj fazi algoritma, cvetovi koji su bili skljupljeni, mogu se proširit. Ovo ćemo posmatrati u narednom delu.

U bipartidnom slučaju, konstruišuči alternativno stabo T ne predstavlja problem, pošto se ne mogu javljati ciklovi neparne dužine. Stoga nema cvetova, i jasnoj je za sva temena da li treba da se dodaju kao

Page 11: Matching

unutrašnji ili kao spoljašnja temena T−u: Sa i , sva temena od S koja su dostupna od r moraju biti spoljašnja temena, a sva temena od S’ dostupna od r moraju biti unutrašnja temena. Stoga posoji povećana putanja koja počinje kod r ako i samo ako odgovarajuće alternativno stablo sadrži izloženo unutrašnje teme. Zarad kompletnosti, sada predstavljamo algoritam za konstruisanje maksimalnog sparivanja u bipartidnom grafu koji koristi ovu tehniku. Čak iako je njena kompleksnost veća od kompleksnosti garantovane od teoreme 7.2.1, od nekog interesa je da postoji metod koji ne zavisi od tokova mreže. Štaviše ovaj algoritam biće osnova Mađarskog algoritma objašnjenog u poglavlju 14.

Algoritam 13.3.2. Neka je G = (V, E) bipartidni graf u odnosu na deo gde je

i predpostavljamo da je . Algoritam koji konstruiše maksimalno sparivanje M opisano sa nizom mate. Funkcija p(y) daje, za y ∈ S’, teme u S odakle je pristupljeno y−u.

(1) INMATCH(G; mate, nrex);(2) r ← 0;(3) while nrex ≥ 2 and r < n do(4) r ← r + 1;(5) if mate(r) = 0(6) then for i = 1 to m do p(i_) ← 0 od(7) Q ← ∅; append r to Q; aug ← false;(8) while aug = false and Q _= ∅ do(9) remove the first vertex x of Q;(10) if there exists y ∈ Ax with mate(y) = 0(11) then choose such a y;(12) while x _= r do(13) mate(y) ← x; next ← mate(x); mate(x) ← y;400 13 Matchings(14) y ← next; x ← p(y)(15) od(16) mate(y) ← x; mate(x) ← y; nrex ← nrex−2; aug ← true

Page 12: Matching

(17) else for y ∈ Ax do(18) if p(y) = 0 then p(y) ← x; append mate(y) to Q fi(19) od(20) fi(21) od(22) fi(23) od

Naravno, takođe je moguće koristiti prazno sparivanje za inicijalizaciju konstrukcije: naprosto zameni (1) i (2) sa

(1_) for v ∈ V do mate(x) ← 0 od(2_) r ← 0; nrex ← n;

ostavljamo čitaocu da dokaže sledeći rezultat.

Teorema 13.3.3 Neka je G = (V, E) bipartidni graf u odnosu na deo V = S U S’. Tada algoritam 13.3.2 određuje sa kompleksnošću O(|V ||E|) maksimalno sparivanje od G.

Balinski i Gonzales su dali algoritam za utvrđivanje maksimalnog sparivanja bipartidnog grafa koji se ne oslanja na povećane putanje; njihov algoritam takođe ima kompleksnost O(|V ||E|).

Edmondov algoritam

U ovom delu, G = (V,E) je uvek povezan graf sa datim inicijalnim sparivanjem M; predstavljamo algoritam za konstruisanje maksimalnog sparivanja po Edmondsu. Počinje konstruišući alternativno stablo T sa korenom r, kao što je prikazano u prethodnom delu. Ivice xy koje zatvaraju cikl jednake dužine (slučaj 3) biće ignorisane. Kada god naiđemo na ivice xy koje zatvaraju cvet B (slučaj 4) mi tada stajemo sa konstrukcijom T i sažmemo cvet B. Formalno, možemo ovu operaciju opisati kao kontrakciju G−a u odnosu na B ka manjem grafu G/B koji se definiše na sledeći način:

temena od G/B su gde je b novo teme skup ivica E/B od G/B je izveden iz E tako šoto se prvo odstrane sve ivice uv ∈ E sa u ∈ B ili v ∈ B i ona se doda ivica ub za sve u ∈ V \ B koji se graniče sa G do bar jednog temena B.

Da bi ga razlikovali od originalnih temena, novo teme b se naziva pseudoteme od G / B. Sada moramo da se pozabavimo pitanjem kako skljupljanje cveta B utiče na konstrukciju T. Zapazimo da sparivanje M od G uvodina prirodan način sparivanje M / B od G / B. Kada naiđemo na ivicu xz koja zatvara cvet B, znamo samo dva temena B, x i y. Ceo sve se može utvrditi prateći putanju od x i y ka korenu r u T; prvo zajedničko teme w od ove dve putanje naziva se osnova cveta B. Zapazimo da je w spoljašnja tačka T. Tada je B unija xy sa dve putanje Pwx i pwy od osnove w do temena x i z, redom. Isključivši ove dve

Page 13: Matching

putanje iz T i zamenom osnove w sa pseudotemenom b dovodi do alternativnog stabla T / B za G/B u odnosu na sparivanje M / B. Sada nastavimo sa konstrukcijom G / B koristeći T / B. tu sledeće spoljašnje teme koje ispitujemo jeste pseudoteme b. Naravno novi cvetovi se mogu javiti, u kom slučaju ćemo morati da obavimo niz smanjivanja. Hajde da ilustrujemo ovaj postupak sa primerom.

Primer 13.4.1. Neka je G graf prikazan na slici iznad. Počevši od temena r = 17, konstruišemo alternativno stablo T prikazano na sledećoj slici. Ispitujemo spoljašnja temena po redosledu po kojima smo stizali do njih (tj koristimo BFS tip redosleda) i koristimo rastući redosled za liste susednosti. Primetimo da je ivica {6,3} ignorisana (slučaj 3 u delu 13.3) kada je ispitano teme 6, zato što zatvara krug jednakih dužina. Slično, ivica {8,9} je ignorisana kada ispitujemo teme 8.

Page 14: Matching

alternirajuće stablo T u G

Sledeća ivica {8, 10} zatvara cvet, B = {4, 7, 8, 9, 10}. Ovaj cvet ima osnovu 4 i skupljena je u pseudoteme b; mi pribavljamo graf G’=G/B sa sparivanjem M’ = M/B i odgovarajuće alternativno stablo T/B prikazano na slici ispod.

Page 15: Matching

Nastavljajući sa konstrukcijom spoljnog temena b (koje je najbliže korenu r =17), pribavljamo alternativno stablo T’ u slici ispod. Ovde se ivica {b, 15} ignoriše u skladu sa slučajem 3, gde ivica {b, 16}

zatvara sledeći cvet B’ = {b, 2, 3, 5, 6, 15, 16} sa osnovom 2; stoga B’ mora da se sabije u drugi pseudoteme b’. Zapazimo da pseudotemena mogu sadržati druga pseudotemena koja su konstruisana ranije. Rezultat je graf G’’ = G’/B’ sa sparivanjem M’’=M’/B’ i odgovarajućim stablom T’’=T’/B’ na slici.

alternativno stablo T’ za G’

Skupljeni graf G’/B’ sa alternativnim stablom T’/B’

Page 16: Matching

Sada