Sunteți pe pagina 1din 10

GRDEA MARTA URICARU RALUCA A34 echipa 21

ALGORITMICA GRAFURILOR

TEMA NR. 9 6 mai 2003 Problema 1:


Fie G = (S, T; E) un graf bipartit. Conform teoremei lui Hall, M MG a.. S S(M) A S, |NG(A)| |A|. tim c, pentru orice ntreg k, 0 k |S|, G are un cuplaj M de cardinal cel puin |S| - k. G este bipartit, deci orice muchie din E are o extremitate n S i o etremitate n T. Aceast afirmaie este evident valabil i pentru mulchiile din cuplajul M. Deoarece cardinalul lui M este cel puin |S| - k, se obine c cel puin |S| - k noduri din S sunt saturate de M, prin urmare nu pot fi noduri izolate. n consecin, mulimea S poate conine cel mult |S| - (|S| - k) = k noduri izolate. Fie X mulimea nodurilor saturate din S i Y = S X, |Y| k (nu este obligatoriu ca toate nodurile din Y s fie izolate). Construim graful G = (X, T, E). G este subgraful indus n G de XT. Deoarece extremitile tuturor muchiilor din M se gsesc n X i T, M E. Cuplajul M satureaz toate nodurile din X n G, deci va satura toate nodurile din X n G, adic X S(M) n G. Atunci, conform teoremei lui Hall, A X, |NG(A)| |A|. Fie o mulime A S oarecare. Evident, |A Y| k. Aa cum am artat mai sus, |NG(AX )| |A X|. Dar (A Y) (A X) = A i X |NG(A)| |A|Y = |A X| = |A |- |A X| |A X| |A |- k. Se obine deci c |NG(A)| |A| - k pentru orice k submulime a lui S, ceea ce trebuia demonstrat. Artm c, n condiiile date, exist un cuplaj de cardinal |S| k. Construim urmtoarele iruri de mulimi: Ai o mulime de k+i noduri din S. Ti o mulime de i noduri din T pentru care A Ti, |NG(A)| |A Si o mulime de i noduri din S astfel nct Si NG(Ti) i Si Ai. Inducie: Pas de baz: Artm c exist un nod u1 n T astfel nct |NG(u1)| 1. Fie A1 o submulime oarecare de k+1 noduri. Din ipotez tim c |NG(A1)| |A1| - k = 1 un nod u1 n T, astfel nct v1 n A1 cu u1v1 E(G). Deci T1 = {u1}, S1 = {v1}.

2 Pas inductiv: Presupunem c exist Ti i Si pentru submulimea Ai de k+i noduri. Fie Ai+1 = Ai {x}, x S Ai oarecare. Atunci |NG(Ai+1)| |Ai+1| - k = i+1 > |Ti|. Fie Ti+1 = NG(Ai+1) Ti. i fie Ai+1 = Ai+1 Si. |Ai+1| = k+i+1 i |Si| = i, Si Ai+1 |Ai+1| = k+1 (din ipotez) ui+1 Ti+1 a.. vi+1 Ai+1 a.. ui+1vi+1 E(G). Deci Ti+1 = Ti {ui+1}, Si+1 = Si {vi+1}, iar muchiile ujvj, 1 j i+1, formeaz chiar un cuplaj. Formm mulimi atta timp ct exist noduri n S A i, deci putem forma |S|-k astfel de mulimi, deoarece |Ai| = i + k, |Ai| |S|, deci exist n G un cuplaj de cardinal |S| - k, ceea ce trebuia demonstrat.

Problema 2:
a) Reducere la absurd: Presupunem c exist un cuplaj M de grad maxim care nu este de cardinal maxim. Confirm teoremei lui Berge, un cuplaj M este de cardinal maxim n graful G G nu admite drumuri de cretere relativ la M. Vom presupune deci c exist un cuplaj M de grad maxim care admite un drum de cretere P.

v0 i vk sunt vrfuri expuse. Construim cuplajul M = ( M \ {v1v2, , vk-2vk-1}) {v0v1, , vk-1vk} (cuplajul M conine aceleai muchii ca i M, cu excepia celor din P M, care sunt nlocuite cu cele din P \ M). Constatm c S(M) = S(M) {v0, vk}. (M satureaz toate vrfurile saturate de M; n plus M satureaz i vrfurile v0, vk, varfuri expuse relativ la M). n aceste condiii avem:
i S ( M ')

d (i ) = d ( j ) +d ( v
j S (M )

) +d (vk ).

d(v0) >0 i d(vk) >0 (deoarece se gsesc pe un drum P) deci


i S ( M ')

d (i ) > d ( j)
j S (M )

adic M nu este cuplaj de grad maxim, ceea ce contrazice ipoteza. Presupunerea fcut este deci fals. Am obinut c orice cuplaj de grad maxim este de cardinal maxim. b) : tim c, n graful G, orice cuplaj de grad maxim satureaz toate vfurile de grad maxim. Deoarece n orice graf exist ntotdeauna cel puin un cuplaj de grad maxim, se obine, evident, c, n aceste condiii, exist n G un cuplaj care satureaz toate vrfurile de grad maxim.

3 : tim c exist un cuplaj M0 care satureaz toate nodurile de grad maxim (n aceste condiii, (G) 0, deci G nu este graful nul). Reducere la absurd: Presupunem c exist un cuplaj de grad maxim M care nu satureaz toate nodurile de grad maxim. Fie u V(G) a.. d(u) = (G) i u E(M) (u nod expus relativ la cuplajul M). Caz 1: Exist v NG(u) a.. v E(M). Construim cuplajul M = M {uv}. Atunci, |M| = |M| + 1, adic |M| > |M|, deci M nu este de cardinal maxim. Conform punctului a), M nu este nici de grad maxim, ceea ce contrazice ipoteza. Caz 2: Exist v NG(u) a.. v S(M), vw M (w NG(v)) i d(w) < (G) . Construim cuplajul M = (M \ {vw}) {uv}. Atunci,
i S ( M ')

d (i ) = d ( j ) d ( w) +d (u ).
j S (M )

ntruct d(w) < (G) = d(u), se obine


i S ( M ')

d (i ) > d ( j)
j S (M )

adic se obine faptul c M nu este cuplaj de grad maxim, ceea ce contrazice ipoteza. Caz 3: Oricare v NG(u), v S(M), vw M (w NG(v)) i d(w) = (G) (Toate nodurile vecine cu u sunt saturate, formnd mpreun cu alt nod w u de grad maxim cte o muchie din cuplaj).

tim, din ipotez, c exist un cuplaj M 0 care satureaz toate vrfurile de grad maxim. Exist deci e M0, e M, a.. u este extremitate a lui e. Dac e = uv M0 i vw M, evident vw M0. Dar M0 satureaz w (deoarece am presupus c w este nod de grad maxim), deci exist v NG(w) a.. v S(M0), adic wv M0. Raionnd astfel n continuare pentru noul vrf de grad maxim w, se poate spune c exist un drum P n G a..: P \ M0 M. Cu alte cuvinte, P este drum alternat n G relativ la cuplajul M, respectiv este drum alternat n G relativ la cuplajul M0. n plus, P M M0 = (cele dou cuplaje nu au muchii comune pe acest drum. n plus, P are numr impar de noduri, respectiv numr par de muchii (deoarece are o extremitate expus relativ la M, i anume pe u; de asemenea, am presupus c M este cuplaj de grad maxim, deci, conform a), este cuplaj de cardinal maxim, deci nu admite drumuri de cretere).

4 Cealalt extremitate a drumului P, notat u, este deci nod saturat de M, deci este nod expus relativ la M0. u nu poate fi deci nod de grad maxim, deoarece, conform ipotezei, M 0 satureaz toate nodurile de grad maxim. Construim un nou cuplaj M = (M P) (P M0), adic, nlocuind acele muchii comune lui P i M cu acele muchii comune lui P i M0 n M. Conform celor precizate mai sus, M satureaz toate vrfurile saturate de M, cu excepia lui u. n plus, M satureaz u. Aadar avem:
i S ( M ')

d (i ) = d ( j ) d (u ' ) +d (u ).
j S (M )

Dar d(u) < (G), deci d(u) < d(u). n consecin,


i S ( M ')

d (i ) > d ( j)
j S (M )

adic M nu este cuplaj de grad maxim, ceea ce contrazice ipoteza. Presupunerea fcut este fals i n acest caz. Am obinut deci c, dac exist un cuplaj care satureaz toate nodurile de grad maxim, atunci orice cuplaj de grad maxim satureaz toate nodurile de grad maxim. c) Fie H subgraful bipartit indus de mulimea nodurilor de grad maxim. O condiie necesar pentru existena cuplajului este (G) > 0 (graful diferit de graful nul). Vom arta c exist un cuplaj care satureaz toate nodurile de grad maxim, artnd c orice cuplaj de grad maxim satureaz toate nodurile de grad maxim n condiiile ipotezei. Reducere la absurd: Presupunem c exist un cuplaj M de grad maxim, care nu satureaz toate nodurile de grad maxim. Fie u V(G), cu d(u) = (G) i u E(M) (u este nod de grad maxim, expus relativ la cuplajul M). M este cuplaj de grad maxim (conform punctului a) nu exist drumuri de cretere relativ la M. Deoarece u este nod expus i u nu este izolat, atunci u este fie extremitatea unui drum alternat par, sau aparine unui circuit alternat impar (nu poate fi extremitatea unui drum alternat impar, deoarece orice drum alternat impar cu o extremitate expus este drum de cretere; nu poate fi ntr-un circuit alternat par, deoarece ntr-un astfel de circuit nu exist noduri expuse). Caz I: u unui circuit alternat impar. Deoarece H este bipartit, nu admite circuite impare. Aadar, cel puin un nod v n G, cu d(v) < (G) care s se gseasc pe acest circuit. Deoarece M este cuplaj de cardinal maxim, toate celelalte noduri din circuitul C cu excepia lui u, sunt noduri saturate. Fie P unul din drumurile de la u la v. Construim cuplajul M n care nlocuim acele muchii din P M cu muchiile din P M. Atunci avem:
i S ( M ')

d (i ) = d ( j ) d (v ) +d (u ).
j S (M )

Dar d(v) < d(u) = (G) se poate construi un cuplaj M de grad mai mare dect al lui M, ceea ce contrazice ipoteza. Caz II: u este extremitatea unui drum alternat par. Fie ucealalt extremitate a acestui drum. Artm c dac toate extremitile drumurilor alternate pare sunt noduri de grad maxim, atunci u face parte dintr-un circuit, caz ce se reduce la cazurile anterioare. Demonstraie: Presupunem c extremitile tuturor drumurilor alternate sunt noduri de grad maxim. Reducere la absurd:

5 Dac nu exist nici un circuit, atunci nu exist nici un drum de la u la u nu exist drumuri de la nici un vecin de-ai lui u la nici un alt vecin dintre vecinii lui u. Fie H subgraful indus n H de mulimea nodurilor accesibile dintr-un vecin v al lui u prin drumuri care nu trec prin u. Numrul de muchii din acest subgraf este ((H)* |H| -1)/2. Pentru ca acesta s fie numr ntreg, este necesar ca |H| s fie numr impar. H fiind bipartit (H = (S, T; Eh)), una din mulimile S i T este de cardinal par, iar cealalt este de cardinal impar. (G) >2 (este impar, aa cum am artat mai sus; este diferit de 1 deoarece exist drumuri alternate pare, deci exist noduri de grad cel puin 2). Aadar, numrul de muchii care pleac din S este diferit de numrul de muchii care pleac din T contradicie. Deci H nu poate fi subgraf indus n H, adic exist un drum din u ntr-un nod din G V(H). Deci, dac u nu face parte din nici un circuit, exist un drum alternat par cu cealalt extremitate u nod ce nu are grad maxim. n aceste condiii, construim cuplajul M n care nlocuim acele muchii din P M cu muchiile din P M. Atunci avem:
i S ( M ')

d (i ) = d ( j ) d (u ' ) +d (u ).
j S (M )

Dar d(u) < d(u) = (G) se poate construi un cuplaj M de grad mai mare dect al lui M, ceea ce contrazice ipoteza. n toate cazurile am obinut contradicii, deci presupunerea fcut este fals, deci orice cuplaj de grad maxim satureaz toate nodurile de grad maxim. Graful avnd un numr finit de noduri i (G) N, exist un cuplaj de grad maxim oricare ar fi graful G. d) Vom demonstra c pentru un graf G bipartit E(G) poate fi partiionat n (G) cuplaje prin inducie dup (G). Pasul de baz: (G) = 0. Atunci graful G este graful nul, aadar exist 0 cuplaje posibile pentru acest graf. (G) = 1 i V(G), d(i) = 0 sau d(i) = 1. ntr-un astfel de graf fiecare nod are maxim un vecin, fiind incident cu maxim o muchie. Aadar, E(G) este mulime de muchii independente, adic E(G) este un cuplaj. Pasul inductiv: Presupunem afirmaia adevrat pentru toate grafurile G cu (G) k. Demonstrm pentru grafurile cu (G) = k+1: Caz 1: exist un singur nod u V(G) cu d(u) = (G). Atunci exist un cuplaj oarecare M0 care satisface nodul u (de exemplu M 0 = {uv}, unde v NG(u); acest nod v exist deoarece am presupus (G) > 0). Prin eliminarea acestei muchii din graf se obine un nou graf bipartit G (deoarece orice graf parial al unui graf bipartit este graf bipartit), pentru care (G) = k. Din pasul inductiv rezult c E(G) poate fi partiionat n k cuplaje. Aceste k cuplaje, mpreun cu M0 menionat mai sus, formeaz o mulime de k+1 cuplaje ce partiioneaz E(G). Caz 2: exist mai multe noduri ui V(G) cu d(ui) = (G). Aceste noduri induc un graf bipartit (deoarece orice subgraf cu cel puin dou noduri al unui graf bipartit este graf bipartit).

6 Atunci, aa cum am artat la c), exist un cuplaj oarecare M1 care satisface toate nodurile de grad maxim ui. Prin eliminarea muchiilor din acest cuplaj din graf se obine un nou graf bipartit G (deoarece orice graf parial al unui graf bipartit este graf bipartit), pentru care (G) = k. Din pasul inductiv rezult c E(G) poate fi partiionat n k cuplaje. Aceste k cuplaje, mpreun cu M1 menionat mai sus, formeaz o mulime de k+1 cuplaje ce partiioneaz E(G).

Problema 3:
Vom arta c exist un algoritm care rezolv aceast problem de decizie n timp polinomial. Date b (numrul de muchii) i k (numrul minim de noduri pe care trebuie s le aib subgraful cutat) constatm c: - dac, n graful G, |E(G)| < b sau nu exist cel puin k noduri care s nu fie izolate, atunci cu siguran nu exist un subgraf cu proprietile cerute, deci rspunsul la problema de decizie este negativ; altfel se poate continua cutarea; - dac 2b < k, rspunsul este negativ (deoarece orice graf de ordin n fr noduri izolate are cel puin [(n+1)/2] muchii); altfel se poate continua cutarea; - dac 2b = k, problema se reduce la a gsi un cuplaj de cardinal b n G; o dac (G) < b, atunci rspunsul este negativ; o altfel, rspunsul este pozitiv (se poate construi un cuplaj de cardinal maxim din care se elimin, dac este cazul, muchii, pn cnd se obine un cuplaj de cardinal b; subgraful astfel obinut are b muchii i 2b = k vrfuri, deci ndeplinete condiiile; deoarece este o problem de decizie, nu este necesar construcia grafului propriuzis); - dac 2b > k, atunci: o se construiete un cuplaj de cardinal maxim M, obinndu-se astfel un subgraf cu (G) muchii i 2 (G) noduri; o dac (G) b, atunci: din cuplajul de cardinal maxim construit se elimin muchii (dac este cazul) pn la obinerea unui nou cuplaj M cu exact b muchii; un subgraf al lui G, notat H, pentru care E(H) = M i V(H) = S(M) are exact b muchii i 2b noduri; dar 2b > k, deci subgraful astfel obinut are proprietile cerute; rspunsul dat n acest caz este pozitiv; o dac (G) < b, trebuie adugate muchii pn se ajunge la cele b necesare; trebuie adugate b - (G) muchii (i cel puin k - 2 (G) noduri, n cazul n care k > 2 (G)); ntruct M era cuplaj de cardinal maxim, orice alt muchie adugat la mulimea de muchii M va fi incident cu cel puin o muchie din M; prin urmare, la adugarea unei muchii se mai poate aduga cel mult un vrf; dac k 2 (G), atunci s-a obinut deja numrul de noduri cutat; se vor aduga la mulimea M noi muchii (oricare din graf) pn la b, obimndu-se o nou mulime de muchii M cu |M|=b; un subgraf H al lui G cu E(H) = M i V(H) = V(M) (V(M) are cardinalul cel puin 2 (G), deci cel puin k) ndeplinete condiiile cerute, deci rspunsul pentru acest caz este pozitiv;

7 dac k > 2 (G), atunci exist cel puin k - 2 (G) noduri expuse relativ la M care nu sunt izolate (conform condiiei iniiale, exist cel puin k noduri neizolate n G ); se adaug la subgraf k - 2 (G) noduri expuse relativ la M, neizolate; la adugarea fiecrui astfel de nod se adaug cte o muchie (ntruct M este cuplaj de cardinal maxim, orice nod expus este fie izolat, fie vecinul unui nod saturat; aadar, la adugarea unui astfel de nod se adaug i muchia dintre el i vecinul su saturat); se obine astfel un subgraf cu k noduri neizolate i (G) + (k - 2 (G)) = k (G) muchii. Dac k (G) > b (adic, adugnd numrul necesar de noduri, am depit numrul de muchii cerut), atunci rspunsul este negativ. Altfel, se mai pot aduga muchii oarecare din E(G) pn la b (tim c exist muchiile necesare, din condiia iniial), obinndu-se astfel un graf H cu b muchii i cel puin k noduri. Rspunsul n acest caz este deci pozitiv.

Un algoritm propriu-zis de rezolvare a problemei de decizie este: function DecizieP3(G, k, b) begin m |E(G)| nNeiz NumrNoduriNeizolate /*Numrarea muchiilor i a nodurilor neizolate din graful G se poate face printr-o parcurgere BFS sau DFS a grafului G, deci se execut n timp polinomial (O(m+n) dac G este reprezentat prin liste de adiacen, O(n2) n cazul cel mai nefavorabil)*/ if (m < b or nNeiz < k) then return FALSE if (2b < k) then return FALSE if (2b = k) then M ConstruieteCuplajDeCardinalMaxim(G) /*Construcia unui cuplaj de cardinal maxim se poate efectua n timp polinomial, i anume n O(n3)*/ a Calculeaz(G) if (a < b) then return FALSE; else /*dac se cere i construcia propriu-zis a subgrafului : construcia grafului se poate face n O( (G) - b) = O(m) = O(n2), adic n timp polinomial*/ while (a > b) do EliminMuchieOarecareDinCuplaj(M) aa1 E(H) M V(H) S(M)

8 return TRUE /*dac 2b > k, atunci:*/ M ConstruieteCuplajDeCardinalMaxim(G) /*Construcia unui cuplaj de cardinal maxim se poate efectua n timp polinomial*/ a Calculeaz(G) if (a >b) then /*rspuns pozitiv*/ /*dac se cere i construcia propriu-zis a subgrafului : construcia grafului se poate face n O( (G) - b) = O(m) = O(n2), adic n timp polinomial*/ while (a > b) do ElimimMuchieOarecareDinCuplaj(M) aa1 E(H) M V(H) S(M) return TRUE else /*suntem n cazul (G) < b*/ if (k 2(G)) /*dac avem deja nodurile necesare*/ then /*rspuns pozitiv*/ /*dac se cere i construcia propriu-zis a subgrafului : construcia grafului se poate face n O( (G) - b) = O(m) = O(n2), adic n timp polinomial*/ while (a < b) do AdaugMuchieOarecareDinGnM(M) aa+1 E(H) V(M) V(H) M return TRUE else /*suntem n cazul k > 2 (G )*/ if (k - (G) > b) then return FALSE else /*rspuns pozitiv*/ /*dac se cere i construcia grafului:*/ E(H) S(M) V(H) M k |V(H)| /*adaug vrfurile expuse necesare*/ /*operaia se poate face n O(n+m), O(n2) n cazul cel mai nefavorabil*/ for all i in V(G) do if (i E(M)) then V(H) V(H) {i} E(H) E(H) { ij} /*j este vecinul saturat al lui i*/ kk+1

9 if (k = k) then break /*adaug alte muchii necesare din graf, pn cnd |E(H)| devine b; dac este necesar, se vor auga i noi vrfuri, fapt ce nu afecteaz proprietile lui H*/ /*operaia se poate executa n O(m), O(n 2) n cazul cel mai nefavorabil*/ b |E(H)| while (b < b) do AdaugMuchieOarecareDinG (E(H)) b b + 1 return TRUE end function ConstruieteCuplajDeCardinalMaxim (G) begin M gsete_cuplaj_oarecare() while ( P drum de cretere relativ la M) do MM P return M end Complexitatea algoritmului de mai sus este O(n 2) + O(n3) = O(n3). Am artat deci c aceast problem de decizie se poate rezolva n timp polinomial.

Problema 4:
Fie G = (V, E) un graf 2-muchie conex 3-regulat. Conform teoremei lui Tutte, un graf G are un cuplaj perfect S V, S V, q(G S) | S|, unde q(H) este numrul de componente conexe de ordin impar ale grafului H. Aadar, pentru a arta c graful G are un cuplaj perfect, este suficient s demonstrm c, S V, S V, q(G S) |S|. Fie S o mulime oarecare de noduri din V, S V, k =|S| i H = <S>G. Prin eliminarea tuturor nodurilor ce compun mulimea S din graful G se obine un numr h de componente conexe Gi, 1 i h, din care x sunt de ordin impar. ntruct graful G este 2-muchie conex (deci implicit conex), exist muchii ntre noduri din G i i noduri din H, i, 1 i h.

10

1. Artm c exist cel puin 2 muchii ntre H i Gi: Subgraful indus de mulimea de vrfuri V S are h componente conexe, deci oricare dou noduri u i v, u V(Gi), v V(Gj), i j, 1 i, j h, uv E(G). Dac nu ar exista nici o muchie n G ntre subgraful H i subgraful Gi, atunci G nu ar fi conex contradicie. Dac ar exista o singur muchie n G ntre subgraful H i subgraful Gi, prin eliminarea acesteia graful G ar deveni neconex contradicie cu faptul c G este 2-muchie conex. 2. Fie Gj o component conex impar a subgrafului indus <V S>G, i y = |Gj|, y evident impar. Suma gradelor nodurilor din V(Gj) n G este 3y, deoarece G este 3-regulat. Fie z numrul de muchii dintre Gj i H. Numrul de muchii din Gj n graful <V S>G este |E(Gj)| = Deoarece |E(Gj)| N, 3y z este numr par. Dar y = |Gj| este impar, deci 3y este impar. n consecin, z trebuie s fie numr impar. Aa cum am artat mai sus, z trebuie s fie cel puin 2 i z impar z 3. (Adic, ntre nodurile din H i nodurile dintr-o component conex impar G j a grafului <V S>G, trebuie s existe n graful G cel puin 3 muchii). n consecin, cel puim 3x muchii din graful G se utilizeaz pentru legarea nodurilor din S de noduri din componentele impare Gj. 3. Suma gradelor vrfurilor din S n G este 3|S| = 3k. Fiecare nod din s poate fi extremitatea unor muchii (cel mult 3) de legtur dintre subgraful H i subgraful G j de ordin impar). Aadar, 3k 3x, adic x k (numrul de componente conexe impare din G S q(G S) k = |S|). Am obinut deci c, S V, S V, q(G S) |S|, deci, conform teoremei lui Tutte, graful G are un cuplaj perfect.
3y z . 2

S-ar putea să vă placă și