Vous êtes sur la page 1sur 94

Algoritmi de aproximare pentru probleme NP-dure

Algoritmii de aproximare constituie o variant! posibil! de rezolvare a problemelor dificile de optimizare. n majoritatea cazurilor, problemele practice de acest tip sunt NP-dure, blocnd ncerc!rile de rezolvare exact! ce conduc la intractabilitate. Algoritmii de aproximare sacrific! optimalitatea solu"iei n schimbul tractabilit!"ii. Capitolul discut! elementele esen"iale care stau la baza algoritmilor de aproximare #i prezint! algoritmi polinomiali de aproximare a solu"iilor unor probleme NP-dure pentru grafuri.

8.1 Factor de aproximare


Fie urm!toarea problem!, tipic! rezolv!rii aproximative, similar! cu cea redat! n [Hoc 97]. n timpul unei excursii trebuie planificate vizite, cu durate impuse, pentru n grupuri de turi#ti la m muzee. Un grup trebuie planificat la un singur muzeu #i orice grup poate fi planificat la orice muzeu. Vizitele ncep la ora h #i trebuie s! fie terminate cel mai trziu la ora h+d. Prin urmare, planificarea trebuie astfel efectuat! nct toate grupurile s! viziteze un muzeu, iar ntregul program s! dureze cel mult d. Aceast! problem! de planificare optimal! este cunoscut! ca fiind NP-dur!. Problema poate fi generalizat! n forma repartiz!rii optime a n procese pe m resurse, #tiind apriori c! fiecare proces folose#te (ocup!) o resurs! un timp specificat. O modalitate de rezolvare se bazeaz! pe euristici, a#a cum sunt urm!toarele: $. Ini"ial, se repartizeaz! procese alese la ntmplare pe acele resurse disponibile care pot servi procesele. Apoi, imediat ce o resurs! devine liber! se alege la ntmplare un proces corespunz!tor resursei, dintre cele r!mase neservite, #i se repartizeaz! resursei libere. 2. Ini"ial, se sorteaz! descresc!tor procesele n raport cu durata ocup!rii resurselor. Fie S secven"a rezultat!. Se repartizeaz! procesele din S cu cele mai mari durate pe resursele disponibile. Apoi, imediat ce o resurs! devine liber!, urm!torul proces din cele r!mase n S este repartizat resursei libere. S-a demonstrat c! regula ($) conduce la o solu"ie ce poate fi cel mult de dou! ori mai lung! dect cea optim!, iar regula (2) asigur! o solu"ie ce poate fi doar cu 4/3 mai lung! comparativ cu cea optim!. Astfel, dac! regula ($) conduce la o planificare ce dureaz! d+ ore, nsemn! c! solu"ia optim! poate dura cel pu"in (d+)/2 ore. Atunci, cu regula (2), se ob"ine o solu"ie cu o durat! de cel mult 2(d+)/3 ore, solu"ie ce ar putea satisface restric"iile impuse problemei chiar dac! nu este optim!.

Cristian Giumale/Note de curs

Exemplul de mai sus sugereaz! c! un algoritm de aproximare este tractabil #i se bazeaz! pe euristici care duc la solu"ii neoptimale, dar cu un grad de calitate garantat n raport cu optimul. Acest grad de calitate se m!soar! prin factorul de aproximare al algoritmului. Defini!ia 8." Fie P o problem! cu date dintr-o mul"ime I, iar cost*(i) costul solu"iei optime #i cost(i) costul solu"iei g!site de un algoritm de aproximare al lui P pentru datele iI (presupunem c! solu"iile exist! pentru orice iI). Not!m i , i Z+, dimensiunea datelor i. a) Factorul de aproximare al algoritmului este:
(n) = max{iI | i = n cost (i) cost (i) (n) = max{iI | i = n cost (i) }, dac! problema este de maximizare cost (i)
* *

}, dac! problema este de minimizare

b) Eroarea relativ! de aproximare a algoritmului este:


(n) = max{iI | i = n
| cost (i) cost (i) | cost (i)
* *

Pentru o problem! de maximizare, cost*(i) cost(i). Dac! problema este de minimizare, atunci cost*(i) cost(i). Prin urmare, (n)1$, iar (n)0. Factorul (n) arat! de cte ori este mai slab! solu"ia g!sit! n raport cu cea optim!. n cazul unei probleme de minimizare, ntre #i exist! rela"ia (n)= (n)-1, n timp ce pentru o problem! de maximizare rela"ia este (n) (n)-1. Atunci cnd (n) este m!rginit superior de o constant!, pentru orice instan"! iI a problemei P, folosim nota"ia #i denumirea factor de aproximare pentru a desemna raportul:
= max
iI

cost (i) cost (i)


*

, dac! P este problem! de minimizare

= max
iI

cost (i) , dac! P este problem! de maximizare cost (i)

Un algoritm cu factorul de aproximare , este un -algoritm de aproximare. Prin conven"ie, extindem terminologia #i pentru un factor de aproximare variabil (n).

$ n unele cazuri, pentru probleme de maximizare, se prefer! 1/(n) ca factor de aproximare.

Algoritmi de aproximare pentru probleme NP-dure

Ca exemplu, s! consider!m una din problemele studiate n acest capitol: 2-arc conectivitatea unui graf neorientat #i conex. Graful este 2-arc conectat dac! eliminarea oric!rui arc din graf las! graful conectat. O problem! P de optimizare const! n a p!stra ct mai pu"ine arce ntr-un graf 2-arc conectat.

a) solu"ie optim!

b) solu"ie aproximativ!

Figura 8." Solu"ii pentru 2-arc conectivitate n figura 8.$ sunt ilustrate dou! solu"ii ale problemei P pentru un graf G. Arcele subgrafurilor solu"ie sunt ngro#ate. Solu"ia (a) este optim!, reducndu-se la un ciclu hamiltonian cu 5 arce. Solu"ia (b) este aproximativ!, subgraful 2-arc conectat avnd 6 arce. S! presupunem c! solu"ia din figura 8.$(a) este construit! cu un algoritm A de aproximare al problemei P (problema este NP-dur!). A prime#te ca date graful ce trebuie optimizat. Atunci, pentru graful G, factorul de aproximare al algoritmului A este G =6/5 = 1.2. Important! este ns! limitarea superioar! a lui G pentru orice graf. Asemenea algoritmi exist!. Astfel, algoritmul de aproximare studiat n sec"iunea 8.2.$ asigur! un factor de aproximare < 1.5 pentru orice graf G. Pentru unele probleme, a#a cum sunt cele de planificare, exist! algoritmi de aproximare ce fac posibil controlul raportului (calitate solu"ie) / (timp de execu"ie). Astfel de algoritmi formeaz! o schem! de aproximare. Defini!ia 8.2 Numim schem! de aproximare a unei probleme P, cu date iI, o familie de algoritmi {A | >0} astfel nct, A este un 1+-algoritm de aproximare al problemei P. Schema de aproximare este polinomial! dac!, pentru fiecare fixat, timpul de execu"ie al algoritmului A este polinomial n raport cu i . Schema de aproximare este complet-polinomial! dac! timpul de execu"ie al algoritmului A este polinomial n raport cu i #i 1/, pentru orice >0.

O schem! de aproximare complet polinomial! a problemei P poate fi un algoritm care prime#te ca parametri date iI #i o valoare >0 astfel nct, pentru fixat, algoritmul se comport! ca #i un algoritm de (1+)-aproximare al lui P. Algoritmul asigur! un compromis controlat ntre calitatea solu"iei #i timpul de rezolvare, timp ce variaz! conform unui polinom n raport cu #i dimensiunea datelor.

Cristian Giumale/Note de curs

8.2 Grafuri cu conectivitate restric!ionat"


Problemele de conectivitate apar mai ales n cazul re"elelor de transport sau de interconectare n diverse domenii, re"ele ce trebuie s! r!mn! opera"ionale chiar #i n cazul distrugerii unor leg!turi sau a unor noduri. Defini!ia 8.3 2 Fie G=(V,E) un graf neorientat #i conex cu n noduri, iar 1<n-1, un num!r ntreg. a) G este -nod conectat dac! eliminarea oric!ror -1 noduri din V conduce la un graf conex. b) G este -arc conectat dac! eliminarea oric!ror -1 arce din E conduce la un graf conex. Exist! diverse probleme de conectivitate bazate pe defini"ia (8.3). De exemplu, fiind dat un graf G=(V,E) #i un num!r ntreg s! se calculeze un subgraf G'=(V,E') cu num!r minim de arce care s! fie -nod conectat sau, respectiv, -arc conectat. n eventualitatea unui graf ale c!rui arce au costuri diferite, se poate cere determinarea unui subgraf -arc/nod conectat cu cost minim. n cele ce urmeaz! se consider! doar probleme de tip -arc/nod conectivitate, pentru grafuri neorientate #i conexe (grafuri, pe scurt) ale c!ror arce au costuri unitare. Aceste probleme au fost demonstrate NP-dure.

8.2.1 -arc conectivitate


Fie G=(V,E) un graf cu n noduri #i 1 < n-1 un num!r ntreg. S! se determine un subgraf de acoperire G=(V,E) al lui G cu num!r minim de arce, astfel nct G s! fie -arc conectat. Consider!m graful G deja -arc conectat. Astfel, problema determin!rii subgrafului G se reduce la p!strarea unui num!r minim de arce din G pentru asigurarea -arc conectivit!"ii. n cele ce urmeaz! sunt prezentate dou! metode de construc"ie a unui subgraf de acoperire -arc conectat, pornind de la un graf dat G, -arc conectat. Prima metod! (Khuller-Vishkin) construie#te un subgraf 2-arc conectat al lui G, ad!ugnd apoi arce pn! ce condi"ia de -arc conectivitate este ndeplinit!. Algoritmul folose#te parcurgerea n adncime (DFS) a grafului G, iar factorul de aproximare rezult! < 21 .

A doua metod! (Nagamochi-Ibaraki) calculeaz!, ntr-o singur! trecere prin G, subgraful -arc conectat, izolnd p!duri ce acoper! graful G, p!duri suficiente pentru a asigura -arc conectivitatea lui G. Algoritmul are factorul de aproximare = 2.

2 O defini"ie simular! exist! pentru grafuri orientate, unde termenul conex, este nlocuit prin tare conex.

Algoritmi de aproximare pentru probleme NP-dure

Construc"ia unui subgraf 2-arc conectat


Construc"ia unui subgraf de acoperire 2-arc conectat al unui graf G 2-arc conectat are la baz! determinarea #i acoperirea pun"ilor din arborele rezultat prin parcurgerea n adncime a grafului G. Algoritmul arc_2_conectat3, asem!n!tor algoritmului pun"i prezentat n capitolul 5, lucreaz! simultan cu dou! grafuri:
G=(V,E) graful ini"ial, considerat 2-arc conectat. G2=(V,E2), E2E, subgraful 2-arc conectat al grafului G, construit pe m!sura parcurgerii n adncime a lui G.

Ini"ial E2=. n cursul parcurgerii n adncime a grafului G, arcele de arbore sunt ad!ugate la E2, men"inndu-se informa"ia necesar! descoperirii pun"ilor n graful G2 precum #i informa"ia necesar! acoperirii acestor pun"i cu arce inverse din G. Un arc invers din G poate acoperi mai multe pun"i din G2 #i, dac! este folosit n acest scop, este ad!ugat grafului G2. n final, graful G2 rezult! f!r! pun"i #i, deci, este 2-arc conectat, dar are doar o submul"ime a arcelor grafului G. Algoritmul utilizeaz! nota"iile de mai jos, dintre care majoritatea sunt cele folosite n algoritmul de determinare a pun"ilor unui graf.
Arb(r) arborele cu r!d!cina r construit n cursul parcurgerii n adncime a grafului G pornind dintr-un nod r ales la ntmplare. Parcurgerea n adncime a grafului este realizat! de algoritmul explorare(r). d(u) - este momentul descoperirii nodului u n cursul parcurgerii n adncime a grafului G #i construirii arborelui Arb(r). succs(u) - nodurile adiacente nodului u n graful G. (u) - este predecesorul direct al nodului u n arborele Arb(r). c(u) - este culoarea nodului u (alb dac! u nu a fost explorat). b(u)= min{d(v)| c(v)alb #i v este redescoperit pornind din u n cursul explor!rii grafului G}. Nodul v, astfel nct d(v)= b(u), este nodul cel mai superficial din Arb(r) la care se poate ajunge pe un arc invers pornind de la u sau de la un descendent al lui u n Arb(r). Cu alte cuvinte, v este un predecesor al lui u n Arb(r), dar nu neap!rat predecesorul direct (u). b2(u)= min{d(v)| c(v)alb #i v este redescoperit pornind din u n cursul explor!rii grafului G2}. b2(u) este similar cu b(u), dar arcele inverse pe care se poate ajunge la nodul v, astfel nct d(v)= b2(u), trebuie s! fac! parte din G2. e(u) - este un arc invers (x,y), astfel nct y este un predecesor al lui u n arborele Arb(r), iar u este pe calea x,(x),((x)),...,y n Arb(r). Arcul (x,y) acoper! posibilele pun"i din graful G2 aflate pe calea x,(x),((x)),...,y.
3 Algoritmul este o variant! a celui atribuit lui Khuller-Vishkin [KV94].

Cristian Giumale/Note de curs

arc_2_conectat(G){ // Khuller-Vishkin V= noduri(G); for-each(uV) {c(u)=alb; (u)=null;} timp=0; E2=; // arcele subgrafului G2 fie rV un nod ales la ntmplare; explorare(r); // parcurgere DFS a grafului G pornind din r return E2; } explorare(u){ d(u) = b(u) = b2(u) = ++timp; e(u) = (u,u); // arc invers de acoperire a pun"ilor din G2 c(u) = cenu#iu; for-each(vsuccs(u)) if(c(v) = alb){ (v) = u; E2= E2 {(u,v)}; // (u,v) este arc de arbore explorare(v); if(b(v) < b(u)) {b(u) = b(v); e(u) = e(v);} if(d(u) < b2(v)) { // (u,v) este arc de parti"ionare n G #i // (u,v) este punte n subgraful G2 // test posibilitate acoperire punte if(d(u) < b(v)) G nu este 2-arc conectat // puntea (u,v) este acoperit! cu arcul e(v) E2= E2 {e(v)}; b2(v) = b(v); } b2(u) = min{b2(u),b2(v)}; } else // v este redescoperit if((u)v) // (u,v) este arc invers if(d(v) < b(u)) {b(u) = d(v); e(u) = (u,v);} c(u)=negru; // terminare explorare nod }

Liniile gri din algoritm nu sunt absolut necesare. Astfel, testul if(d(u) < b(v)) G nu este 2-arc conectat este util doar atunci cnd nu se #tie apriori c! G este 2arc conectat. Linia c(u)=negru folose#te doar n analiza algoritmului, pentru a delimita nodurile complet explorate. Astfel, algoritmul p!streaz! urm!torul invariant:
vV | c(v)=negru e(v)=(x,y) (x,y)E d(y)=b(v) d(x)d(v)

Invariantul justific! acoperirea posibilei pun"i (u,v), unde v este un nod complet explorat, folosind arcul e(v). ntr-adev!r, dac! b(v)<d(u), atunci arcul e(v) nchide un ciclu ce con"ine puntea (u,v), iar eliminarea pun"ii nu deconecteaz! graful G2. Teorema 8." Fie G=(V,E) un graf 2-arc conectat, iar G2=(V,E2) un subgraf construit prin algoritmul arc_2_conectat(G). Subgraful G2 acoper! graful G #i este 2arc conectat.

Algoritmi de aproximare pentru probleme NP-dure

ntr-adev!r, graful G2 con"ine toate arcele de arbore descoperite prin parcurgerea n adncime a lui G, deci G2 acoper! G. De asemenea, G2 nu con"ine pun"i, orice punte descoperit! fiind acoperit! cu un arc invers. ! Un exemplu de aplicare a algoritmului arc_2_conectat este ilustrat n figura 8.2(a), unde graful ini"ial G are 14 arce. Nodul de start al parcurgerii n adncime a grafului este a, iar ordinea vizit!rii nodurilor este a, b, c, d, e, f, g, h, i. n cursul explor!rii n adncime, sunt descoperite (n ordine) pun"ile =(e,f), =(h,i) #i =(a,b). Pun"ile sunt acoperite de arcele inverse '=(f,d), '=(i,b) #i '=(c,a), reprezentate prin linii curbe. Subgraful G2 rezultat con"ine arcele ngro#ate: 11 arce, cu 3 mai pu"in dect graful ini"ial G. Solu"ia optim!, ce corespunde ciclului hamiltonian al grafului G, are doar 9 arce #i este ilustrat! n figura 8.2(b). Solu"ia optim! poate fi ob"inut! cu algoritmul arc_2_conectat dac! ordinea de explorare a nodurilor grafului G este a, b, i, h, g, e, f, d, c. ntr-adev!r, algoritmul descoper! o singur! punte, anume =(d,c), care este acoperit! de arcul invers '=(c,a).

a ' b '

c '

h d

'

e f

a) Subgraful G2 corespunz!tor explor!rii a,b,c,d,e,f,g,h,i

b) Subgraful optim 2-arc conectat pt. explorarea a,b,i,h,g,e,f,d,c

Figura 8.2 Construc"ia unui subgraf 2-arc conectat prin metoda Khuller-Vishkin n ceea ce prive#te complexitatea algoritmului arc_2_conectat, ea este aceea#i ca #i pentru parcurgerea n adncime: (n+m), cu n=card(V) #i m=card(E). Analiza factorului de aproximare corespunz!tor solu"iei g!site de algoritmii arc_2_conectat #i, respectiv, arc__conectat impune introducerea conceptului de arbore de parti!ionare al grafului G.

Cristian Giumale/Note de curs

Defini!ia 8.4 Fie G=(V,E) un graf, iar TG=(VG,EG) un arbore (orientat, cu r!d!cin!) cu nodurile VG = {V1,V2,...,Vk) care satisface propriet!"ile: a) V = V1 V2 ... Vk b) i,j1..k (ij ViVj=) c) uV (uVi(vsuccs(u) vVi(Vjsuccs(Vi) vVj) v(Vi))) Arborele TG este un arbore de parti!ionare al grafului G, iar k este dimensiunea arborelui. Nodurile arborelui TG reprezint! o parti"ionare a nodurilor grafului G, astfel nct dac! un nod u din G este con"inut n nodul Vi din TG atunci to"i vecinii lui u din G sunt fie n Vi, fie n succesorii lui Vi sau n p!rintele (Vi) al lui Vi din TG. Se poate stabili o leg!tur! direct! ntre un subgraf 2-arc conectat de acoperire a lui G #i un arbore de parti"ionare al lui G. Mai precis, construc"ia grafului G2=(V,E2) prin algoritmul arc_2_conectat conduce implicit la parti"ionarea nodurilor lui G. ntr-adev!r, dac! din mul"imea arcelor E2 se elimin! pun"ile descoperite de algoritmul explorare precum #i arcele inverse ce acoper! respectivele pun"i, p!durea format! de arcele r!mase n E2 reprezint! chiar nodurile VG ale unui arbore de parti"ionare al grafului G.
V1 ' b ' V2 c d h d h c V1 a b a

e ' V3 f

g ' i V4 f

e V2

a) Arborele de parti"ionare pentru solu"ia din figura 8.2(a)

b) Arborele de parti"ionare pentru solu"ia din figura 8.2(b)

Figura 8.3 Arbori de parti"ionare n figura 8.3(a) este ilustrat arborele de parti"ionare rezultat n urma construc"iei grafului G2 din figura 8.2(a). Cele patru noduri ale arborelui TG corespund componentelor conexe r!mase n urma elimin!rii din E2 a pun"ilor =(e,f)), =(h,i), =(a,b) #i a arcelor inverse '=(f,d), '=(i,b), '=(c,a) ce acoper! aceste pun"i.

Algoritmi de aproximare pentru probleme NP-dure

Teorema 8.2 Fie G=(V,E) un graf 2-arc conectat, iar G2=(V,E2) un subgraf 2arc conectat de acoperire a lui G construit prin algoritmul arc_2_conectat. Fie E2 arcele rezultate din E2 prin eliminarea arcelor de parti"ionare ale grafului G (marcate n algoritm prin comentariul //(u,v) este arc de parti"ionare n G) #i a arcelor inverse care le acoper!. Componentele conexe reprezentate de arcele E2 corespund nodurilor unui arbore de parti"ionare TG=(VG,EG)al grafului G. Fie VG={V1,V2,...,Vk) parti"ionarea nodurilor V ale grafului G conform componentelor conexe determinate de arcele E2: Vi este mul"imea nodurilor din componenta conex! i. S! consider!m e=(vi,vj) un arc descoperit de algoritmul arc_2_conectat, astfel nct e nu este arc de arbore, iar viVi #i vjVj. Presupunem c! d(vi)<d(vj). Evident, b(vj)d(vi). Pentru c! G este 2-arc conectat #i, deci, nu are pun"i, rezult!, conform algoritmului, c! pe drumul vj,(vj),((vj)), ...,vi din arborele Arb(r), rezultat n urma parcurgerii n adncime a grafului, poate exista cel mult un arc de parti"ionare al grafului G. n consecin"!, fie Vi este p!rintele lui Vj n arborele TG, fie Vi=Vj. ! Evident, un graf poate avea mai mul"i arbori de parti"ionare. Structura arborelui de parti"ionare depinde de alegerea nodului r de start al parcurgerii n adncime a grafului precum #i de ordinea de explorare a nodurilor adiacente nodului curent explorat u, ordine impus! de modul de selec"ie al instruc"iunii for-each (vsuccs(u))... De exemplu, pentru solu"ia optim! din figura 8.2(b) arborele de parti"ionare al grafului are doar dou! noduri, V1={c} #i V2={a,b,d,e,f,g,h,i}, #i este ilustrat n figura 8.3(b). Teorema 8.3 Fie G=(V,E) un graf 2-arc conectat, G2=(V,E2) un subgraf oarecare 2-arc conectat de acoperire a lui G, iar TG=(VG,EG) un arbore de parti"ionare al lui G de dimensiune k. Atunci, card(E2) 2(k-1). Fie e=(Vi,Vj) un arc ales la ntmplare din TG. Eliminarea lui e deconecteaz! TG #i, totodat!, parti"ioneaz! nodurile grafului G n dou! mul"imi disjuncte: S este mul"imea nodurilor aflate n subarborele cu r!d!cina Vj #i V\S este mul"imea celorlalte noduri din graf. Pentru c! G2 este 2-arc conectat ntre cele dou! parti"ii de noduri trebuie s! existe cel pu"in 2 arce aflate n G2. Prin construc"ia lui TG, cele dou! arce au capetele n Vi #i Vj. Deci pentru fiecare arc e din TG proprietatea de 2-arc conectivitate a lui G2 impune existen"a a cel pu"in dou! arce n G2. Pentru c! num!rul de arce din TG este k-1, rezult! c! G2 trebuie s! con"in! cel pu"in 2(k-1) arce. ! Corolarul 8." Fie Opt(G) num!rul arcelor unui subgraf optim de acoperire 2arc conectat al unui graf G=(V,E) cu n=card(V). Fie k dimensiunea unui arbore de parti"ionare oarecare al lui G. Atunci,
Opt(G) max(n,2(k-1))

Conform teoremei (8.3), Opt(G) 2(k-1), unde k este dimensiunea arborelui de parti"ionare ales al grafului G. Pe de alt! parte, Opt(G) nu poate fi mai mic dect n, adic! num!rul de arce ale unui ciclu hamiltonian al grafului. !

"0

Cristian Giumale/Note de curs Teorema 8.4 Factorul de aproximare al solu"iei optime impus de algoritmul

arc_2_conectat este < 3/2.

Fie G=(V,E), cu card(V)=n, graful pentru care se construie#te - folosind algoritmul arc_2_conectat - un subgraf de acoperire 2-arc conectat G2=(V,E2). Fie k dimensiunea arborelui de parti"ionare al lui G, parti"ionare indus! de construc"ia lui G2. Num!rul de arce din G2 este card(E2)=(n-1)+(k-1). Termenul n-1 corespunde arcelor de arbore incluse automat n E2, iar termenul k-1 corespunde arcelor inverse ce acoper! pun"ile (arcele de parti"ionare) descoperite n cursul explor!rii grafului G. Pe de alt! parte, conform corolarului (8.$), avem Opt(G) max(n,2(k-1)). Factorul de aproximare (n) este:
(n) = card (E2) n 1 + k 1 Opt (G) max(n,2 (k 1))

Cazul $: n 2(k-1). (n) Cazul 2: n > 2(k-1). (n)

2 (k 1) 1 + k 1 2 (k 1) + k 1 < = 3/2 2 (k 1) 2 (k 1) n 1 + n/2 n + n/2 < = 3/2 n n !

Pentru un graf complet, algoritmul arc_2_conectat g!se#te ntotdeauna un ciclu hamiltonian #i, deci, solu"ia optim!. n ceea ce prive#te factorul de aproximare <3/2, acesta este valabil pentru orice algoritm bazat pe acoperirea minimal! a pun"ilor grafului dat: o punte este acoperit! de ct mai pu"ine arce inverse. n scopul verific!rii factorului de aproximare, este suficient s! se considere limita inferioar! a num!rului de arce ale solu"iei optime, precum #i limita superioar! a num!rului de arce dintr-un subgraf 2-arc conectat ob"inut printr-un asemenea algoritm. Propozi!ia 8." Limita superioar! a dimensiunii unui arbore de parti"ionare al unui graf G=(V,E) 2-arc conectat cu n noduri este n/2+1.
'1 1 2 1 3 '2 4 5 'n/2-1 n/2 2 n/2-1 'n/2 n

Figura 8.4 Graf cu arbore maximal de parti"ionare pentru n par Arborele de parti"ionare are num!rul de noduri maxim atunci cnd num!rul de pun"i acoperite de arce inverse este maxim. Aceast! situa"ie corespunde grafului din figura 8.4, unde pun"ile i sunt acoperite de arcele inverse 'i. Num!rul de pun"i acoperite este n/2 pentru n par #i (n-1)/2 pentru n impar. Astfel, num!rul de noduri din arborele de parti"ionare este k = n/2+1 n/2+1. ! Propozi!ia 8.2 Orice algoritm de tip arc_2_conectat (bazat pe acoperirea minimal! a pun"ilor) are un grad de aproximare < 3/2.

Algoritmi de aproximare pentru probleme NP-dure

""

Limita inferioar! a num!rului de arce dintr-un subgraf 2-arc conectat al unui graf cu n noduri este OPT(G) n (arcele unui ciclu hamiltonian), iar limita superioar! a num!rului de arce dintr-un subgraf 2-arc conectat al unui graf cu n noduri este, conform propozi"iei (8.$), card(E2) n-1 + n/2. Rezult!:
3 n 1 card (E2) (n) = 2 < 3/2 n OPT (G)

Construc"ia unui subgraf -arc conectat


Construc"ia unui subgraf G=(V,E), -arc conectat, al unui graf G=(V,E) pleac! de la un subgraf G2=(V,E2) 2-arc conectat de acoperire a grafului G. Urmeaz! ad!ugarea iterativ! de noi arce din E la arcele din E2, la fiecare pas m!rindu-se cu 1 factorul de conectivitate al subgrafului ce acoper! graful G. Dac! la pasul i arcele din subgraful de acoperire sunt Ei, arcele grafului Gi+1 vor fi Ei+Ai+1, unde Ai+1 reprezint! mul"imea arcelor din p!durea arborilor de acoperire construi"i pentru graful cu nodurile V #i arcele E\Ei. Graful solu"ie ob"inut are num!rul de arce cel mult de (2-1/) ori mai mare dect optimul.
arc__conectat(G,) { V = noduri(G); E2 = arc_2_conectat(G); // construc"ie subgraf G2=(V,E2) // construc"ie subgrafuri Gi=(V,Ei) i-arc conectate, i=2, for(i=2; i < ; i++) { E' = E \ Ei; Ai+1 = arce_acoperire(V,E'); // Ai+1 sunt arcele p!durii de acoperire a grafului (V,E') Ei+1= Ei Ai+1; } return E;

arce_acoperire(V,E') { // parcurgere n adncime a grafului (V,E') for-each(uV) c(u) = alb; A = ; // arcele p!durii de acoperire a grafului (V,E') for-each(uV) if(c(u) = alb) culege_arce(u,E'); return A; } culege_arce(u,E') { c(u) = cenu#iu; for-each(vsuccs(u,E')) if(c(v) = alb) {A = A {(u,v)}; culege_arce(v,E');} }

"2

Cristian Giumale/Note de curs

Teorema 8.5 Fie G=(V,E) un graf -arc conectat, iar E mul"imea arcelor calculate de algoritmul arc__conectat(G,). Graful G=(V,E) este -arc conectat. Demonstra"ia este prin induc"ie matematic! dup! contorul ciclului din algoritm. Caz de baz!: i=2. Evident, graful G2=(V,E2) este 2-arc conectat, fiind construit prin algoritmul arc_2_conectat(G), presupus corect. Pas de induc"ie: 2 i < . Ipoteza inductiv! consider! graful Gi = (V,Ei} iarc conectat. S! ar!t!m c! graful Gi+1 = (V,Ei+1} este i+1-arc conectat. S! presupunem c! n graful Gi+1 exist! o t!ietur!4 C cu i arce care deconecteaz! graful. Caz $: card(C Ei) < i. Cu alte cuvinte, o parte din arcele t!ieturii C se afl! n Ei, iar cealalt! parte n Ai+1. Conform ipotezei inductive, eliminarea unui num!r de k < i arce din Ei conduce la un graf conectat. Deoarece Ei Ei+1 rezult! c! eliminarea arcelor C Ei din Gi+1 conduce la un graf conectat, iar celelalte arce din C nu influen"eaz! conectivitatea. Deci, n acest caz, C nu poate deconecta Gi+1. Caz 2: card(C Ei) = i. Cu alte cuvinte, toate arcele t!ieturii C sunt n Ei. Deoarece, conform ipotezei inductive, Gi este i-arc conectat, exist! un singur arc n C care deconecteaz! graful Gi+1. Prin urmare, Gi+1 este spart n dou! subgrafuri, fie ele G' #i G". Fie Ec E mul"imea arcelor din G care conecteaz! G' #i G". Deoarece G este -arc conectat, n mul"imea Ec\C exist! arce care conecteaz! G' #i G". Conform algoritmului, sunt dou! situa"ii posibile. Caz 2.$. Exist! un arc e (Ec (Ei\C)). Arcele din mul"imea C nu pot deconecta graful Gi+1. Caz 2.2. Exist! un arc e (Ec Ai+1). ntr-adev!r, p!durea de acoperire (V,Ai+1) fiind maximal!5, un asemenea arc nu poate fi pierdut la construc"ia p!durii, dac! este disponibil. T!ietura C nu deconecteaz! graful Gi+1. Prin urmare, t!ietura C nu poate exista, iar graful Gi+1 este i+1-arc conectat. ! Complexitatea algoritmului arc__conectat este determinat! de complexitatea pasului ini"ial, impus! de algoritmul arc_2_conectat, #i de cele -2 parcurgeri n adncime ale grafului, corespunz!toare ciclului din algoritm. Rezult! complexitatea liniar! ((-1)(n+m)), cu n=card(V) #i m=card(E). Tehnica de analiz! a factorului de aproximare corespunz!tor algoritmului
arc_2_conectat poate fi aplicat! cu mici modific!ri #i pentru arc__conectat.

4 O t!ietur! a unui graf este o mul"ime de arce care sunt eliminate din graf. 5 O p!dure este maximal! dac! doi sau mai mul"i arbori din p!dure nu pot fi conecta"i

f!r! a nchide un ciclu n graf.

Algoritmi de aproximare pentru probleme NP-dure

"3

Teorema 8.6 Fie G=(V,E) un graf -arc conectat, G=(V,E) un subgraf oarecare -arc conectat de acoperire a lui G, iar TG=(VG,EG) un arbore de parti"ionare al lui G de dimensiune k. Atunci, card(E) (k-1). Demonstra"ia este asem!n!toare cu cea de la teorema (8.3). Corolarul 8.2 Fie Opt(G) num!rul arcelor unui subgraf optim de acoperire arc conectat al unui graf G=(V,E) cu n=card(V). Fie k dimensiunea unui arbore de parti"ionare oarecare al lui G. Atunci,
n ,(k-1)) Opt(G) max( 2

Conform teoremei (8.6), Opt(G) (k-1), unde k este dimensiunea arborelui de parti"ionare ales al grafului G. Pe de alt! parte, deoarece graful G este -arc conectat, num!rul de arce incidente n orice nod uV trebuie s! fie cel pu"in , iar cel pu"in arce incidente n u sunt n G. Dar fiecare arc incident n u este mp!r"it cu un alt nod din G. Rezult! c! num!rul de arce din G nu poate fi mai mic dect
n .! 2

Teorema 8.7 Factorul de aproximare al solu"iei optime impus de algoritmul


arc__conectat este < 21 .

Fie G=(V,E), cu card(V)=n, graful pentru care se construie#te - folosind algoritmul arc__conectat - un subgraf de acoperire -arc conectat G=(V,E). Fie k dimensiunea arborelui de parti"ionare al lui G, parti"ionare indus! de construc"ia grafului G2 ca prim pas al algoritmului. Conform algoritmului arc_2_conectat num!rul de arce din G2 este:
card(E2)= (n-1)+(k-1)

La fiecare repeti"ie a ciclului algoritmului arc__conectat num!rul de arce ad!ugate grafului G este cel mult n-1, iar ciclul se repet! de -2 ori. Rezult! c! num!rul total de arce din G este
card(E) (n-1)+(k-1)+(-2)(n-1)

Pe de alt! parte, conform corolarului (8.2), avem:


n ,(k-1)) Opt(G) max( 2

Factorul de aproximare trebuie calculat pentru cazul cel mai defavorabil, deci:
(n) = card (E ) (n - 1) + (k - 1) + ( - 2)(n - 1) n Opt(G) max( , (k 1)) 2 1 .!

n urma unei analize asem!n!toare cu cea de la teorema (8.4) rezult! < 2-

"4

Cristian Giumale/Note de curs

Algoritmul Nagamochi-Ibaraki
Algoritmul arc__conectat construie#te subgraful G=(V,E) prin -1 parcurgeri n adncime ale grafului dat G=(V,E). Exist! ns! un algoritm remarcabil, al lui Nagamochi #i Ibaraki [NI 92], care construie#te G printr-o singur! parcurgere special! a grafului G, considerat -arc conectat. Conceptual, algoritmul lui Nagamochi #i Ibaraki se bazeaz! pe construc"ia iterativ! a unor p!duri maximale (arborii p!durii nu pot fi conecta"i f!r! a nchide un ciclu n graf) de acoperire a grafului G, a#a cum indic! teorema urm!toare. Teorema 8.8 Fie G=(V,E) un graf -arc conectat, iar Fi=(V,Ai) p!durea maximal! de acoperire a grafului cu nodurile V #i arcele E\(A1...Ai-1). Graful G=(V,E), cu E= A1A2...A este un subgraf -arc conectat al lui G. S! consider!m c! exist! o t!ietur! C cu un num!r de cel mult -1 arce din graful G care deconecteaz! graful. Fie G' #i G" dou! componente rezultate din deconectarea lui G. Pentru c! G a rezultat prin reuniunea arcelor a p!duri disjuncte de acoperire a lui G, iar C are cel mult -1 arce, rezult! c! exist! cel pu"in o p!dure Fj=(V,Aj) astfel nct CAj=. Prin ipotez!, graful G este -arc conectat, deci exist! o mul"ime nevid! de arce Q care conecteaz! G' #i G" astfel nct QC=. Prin urmare, deoarece Fj este o p!dure maximal! de acoperire, cel pu"in un arc din Q a fost integrat n Aj n momentul construc"iei p!durii. Rezult! c! t!ietura C nu poate deconecta graful solu"ie G. ! De#i teorema (8.8) sugereaz! c! algoritmul efectueaz! parcurgeri ale grafului G, cele parcurgeri sunt distincte doar conceptual, iar construc"ia celor p!duri disjuncte de acoperire a grafului G sunt realizate printr-o singur! trecere prin graf. n acest scop, sunt folosite urm!toarele informa"ii asociate nodurilor #i arcelor grafului G:
r(u) - este un num!r natural care arat! c! nodul u a fost atins de arce ce apar"in p!durilor Fj, jr(u). Cu alte cuvinte, n fiecare p!dure Fj=(V,Aj), jr(u), exist! cel pu"in un arc incident n nodul u. c(u) - este culoarea nodului u (alb! dac! nodul nu a fost explorat #i neagr! imediat dup! explorarea arcelor incidente n nod). c(e) - culoarea arcului e (alb! dac! arcul nu a fost explorat).

Ini"ial, toate arcele #i nodurile au culoarea alb, iar r(u)=0 pentru orice nod u din graful G. La un moment dat, algoritmul viziteaz! nodul u cu r(u) maxim #i parcurge toate arcele neexplorate incidente n u. Fiecare arc (u,v) neexplorat este ad!ugat arcelor subgrafului Fr(v)+1, iar r(v) devine r(v)+1. Evident, fiecare arc face parte dintr-un singur subgraf, deci subgrafurile construite sunt disjuncte. Mai mult, fiecare subgraf este aciclic #i maximal, deci este o p!dure maximal! ce acoper! graful G. Pentru conciziune, algoritmul Nagamochi-Ibaraki, prezentat mai jos evit! detaliile de implementare ale unor opera"ii considerate elementare, a#a cum este selec"ia nodului curent explorat.

Algoritmi de aproximare pentru probleme NP-dure


Nagamochi-Ibaraki(G,) { V = noduri(G); E = arce(G); for-each(uV) {c(u) = alb; r(u) = 0;} for-each(eE) c(e) = alb; for(i = 1; i ; i++) Ai = ; // Ai sunt arcele p!durii Fi=(V,E\(A1A2...Ai-1)) while(uV c(u) = alb) { // selec"ie nod explorat fie uV cu r(u) = max{vV | c(v) = alb r(v)} for-each(v succs(u)) if(c(u,v) = alb) { if(r(u) = r(v)) r(u)++; r(v)++; if(r(v) ) Ar(v) = Ar(v){(u,v)}; c(u,v) = negru; } c(u) = negru; } return A1A2...A; a 0 a b b c d c e f d h g h i e g 1 1 1 1 1 1 1 1 1 b 0 1 2 2 2 2 2 2 2 2 c 0 1 2 2 2 2 2 2 2 2 d 0 0 0 1 1 1 1 1 1 1 e 0 0 0 0 1 2 2 2 2 2 f 0 0 0 0 1 2 2 2 2 2 g 0 0 0 0 1 2 2 2 2 2 h 0 0 0 1 1 1 1 2 3 3

"5

i 0 0 1 1 1 1 1 2 3 3

Valoarea r a nodurilor dup! explorare n ordinea liniilor.


i

Marcaj p!duri:

A1 A2 A3

Figura 8.5 Subgraful 2-arc conectat generat prin algoritmul Nagamochi-Ibaraki Un exemplu de execu"ie a algoritmului, pe acela#i graf utilizat n sec"iunile precedente, este ilustrat n figura 8.4. Ordinea explor!rii nodurilor corespunde ordinii liniilor din tabel. Num!rul din celula (u,u), reprezint! valoarea r(u) imediat dup! ce c(u)=negru, iar num!rul din celula (u,v), uv, este valoarea r(v) dup! explorarea

"6

Cristian Giumale/Note de curs

arcului (u,v), deci atunci cnd c(u,v)=negru. Evident, un arc (u,v) deja explorat nu mai influen"eaz! r(v). Se observ! c! solu"ia determinat! de algoritm, anume arcele A1A2, este mai slab! dect cea descoperit! de algoritmul Khuller-Vishkin. De asemenea, algoritmul are urm!toarea particularitate: poate descoperi p!duri Fj, j, chiar dac! gradul maxim de arc conectivitate a lui G este . Bun!oar!, graful din exemplu este doar 2-arc conectat, iar algoritmul descoper! arcele p!durii F3. Deoarece arcele p!durilor Fj, j, nu sunt interesante, algoritmul evit! stocarea acestor arce. Teorema 8.9 Factorul de aproximare corespunz!tor algoritmului NagamochiIbaraki este = 2.

Fie G=(V,E), card(V)=n, graful pe care lucreaz! algoritmul. Solu"ia optim! are
n . Deoarece fiecare p!dure Fi=(V,Ai) are cel mult n-1 2 arce, num!rul de arce ale subgrafului G=(V,E) construit de algoritm are un num!r card (E ) de arce card(E)(n-1). Se ob"ine: (n) = 2 ! Opt(G)

un num!r de arce OPT(G)

Pentru un graf dat G=(V,E), cu card(V)=n #i card(E)=m, complexitatea algoritmului este influen"at! de modul de selec"ie a nodului care are valoarea r maxim!. Selec"ia are loc de n ori, iar modificarea valorii r a nodurilor din graf are loc la str!baterea fiec!rui arc din cele m. Se poate imagina o structur! de date astfel nct efortul total al procesului de selec"ie n cursul execu"iei algoritmului s! fie (n+m). De asemenea, algoritmul ini"ializeaz! nodurile #i arcele ale grafului G, iar fiecare arc este str!b!tut o singur! dat!. Pe ansamblu, rezult! complexitatea (n+m). n ceea ce prive#te corectitudinea algoritmului, trebuie demonstrat c! subgrafurile Fi, i=1,, sunt p!duri maximale disjuncte de acoperire a grafului dat G.
Ibaraki sunt aciclice.

Lema 8." Subgrafurile Fi=(V,Ai), i=1,, construite de algoritmul Nagamochi-

Fie Fi=(V,Ai) un subgraf ciclic construit de algoritm, iar u0,u1,...,up,u0 un ciclu din Fi. F!r! a influen"a generalitatea demonstra"iei, s! presupunem c! arcul (u0,u1) este ad!ugat la Ai n cursul explor!rii nodului u0 #i este primul arc din ciclu ad!ugat la Ai. Fie t momentul ad!ug!rii acestui arc la Ai #i t'>t momentul ad!ug!rii arcului (up,u0) la Ai. Conform algoritmului, la momentul t avem:
r(u0)r(u1) - nodul curent explorat are valoarea r maxim!. r(u1)=i-1 - arcul (u0,u1) este ad!ugat mul"imii Ai.

Caz $: r(u0)=r(u1)=i-1. Conform algoritmului, imediat dup! ad!ugarea arcului (u0,u1) la Ai, avem r(u0)=r(u1)=i. Atunci, la momentul t' r(u0)i, iar arcul (up,u0) nu poate fi ad!ugat la Ai, ci la arcele unui subgraf Fj, cu j>i. Ciclul nu poate exista.

Algoritmi de aproximare pentru probleme NP-dure

"7

Caz 2: r(u0)>r(u1)=i-1. Atunci, cu att mai mult, la momentul t' r(u0)i, iar arcul (up,u0) nu poate fi ad!ugat la Ai, ci la arcele unui subgraf Fj, cu j>i. Ciclul nu poate exista. ! Lema 8.2 Fie (u,v) un arc ad!ugat p!durii Fi=(V,Ai) n cursul execu"iei algoritmului Nagamochi-Ibaraki. n momentul ad!ug!rii arcului, n p!durea Fi-1 exist! un drum u..v.
u..v la momentul ad!ug!rii arcului (u,v), ci doi arbori: Tu cu r!d!cina Tv cu r!d!cina

n contradic"ie cu teorema, s! admitem c! n p!durea Fi-1 nu exist! un drum


u0 #i care con"ine nodul u pe drumul u0,u1,...,up=u, v0 #i care con"ine nodul v pe drumul v0,v1,...,vq=v.

S! presupunem, f!r! a afecta demonstra"ia, c! nodul u0 este explorat naintea lui v0. Deoarece arcul (u0,u1) este primul arc din Tu rezult!, conform algoritmului, c! la momentul t al ad!ug!rii acestui arc la Tu avem r(u0) = r(u1) = i-2, iar dup! ad!ugare r(u0) = r(u1) = i-1. nseamn! c! la momentul t avem r(v0) i-2, pentru c! altfel v0 ar fi ales pentru explorare n locul lui u0. Astfel, nodul u1 este explorat naintea lui v0. Prin induc"ie dup! j rezult! c! nodurile uj, j=2,p, sunt explorate naintea nodului v0. De asemenea, pentru c! v0 este r!d!cina arborelui Tv, nodul v este explorat dup! v0 #i, deci, r(v) r(v0) i-2. Prin urmare, nodul u este explorat naintea lui v, iar la momentul vizit!rii lui u avem r(v) i-2 ceea ce are drept efect ad!ugarea arcului (u,v) la o p!dure Fj, j<i. Ipoteza teoremei este contrazis!. ! Lema 8.3 Fie nodurile oarecare u #i v din graful dat G pe care lucreaz! algoritmul Nagamochi-Ibaraki. Dac! exist! un drum Pi=u..v n p!durea Fi atunci exist! un drum Pj=u..v n orice p!dure Fj, ji. Fie Pi=u..v un drum n p!durea Fi=(V,Ai). Conform lemei (8.2), pentru fiecare arc e din Pi exist! un drum Pi-1(e) n p!durea Fi-1. Este evident c! (Pi 1(e)) formeaz! un drum Pi-1=u..v n p!durea Fi-1. mul"imea arcelor ! arce
ePi

Prin induc"ie, rezult! c! exist! drumuri Pj=u..v n orice p!dure Fj, ji. ! Teorema 8."0 Subgraful Fi=(V,Ai),1i, construit de algoritmul NagamochiIbaraki pentru graful G=(V,E), este o p!dure maximal! de acoperire a grafului =(V,E\(A1A2...Ai-1)). $. Conform lemei (8.$) subgraful Fi este aciclic, deci este o p!dure. 2. S! presupunem c! Fi nu este p!dure maximal! de acoperire a grafului . nseamn! c! exist! un arc (u,v) al unei p!duri Fj=(V,Aj), j>i, arc ce poate fi ad!ugat la Ai pentru a extinde p!durea Fi. Atunci, conform lemelor (8.2) #i (8.3) n p!durea F'i=(V, Ai{(u,v)}) exist! un ciclu u..v. Deci arcul (u,v) nu poate extinde p!durea Fi. Prin urmare, Fi este o p!dure maximal!. !

"8

Cristian Giumale/Note de curs

Testarea -arc conectivit!"ii


Metodele prezentate construiesc un subgraf -arc conectat al unui graf G=(V,E) considernd c! G este -arc conectat. Aplicarea algoritmilor respectivi pe un graf oarecare impune testarea prealabil! a -arc conectivit!"ii acestuia. Se observ! c! impunerea unui ordin pentru toate nodurile grafului este o condi"ie necesar!, dar nu suficient! de -arc conectivitate. ntr-adev!r, toate nodurile din graful ilustrat n figura 8.6 au ordinul cel pu"in 2, dar graful nu este 2-arc conectat.
e punte

Figura 8.6 Un graf cu noduri de ordin 2 care nu este 2-arc conectat Evident, pentru =2, este suficient testul existen"ei pun"ilor n graful G. Linia if(d(u)<b(v)) G nu este 2-arc conectat din algoritmul arc_2_conectat are acest scop, verificnd dac! arcul (u,v) este punte. n cazul general, graful G este -arc conectat dac! #i numai dac! ntre un nod de start ales la ntmplare, fie el s, #i orice alt nod u din graf exist! cel pu"in drumuri cu arce disjuncte (verificarea este l!sat! ca exerci"iu). Totu#i, o simpl! colorare a drumurilor printr-o parcurgere a grafului pornind de la nodul s nu rezolv! problema, a#a cum s-ar p!rea la prima vedere, existnd pericolul ca drumul g!sit la un moment dat s! mpiedice descoperirea altor drumuri posibile. Astfel, dac! s = a, drumul a,d,b,e,c din figura 8.6 blocheaz! descoperirea drumurilor a,b,c, a,d,c #i a,e,c. Totu#i, problema este rezolvabil! n timp polinomial. Un algoritm posibil este arc_conectivitate, descris n cele ce urmeaz!, bazat la rndul s!u pe un algoritm de flux maxim. Algoritmul arc_conectivitate pleac! cu graful G=(V,E) pe care l transform!, prin dublarea arcelor E, ntr-un graf orientat Go=(V,Eo). Apoi algoritmul alege la ntmplare nodul de plecare startV #i pentru fiecare nod stop start din V calculeaz! fluxul maxim ntr-o re"ea de flux cu nodurile V, arcele Eo, nodul surs! start, nodul terminal stop #i cu capacit!"ile arcelor 1. Evident, dac! fluxul maxim este k nseamn! c! exist! k drumuri arc disjuncte ntre start #i stop. Arc-conectivitatea grafului este min{stop V drumuri_arc_disjuncte(V,Eo,start,stop)}.
drumuri_arc_disjuncte(V,Eo,start,stop){ // num!r drumuri arc-disjuncte start..stop for-each(eEo) c(e)=1; // capacitate arce return pompare_topologic!(V,Eo,start,stop); // flux maxim }

Algoritmi de aproximare pentru probleme NP-dure


arc_conectivitate(V,E) { // calculeaz! arc-conectivitatea grafului G=(V,E) Eo = ; // arce graf orientat (V,Eo) for-each((u,v)E) Eo = Eo {(u,v),(v,u)}; = ; fie startV un nod oarecare; // num!r min drumuri arc-disjuncte start..stop, stopV for-each(stopV) if(stop start) { drumuri = drumuri_arc_disjuncte(V,Eo,start,stop); if( > drumuri) = drumuri; } return ; // G este -arc_conectat }

"9

Algoritmul pompare_topologic!, prezentat n capitolul 5, g!se#te fluxul maxim dintre start #i stop n timp (n3). Astfel, complexitatea algoritmului drumuri_ arc_disjuncte este (n3 + 2 m). Pentru c! sunt n-1 fluxuri de calculat, complexitatea algoritmului arc_conectivitate rezult! (n4 + (n-1) m).

8.2.2 -nod conectivitate


Fie G=(V,E) un graf cu n noduri #i 1 < n-1 un num!r ntreg. S! se determine un subgraf G=(V,E) de acoperire a lui G cu num!r minim de arce, astfel nct G s! fie -nod conectat. n cele ce urmeaz!, consider!m grafurile date ca fiind deja -nod conectate, urmnd ca problema s! se reduc! la p!strarea unui num!r minim de arce pentru asigurarea -nod conectivit!"ii. Ca #i n sec"iunea 8.2.$, termenul graf va desemna un graf neorientat #i conex. Propozi!ia 8.3 Orice graf -nod conectat este cel pu"in -arc conectat. Deoarece graful este -nod conectat, eliminarea a cel mult -1 noduri oarecare din graf nu deconecteaz! graful. Eliminarea unui nod nseamn! eliminarea a cel pu"in unui arc. nseamn! c! eliminarea a cel pu"in -1 arce oarecare din graf nu deconecteaz! graful. Deci graful este cel pu"in -arc conectat. ! Propozi"ia de mai sus arat! c! propriet!"ile stabilite pentru un graf -arc conectat sunt valide #i pentru un graf -nod conectat.

Construc"ia unui subgraf 2-nod conectat


Un graf G=(V,E) este 2-nod conectat dac! nu are puncte de articula"ie. Astfel, construc"ia unui subgraf de acoperire G2=(V,E2) 2-nod conectat al grafului G, considerat 2-nod conectat, se poate efectua prin parcurgerea DFS a grafului G, descoperirea poten"ialelor articula"ii #i acoperirea acestora cu arce inverse. Metoda,

20

Cristian Giumale/Note de curs

datorat! lui Khuller #i Vishkin [KV 94], corespunde algoritmului de mai jos, unde sunt folosite acelea#i nota"ii ca #i pentru algoritmul arc_2_conectat.
nod_2_conectat(G){// Khuller-Vishkin V= noduri(G); for-each(uV) {c(u)=alb; (u)=null; subgrafuri(u)=0;} timp=0; E2=; // arcele subgrafului G2 fie rV un nod ales la ntmplare; explorare(r); // parcurgere DFS a grafului G pornind din r // r este articula"ie? if(subgrafuri(r) > 1) G nu este 2-nod conectat return E2; } explorare(u){ d(u) = b(u) = b2(u) = ++timp; e(u) = (u,u); c(u) = cenu#iu; for-each(vsuccs(u)) if(c(v) = alb){ subgrafuri(u)++; (v) = u; E2= E2 {(u,v)}; // (u,v) este arc de arbore explorare(v); if(b(v) < b(u)) {b(u)= b(v); e(u)= e(v);} if((u)null d(u) b2(v)) { // u este articula"ie n subgraful G2 // test posibilitate acoperire articula"ie if(d(u) b(v)) G nu este 2-nod conectat // (u,v) este arc de parti"ionare n G // test eliminare arc de parti"ionare din E2 if(b2(v) = d(u) e(v) = (v,_)) E2 = E2\{(u,v)}; // articula"ia u este acoperit! cu arcul e(v) E2= E2 {e(v)}; b2(v) = b(v); } b2(u) = min{b2(u),b2(v)}; } else // v este redescoperit if((u)v) // (u,v) este arc invers if(d(v) < b(u)) {b(u) = d(v); e(u) = (u,v);} c(u)=negru; // terminare explorare nod }

Algoritmi de aproximare pentru probleme NP-dure

2"

Complexitatea algoritmului este (n+m), cu n=card(V) #i m=card(E). Liniile gri din algoritm sunt utile pentru a semnaliza existen"a articula"iilor ce nu pot fi acoperite cu arce inverse, atunci cnd nu se #tie apriori c! G este 2-nod conectat. Ca #i n cazul algoritmului arc_2_conectat este p!strat urm!torul invariant esen"ial:
vV | c(v)=negru e(v)=(x,y) (x,y)E d(y)=b(v) d(x)d(v)

Invariantul justific! acoperirea posibilei articula"ii u cu arcul e(v), unde v este un succesor al lui u complet explorat. ntr-adev!r, dac! b(v)<d(u), atunci arcul e(v) nchide un ciclu ce con"ine articula"ia u, iar eliminarea lui u nu taie din G2 subgraful a c!rui explorare DFS a nceput pe arcul (u,v). Lema 8.4 Fie G2=(V,E2) un subgraf de acoperire 2-nod conectat al unui graf G=(V,E), C un ciclu simplu n G2, iar e o coard! n C (un arc ntre dou! noduri ale ciclului C). Subgraful G2'=(V,E2\{e}) este 2-nod conectat. Evident, eliminarea unui nod care este n ciclu nu deconecteaz! G2 chiar dac! arcul e este eliminat din E2, iar celelalte noduri din G2 nu sunt influen"ate de eliminarea lui e. !
r x u

v y Gv

Figura 8.7 Arcul (u,v) este arc de arbore redundant Conform lemei (8.4), algoritmul elimin! unele arce de arbore care sunt redundante n G2. Arcul (u,v), unde u este nodul n curs de explorare, iar v este un nod a c!rui explorare - nceput! din u - s-a ncheiat, poate fi eliminat din subgraful solu"ie G2 dac! exist! dou! arce inverse, a#a cum se arat! n figura 8.7: un arc invers (v,x) care acoper! articula"ia u, unde x este predecesor al lui u n arborele Arb(r); un arc invers(y,u) care acoper! articula"iile de pe calea y..u n Arb(r), unde y este descendent al lui v n arborele Arb(r).

Se observ! c! se formeaz! un ciclu x..u..y..v..x n care arcul de arbore (u,v) este coard! #i, deci, poate fi eliminat f!r! a influen"a 2-conectivitatea subgrafului G2.

22

Cristian Giumale/Note de curs

Teorema 8."" Fie G=(V,E) un graf 2-nod conectat, iar G2=(V,E2) un subgraf construit prin algoritmul nod_2_conectat(G). Subgraful G2 acoper! graful G #i este 2nod conectat. Graful G2 con"ine toate arcele de arbore descoperite prin parcurgerea n adncime a lui G, cu excep"ia unor arce redundante conforme lemei (8.4), deci G2 acoper! G. De asemenea, G2 nu con"ine articula"ii, orice articula"ie u descoperit! n raport cu un subgraf din care face parte arcul (u,v) fiind acoperit! de arcul invers e(v). !
a V1 b ' c ' ' c b ' a

'

' h ' e i V2 f

h ' g V3 i V5 V4

e f g

a) Subgraf G2 2-nod conectat

b) Arborele de parti"ionare al lui G2

Figura 8.8 Construc"ia unui subgraf 2-nod conectat prin metoda Khuller-Vishkin Un exemplu de aplicare a algoritmului nod_2_conectat este ilustrat n figura 8.8(a), unde graful ini"ial G are 13 arce. Nodul de start al parcurgerii n adncime a grafului este a, iar ordinea vizit!rii nodurilor este a, b, c, d, e, f, g, h, i. n cursul explor!rii n adncime, sunt descoperite (n ordine) articula"iile e, h #i d. Articula"ia e este acoperit! cu arcele inverse '=(f,c), pentru puntea =(e,f), #i '=(g,b), pentru puntea =(e,g). Articula"ia h este acoperit! de arcul invers '=(i,d) pentru puntea =(h,i). Articula"ia d este acoperit! cu arcul invers '=(h,a) pentru subgraful cu arcele {(d,h),(d,i),(h,i)}, iar arcul de parti"ionare =(d,h) este eliminat din solu"ie. Solu"ia are 11 arce: toate arcele lui G, exceptnd arcul (a,d). Solu"ia optim! are doar 9 arce #i corespunde ciclului hamiltonian a,b,g,e,f,c,d,i,h,a. Parcurgerea n adncime a grafului G, efectuat! de algoritmul nod_2_conectat, conduce la parti"ionarea nodurilor V n submul"imi Vi, i=1,k, #i la construc"ia unui arbore de parti"ionare cu nodurile VG = {V1,V2,...,Vk).

Algoritmi de aproximare pentru probleme NP-dure

23

Defini!ia 8.5 Fie G=(V,E) un graf, iar TG=(VG,EG) un arbore (orientat, cu r!d!cin!) cu nodurile VG = {V1,V2,...,Vk) care satisface propriet!"ile: a) i,j1..k ij ViVj = b) V = V1 V2 ... Vk c) uV uVi (vsuccs(u) vVi (Vjsuccs(Vi) vVj)
v(Vi) v((Vi))

Arborele TG este un arbore de parti!ionare al grafului G, iar k este dimensiunea arborelui. Nodurile arborelui TG reprezint! o parti"ionare a nodurilor grafului G, astfel nct dac! un nod u din G este con"inut n nodul Vi din TG atunci to"i vecinii lui u din G sunt fie n Vi, fie n succesorii lui Vi din TG, fie n p!rintele (Vi) al lui Vi din TG, fie n bunicul lui Vi din TG. Se remarc! diferen"a dintre un arbore de parti"ionare construit cu algoritmul
arc_2_conectat #i un arbore de parti"ionare construit cu algoritmul nod_2_conectat. n ultimul caz, pot exista noduri uV con"inute ntr-un nod Vi din TG astfel nct unele arce (u,v)E s! duc! spre noduri v situate n bunicul lui Vi din TG. De fapt, conform algoritmului, poate exista un singur arc (u,v) de acest tip.

Construc"ia grafului G2=(V,E2) prin algoritmul nod_2_conectat conduce implicit la parti"ionarea nodurilor lui G conform defini"iei (8.5). ntr-adev!r, dac! din mul"imea arcelor E2 se elimin! acele arce de arbore incidente n articula"iile descoperite de algoritmul explorare #i care au fost acoperite cu arce inverse, precum #i arcele inverse ce le acoper!, nodurile p!durii formate de arcele r!mase n E2 reprezint! chiar nodurile VG ale unui arbore de parti"ionare al grafului G. Figura 8.8(b) ilustreaz! arborele de parti"ionare corespunz!tor solu"iei din figura 8.8(a). Cu excep"ia nodului i, orice nod u din graful G2 con"inut ntr-un hipernod Vj din arborele de parti"ionare TG are vecinii din G plasa"i n Vj sau n vecinii lui Vj din TG. Nodul i din hipernodul V5 are un vecin n G, anume d, con"inut n hipernodul V1, p!rintele p!rintelui hipernodului V5. Teorema 8."2 Fie G=(V,E) un graf 2-nod conectat, iar G2=(V,E2) un subgraf 2-nod conectat de acoperire a lui G construit prin algoritmul nod_2_conectat. Fie E2 arcele rezultate din E2 prin eliminarea arcelor de parti"ionare ale grafului G (marcate n algoritm prin comentariul //(u,v) este arc de parti"ionare n G) #i a arcelor inverse care le acoper!. Componentele conexe reprezentate de arcele E2 corespund nodurilor unui arbore de parti"ionare TG=(VG,EG)al grafului G, conform defini"iei (8.5). Fie VG={V1,V2,...,Vk}, parti"ionarea nodurilor V ale grafului G conform componentelor conexe determinate de arcele E2: Vi este mul"imea nodurilor din componenta conex! i. S! consider!m e=(vi,vj) un arc descoperit de algoritmul nod_2_conectat, astfel nct e nu este arc de arbore, iar viVi #i vjVj. F!r! a afecta generalitatea demonstra"iei, presupunem d(vi)<d(vj). Evident, b(vj)d(vi). Pentru c! G este 2-nod conectat #i, deci, nu are articula"ii, rezult!, conform algoritmului, c! pe drumul P = vj,(vj),((vj)),...,vi din arborele Arb(r) pot exista cel mult dou! arce de parti"ionare ale grafului G, a#a cum se sugereaz! n figura

24

Cristian Giumale/Note de curs

8.9. Prin urmare, exist! urm!toarele trei rela"ii posibile ntre hipernodurile Vi #i Vj din TG, n raport cu num!rul x de arce de parti"ionare ale grafului G aflate n lungul c!ii P: a) x=0: Vi=Vj b) x=1: Vi este p!rintele lui Vj c) x=2: Vi este bunicul lui Vj !
r Vi vi Vi=Vj e vj vj Vj 0 t!ieturi 1 t!ietur! e vj Vj 2 t!ieturi vi e r Vi vi

Figura 8.9 T!ieturi n G pe drumul vj..vi din arborele Arb(r) Analiza factorului de aproximare al algoritmului nod_2_conectat(G) oblig! observarea unor rela"ii interesante #i utile ntre graful solu"ie G2, arborele Arb(r), s! l numim T, construit de algoritm n cursul calculului solu"iei G2, #i arborele de parti"ionare TG al grafului dat G (ce ia na#tere prin eliminarea arcelor de parti"ionare #i a arcelor inverse asociate n T). Vor fi folosite urm!toarele nota"ii #i denumiri: f desemneaz! num!rul frunzelor din T #i TG. Este u#or de observat c! frunzele din T sunt acelea#i ca #i frunzele din arborele TG, rezultat din T. Totodat!, f reprezint! #i num!rul arcelor inverse din G2, arce ce pleac! din frunzele lui T. Numim aceste arce inverse, arce inverse de frunz#. Deoarece arcele de acest tip nu conduc la eliminarea din G2 a unor arce de arbore redundante, ele contribuie la cre#terea num!rului total de arce din G2. x desemneaz! num!rul arcelor inverse ad!ugate la G2, altele dect cele ce pleac! de la frunzele din arborele T #i altele dect cele care au contribuit la eliminarea unor arce de arbore redundante n G2. Pe scurt, numim aceste arce arce inverse necompensate. Denumirea este motivat! de faptul c! aceste arce produc o cre#tere net! a num!rului total de arce din G2. ntr-adev!r, introducerea n G2 a unui arc invers ce a contribuit la eliminarea unui arc de arbore redundant este compensat! prin eliminarea arcului redundant, arcul invers respectiv fiind denumit arc invers compensat. n schimb, ad!ugarea unui arc invers necompensat contribuie la m!rirea num!rului de arce din G2. Un nod intern n T sau TG este un nod ce nu este frunz!. n particular, r!d!cina arborelui este considerat! nod intern.

Algoritmi de aproximare pentru probleme NP-dure

25

Teorema 8."3 Fie G=(V,E) un graf cu n noduri, iar G2=(V,E2) un subgraf de acoperire 2-nod conectat al lui G, ob"inut folosind algoritmul nod_2_conectat. Fie T arborele DFS, corespunz!tor solu"iei G2, ob"inut prin execu"ia algoritmului, iar f num!rul arcelor inverse de frunz! din T #i x num!rul arcelor inverse necompensate din G2. Exist! rela"ia:
1 f+x (n + f). 2

Num!rul total de arce din G2 este card(E2) = (n-1) + f + x. ntr-adev!r, orice arc invers care a contribuit la eliminarea din E2 a unui arc redundant de arbore, nu mai trebuie socotit, fiind inclus n valoarea n-1. Cantitatea f+x reprezint! num!rul de arce inverse care m!resc efectiv dimensiunea lui G2. S! estim!m num!rul f+x de arce inverse din G2 ce sunt descoperite de algoritm n cursul construc"iei arborelui T. Mai nti, s! numerot!m tipurile de arce inverse ad!ugate la G2 astfel: $. Arce inverse de frunz!, ce pleac! din frunzele lui T. 2. Arce compensate, ce pleac! din noduri interne ale lui T #i elimin! arce de arbore redundante (vezi figura 8.7). 3. Arce inverse necompensate, ce pleac! din noduri interne ale lui T #i nu elimin! arce de arbore. M!rirea efectiv! a num!rului de arce din G2 se datoreaz! exclusiv arcelor inverse de tip ($) #i (3). Pentru a estima num!rul acestor arce ad!ugate de algoritm la G2, s! asociem fiec!rui nod u din T un cost ce m!soar! contribu"ia nodului la num!rul de arce inverse de tip ($) #i (3) ad!ugate solu"iei G2. Urm!toarele reguli arat! dependen"a dintre costul unui nod #i arcele inverse care fac parte din G2. r$. Pentru un arc invers de tip ($) ce pleac! dintr-o frunz! u, cost(u) se m!re#te cu 1. Evident, o frunz! din T contribuie n mod sigur cu un arc invers n G2. r2. Pentru un arc de tip (3) care iese dintr-un nod intern u din T, cost(u) #i
cost((u)) se m!resc fiecare cu 0.5.

r3. Arcele de tip (2) nu altereaz! costurile nodurilor.

S! ar!t!m c! la terminarea algoritmului avem cost(u)0.5 pentru orice nod u intern n T. Pentru contradic"ie s! presupunem c! exist! un nod intern u n T astfel nct cost(u)>0.5. Doar dou! cazuri pot conduce la un cost(u)>0.5. Caz a. n G2 exist! dou! arce inverse de tip (3), e1 #i e2, ce ies din doi succesori direc"i, v1 #i, respectiv, v2, ai nodului u n T. Conform regulii (r2) arcul e1 contribuie la cost((v1))=cost(u) cu 0.5, iar arcul e2 contribuie la cost((v2))=cost(u) cu 0.5. Pentru c! v1 #i v2 nu sunt frunze avem, conform algoritmului, b2(v1)<d(v1) #i b2(v2)<d(v2) imediat ce nodurile v1 #i v2 sunt complet explorate (devin negre).

26

Cristian Giumale/Note de curs

este contrazis! ipoteza cazului (a) #i, oricum, prin regula (r3) un arc de tip (2) nu contribuie la costul lui u, deci cost(u) nu poate dep!#i 0.5. Dac! b2(v1)<d(u) #i b2(v2)<d(u), atunci cel mult unul dintre arcele e1 #i e2, anume acela cu b()= min(b(v1),b(v2)) va fi eventual ad!ugat la G2 ntr-o faz! ulterioar! a algoritmului. Prin urmare, cost(u) nu poate dep!#i 0.5. Caz b. n G2 exist! un arc invers e1 de tip (3) ce iese dintr-un succesor direct, fie el v1, al lui u n T #i un arc invers e de tip (3) ce iese din u. Conform regulii (r2) e1 contribuie la cost((v1)) = cost(u) cu 0.5, iar e contribuie la cost(u) cu 0.5. Pentru c! nodul v1 nu este frunz! avem, conform algoritmului, b2(v1)<d(v1) imediat ce nodul v1 este complet explorat (devine negru). Dac! b2(v1)=d(u), nainte de acoperirea cu e1=e(v1) a nodului u, rezult! c! arcul e1 este de tip (2). Este contrazis! ipoteza cazului (b) #i, oricum, prin regula (r3) arcul nu contribuie la costul lui u, deci cost(u) nu poate dep!#i 0.5. Dac! b2(v1)<d(u) atunci cel mult unul dintre arcele e1 #i e, anume acela cu b()= min(b(v1),b(v)) va fi eventual ad!ugat la solu"ia G2 ntr-o faz! ulterioar! a algoritmului. Prin urmare, cost(u) nu poate dep!#i 0.5. n toate cazurile de mai sus cost(u)0.5 pentru orice nod intern u din T. De asemenea, cost(v)=1 pentru orice frunz! v din T. Deoarece n T sunt n-f noduri interne #i f frunze, rezult! c! num!rul arcelor inverse de tip ($) #i (3) ad!ugate la G2 este:
f+x 1 1 (n f) +f = (n + f) ! 2 2

Dac! b2(v1)=d(u) sau b2(v2)=d(u), nainte de acoperirea cu e1=e(v1) sau e2=e(v2) a nodului u, rezult! c! arcul e1 sau e2 este de tip (2). Imposibil, pentru c!

Teorema 8."4 Fie G=(V,E) un graf cu n noduri, iar TG un arbore de parti"ionare al lui G, de dimensiune k, iar f num!rul frunzelor din TG. Atunci pentru orice subgraf G2=(V,E2) de acoperire 2-nod conectat al lui G exist! rela"ia
card(E2) f + k - 1

Fie T arborele rezultat prin explorarea DFS a grafului G n cursul construc"iei solu"iei TG. Evident, frunzele din TG sunt exact cele din T, deci f frunze. Pentru orice frunz! u din T n orice graf 2-nod conectat trebuie s! existe dou! arce, unul de arbore #i unul invers, care au un cap!t n u. Deci n G2 trebuie s! existe cel pu"in 2f arce. Exact dublul num!rului frunzelor din TG. Pentru orice nod intern u, diferit de r!d!cin!, din T n orice graf 2-nod conectat trebuie s! existe cel pu"in dou! arce, unul care are un cap!t n u #i altul care are un cap!t ntr-un str!mo# al lui u n T. n TG exist! k-f-1 noduri care satisfac restric"ia. Deoarece un nod intern din TG mpacheteaz! cel pu"in un nod din T, iar nodurile din TG sunt disjuncte, rezult! c! n G2 trebuie s! existe cel pu"in k-f-1 arce pentru astfel de

Algoritmi de aproximare pentru probleme NP-dure

27

noduri. Acest num!r corespunde arcelor care conecteaz! nodurile interne n TG. Rezult!, card(E2) 2f + (k - f) - 1 = f + k - 1 ! Corolarul 8.3 Fie G=(V,E) un graf cu n noduri, iar OPT(G) num!rul arcelor unui subgraf optim 2-nod conectat de acoperire a lui G. Fie G2 un subgraf oarecare 2-nod conectat de acoperire a lui G, construit cu algoritmul nod_2_conectat, iar T arborele DFS asociat construc"iei lui G2. Not!m cu f num!rul frunzelor din T #i cu x num!rul arcelor inverse necompensate ad!ugate la G2. Atunci,
OPT(G) max(n,2f+x)

Fie TG arborele de parti"ionare al grafului G corespunz!tor lui T #i k dimensiunea lui TG. Evident, frunzele din TG sunt exact cele din T, deci f frunze. Fiecare arc invers din G2 corespunde unui arc de parti"ionare n T, iar TG ia na#tere prin eliminarea arcelor de parti"ionare #i a arcelor inverse asociate. Rezult! c! num!rul k-1 al arcelor din TG reprezint! num!rul arcelor de parti"ionare din T #i, implicit num!rul total al arcelor inverse ad!ugate de algoritm n subgraful G2. Deci,
k-1 = f + x + arce_compensate.

Conform teoremei (8.$4), rezult! OPT(G) f + k - 1. Dar k-1 f + x. Se ob"ine OPT(G) 2f+x. Pe de alt! parte, Opt(G) nu poate fi mai mic dect n, num!rul de arce dintr-un ciclu hamiltonian al grafului. Rezult! Opt(G) max(n,2f+x). ! Teorema 8."5 Factorul de aproximare al solu"iei optime impus de algoritmul
nod_2_conectat este < 5/3.

Fie G=(V,E) graful cu n noduri pentru care se construie#te, folosind algoritmul nod_2_conectat, un subgraf de acoperire 2-nod conectat G2=(V,E2). Fie T arborele DFS indus de construc"ia lui G2. S! not!m cu f num!rul frunzelor din T #i cu x num!rul arcelor inverse necompensate din G2. Num!rul de arce din G2 este card(E2)=(n-1)+f+x. Termenul n-1 corespunde arcelor de arbore incluse n E2 #i al arcelor inverse care au eliminat arce de arbore redundante, iar termenul f+x corespunde arcelor inverse ce ies din frunze #i al celor care nu au contribuit la eliminarea din G2 a arcelor de arbore redundante. Pe de alt! parte, conform corolarului (8.3), avem Opt(G) max(n,2f+x)), iar din teorema (8.$3) avem 2x n-f. Rezult!,
(n) = card (E2) n 1 + f + x n + f + x < Opt (G) max(n,2f + x) max(n,2f + x)

Cazul $: n 2f+x.
(n) < 2f + x + f + x 2f + x = 2f 1 = 2x 2f + x 2 + f

28

Cristian Giumale/Note de curs


1 2 + x f

Din 2x n-f #i n 2f+x rezult! x f. Valoarea minim! a raportului ob"ine pentru x = f #i este Cazul 2: n 2f+x.
(n) < n + f + x n = 1+ f + x n 1 1 5 = . Rezult! (n) < 2. 3 3 3

se

Din 2x n-f #i n 2f+x se ob"ine x+f

2 5 2 n . Rezult!, (n) < 1+ = . ! 3 3 3

Factorul de aproximare poate fi mic#orat n urma unei observa"ii simple: algoritmul nod_2_conectat nu elimin! toate arcele de arbore care sunt redundante, conform lemei (8.4). Astfel, n graful G2 din figura 8.$0 (subgraf de acoperire 2-nod conectat al grafului din figura 8.8(a)) arcele de arbore (b,c), (e,d) #i (d,h) pot fi eliminate, fiind corzi n cicluri simple din graf. Solu"ia optimizat! are 9 arce #i, ntmpl!tor, corespunde ciclului hamiltonian al grafului G2.
a

b ' c

'

coard!
(b,c) (d,e) (d,h)

ciclu
a,b,g,e,f,c,d,a a,h,i,d,c,f,e,g,b,a a,h,i,d,c,f,e,g,b,a

'

h '

e f g

Figura 8."0 Eliminarea unor arce directe, redundante n G2 Un algoritm care elimin! mai multe arce de arbore redundante, apar"ine lui Garg, Santosh #i Singla [GSS 93]. Algoritmul are dou! faze: (i) se construie#te un subgraf G2=(V,E2) prin metoda Khuller-Viskin; (ii) se elimin! arce de arbore #i se modific! arcele inverse din E2 pentru a favoriza eliminarea arcelor de arbore. Algoritmul, destul de complicat, asigur! un factor de aproximare < 3/2.

Algoritmi de aproximare pentru probleme NP-dure

29

Construc"ia unui subgraf -nod conectat


Un graf G=(V,E) este -nod conectat dac! #i numai dac! ntre oricare pereche de noduri din V exist! cel pu"in drumuri cu noduri disjuncte. Evident, ordinul oric!rui nod din graf trebuie s! fie cel pu"in . Unul dintre algoritmii de construc"ie a unui graf suboptimal -nod conectat este chiar algoritmul Nagamochi-Ibaraki(G,) prezentat pentru optimizarea grafurilor arc conectate. Factorul de aproximare se men"ine = 2. Pentru demonstra"ie s! introducem urm!toarele nota"ii, considernd n = card(V):
Gi=(V,Ei), unde Ei= A1 A2 ... Ai, este graful rezultat din reuniunea p!durilor Fj=(V,Aj), j=1,i, construite de algoritm. k(u,v,Gi) desemneaz! conectivitatea nodurilor u #i v relativ la graful Gi, anume num!rul minim de drumuri nod-disjuncte ntre u #i v con"inute n Gi (drumuri cu noduri distincte, exceptnd capetele u #i v). Cele dou! noduri #i, implict, graful Gi, sunt deconectate dac! drumurile respective sunt ntrerupte. O m!sur! echivalent! a conectivit!"ii k(u,v,Gi) este num!rul minim de noduri care prin eliminare deconecteaz! nodurile u #i v n graful Gi. Prin conven"ie, k(u,v,Gi)= n-1, dac! (u,v)Ei.

De asemenea, prin propozi"ia (8.3), pentru un graf -nod conectat sunt valide toate propriet!"ile algoritmului Nagamochi-Ibaraki conforme lemelor (8.$)-(8.3) #i teoremelor (8.8), (8.9). Teorema 8."6 Fie G=(V,E) un graf cu n noduri -nod conectat. Proprietatea i1.. P(i) este valid!, unde
P(i)=def u,vV k(u,v,Gi) min(k(u,v,G),i)

Pentru demonstra"ie folosim induc"ia matematic! n raport cu i. Caz de baz!: i=1. S! ar!t!m c! P(1) este adev!rat!. Deoarece k(u,v,G)>1 avem min(k(u,v,G),1)=1. Pe de alt! parte, G1=F1 este arbore de acoperire al lui G. Atunci,
k(u,v,G1)=1 pentru orice u #i v din V astfel nct (u,v)A1. k(u,v,G1)=n-1 pentru orice (u,v)A1.

Deci k(u,v,G1) min(k(u,v,G),1) pentru orice noduri u #i v din V. Pas de induc"ie: 1i<. Folosind ipoteza inductiv! P(i) este adev!rat!, s! ar!t!m c! P(i+1) este adev!rat!. Fie u #i v noduri oarecare din V. Pentru (u,v)Ei+1, avem k(u,v,Gi+1)= k(u,v,G)=n-1. Deoarece n-1 #i, deci, i+1 n-1, rezult! min(k(u,v,G),i+1)n-1. Prin urmare, P(i+1) este adev!rat!.

30

Cristian Giumale/Note de curs

Pentru (u,v)Ei+1 s! admitem c! P(i+1) este fals!, deci k(u,v,Gi+1)< min(k(u,v,G),i+1). Sunt posibile dou! cazuri. Caz $: k(u,v,G)i. Atunci k(u,v,Gi+1) < k(u,v,G) i. Dar i k(u,v,Gi), conform ipotezei inductive, deci k(u,v,Gi+1) < k(u,v,Gi). Imposibil, deoarece Gi+1 include toate arcele din Gi. Caz 2: k(u,v,G)i+1. Conform ipotezei inductive, k(u,v,Gi) i #i, pentru c! P(i+1) este fals!, k(u,v,Gi+1)<i+1. Deoarece k(u,v,Gi) k(u,v,Gi+1) singura posibilitate este k(u,v,Gi) = k(u,v,Gi+1) = i. Totodat!, i+1 k(u,v,G) n-1, deci, k(u,v,Gi+1) = i < n-1, ceea ce concord! cu ipoteza (u,v)Ei+1. Deoarece k(u,v,Gi+1)=i, nodurile u #i v pot fi deconectate prin eliminarea unui num!r de i noduri N V\{u,v} aflate pe c!ile nod-disjuncte u..v din Gi+1. n urma t!ieturii N a grafului Gi+1, fie G' #i G" dou! componente conexe disjuncte astfel nct G' con"ine nodul u, iar G" con"ine nodul v. Ca urmare a ipotezei k(u,v,G)i+1, exist! un arc (x,y)E, xN #i yN, inserat ntr-o p!dure Fj, j i+2, care conecteaz! G' #i G", a#a cum se sugereaz! n figura 8.$$ (implicit, arcul (x,y) conecteaz! u #i v). Conform lemelor (8.2) #i (8.3) exist! un drum Q=x..y n Gi+1. Dar, conform ipotezei de t!iere, drumul Q trebuie s! treac! prin cel pu"in un nod din N, altfel t!ietura nu ar func"iona.

G' u

N v

G"

zj x

Q y

Figura 8."" T!ierea subgrafului Gi+1 Deoarece demonstra"ia este valabil! pentru orice graf G, ordinea explor!rii nodurilor din t!ietur! este nerelevant! pentru generalitatea demonstra"iei. Atunci fie N={z1,z2,...,zi} ordinea explor!rii nodurilor din t!ietur! astfel nct r(zj)=j, 1ji, dup! explorare. La momentul selec"iei nodului zj avem r(zj)=j-1 #i r(w)j-1 pentru orice alt nod wV. nseamn! c! toate arcele incidente n zj fac parte din p!duri Fq, q j. Dup! explorarea nodului zi, toate arcele incidente n nodurile din N vor fi n p!duri Fj, j i. nseamn! c! n Gi+1 nu exist! drumuri care s! treac! prin nodurile din N #i care s! conecteze G' #i G". Imposibil, pentru c! este contrazis! existen"a drumului Q. n urma contradic"iilor rezultate pentru cazurile ($) #i (2), rezult! c! P(i+1) este adev!rat!. !

Algoritmi de aproximare pentru probleme NP-dure

3"

Teorema 8."7 Fie G=(V,E) un graf -nod conectat. Atunci algoritmul Nagamochi-Ibaraki(G,) produce un subgraf G=(V,E) -nod conectat. Conectivitatea grafului G este =
x V,y V

min

k(x,y,G). Conform teoremei (8.$6),

avem xV,yV (k(x,y,G) min(k(x,y,G),)). Deci, k(x,y,G) = . !

Testarea -nod conectivit!"ii


Modalitatea de testare este similar! cu cea folosit! pentru -arc conectivitate, anume prin m!surarea fluxurilor maxime ntr-un graf derivat din cel dat. Fie G=(V,E) graful dat (neorientat #i conex), iar Gm =(Vm,Em) graful orientat derivat din G prin urm!toarele transform!ri: Vm = V V', unde V' reprezint! copiile nodurilor din V. Fiecare nod uV are o singur! copie u' V'. Astfel, fiecare nod u din graful G este reprezentat prin perechea de noduri (u,u') din Gm. Em = {uV (u,u')} {(u,v)V (u',v)} {(u,v)V (v',u)} Pentru fiecare pereche de noduri (u,u') din Gm, reprezentante ale nodului u din G, construie#te arcul (u,u'). Pentru fiecare arc (u,v) din G se construiesc dou! arce n Gm: (u',v) #i (v',u).

b b

b'

a'

c'

e'

d G d d' Gm

Figura 8."2 Transformarea unui graf pentru testarea -nod conectivit!"ii Prin aceast! construc"ie, ilustrat! n figura 8.$2 o problem! de flux maxim n Gm corespunde unei probleme de flux maxim n G, flux limitat ns! de capacit!"ile nodurilor: capacitatea nodului u din G corespunde capacit!"ii arcului (u,u') din Gm. Atunci, pentru oricare dou! noduri distincte u #i v din G, num!rul de drumuri nod disjuncte dintre u #i v este chiar fluxul maxim din re"eaua de flux Gm, considernd nodul surs! u, nodul terminal v', capacit!"ile c(u,u')= c(v,v')= #i capacit!"i 1 pentru toate celelalte arce din Gm. O justificare formal! poate fi g!sit! n [Mog 04]. Atunci, factorul de nod conectivitate al grafului G, cu n=card(V), este:

32

Cristian Giumale/Note de curs


= if n 1 then 0 else max{0, min{uV,vV | uv flux(Gm,u,v')}-1}

unde flux(Gm,u,v') este fluxul maxim de la u la v' n re"eaua de flux Gm. Folosind un algoritm de flux maxim n (n3), a#a cum este cel din sec"iunea 5.6.6, complexitatea calculului de mai sus este (n5).

8.2.3 Algoritmi asimptotic-optimali


Algoritmii aproximativi prezenta"i folosesc, indiferent de problema particular! a (arc/nod) conectivit!"ii, o metod! comun!: graful ini"ial este redus treptat prin eliminarea unor arce. Factorii de aproximare garanta"i sunt ntre 3/2 #i 2, iar n cazul algoritmului arc__conectat factorul < 21 se deterioreaz! odat! cu cre#terea lui .

Folosind o metod! diferit! celei de rafinare treptat!, Cheryan #i Thurimella [CT98] au propus algoritmi cu performan"e remarcabile pentru rezolvarea -arc #i nod conectivit!"ii. Algoritmii #i mbun!t!"esc factorul de aproximare odat! cu cre#terea lui , astfel nct, la limit!, solu"ia g!sit! este optim!. n cele ce urmeaz! se schi"eaz! algoritmul de construc"ie a unui subgraf minim de acoperire -nod conectat al unui graf G, considerat -nod conectat. Algoritmul impune rezolvarea unor probleme de tip b-arc-identificare (b-matching) #i de identificare a arcelor critice dintr-un graf. Defini!ia 8.6 Fie G=(V,E) un graf, iar b:V Z+ o func"ie care asociaz! fiec!rui nod u din graf un ntreg pozitiv b(u). Not!m ord(u,M), unde uV #i ME, num!rul de arce din M incidente n nodul u (ordinul nodului u n raport cu arcele M). Numim b-arc-identificare perfect# o submul"ime ME de arce astfel nct ord(u,M)=b(u), pentru orice uV. Numim b-arc-identificare maximal# o submul"ime ME cu num!r maxim de arce astfel nct ord(u,M)b(u), pentru orice uV. Defini!ia 8.7 Fie G=(V,E) un graf -nod conectat. Un arc (u,v)E este critic (n raport cu -arc/nod conectivitatea lui G) dac! eliminarea lui din graf stric! -nod conectivitatea lui G, deci dac! graful G=(V,E\{(u,v)}) nu este -nod conectat. Propozi!ia 8.4 Un arc (u,v) al unui graf G=(V,E) -nod conectat nu este critic n raport cu -nod conectivitatea lui G dac! ntre u #i v exist! cel pu"in +1 drumuri disjuncte n raport cu nodurile interne (diferite de u #i v), inclusiv drumul banal (u,v). Fie G' graful rezultat prin eliminarea a -1 noduri oarecare din G. Prin ipotez!, G' este conectat. Dac! arcul (u,v) este n G', atunci nodurile u #i v r!mn conectate att prin arcul (u,v) ct #i prin cel pu"in un drum din cele drumuri nebanale u..v. nseamn! c! eliminarea arcului (u,v) din G' las! graful conectat. n consecin"!, eliminarea prealabil! a arcului (u,v) din G nu stric! -nod conectivitatea grafului. !

Algoritmi de aproximare pentru probleme NP-dure

33

Fie G=(V,E) un graf -nod conectat, cu n noduri #i m arce. Algoritmul nod__CT de construc"ie a unui subgraf de acoperire -nod conectat al lui G are dou! faze.
nod__CT(G,){ // Cheryan-Thurimella V = noduri(G); E = arce(G); fie ME o mul"ime cu num!r minim de arce astfel nct uV ord(u,M) -1; F = arce_critice(E,M,); return MF; // graful G=(V,MF) este -nod conectat }

n prima faz! se calculeaz! o submul"ime M de arce din E astfel nct pentru fiecare nod u din V s! existe n M cel pu"in -1 arce incidente n u. Determinarea arcelor M se reduce la o problem! de b-arc-identificare maximal#. ntr-adev!r, fie M = E\M complementul mul"imii M de arce n raport cu E. Atunci, calculul mul"imii M se poate realiza indirect prin determinarea complementului M , astfel nct:
M IdMax #i card( M ) = max{card( M') | M'IdMax}, unde IdMax = { M'E | (uV ord(u, M') ord(u,E)-+1)}

Evident, arcele M = E\ M satisfac ord(u,M) -1 pentru orice nod uV, iar M este minimal!. Mai mult, rezolvarea problemei de b-arc-identificare maximal# este tractabil! #i se poate efectua n (m1.5 lg2(n)), cum se arat! n [GT 9$]. A doua faz! a algoritmului urm!re#te determinarea submul"imii F de arce critice dintre arcele mul"imii E\M, unde M sunt arcele calculate n prima faz!. Cu un algoritm de flux maxim pentru num!rarea drumurilor nod-disjuncte n graful definit de arcele E\M, graf modificat ca n figura 8.$2, efortul de calcul al acestei faze este (m n3).
arce_critice(E,M,){ F = ; A = E\M; for-each((u,v)A) { // num!rare drumuri nod-disjuncte u..v cu arce din E d = drumuri_nod_disjuncte(E,u,v,); if(d +1) E= E\{(u,v)}; // (u,v) nu este critic else F= F{(u,v)}; } return F; }

Propozi!ia 8.5 Subgraful G=(V,MF) este -nod conectat. Conform algoritmului arce_critice, E = M F E', cu E'= {eE\M | e nu este arc critic}. Eliminarea arcelor E' din E las! graful G=(V,MF) -nod conectat. ! Teorema 8."8 (Mader) ntr-un graf G=(V,E) -nod conectat orice ciclu format cu arce critice este incident n cel pu"in un nod u cu ordin ord(u,E)=. Demonstra"ia poate fi g!sit! n [Bo 78].

34

Cristian Giumale/Note de curs

Lema 8.5 Fie F arcele critice ale unui graf G=(V,E) -nod conectat, calculate conform algoritmului nod__CT. Atunci card(F) card(V)-1. Fie G=(V,MF) graful construit folosind algoritmul nod__CT. Conform propozi"iei (8.5) G este -nod conectat . Fie C un ciclu format cu arce din F, iar uV un nod din C, ales la ntmplare. Prin construc"ia lui M avem, ord(u,M) -1. De asemenea, ord(u,F)2 pentru c! u este pe un ciclu format cu arce din F, deci exist! cel pu"in dou! arce din F incidente n u. Rezult!,
ord(u,MF) = ord(u,M)+ord(u,F) -1 + 2 = +1,

ceea ce contrazice teorema (8.$8). Prin urmare, mul"imea F este aciclic!, deci card(F) card(V)-1. ! Propozi!ia 8.6 Fie G=(V,E) un graf -nod conectat, cu n noduri #i m arce, iar G=(V,E), E= MF, subgraful -nod conectat construit prin algoritmul nod__CT. 2 Factorul de aproximare garantat de algoritm este = 1+ . Fie Opt(G) num!rul de arce dintr-un subgraf minim -nod conectat, de acoperire a lui G, iar G* = (V,E*) un subgraf minim -arc conectat, de acoperire a lui G. Conform propozi"iei (8.3), orice graf -nod conectat este -arc conectat #i, deci, Opt(G) card(E*). n G* exist! cel pu"in drumuri arc-disjuncte ntre oricare pereche de noduri din V. nseamn! c!, pentru orice nod uV, n E* sunt cel pu"in arce incidente n u, deci card(E*) min {card(M') | (uV | ord(u,M') )}. Prin urmare:
M' E

$. card(M) card(E*). ntr-adev!r, card(M) = min {card(M') | (uV |


M' E

ord(u,M') -1)} #i dac! presupunem card(M) card(E*), atunci M = E*.

2. card(E*) n/2, (fiecare arc din E* acoper! dou! noduri din V). %innd cont de inegalit!"ile ($) #i (2), #i de rela"ia card(F)(n-1), din lema (8.5), putem calcula factorul de aproximare al algoritmului nod__CT.
(n) = card (E ) card (M) + card (F) card (E ) + (n 1) 2 1 + ! * * Opt (G) card (E ) card (E )
*

O simpl! observa"ie sugereaz! c! factorul de aproximare ob"inut n propozi"ia (8.6) este supraestimat. S! presupunem c! subgraful G*=(V,E*), din demonstra"ia propozi"iei, accept! o 1-arc-identificare perfect!, adic! exist! o submul"ime de arce E1E* astfel nct (uV | ord(u,E1)=1). Num!rul de arce din E1 este card(E1)= n/2.

Algoritmi de aproximare pentru probleme NP-dure

35

Fie M* = E*\E1. Deci, card(M*) = card(E*) - n/2, iar mul"imea de arce M* satisface proprietatea (uV | ord(u,M*) -1). Evident,
card(M*)
M' E

min {card(M') | (uV | ord(u,M') -1)} = card(M)

Ob"inem, card(M) card(M*) = card(E*) - n/2. Aceast! proprietate permite ob"inerea unei limite mai strnse pentru factorul de aproximare al algoritmului nod__ CT #i poate fi generalizat! conform teoremei (8.$9). Teorema 8."9 (Cheryan & Thurimella) Fie G'=(V,E') un graf oarecare -arc conectat, cu n noduri. Fie M'E' o mul"ime cu num!r minim de arce astfel nct pentru orice nod uV avem ord(u,M') -1. Atunci, card(E') card(M') + n/2. Demonstra"ia poate fi g!sit! n [CT 98]. Teorema 8.20 Fie G=(V,E) un graf -nod conectat, cu n noduri #i m arce, iar G=(V,E), E= MF, subgraful -nod conectat construit prin algoritmul nod__ CT. 1 Factorul de aproximare garantat de algoritm este = 1+ . Fie G*=(V,E*) subgraful minim -nod conectat, de acoperire a lui G. propozi"ia (8.3), G* este -arc conectat #i, conform teoremei (8.$9),
card(M) card(E*) - n/2 card(E*) - (n-1)/2.

Prin

De asemenea, card(E*) n/2 (pentru orice nod uV, exist! cel pu"in arce incidente n u) #i, conform lemei (8.5), avem card(F) n-1. Rezult!,
(n) = card (E ) card (E ) (n) 1 + n/2 card (E )
* *

card (M) + card (F) card (E ) 1 + 1 !


*

card (E*) (n 1) / 2 + (n 1) card (E*)

Complexitatea algoritmului nod__CT rezult! (m n3 + m1.5 lg2(n)), din suma complexit!"ilor celor doi pa#i, dar poate fi cobort! dup! cum se explic! n [CT 98]. Pentru =2 algoritmul nod__CT are un factor de aproximare comparabil cu cel al algoritmului nod__conectat, dar este mai lent. n schimb, pentru 3 factorul de aproximare este net superior #i justific! efortul mai mare de calcul. Se observ! c! algoritmul este asimptotic optimal: cnd tinde c!tre infinit se apropie de 1. Problema -arc conectivit!"ii poate fi rezolvat! asimptotic optimal folosind un algoritm asem!n!tor cu nod__CT #i cu aceea#i complexitate. Factorul de aproximare este = 1 +
2 . 1 +

36

Cristian Giumale/Note de curs

8.3 Arbori de acoperire cu ordin redus


Problemele conect!rii nodurilor unui graf printr-un subgraf cu num!r impus de arce incidente n noduri apar frecvent n multe aplica"ii privind re"elele de transport #i comunica"ie. De exemplu, dispozitivele de dirijare a semnalelor plasate n nodurile unei re"ele de comunica"ii au capacitate limitat!. Mai mult, se impune ca acela#i tip de dispozitiv cu capacitate dat! s! poat! fie plasat n orice nod al re"elei. Deci num!rul arcelor incidente n orice nod din subgraful de conectare nu trebuie s! dep!#easc! o valoare dat!. O structur! particular! de conectare a nodurilor unui graf neorientat G=(V,E), cu costuri pe arce, este o p!dure de arbori cu cost minim care acoper! cel pu"in o submul"ime impus! V'V de noduri, iar num!rul de arce incidente n fiecare nod al p!durii este minim. Problema este de construc"ie a unui arbore generalizat Steiner. G!sirea traseelor unui cablaj imprimat genereaz! probleme de tip arbore Steiner, iar arborele minim de acoperire al unui graf neorientat #i conex reprezint! o solu"ie suboptimal! a unui arbore generalizat Steiner pentru un graf neorientat #i conex. Capitolul trateaz! dou! cazuri particulare ale problemei construc"iei unui arbore generalizat Steiner: ($) construc"ia unui arbore de acoperire cu ordin minim al unui graf neorientat #i conex #i (2) construc"ia unui arbore de acoperire de cost minim #i ordin 3 pentru un graf euclidian neorientat #i conex. Ambele probleme sunt NP-dure, iar algoritmii prezenta"i calculeaz! solu"ii aproximative. Pentru abreviere folosim termenul graf pentru a desemna un graf neorientat #i conex. De asemenea, considernd un graf G, se folosesc urm!toare nota"ii:
c(u) este culoarea nodului u (colorarea nodurilor este folosit! n cadrul

algoritmilor).
arce(u,G) este mul"imea arcelor incidente n nodul u n graful G. ord(u,G) este ordinul nodului u n graful G: ord(u,G) = card(arce(u,G)). Arb(G) este mul"imea arborilor de acoperire ai grafului G. Un arbore de acoperire al lui G este un subgraf T=(V',E'), aciclic #i conex, cu V'=V #i E'E. (G)= max ord (u, G) este ordinul grafului G=(V,E). Similar, pentru un arbore de
u V

acoperire T al lui G, (T)= max ord(u, T) este ordinul arborelui T. De notat c! n


u V

determinarea ord(u,T) se consider! doar arcele din T incidente n nodul u.


*(G) =
T Arb (G)

min

(T) este ordinul minim al arborilor de acoperire ai grafului G.

G-W este graful rezultat din graful G=(V,E) prin eliminarea nodurilor WV. (u)). Evident, G-W = (V\W,E\ ! arce
u W

Algoritmi de aproximare pentru probleme NP-dure

37

8.3.1 Arbori de acoperire cu ordin minim


Varianta cea mai simpl! a problemei arborilor Steiner este cea a construc"iei unui arbore de acoperire cu ordin minim al unui graf G, anume un arbore T cu (T)= *(G). O metod! interesant! de construc"ie a unui arbore de acoperire cu ordin aproape minim a fost propus! de Frer #i Raghavachari [FR 94] #i folose#te o mul"ime de arce din graf ca martor al calit!"ii arborelui, mai precis al distan"ei dintre ordinul acestuia #i ordinul arborelui optim. Metoda garanteaz! arbori de acoperire cu ordin cel mult *(G)+1, unde G este graful dat. Defini!ia 8.8 Fie G=(V,E) un graf. Un set martor al grafului G este o submul"ime proprie WV, cu w=card(W) noduri, care, n urma elimin!rii din G, deconecteaz! graful G n t componente conexe. Spunem c! W este martor al rela"iei *(G)
w + t 1 . w

Lema 8.6 Fie W un subset martor al unui graf G=(V,E) care deconecteaz! G n t componente conexe. Atunci *(G)
w + t 1 . w

Conform lemei, graful G este parti"ionat n:


t componente conexe cu nodurile V\W #i arcele E\{uW arce(u)}. w componente singleton, anume nodurile W.

Fie T=(V,A) un arbore de acoperire, ales la ntmplare, al grafului G. Cele w+t componente rezultate din parti"ionarea lui G sunt conectate n arborele T prin cel pu"in w+t-1 arce. Arcele care conecteaz! noduri din componente diferite trebuie s! fie incidente n nodurile din W, altfel W nu respect! condi"ia teoremei privind deconectarea lui G. Prin urmare, n arborele T exist! cel pu"in w+t-1 arce incidente n nodurile W. Astfel, num!rul mediu de arce incidente n orice nod uW din arborele T este
w + t 1 . Rezult! c! n arborele T exist! cel pu"in un nod xW w w + t 1 w + t 1 , deci *(G) ! care are ordinul ord(x,T) w w ordmediu(u,T) =

Teorema 8.2" Fie T un arbore de acoperire al unui graf G=(V,E) astfel nct T are ordinul (T)=k, iar S={uV | ord(u,T)=k} mul"imea nodurilor cu ordin k n T. Fie B {uV | ord(u,T)=k-1} o submul"ime oarecare a nodurilor cu ordin k-1 n T. Dac! mul"imea nodurilor SB este un martor6 al lui G, atunci k *(G)+1. Pentru demonstra"ie, s! calcul!m num!rul t al componentelor conexe rezultate din G prin eliminarea nodurilor SB. S! not!m s=card(S) #i b=card(B).

n graful G-(SB) nu exist! arce ntre arborii din F.

6 Eliminarea nodurilor SB din G deconecteaz! arborele T ntr-o p!dure F astfel nct

38

Cristian Giumale/Note de curs

Deoarece eliminarea nodurilor SB deconecteaz! G, n graful G-(SB) nu exist! arce ntre componentele din p!durea T-(SB). Prin urmare, num!rul componentelor din T-(SB) este acela#i cu cel al componentelor din G-(SB). Suma ordinelor n T a nodurilor din SB este
u S B

ord(u, T)

= s k +

b(k-1).

Pentru c! T este aciclic, exist! cel mult s+b-1 arce n T care au ambele capete n SB. Rezult! c! num!rul arcelor incidente n nodurile din SB este
card(
u S B

(u) ) ! arce

u S B

ord(u, T) - (s+b-1)

= s k + b(k-1) - (s+b-1).

P!durea ob"inut! din T prin eliminarea arcelor incidente n nodurile din SB are un num!r de cel pu"in s k + b(k-1) - ( s+b-1) + 1 noduri. Nodurile acestei p!duri sunt nodurile din T-(SB) #i cele din SB. Rezult! c! num!rul nodurilor din p!durea T-(SB) este:
t s k + b(k-1) - (s+b-1) + 1 - (s+b) = (s+b)(k-2) - b + 2

Conform lemei (8.6) avem:


*(G) (s + b) + t 1 (s + b) b 1 (s + b) (s + b)(k 2) b + 2 + (s + b) 1 (s + b)

*(G) (k 1)

Deoarece 0

b 1 < 1, rezult! *(G) k-1. ! s + b

Defini!ia 8.9 Fie T, (T)=k, un arbore de acoperire al unui graf G=(V,E), iar C ciclul simplu generat n T prin ad!ugarea unui arc (u,v)E care nu este n T, unde ord(u,T)<k-1 #i ord(v,T)<k-1. S! presupunem c! n C exist! un nod x cu ord(x,T)=k. O mbun#t#!ire a arborelui T const! n modificarea lui T prin ad!ugarea arcului (u,v) #i eliminarea unui arc din C arce(x,T). Spunem c! x beneficiaz# de pe urma arcului (u,v). Evident, o mbun!t!"ire a arborelui T conduce la mic#orarea ordinului ord(x,T). O succesiune de mbun!t!"iri conduce la diminuarea ordinului arborelui T. Defini!ia 8."0 Fie T, (T)=k, un arbore de acoperire al unui graf G=(V,E), iar (u,v)E un arc care nu este n T, astfel nct ord(u,T)k-1 sau ord(v,T)k-1. Fie x, ord(x)=k, un nod din ciclul simplu format prin ad!ugarea arcului (u,v) la T. Spunem c! u sau, respectiv v, este nod de blocare a lui x, iar arcul (u,v) este de arc de blocare.

Algoritmi de aproximare pentru probleme NP-dure

39

Ad!ugarea unui arc (u,v) de blocare la T, conduce la m!rirea ordinului lui u sau v. Dup! mbun#t#!irea lui T prin arcul (u,v), ord(u,T) devine cel pu"in k. Prin urmare, arcele de blocare trebuie evitate n cursul mbun!t!"irii arborelui T. Defini!ia 8."" Fie T, (T)=k, un arbore de acoperire al unui graf G=(V,E), iar x un nod din V. Spunem c! x este deblocat dac!: a) ord(x,T)<k-1 b) ord(x,T)k-1 #i descre#te n urma unui proces de mbun!t!"iri ale lui T, conforme defini"iei (8.9). Similar, spunem c! arcul (u,v) este deblocat dac! nodurile u #i v sunt deblocate. Defini"iile de mai sus conduc la un algoritm lacom de construc"ie a unui arbore de acoperire cu ordin mai mare cu cel mult 1 fa"! de *(G) pentru un graf G dat. Ini"ial, algoritmul construie#te un arbore de acoperire oarecare T=(V,ET) al grafului dat G=(V,E). Urmeaz! o succesiune de itera"ii de mbun!t!"ire a arborelui T. Fiecare itera"ie urm!re#te determinarea unui set martor de arce pentru a garanta calitatea lui T sau, dac! nu este posibil, deblocarea unui nod u, cu ord(u,T)=(T)=k, astfel nct (T)k. La nceputul fiec!rei itera"ii, se calculeaz! k=(T), apoi nodurile uV care au ord(u,T)k-1 sunt colorate cenu#iu, iar restul nodurilor sunt colorate alb. Nodurile cenu#ii sunt eliminate din T rezultnd o p!dure F. O component! conex! a lui F este un subgraf din T (construit doar cu arce din T) #i, deci, este aciclic!. Toate componentele din F au noduri albe. Urmeaz! un proces repetitiv de colectare #i conectare a componentelor din F. Fie E'= E\ET mul"imea arcelor din G, altele dect cele din T, ce pot conecta componente din F. Aceste arce au capete albe. Dac! E'= algoritmul se opre#te #i, conform teoremei (8.2$), arborele T satisface (T)*(G)+1. Altfel se alege un arc de conectare (u,v) din E'. Arcul nchide un ciclu simplu, fie el C, n T. Componentele din F care au noduri n ciclul C precum #i componentele ce pot fi formate cu noduri cenu#ii din C sunt conectate ntr-o singur! component! a lui F, iar p!durea F este modificat!: componentele incluse n sunt eliminate din F, iar componenta este ad!ugat! la F. Nodurile cenu#ii din C sunt colorate alb astfel nct componenta devine alb!. Procesul de colectare #i conectare a componentelor din F folosind arce din E' este continuat ct timp nodurile din au ordinul k-1. El este ntrerupt atunci cnd n apare un nod x cu ord(x,T)=k. Nodul poate beneficia prin arcul (u,v) doar dac! arcul nu este arc de blocare. n consecin"!, au loc modific!ri ale arborelui pentru a debloca eventual arcul (u,v), implicit pentru a debloca nodurile u #i v. Modific!rile sunt propagate n lungul secven"ei de arce de conectare care au generat componenta din care face parte x. Arcul (u,v) este ad!ugat la T, iar un arc (x,y) din ciclul C este eliminat din T. Ordinul nodului x scade. Dup! modificarea arborelui T, itera"ia se termin!, procesul de rafinare a lui T fiind reluat cu o nou! itera"ie.

40

Cristian Giumale/Note de curs

arb_ord_min(G){ // Frer-Raghavachari fie V nodurile lui G; fie T=(V,ET) un arbore de acoperire al lui G; do { // itera"ie pentru reducerea (T) k = max{uV ord(u,T)}; for(uV) c(u)= (ord(u,T) k-$) ? cenu#iu : alb; F = G-{uV | c(u)=cenu#iu}; fie E' arce cu noduri albe din E\ET; // arcele pot conecta componente din F #i au capete albe // ciclu de conectare a componentelor din p!durea F progres= 0; while(progres=0 E') { fie (u,v) un arc din E'; // (u,v) este arc de conectare al unor componente din F E' = E'\{(u,v)}; fie C ciclul nchis n T de arcul (u,v); = componente corespunz!toare nodurilor cenu#ii din C; = componente din F care au noduri n C; conectare componente #i n F; // F se modific! for-each(xC) if(c(x)=cenu#iu) {c(x)=alb; arc_conectare(x)=(u,v);} if(xC ord(x,T)=k) {reducere_ordin(x,k,T); progres = 1;} } // terminare conectare componente din F } while(progres = 1); // nu mai exist! arce de conectare a componentelor din F return (T,k); // (T) *(G)+1 } reducere_ordin(x,k,T){ if(ord(x,T)<k-1) return; // x este nod de blocare ntr-un proces de mbun!t!"ire a lui T // ordinul lui x trebuie redus folosind arcul care a condus la // colorarea nodului n alb (n ciclul de conectare a p!durii F) (u,v) = arc_conectare(x); // (u,v) nu trebuie s! fie arc de blocare reducere_ordin(u,k,T); // ord(u,T) <k-1 reducere_ordin(v,k,T); // ord(v,T) <k-1 fie C ciclul nchis n T de arcul (u,v); // x este n C fie earce(x,T)C; // un arc din C incident n x // ord(x,T) scade n urma nlocuirii lui e prin (u,v) n T ET=ET\{e}{(u,v)}; }

Algoritmi de aproximare pentru probleme NP-dure

4"

a c b g d

". Graful ini"ial G=(V,E) are un arbore de acoperire T cu ordinul (T)=k=4. Se determin! nodurile {uV|ord(u,T)k-1} colorate cenu#iu. Celelalte noduri sunt colorate n alb. 2. Nodurile cenu#ii sunt eliminate din T. Rezult! o p!dure F cu componentele albe {a},{b},{e},{f}, {g}. Doar arcele (a,b) #i (e,f) pot conecta componente din F: {a} cu {b} #i {e} cu {f}. Ca arc de conectare se alege arcul (a,b). 3. Arcul (a,b) nchide ciclul simplu C=(a,b,c,a) cu noduri de ordin k-1 n T. Componentele din p!durea F care au noduri n C #i nodurile cenu#ii din C sunt conectate pentru a forma o singur! component! n F, anume {a,b,c}. Arcul (a,b) nu este inclus n component!. Nodul c devine alb, iar arcul (c,g) este ales ca arc de conectare. 4. Arcul (c,g) nchide ciclul C=(c,g,d,c). Sunt conectate componetele {a,b,c}, {g} #i nodul cenu#iu d. Se formeaz! o component! ce corespunde lui T. n ciclul C exist! nodul d cu ord(d,T)=k. 5. Pentru a diminua ordinul lui d, arcul (c,g) trebuie s! nu fie de blocare (a#a cum este, pentru c! ord(c,T)=k-1). Are loc o propagare de mbun!t!"iri n ordinea arcelor de conectare prelucrate n cursul itera"iei curente. 5.$. Arcul (a,b) este arcul de conectare al lui c #i este inclus n T n locul arcului (b,c). Nodul c beneficiaz! de pe urma arcului (a,c): ord(c,T)=k2, iar arcul (c,g) nu mai este arc de blocare. 5.2. Arcul (c,g) este arcul de conectare al lui d #i este inclus n T n locul arcului (d,g). Ca efect, ord(d,T)=k-1.

a c b g d

a c b g d

a c b g d

a c b g d

a c b g d

Figura 8."3 Construc"ia unui arbore de acoperire T cu ordin suboptimal

42

Cristian Giumale/Note de curs

a c b g d

6. Arborele T se modific!, iar ordinul scade: (T)=k=3. Se determin! nodurile cenu#ii {uV | ord(u,T)k-1}. Celelalte noduri sunt sunt colorate alb.

a c b g d

7. Nodurile cenu#ii sunt eliminate din T. Rezult! o p!dure F cu componentele albe {b},{e},{f},{g}. Doar arcul (e,f) poate conecta componente din F, anume componentele {e} #i {f}.

a c b g d

8. Arcul (e,f) formeaz! ciclul simplu C=(e,d,f,e) Componentele din p!durea F care au noduri n C #i nodurile cenu#ii din C sunt conectate pentru a forma o singur! component! n F: {d,e,f}. Nodul d devine alb.

a c b g d

9. Nodul d are ord(e,T)=k #i beneficiaz! prin ad!ugarea arcului (e,f) la T. Arcul nu este de blocare #i poate fi folosit. Arcul de ciclu (d,f) este eliminat din T #i nlocuit cu arcul (e,f). Ordinul lui d devine 2.

a c b g d

"0. Ordinul arborelui T r!mne (T)=k=3. Se determin! nodurile cenu#ii {uV|ord(u,T)k-1}.

a c b g d

"". Nodurile cenu#ii sunt elimnate din T. Componentele rezultate, anume {b},{g} #i {f} nu pot fi conectate prin arcele din G, altele dect cele de arbore. Modificarea arborelui T se termin!. (T)=*(G)+1.

Figura 8."3 (continuare)

Algoritmi de aproximare pentru probleme NP-dure

43

Benzile desenate din figura 8.$3 sugereaz! modul n care poate fi ob"inut! o solu"ie aproximativ! cu (T)=*(G)+1, folosind algoritmul arb_ord_min, a grafului din figura 8.$4.
a c b g d f e

Figura 8."4 Un arbore de acoperire cu ordin minim: (T) = *(G) n figura 8.$3 arcele arborelui T de acoperire sunt desenate cu linii ngro#ate. Nodurile care sunt eliminate din arbore, ntr-o itera"ie a algoritmului, sunt reprezentate f!r! linie de contur, iar arcele inactive, ce nu pot fi utilizate fie pentru c! nu sunt n p!durea componentelor generat! de eliminarea unor noduri din T, fie pentru c! nu pot fi arce de conectare a componentelor din p!dure, sunt colorate gri. Arcele active, anume arce din componente #i arce de conectare a componentelor, sunt colorate negru. Arcul de conectare curent este desenat cu linie punctat!. De asemenea, o s!get! dirijat! de la un arc spre un nod arat! c! prin inserarea acelui arc n T ordinul nodului scade cu 1 (nodul beneficiaz! n urma inser!rii arcului n T, conform defini"iei (8.9)). Lema 8.7 Fie G=(V,E) un graf prelucrat prin algoritmul arb_ord_min, xV un nod colorat n alb n pasul i al ciclului de conectare a componentelor din p!durea F, iar (u,v) arcul de conectare al unui nod x. Atunci nodul x poate fi deblocat n urma unei secven"e de mbun!t!"iri ale componentelor din F care con"in nodurile u #i v. Demonstra"ia este prin induc"ie matematic! n raport cu i. Caz de baz!: i=0. Orice nod x colorat alb nainte de nceperea ciclului de conectare a componentelor are ord(x,T)<k-1. Conform defini"iei (8.$$) x este deblocat. Pas de induc"ie: i1. Ipotez! inductiv!: la pasul i-1 orice nod z poate fi deblocat n urma unei secven"e de mbun!t!"iri ale componentelor din F care con"in nodurile u #i v, unde (u,v) este arcul de conectare al lui z. La pasul i1 al ciclului de conectare a componentelor din p!durea F sunt colorate alb doar nodurile cenu#ii #i, conform algoritmului, ord(x,T)k-1. De asemenea, ord(u,T)k-1 #i ord(v,T)k-1. Fie x componenta care l con"ine pe x n momentul n care x este colorat n alb #i Cx ciclul nchis n x (implicit n T) de arcul (u,v). Definim proprietatea:
P(x,y)=def arcele incidente n x din ciclul Cx r#mn n arborele T modificat n urma debloc#rii nodului y.

44

Cristian Giumale/Note de curs

S! ar!t!m c! P(x,u) #i P(x,v) sunt adev!rate. Cu alte cuvinte, deblocarea arcului (u,v) nu interfereaz! cu mbun!t!"irea local! - conform! defini"iei (8.9) - ce poate fi aplicat! nodului x folosind arcul (u,v).

x Cx u e u v

Figura 8."5 Cazul 3 al debloc!rii nodurilor u #i v Fie uF componenta care l con"ine pe u #i vF, ca n figura 8.$5 Deoarece (u,v) este arc de conectare, avem u v = . De asemenea, componentele ob"inute la un pas j<i sunt incluse (nestrict) n componentele ob"inute la pasul i. Prin urmare, modific!rile arborelui T aferente debloc!rii lui u nu interfereaz! cu modific!rile implicate de deblocarea lui v. Deblocare u: P(x,u) este adev!rat!. Caz $. ord(u,T)<k-1. Nu este necesar! nici o modificare a lui T. Deci P(x,u) este adev!rat!. Caz 2. ord(u,T)=k-1 #i u Cx = . Evident, deblocarea lui u presupune eliminarea din T a unui arc incident n u, dar care nu este pe ciclul Cx. P(x,u) este adev!rat!. Caz 3. ord(u,T)=k-1 #i u Cx . Fie e un arc oarecare din u aflat n Cx. Pentru c! c(x)=cenu#iu #i capetele arcului e sunt albe n momentul form!rii ciclului Cx, rezult! c! nici un arc incident n x din Cx nu poate coincide cu e. Deci o eventual! eliminare a arcului e din T n cursul debloc!rii lui u nu afecteaz! arcele din Cx incidente n x. Deci P(x,u) este adev!rat!. Deblocare v: P(x,v) este adev!rat!. Similar cu demonstra"ia din cazul debloc!rii nodului u. Conform ipotezei inductive, u #i v pot fi deblocate printr-o serie de mbun!t!"iri aduse lui T. n urma acestor mbun!t!"iri, arcul (u,v) este deblocat (nu este arc de blocare, conform defini"iei (8.$0)). De asemenea, pentru c! P(x,u) #i P(x,v) sunt adev!rate, arcul poate fi folosit pentru a reduce ordinul lui x. Un arc incident n x din ciclul nchis n T de arcul (u,v) este eliminat din T, iar arcul (u,v) este inserat n T. Nodul x este deblocat. !

Algoritmi de aproximare pentru probleme NP-dure

45

Teorema 8.22 Fie G un graf. Algoritmul arb_ord_min(G) calculeaz! un arbore de acoperire T al lui G, cu ordinul (T)*(G)+1. Fie T arborele de acoperire generat ini"ial de algoritm, iar apoi modificat. Not!m
(T)=k.

$. S! observ!m c! algoritmul se opre#te. Conform lemei (8.7), pentru orice nod x cu ord(x,T)=k, nod care este cu siguran"! g!sit de algoritm, exist! ntotdeauna o secven"! de mbun!t!"iri care scade ordinul lui x. Prin urmare, n cursul itera"iilor algoritmului, ordinul lui T scade monoton #i nu poate fi mai mic dect 1. 2. Algoritmul se opre#te atunci cnd ntre componente disjuncte din p!durea F, format! cu noduri albe, nu exist! arce de conectare n G. n momentul termin!rii, nodurile cenu#ii formeaz! mul"imile S #i B din teorema (8.2$). ntr-adev!r, toate nodurile uV care au ord(u,T)=k, sunt cenu#ii, iar nodurile cenu#ii cu ord(u,T)=k-1 formeaz! submul"imea B a mul"imii de noduri {uV | ord(u,T)=k-1}. Conform teoremei rezult! (T)*(G)+1. ! Teorema 8.23 Fie G=(V,E) un graf cu n noduri #i m arce. Algoritmul arb_ord_min(G) ruleaz! n timp polinomial. Fie T arborele de acoperire al lui G, cu ordinul (T)=k, arbore cu care porne#te algoritmul #i care este construit7 n (m). Not!m Vk={uV | ord(u,T)=k} mul"imea nodurilor din V cu ordin k n T. Deoarece suma ordinelor nodurilor din T (u, T) = 2n-2, rezult! card(Vk)= (n/k). Deoarece num!rul nodurilor cu este8: ord
u V

ordin k descre#te cu 1 la fiecare itera"ie a algoritmului, sunt necesare card(Vk) itera"ii pentru a mic#ora (T) cu 1. Num!rul total de itera"ii necesare algoritmului este:
itera"ii(T) = (

i=1

card(Vi) )

= (n

n 1 1 ) = (n ) = (n lg(n)) i=1 i i=1 i

La fiecare itera"ie are loc procesul de conectare a componentelor p!durii F #i, apoi, de mbun!t!"ire a arborelui T. Conectarea nseamn! lucrul cu cel mult n mul"imi disjuncte care, n cel mai defavorabil caz, sunt reunite ntr-o singur! mul"ime. Deoarece n graf sunt m arce, pot fi efectuate m opera"ii cu n mul"imi disjuncte, dintre care cel mult n sunt reuniuni. Presupunnd c! se utilizeaz! mul"imi disjuncte reprezentate folosind arbori, a#a cum s-a discutat n capitolul 5, costul compact!rilor unei itera"ii este (m (n,m)), unde (n,m) este inversa func"iei lui Ackermann (practic o constant! modest!, pentru aplica"ii uzuale). Se adaug! costul construc"iei ciclurilor nchise n T de arcele de conectare: (n) construc"ii cu cost (m). Deci costul unei itera"ii este, n linii mari, (n m + m (n,m)).

7 Pentru construc"ia arborelui T #i determinarea ciclului nchis n T de un arc de

conectare se poate folosi parcurgerea n adncime. 8 Arborele are (n-1) arce #i fiecare arc este incident n 2 noduri distincte.

46 Complexitatea total! a algoritmului rezult!:


cost(T) = = = =

Cristian Giumale/Note de curs

construc"ie(T) + itera"ii(T) cost_itera"ie (n+m) + (n2 m lg(n) + n m (n,m) lg(n)) (n2 m lg(n) + m n (n,m) lg(n)) (n4 lg(n) + n3 (n,m) lg(n))

Complexitatea este polinomial!. ! n ceea ce prive#te factorul de aproximare al algoritmului, pentru un graf G cu mai mult de 2 noduri, se ob"ine:
(n) = 1 3 (T) 1 *(G) + 1 1+ * = 1+ * 2 2 *(G) (G) (G)

8.3.2 Arbori de acoperire optimi local


Metoda de construc"ie prezentat! mai sus are o variant! simplificat!, n care mbun!t!"irile arborelui T sunt efectuate imediat ce un nod oarecare din arbore poate beneficia n mod direct de pe urma unui arc din graf. Solu"ia calculat! are ns! un factor de aproximare mai slab. Defini!ia 8."2 Un arbore de acoperire T al unui graf G este optimal local (n raport cu ordinul nodurilor) dac! pentru orice arc (u,v) din G-T #i pentru orice nod x aflat pe calea u..v din T exist! rela"ia ord(x,T) max(ord(u,T),ord(v,T))+1.

2 2 1

2 3 1

Figura 8."6 Arbore de acoperire optimal local Dup! cum se va ar!ta, orice graf G are un arbore de acoperire optimal local. Ca exemplu, arborele din figura 8.$6, desenat cu linii ngro#ate, este optimal local. Lema 8.8 Fie G=(V,E) un graf cu n noduri, iar T un arbore de acoperire al lui G. Pentru orice constant! c > 1 exist! un indice i[(T)- logc(n), (T)] astfel nct card(Si-1)c card(Si), unde Si={uV | ord(u,T)i}. Not!m k=(T)>1 #i si=card(Si). S! presupunem c! pentru o constant! c>1, aleas! arbitrar, avem sj-1 c sj, j=i,k. Prin propagare, se ob"ine si-1 ck-i+1 sk.

Algoritmi de aproximare pentru probleme NP-dure

47

nseamn! c! pentru fiecare nod din Sk exist! cel mult ck-i+1 noduri n Si-1. Pentru c! 1 < ck-i < n, rezult! k- logc(n) i k ! Teorema 8.24 Fie G=(V,E) un graf cu n noduri, iar T un arbore de acoperire optimal local. Atunci (T) c *(G)+ logc(n), pentru orice constant! c > 1. Fie i un indice ca n lema (8.8). S! presupunem c! eliminarea mul"imii Si de noduri din T sparge arborele ntr-o p!dure F cu t subarbori. Fiecare nod u din Si are ord(u,T)i, deci exist! cel pu"in i si arce de arbore incidente n nodurile din Si. Deoarece T este aciclic, cel mult si-1 dintre aceste arce unesc nodurile din Si #i sunt num!rate de dou! ori n i si. Prin urmare, num!rul arcelor de arbore care conecteaz! noduri din Si cu noduri din cele t componente este cel pu"in i si- 2(si-1). Deci
t i si- 2(si-1)

Pentru c! T este arbore optimal local, iar n F nu sunt noduri cu ordin mai mare ca i-1, rezult! c! fiecare arc ce conecteaz! componente din F este incident ntr-un nod cu ordin i-1.
v i-1 u x i i+1

i i-1

Figura 8."7 P!durea F (arcele de arbore sunt ngro#ate) ntr-adev!r, fie (u,v) un astfel de arc, a#a cum se arat! n figura 8.$7. Pe calea dintre u #i v format! n T exist! cel pu"in un nod x din Si. Singura posibilitate de a respecta condi"ia de optimalitate local! este ca ord(x,T)=i #i cel pu"in unul dintre nodurile u #i v s! aib! ordinul i-1 n T. Rezult! c! eliminarea nodurilor mul"imii Si-1 din T sparge arborele n cel pu"in t subarbori. Conform lemei (8.6), mul"imea Si-1 este un martor al faptului c! T are ordinul minim:
*(G) t + si 1 1 t + si 1 isi 2 (si 1) + si 1 i 1 > si 1 si 1 csi c

Deci i-1 < c *(G). Conform lemei (8.8), i (T)- logc(n). Rezult!:
(T)- logc(n)-1 < c *(G) (T) < c *(G) + logc(n)+1 (T) c *(G) + logc(n) !

48

Cristian Giumale/Note de curs

Teorema (8.24) folose#te proprietatea de optimalitate local! doar pentru nodurile cu ordin cel pu"in (T)-logc(n). n consecin"!, rezultatul teoremei este valid pentru orice arbore de acoperire T ce respect! condi"ia de optimalitate local! pentru nodurile u cu ordin ord(u,T) (T)-logc(n). Cu alte cuvinte, dac! se pleac! de la un arbore de acoperire oarecare al unui graf G=(V,E) #i se transform! arborele ntr-un arbore de acoperire T de ordin k, astfel nct pentru orice nod uV cu ordin ord(u,T)[ k-logc(n),k] este respectat! condi"ia de optimalitate local!, atunci k c *(G)+ logc(n). Observa"ia de mai sus st! la baza algoritmului arb_optim_local(G,c), unde G este un graf cu n noduri, iar c >1 o constant! oarecare.
arb_optim_local(G,c){ // c >1 fie V nodurile lui G; n = card(V); fie T=(V,ET) un arbore de acoperire al lui G; fie E' arce din E\ET; // arcele E' pot nchide cicluri n T // itera"ii pentru reducerea (T) do { k = max{uV ord(u,T)}; progres=0; for-each((u,v)E') { fie C ciclul nchis n T de arcul (u,v); fie x nodul cu ord(x,T)= max{zC ord(z,T)}; if(ord(x,T) k-logc(n) ord(u,T) < ord(x,T)-1 ord(v,T) < ord(x,T)-1) { fie earce(x,T)C; // un arc din C incident n x // (u,v) nu este arc de blocare // ord(x,T) scade n urma nlocuirii e cu (u,v) n T ET=ET\{e}{(u,v)}; E'=E'\{(u,v)}{e}; progres=1; break; } } } while(progres = 1); // terminare itera"ii: nu mai sunt posibile // mbun!t!"iri pentru noduri x cu ord(x,T) k-logc(n) return (T,k); }

Algoritmul porne#te cu un arbore de acoperire T, oarecare, al lui G. Fie k ordinul curent al lui T, ordin ce descre#te n cursul algoritmului. Sunt efectuate o serie de itera"ii care modific! T n a#a fel nct s! fie satisf!cut! restric"ia de optimalitate local!

Algoritmi de aproximare pentru probleme NP-dure

49

n raport cu nodurile al c!ror ordin este cel pu"in k-logc(n). n fiecare itera"ie se determin! un arc (u,v) din G-T care: $. nchide n T un ciclu ce con"ine un nod x astfel nct ord(x,T) este maxim pentru nodurile din C #i ord(x,T)[k-logc(n),k]. 2. Nu satisface condi"ia de optimalitate local! n raport cu x: ord(u,T) < ord(x,T)-1 #i ord(v,T) < ord(x,T)-1. Deoarece (u,v) nu este arc de blocare n raport cu x, arborele T este mbun!t!"it: un arc (x,y) din ciclul C, incident n x, este nlocuit prin (u,v). n urma transform!rii, (x,y)G-T #i satisface condi"ia de optimalitate local!, iar (u,v)T. Algoritmul se opre#te cnd n G-T nu mai exist! nici un arc cu propriet!"ile ($) #i (2). Teorema 8.25 Algoritmul arb_optim_local(G,c), c >1, se termin! n timp polinomial. Fie T arborele construit de algoritm pentru graful dat G. Fie n num!rul de noduri din G #i k ordinul arborelui T. S! asociem un poten"ial (u)=def bi fiec!rui nod din T, unde b >2 este o constant! oarecare, iar i=ord(u,T). Poten"ialul arborelui este definit:
(T)=
u V

( u ) max(T)= n bk

Orice itera"ie reduce poten"ialul arborelui n urma mic#or!rii ordinului unui nod. Fie x un astfel de nod, iar (u,v) arcul din G-T folosit pentru reducerea ordinului lui x. Cazul cel mai defavorabil, cnd poten"ialul variaz! cel mai pu"in, este pentru poten"ialului arborelui.
ord(x,T)= i #i ord(u,T) = ord(v,T) = i-2, nainte de reducere, #i ord(x,T) = ord(u,T) = ord(v,T) = i-1 dup! reducere. S! not!m min(T) reducerea minim! a min(T) = (bi + 2 bi-2) - 3 bi-1 = (b-1)(b-2)bi-2

Conform algoritmului, i k - logc(n). Deci,


min(T)

(b 1)( b 2)b k b 2 b log c(n)


log c(n)

(b 1)( b 2)b k b 2 b 1 + log c(n)

Folosind egalitatea b
min(T)

= n

log c( b)

se ob"ine:
(b 1)(b 2) b3

(b 1)(b 2)bk b3nlogc(b)


max (T) log c( b ) + 1

nb k n log c( b)+ 1

min(T) C(b)

, unde C(b)=

(b 1)(b 2) b3

50

Cristian Giumale/Note de curs

S! not!m Etape(T) num!rul de etape de reducere efectuate de algoritm, astfel nct n fiecare etap! ordinul lui T scade cu 1.
Etape(T) max ( T ) 1 nlogc(b)+ 1 , pentru orice constant! b >2. C (b) min ( T )

de mbun!t!"iri ale arborelui efectuate de algoritm este ( n2 + logc(2 + ) ). Fiecare mbun!t!"ire cere un efort polinomial n n pentru modificarea arborelui T, deci algoritmul are complexitate polinomial!. ! Teorema 8.26 Algoritmul arb_optim_local(G,c), c >1, construie#te un arbore de acoperire T al grafului G=(V,E), cu n noduri, astfel nct: a) T este optimal local n raport cu nodurile H={uV|ord(u,T)(T)-logc(n)} b) (T) c *(G)+ logc(n). a) Algoritmul se termin!, conform teoremei (8.25). n momentul termin!rii nu mai este posibil! nici o mbun!t!"ire a lui T n raport cu nodurile H. Rezult! c! arborele T este optimal local n raport cu aceste noduri.
!

0<<1. Algoritmul se opre#te n ( n1 + logc(2 + )) etape de reducere a ordinului arborelui T. n fiecare etap! sunt posibile (n) mbun!t!"iri ale lui T, deci num!rul total

Pentru c! b poate avea orice valoare mai mare ca 2, se poate alege b=2+, cu

b) Din (a) #i din observa"ia la teorema (8.24) rezult! (T) c *(G)+ logc(n). Corolarul 8.4 Orice graf G are un arbore de acoperire optimal local.

Fie T arborele de acoperire cu ordinul k de la care porne#te algoritmul arb_optim_local(G,c), iar c>1 o constant! astfel nct ck-1=n. Fie (T) ordinul arborelui final. Deoarece (T)k, din teorema (8.26) rezult! c! arborele construit de algoritm este optimal local n raport cu nodurile {uV | ord(u,T) 1}. !

8.3.3 Arbori minimi acoperire pentru grafuri euclidiene


Problema arborelui Steiner poate fi generalizat! pentru grafuri care au costuri pe arce. Pentru un graf G=(V,E), o func"ie w: E R de cost (pozitiv) #i un ntreg k trebuie s! se construiasc! un arbore de acoperire de cost minim (un arbore minim de acoperire) cu ordin (T)=k. O variant! interesant! #i cu multe aplica"ii este pentru grafuri euclidiene n plan, adic! grafuri definite implicit de un set de puncte in spa"iul 2D. Un asemenea graf este complet, iar costul unui arc ntre dou! noduri (puncte n plan) este distan"a euclidian! dintre ele. Problema este NP-dur!. De asemenea, se #tie c!:

Algoritmi de aproximare pentru probleme NP-dure

5"

$. Orice arbore minim de acoperire T al unui graf definit ntr-un grid 2D (unde coordonatele punctelor sunt numere ntregi) satisface (T) 5 [PV 84]. 2. Pentru orice mul"ime de puncte n plan exist! un arbore minim de acoperire de ordin 5 [MS 92]. 3. Pentru orice mul"ime de puncte n plan, exist! un arbore de acoperire de ordin 3 cu cost de cel mult 1.5 ori mai mare dect costul unui arbore minim acoperire [KRY 94]. 4. Pentru orice mul"ime de puncte n plan, exist! un arbore de acoperire de ordin 4 cu cost de cel mult 1.25 ori mai mare dect costul unui arbore minim de acoperire [KRY 94]. Mai mult, n cazurile (3) #i (4), dac! algoritmul prime#te un arbore minim de acoperire, atunci arborii cu ordin restric"ionat pot fi ob"inu"i n O(n), unde n este num!rul nodurilor (punctelor) grafului. n cele ce urmeaz! ne limit!m la construc"ia arborilor de ordin 3, plecnd de la un arbore minim de acoperire de ordin cel mult 5, considerat deja construit. n cazul coordonatelor ntregi, conform ($), poate fi folosit orice arbore minim de acoperire. Se folosesc urm!toarele nota"ii suplimentare:
V={v1,v2,...,vn} este mul"imea de n puncte n plan care define#te, implicit, un graf neorientat G. Graful este complet (exist! un arc ntre oricare pereche de puncte din V). Un punct corespunde unui nod al lui G. uv este distanta euclidian! ntre punctele u #i v. w(T) este costul arborelui de acoperire T. !ABC este triunghiul format din punctele A, B #i C, iar ABCD este patrulaterul format din punctele A, B, C #i D. ABC unghiul format ntre segmentele AB #i BC n punctul B. ABC este perimetrul !ABC. n general v1v2...v n este perimetrul unui poligon

format de segmentele vivi+1 pentru i=1,n, unde vn+1=v1. Urm!toarele leme de lucru sunt utile pentru demonstrarea performan"ei algoritmului de construc"ie a arborelui minim de acoperire cu ordin 3. Lema 8.9 Fie AB #i AC dou! arce incidente ntr-un punct A dintr-un arbore minim de acoperire al unei mul"imi de puncte din plan. Atunci, a) BAC 60o b) ABC 90o #i ACB 90o

52

Cristian Giumale/Note de curs

$. S! demonstr!m proprietatea: dac! AB #i AC sunt dou! arce incidente n A ntrun arbore minim de acoperire al unui set de puncte din plan, atunci BAC este cel mai mare unghi din !ABC. Pentru c! AB #i AC sunt arce dintr-un arbore minim de acoperire ce con"ine punctele A, B #i C, avem AB + AC AB + BC #i AB + AC AC + BC . Deci AC BC #i AB BC . Rezult! construc"ia din figura 8.$8, unde A' este un punct pe latura BC n !ABC astfel nct BA' = AB . S! not!m BAC=, ABC=, ACB= #i BAA'='. n triunghiul isoscel !ABA' putem scrie:
= 180- 2 ' 180- 2 + + - 2 . Similar,

A ' C A'
Figura 8."8 #i

2a) Din #i rezult!


2 + = 180- 3 180 60 !

2b)

+ + = 180.

Dar, 0 #i
2 180 90. Similar, 90

Lema 8."0 Fie X, A, B #i C puncte n plan, astfel nct XA XB #i XA XC . Atunci,


ABC (3 3 -4) XA + 2( XB + XC )

$. F!r! a afecta generalitatea demonstra"iei, s! alegem X ca n figura 8.$9. Fie


B' si C' dou! puncte pe segmentele XB #i, respectiv, XC astfel nct XA = XB' = XC' . S! ar!t!m c! lema este adev!rat! pentru punctele X, A, B' #i C'. A

C' B' B C

Figura 8."9 Desen ajut!tor pentru demonstrarea lemei (8.$0)

Algoritmi de aproximare pentru probleme NP-dure

53

Trebuie s! avem AB' C' (3 3 -4) XA +2( XB' + XC' ), unde X este n centrul cercului circumscris !AB'C'. F!r! a afecta generalitatea, s! presupunem c! cercul are raza 1. Inegalitatea devine AB' C' 3 3 . Dar, 3 3 este perimetrul maxim al unui triunghi nscris n cercul cu raz! 1 [Lil 75] (un triunghi echilateral este n aceast! categorie). Prin urmare, inegalitatea este adev!rat! n toate cazurile. 2. &tim c! AB' C' (3 3 -4) XA +2( XB' + XC' ). n acela#i timp, exist! inegalitatea triunghiului: ABC AB' C' + 2 BB' + 2 CC' . Din cele dou! inegalit!"i ob"inem
ABC (3 3 -4) XA + 2( XB + XC ) !

Algoritmul9 de construc"ie a unui arbore minim de acoperire de ordin 3, pentru o mul"ime V dat! de puncte n plan, porne#te cu un arbore minim de acoperire T de ordin cel mult 5. Arborele este considerat cu r!d!cin!, r!d!cina fiind un nod r ales arbitrar dintre frunzele lui T. n acest fel, orice nod din arbore are cel mult 4 succesori (direc"i). Pentru fiecare nod uV se g!se#te drumul de cost minim Pu care porne#te de la u #i trece prin to"i succesorii succs(u,T) ai lui u n T. De fapt, se consider! toate permut!rile succesorilor lui u pe un drum ce pleac! din u. Arborele final T3 este dat de ! Pu . Se observ! c! toate arcele (u,v), vsuccs(u,T), sunt nlocuite n T3 prin Pu.
u V

arb_min_3(V,T){ // T este arbore minim de acoperire al lui V, ord(T)5 fie rV un nod astfel nct r este frunz! n T // r devine r!d!cina arborelui T3 = ; explorare(r); return T3; } explorare(u,T){ fie Pu un drum de lungime minim! de la u prin succs(u,T); T3 = T3 Pu; for-each(vsuccs(u,T) explorare(v,T); }

Evident, calculul drumului Pu este n (1), iar algoritmul are complexitate (n), unde n este num!rul de puncte din V. Teorema 8.27 Algoritmul arb_min_3 construie#te un arbore de acoperire de ordin 3. Fiecare nod u din T3 are un arc n lungul c!ii Pu (dac! u nu este frunz!) #i poate fi pe calea predecesorului s!u n T. Cu alte cuvinte, n T3 sunt cel mult 3 arce incidente n u. Deci, ord(u,T3)3. !
9 Algoritmul apar"ine lui Khuller, Raghavachari #i Young, fiind prezentat n [KRY94] #i

[Hoc97].

54

Cristian Giumale/Note de curs

Lema 8."" Fie u un nod al unui arbore minim de acoperire T al unui set de puncte V din plan. Fie Pu cea mai scurt! cale ce trece prin punctele {u} succs(u,T) #i are un cap!t n u. Not!m w(Pv) lungimea c!ii Pv. Atunci,
uV w(Pu) 1.5
v succs ( u, T)

uv

Definim Prop(u) =def w(Pu) 1.5

v succs ( u, T)

uv

. Proprietatea trebuie probat!

pentru toate variantele posibile de drumuri, n func"ie de num!rul de noduri din mul"imea succs(u,T). Cazul 0: succs(u,T)= implic! w(Pu)=0, iar Prop(u) este verificat! banal. Cazul $: succs(u,T)={v} implic! w(Pu)= uv , iar Prop(u) este verificat! banal. Cazul 2: succs(u,T)={v1,v2}. Exist! dou! variante posibile pentru drumul Pu, anume P1=(v,v1,v2) #i P2=(v,v2,v1). Rezult!,
w(Pu) = min(w(P1),w(P2)) (w(P1)+w(P2))/2 = ( uv1 + uv2 )/2 + v1v2

Conform inegalit!"ii triunghiului, v1v2 uv1 + uv2 . Ob"inem: w(Pu) 1.5( uv1 + uv2 ). Proprietatea Prop(u) este adev!rat!. 8.20. Cazul 3: succs(u,T)={v1,v2,v3}. Sunt posibile #ase drumuri, ilustrate n figura
v3 P1 u P2 u v3 P3 u v3 P4 u v3

v1 v3 P5 u

v2

v1 v3 P6 u

v2

v1

v2

v1

v2

v1

v2

v1

v2

Figura 8.20 Drumuri posibile prin trei puncte Conform lemei (8.9), uv1v2+ uv1v3 180, uv2v3+ uv2v1 180 #i uv3v1+ uv3v2 180. Deci, punctul u este n interiorul sau pe conturul !v1v2v3. F!r! a afecta generalitatea demonstra"iei, s! presupunem c! v1 este punctul cel mai apropiat de u,

Algoritmi de aproximare pentru probleme NP-dure

55

adic! uv1 uv2 #i uv1 uv3 . Atunci, w(P1) w(P5) #i w(P2) w(P6). Prin mediere ponderat! ob"inem,
w(Pu) = min w(Pi)
i=1 6

2w(P1) + 2w(P2) + w(P3) + w(P4) 6

Conform Prop(u) trebuie s! avem w(Pu) 1.5( uv1 + uv2 + uv3 + uv4 ). Rela"ia este satisf!cut! dac!
2w(P1) + 2w(P2) + w (P3) + w (P4) 1.5 ( uv1 + uv2 + uv3 + uv4 ) 6

nlocuind expresiile lungimilor w(Pi), i=1,4, #i calculnd se ob"ine:


v1v2 + v1v3 + v2v3 1.25 uv1 +2( uv2 + uv3 )

S! observ!m c! punctele u, v1, v2 #i v3 ndeplinesc condi"iile lemei (8.$0), iar (3 3 -4)1.22 Prin urmare, exist! inegalitatea:
v1v 2v3 (3 3 -4) uv1 +2( uv2 + uv3 ) 1.25 uv1 +2( uv2 + uv3 )

Proprietatea Prop(u) este adev!rat! #i pentru cazul (3). Cazul 4: succs(u,T)={v1,v2,v3,v4}. Consider!m c! numerotarea punctelor vi este f!cut! n sensul acelor de ceasornic n jurul lui u, a#a cum se arat! n figura
v1 P1 v' v4 u v2 v4 u P2 v' v2 v1

8.2$.

v3

v3

Figura 8.2" Drumuri prin patru puncte Conform lemei (8.9), n orice !uvivj, i j, 1 i,j 4, avem uvivj 90 #i uvjvi 90. Rezult! c! patrulaterul v1v2v3v4 este convex, iar diagonalele v1v3 #i v2v4 se intersecteaz! ntr-un punct v' din interiorul patrulaterului sau, la limit!, pe contur. De asemenea, u este n interiorul sau pe conturul patrulaterului. F!r! a afecta generalitatea demonstra"iei s! consider!m c! v3 este punctul cel mai ndep!rtat fa"! de v' dintre punctele {v1,v2,v3,v4}, adic! uvi uv3 , i{1,2,4}. n acest caz, dintre cele 24 de drumuri posibile care ncep la u #i trec prin

56

Cristian Giumale/Note de curs

punctele {v1,v2,v3,v4}, s! alegem P1=(u,v4,v1,v2,v3) #i P2=(u,v2,v1,v4,v3), care sunt printre cele mai scurte variante. Prin urmare,
w(Pu) min(w(P1),w(P2)) (w(P1) + w(P2))/2

Trebuie ar!tat c!: (w(P1)+w(P2))/2 1.5( uv1 + uv2 + uv3 + uv4 ). Explicitnd lungimile drumurilor P1 #i P2 #i efectund calculele, rela"ia de mai sus devine:
v1v2v3v4 +( v1v2 + v1v4 ) 3( uv1 + uv3 )+2( uv2 + uv4 )

($)

Dac! reu#im s! demonstr!m c!:


v1v2v3v4 +( v1v2 + v1v4 ) 3( v' v1 + v' v3 )+2( v' v2 + v' v4 )

(2)

atunci, din triunghiurile uv1v3 #i uv2v4, ob"inem


uv1 + uv3 v1v3 = v' v1 + v' v3 uv2 + uv4 v2v4 = v' v2 + v' v4

#i putem afirma c! rela"ia ($) este adev!rat!. Inegalitatea (2) poate fi demonstrat! prin reducere la absurd. Presupunem c! punctele {v1,v2,v3,v4} nu satisfac inegalitatea. S! reducem v' v3 cu o valoare q. Laturile v3v4 #i v2v3 scad fiecare cu cel mult q, iar v1v2v3v4 #i, implicit, partea stng! a inegalit!"ii scade cu cel mult 2q. Partea dreapt! a inegalit!"ii scade exact cu 3q. Prin urmare, n timp ce v' v3 scade, inegalitatea este nc!lcat!. S! reducem v' v3 pn! ce exist! i{1,2,4} astfel nct v' v3 = v' vi , apoi s! mic#or!m v' v3 #i v' vi simultan cu aceea#i cantitate. Inegalitatea este nc!lcat! #i n acest caz. Repetnd procesul descris, se ajunge la o configura"ie n care trei segmente, anume v'v3 #i alte dou! din mul"imea {v'v1,v'v2,v'v4}, au lungimi egale. F!r! a afecta generalitatea demonstra"iei, lungimea acestor trei segmente poate fi considerat! 1, iar lungimea celui de-al patrulea segment rezult! 1. Pentru a proba contradic"ia afirma"iei "punctele {v1,v2,v3,v4} nu satisfac inegalitatea (2)" trebuie s! ar!t!m c! inegalitatea este satisf!cut! n toate cele trei cazuri posibile ale alegerii segmentului cu lungime 1. Cazul 4a: v' v1 = 1, iar v' v2 = v' v3 = v' v4 =1. Inegalitatea (2) devine
v1v2v3v4 + v1v2 + v1v4 7+3. Inegalitatea este

satisf!cut! dac! func"ia f()= v1v2v3v4 + v1v2 + v1v4 -7-3 este negativ! n intervalul [0,1]. ntr-adev!r, se poate proba c! f este concav! n intervalul [0,1] #i are valori negative n punctele 0 #i 1.

Algoritmi de aproximare pentru probleme NP-dure

57

Func"iile ce calculeaz! termenii v1v2 #i v1v4 din defini"ia lui f sunt concave n raport cu . De exemplu, fie p cel mai apropiat punct de v4 pe diagonala ce trece prin v1 #i v'. Se observ! c! pe m!sur! ce variaz! de la 0 la 1, punctul v1 se deplaseaz! pe diagonal!, pornind de la v'. Valoarea v1v4 scade, pe m!sur! ce v1 se apropie de p, #i cre#te cnd v1 se dep!rteaz! de p, a#a cum se arat! n figura 8.22. La fel se ntmpl! pentru v1v2 . Deoarece func"ia f este o sum! de func"ii concave minus o func"ie liniar! n , f este concav!. Prin urmare, n intervalul [0,1] func"ia f este maximizat! n punctul =0 sau =1.
v4 v1 v' p v1v4

0 1

Figura 8.22 Varia"ia v1v4 n func"ie de = v' v1 Pentru =1, avem f(1)= v1v2v3v4 + v1v2 + v1v4 -10. Toate cele patru puncte vi, i=1,4, sunt la aceea#i distan"! fa"! de v'. Ca urmare, patrulaterul v1v2v3v4 devine un dreptunghi nscris ntr-un cerc cu raz! 1, a#a cum se arat! n figura 8.23(a). Evident, v1v2v3v4 + v1v2 + v1v4 < 3 #i f(1) < 3-10 < 0.
v4 v1 v' v1v' v4 v4 v2v' v3 v1

v3

v2

v3

v2

a) v1v2v3v4 + v1v2 + v1v4 <3

b) v2v3 + v3v4 2 2

c) 2 v1v4 + v3v4 2 5

Figura 8.23 Construc"ii pentru calculul f() Pentru =0, avem v1v 2 = v1v4 =1 (v'v1 este mijlocul diagonalei v2v4), iar func"ia devine f(0)= v2v3 + v3v4 -3. Deoarece v' v2 = v' v3 = v' v4 =1, triunghiul !v2v3v4 este nscris ntr-un cerc cu raz! 1 #i este dreptunghic, a#a cum vede n figura 4.22(b). Se poate determina u#or c! suma v2v3 + v3v4 atinge valoarea maxim! 2 2 pentru = 45, unde este unghiul v3v4v2 Deci, f(0) 2 2 -3 <0.

58 Cazul 4b: v' v2 = , iar v' v1 = v' v3 = v' v4 =1.

Cristian Giumale/Note de curs

Inegalitatea (2) devine v1v2v3v4 +( v1v2 + v1v4 ) 8+2. S! ar!t!m c! func"ia


f()= v1v2v3v4 +( v1v2 + v1v4 )-8-2 este negativ! n intervalul [0,1]. Deoarece f

este concav! n intervalul [0,1], maximul este la unul din capetele intervalului. Pentru =1 situa"ia este similar! cu cea din cazul (4a), anume f(1) < 3-10 < 0. De fapt, maximul exact este f(1)= 4 5 -10 #i rezult! din configura"ia pentru cazul =0 de mai jos. Cnd =0, avem v1v2 = v2v3 =1 (v'v2 este mijlocul diagonalei v1v3), iar func"ia devine f(0)=2 v1v4 + v3v4 -5. Pentru c! v' v1 = v' v3 = v' v4 =1, triunghiul dreptunghic !v1v3v4 este nscris ntr-un cerc cu raz! 1, ca n figura 4.22(c). Fie 2 v1v4 + v3v4 = g()= 4cos()+2sin(), unde este unghiul v4v1v3. Derivata g'()=-4sin()+2cos() se anuleaz! pentru '=arcctg(2). Rezult!,
g()g(')= 4ctg (' ) 1 + ctg2(' ) + 2 1 + ctg2(' ) = 8 + 5 2 = 2 5 5

Termenul 2 v1v4 + v3v4 are valoarea maxim! 2 5 . Rezult!, f(0) 2 5 -5 < 0. Cazul 4c: v' v4 = , iar v' v1 = v' v2 = v' v3 =1. Este similar prin simetrie cu cazul (4b). Rezult! c! proprietatea Prop(u) este adev!rat! #i n cazul (4). ! Teorema 8.28 Fie T un arbore minim de acoperire al unei mul"imi V de puncte din plan, iar T3 arborele de acoperire construit de algoritmul arb_min_3(V,T). Atunci,
w(T3) 1.5 w(T)

Din construc"ia lui T3 #i din lema (8.$$) rezult! simplu:


T3 =
u V

! Pu

w(T3) =

u V

w(Pu)

1.5

u V v succs (u,T)

uv

= 1.5 w(T) !

Teorema stabile#te, implicit, factorul de aproximare al algoritmului, anume


=1.5.

Algoritmi de aproximare pentru probleme NP-dure

59

8.4 Cicluri hamiltoniene #i comisul voiajor


O problem! clasic! cu variate aplica"ii const! n descoperirea unui ciclu hamiltonian de cost impus (eventual minim) al unui graf G. Problema este cunoscut! sub denumirea "problema comisului voiajor" #i are multiple variante. Consider!m urm!toarele nota"ii #i formul!ri ale problemei.
G=(V,E) este un graf (neorientat #i conex), cu n noduri #i m arce, iar c:ER+ o func"ie care asociaz! fiec!rui arc din E un cost pozitiv. Un drum p n G este privit ca o secven"! de noduri x1,x2,...,xq, xiV, i=1,q, iar costul lui p este notat
q 1 i=1

w(p)=

c(xi, xi + 1). Drumul vid este desemnat prin , iar opera"ia de ad!ugare a

unui nod x la un drum p este reprezentat! x::p. Concatenarea a dou! secven"e p #i q este reprezentat! prin p @ q. De asemenea, consider!m c! un drum reprezint! mul"imea de noduri ce l compun. Problema TSPd (de decizie). Pentru o valoare dat! k 0, s! se determine dac! G con"ine un ciclu simplu care trece prin toate nodurile din V #i are cost cel mult k. n cele ce urmeaz!, se presupune c! un algoritm de rezolvare TSPd(G,c,k) rentoarce secven"a vid! , echivalent! cu valoarea de adev!r 0, dac! n G nu exist! un ciclu hamiltonian cu cost cel mult k, #i o secven"! nevid!, echivalent! cu valoarea de adev!r 1, reprezentnd nodurile unui ciclu hamiltonian cu cost cel mult k, dac! n G exist! un asemenea ciclu. Problema TSPo (de optimizare). S! se g!seasc! un ciclu simplu de cost minim n G care trece prin toate nodurile din V (ciclu hamiltonian). TSPo este varianta general! a problemei comisului voiajor. Dac! func"ia de cost este restric"ionat! la c:EZ+ (costurile arcelor sunt ntregi pozitivi), atunci problema TSPo poate fi rezolvat! folosind TSPd, conform algoritmului TSPo(G,c) de mai jos. Aparent, algoritmul m!re#te doar cu un factor liniar$0 n n complexitatea algoritmului de decizie TSPd(G,c,k).
TSPo(G,c) { // c:EZ+ E = arce(G); n = num!r_noduri(G); cmin = min{e E c(e)}; // limite costuri arce cmax = max{e E c(e)}; for(k = n*cmin; k n*cmax ; k++) { H = TSPd(G,c,k); // ciclu hamiltonian cu cost k if (H ) return H; } return ; }
$0 Dac! valorile cmin #i cmax sunt mari atunci m!rimea acestora conteaz! n stabilirea dimensiunii problemei. Dimensiunea nu mai este liniar! n n ci exponen"ial! n num!rul de simboluri (bi"i) folosite pentru reprezentarea cmin #i cmax, iar factorul devine exponen"ial.

60

Cristian Giumale/Note de curs

n cazul c:ER+ se poate imagina un algoritm de aproximare care, pentru o valoare > 0, g!se#te o solu"ie cu cost mai mare cu cel mult fa"! de costul solu"iei optime. Dac! limita inferioar! a costului solu"iei optime este , atunci factorul de aproximare al algoritmului este = 1+.
TSPo(G,c,) { // c:ER+ E = arce(G); n = num!r_noduri(G); cmin = min{e E c(e)}; cmax = max{e E c(e)}; return bisect(n*cmin,n*cmax,); } bisect(G,c,inf,sup,) { if(sup-inf ) return TSPd(G,c,sup); k = (sup+inf)/2; return (TSPd(G,c,k) = ) ? bisect(G,c,k,sup,) : bisect(G,c,inf,k,); }

Num!rul q de apeluri ale lui bisect se afl! din ecua"ia n(cmax-cmin)/2q = , astfel nct timpul de execu"ie al algoritmului este (lg(n/)+lg(cmax-cmin)) Timp(TSPd(n,m)). n pofida simplit!"ii #i complexit!"ii iluzorii, algoritmii TSPo(G,c) #i TSPo(G,c,) de mai sus sunt nepractici. Ambii algoritmi se bazeaz! pe rezolvarea problemei de decizie TSPd care este NP-complet!. n plus, dificultatea rezolv!rii problemei TSPo deriv! #i din lipsa oric!ror restric"ii impuse grafului #i func"iei de cost a arcelor grafului. Generalitatea problemei are consecin"e dramatice n ceea ce prive#te posibilitatea de construi algoritmi tractabili de aproximare, cu un factor de aproximare acceptabil.

8.4.1 Limite de rezolvare


Problema comisului voiajor este notorie prin caracteristicile ei teoretice. Astfel, s-a demonstrat c!: $. TSPd este NP-dur!, deci TSPo este NP-dur!. 2. n cazul general, anume pentru func"ia de cost c:ER+, nerestric"ionat!, problema TSPo accept! algoritmi (polinomiali) de aproximare cu factor de aproximare polinomial n n, num!rul de noduri din graf, doar dac! P=NP. Teorema 8.29 Dac! exist! un algoritm (polinomial) de aproximare pentru problema TSPo, cu factor de aproximare polinomial n raport cu num!rul de noduri din graf, atunci P = NP. Fie Ham(G) problema "exist! un ciclu hamiltonian n graful G". Se #tie c! HamNP-complete [CLRS 0$]. Astfel, dac! reu#im s! construim un algoritm polinomial

Algoritmi de aproximare pentru probleme NP-dure

6"

pentru Ham, pe baza unui algoritm de aproximare pentru TSPo, nseamn! c! HamP #i, conform teoremei (3.5), P = NP. Fie Alg un algoritm de aproximare pentru problema TSPo, iar (n), un polinom n n, factorul de aproximare garantat de Alg pentru un graf nevid cu n noduri. $. n prima faz!, s! elabor!m un algoritm Con(G,) care, plecnd de la un graf dat G=(V,E), nevid, cu n noduri #i m arce, construie#te graful complet G'=(V,E') #i func"ia de cost c':E'R+ astfel nct:
1, dac! (u,v)E c'(u,v)= { n (n) + 1, dac! (u,v)E

Pentru c! func"ia (n) este calculabil! n timp polinomial, algoritmul Con(G,) realizeaz! construc"ia dubletului (G',c') n timp polinomial n func"ie de n #i m.
Con(G,) { V = noduri(G); n = card(V); E = arce(G); E' = E; for-each(uV) for-each(uV) if(uv) if((u,v)E) c'(u,v)=1; else {c'(u,v)= n (n)+1; E'= E'{(u,v)};} G'=(V,E'); return (G',c'); }

Fie H solu"ia rentoars! de Alg(G',c'), Hopt ciclul hamiltonian cu cost minim din G', iar w'(p) costul unui drum p n graful G'. Exist! proprietatea:
Prop1: [G are ciclu hamiltonian w'(Hopt)=n] [G nu are ciclu hamiltonian w'(Hopt) > n (n)] G nu are ciclu hamiltonian w'(Hopt) > n (n). Dac! G nu are ciclu hamiltonian atunci Hopt trebuie s! con"in! arce care nu sunt n E, altfel Hopt ar fi ciclu hamiltonian n G. Fie k, k1, num!rul arcelor din Hopt care nu sunt n E. Pentru c! n >1 #i (n) > 1 avem w'(Hopt)= n(1+k (n)) > n (n) > n. G are ciclu hamiltonian w'(Hopt)=n. Fie HG un cilcu hamiltonian n G #i, implicit, n G'. S! presupunem c! Hopt con"ine k arce, k1, care nu sunt n E. Avem w'(Hopt) = n(1+k (n)) > n (n) > n. Imposibil, pentru c! G' are ciclul hamiltonian HG cu cost n. Prin urmare, Hopt are toate arcele n E, iar w'(Hopt)=n. !

Pentru c! Alg(G',c') garanteaz! factorul de aproximare (n), rezult! implica"iile


w'(Hopt) = n w'(H) n (n) #i w'(Hopt) > n (n) w'(H) > n (n),

(pentru c! w'(H) w'(Hopt) (n)) (pentru c! w'(H) w'(Hopt))

62 care, prin tranzitivitate din Prop1, conduc la proprietatea:

Cristian Giumale/Note de curs

Prop2: [G are ciclu hamiltonian w'(H) = n (n)] [G nu are ciclu hamiltonian w'(H) > n (n)]

2. Pe baza propriet!"ii Prop2 putem construi algoritmul HamDec, care decide dac! un graf oarecare G are ciclu hamiltonian.
HamDec(G) { (G',c')= Con(G,); H= Alg(G',c'); if(w'(H) n (n)) return 1; // G are ciclu hamiltonian return 0; // G nu are ciclu hamiltonian }

Deoarece Alg #i Con sunt polinomiali, iar func"ia (n) se poate calcula n timp polinomial, algoritmul HamDec este polinomial, deci HamP. Pentru c! HamNPcomplete ob"inem, conform teoremei (3.5), P=NP. ! Intuitiv, teorema (8.29) arat! c! exist! probleme pentru care aproximarea este tractabil! doar dac! factorul de aproximare este limitat de o func"ie f(n) dat!. Discu"ia este n sec"iunea 8.5. Teorema 8.30 Problema TSPd este NP-dur!. S! demonstr!m c! problema este NP-complet!; implicit este NP-dur!. Demonstra"ia se bazeaz! pe reducerea TSPd la problema Ham a ciclului hamiltonian. $. TSPd NP. S! construim algoritmul nedeterminist de mai jos. Presupunem c! success poate rentoarce o secven"! nevid! de noduri, secven"! echivalent! valorii de adev!r 1, iar fail rentoarce secven"a vid!, echivalent! valoarii de adev!r 0.
TSP_NC(G,k){ V= noduri(G); E= arce(G); n= card(V); u = un_nod_din(V); cap = u; drum = ; lungime = 0; // extindere drum do { drum = u::drum; lungime++; if(succs(u) = ) break; u = choice(succs(u)); } while(udrum); // test n (n) drum = u::drum; lungime++; // test ciclu hamiltonian cu cost cel mult k, n (n) if(u=cap lungime=n w(drum)k) success drum; fail ; }

Algoritmi de aproximare pentru probleme NP-dure

63

Algoritmul nedeterminist TSP_NC are o complexitate polinomial!: (n2+n). Deci TSPdNC. 2. Ham p TSPd (Ham este reductibil! polinomial la TSPd) Fie G=(V,E) un graf cu n noduri #i m arce, pentru care trebuie rezolvat! problema hamiltonianului. S! construim graful complet G'=(V,E') #i func"ia de cost c':E'R+ astfel nct: 0, dac! (u,v)E
c'(u,v)= { 1, dac! (u,v)E

Construc"ia se poate realiza cu un algoritm similar algoritmului Con din demonstra"ia teoremei (8.29). Complexitatea construc"iei este polinomial! n n #i m. S! ar!t!m c! Ham(G)=1 TSPd(G',c',0), cu alte cuvinte G are un ciclu hamiltonian dac! #i numai dac! G' accept! un ciclu hamiltonian (drum al comisului voiajor) cu cost 0.
Ham(G)=1 TSPd(G',c',0) Fie H un ciclu hamiltonian n G. Deoarece EE', H este ciclu hamiltonian #i n G', iar costul s!u este w'(H)=0, conform func"iei de cost c'. TSPd(G',c',0) Ham(G)=1 Fie H' un drum al comisului voiajor n G' (un ciclu) astfel nct w'(H')=0. Atunci toate arcele din H' au cost 0 #i, conform func"iei c', apar"in mul"imii arcelor E. Deci H' este ciclu hamiltonian #i n G. !

8.4.2 O particularizare a problemei TSPo


De#i problema general! TSPo nu accept! algoritmi de aproximare acceptabil! dect n cazul P=NP, exist! particulariz!ri ale problemei care dep!#esc aceast! restric"ie. Un caz ntlnit frecvent n aplica"ii este acela n care func"ia de cost ndepline#te inegalitatea triunghiului. Cu alte cuvinte, pentru orice configura"ie de arce (u,v), (v,z) #i (u,z) din graf este satisf!cut! inegalitatea:
c(u,v)+c(v,z) c(u,z)

Un asemenea caz este cel al unui graf complet, fie el G(V), definit implicit printr-o mul"ime V de n puncte n planul euclidian. Func"ia de cost c(u,v) calculeaz! distan"a dintre punctele u #i v. O variant! de aproximare a solu"iei problemei TSPo pentru un graf G(V) este algoritmul polinomial TSP_preord de mai jos. Algoritmul are doi pa#i. Rezultatul primului pas este un arbore T, minim de acoperire al grafului G(V). Arborele este construit astfel nct are r!d!cin! #i este considerat orientat #i ordonat. Astfel, orice nod uV are o moul"ime ordonat! de descenden"i direc"i n T, mul"ime desemnat! prin

64

Cristian Giumale/Note de curs

nota"ia succ(u,T). Ordinea punctelor din succ(u,T) este conform! cu ordinea inser!rii punctelor n mul"ime. Algoritmul Prim, prezentat n capitolul 5, construie#te n timp polinomial un asemenea arbore.
TSP_preord(V){ if(V = ) return ; r = nod_din(V); T = Prim(G(V),r); H = preordine(r) @ r; return H; }

// // // // //

ciclu hamiltonian vid r!d!cina arborelui T arbore min de acoperire al G(V) parcurgere T n preordine, rezult! secven"a H a ciclului hamiltonian

preordine(u){ S = u; for-each(vsuccs(u,T)) // n ordinea din succs(u,T) S = S @ preordine(v); return S; }

Rezultatul celui de al doilea pas al algoritmului TSP_preord este o secven"! H = x1,x2,...,xn,x1 a punctelor din V, ordonat! conform parcurgerii n preordine (r!d!cin!-succesori) a arborelui T, la care se adaug! pe ultima pozi"ie r!d!cina lui T. Secven"a define#te implicit arcele ciclului hamiltonian produs de algoritm, anume
EH=
j= 1

! (xj, xj+ 1), xn+1= x1, #i costul w(H)= c(e), Evident, parcurgerea lui T este n
e EH

(n), deci complexitatea algoritmului TSP_preord este polinomial!. c b e f a g e f a e f g i i h h i h g d c d b a b c d

a) Arborele minim de acoperire

b) Hamiltonian suboptimal

c) Hamiltonian de cost minim

Figura 8.24 Calcul solu"ie TSP_preord Un exemplu de execu"ie a algoritmului este ilustrat n figura 8.24, pentru punctele V={a,b,c,d,e,f,g,h,i}. n figura 8.24(a) este arborele T, minim de acoperire al grafului G(V). Arborele are r!d!cina a, iar succesorii din T ai punctelor din V sunt: succ(a,T)={b,e,f}, succ(b,T)={c,d}, succ(f,T)={g}, succ(g,T)={h,i}

Algoritmi de aproximare pentru probleme NP-dure

65

#i succ(x,T)=, pentru x{c,d,e,h,i}. Cu aceast! configura"ie, secven"a H a ciclului hamiltonian calculat! de algoritm este H=a,b,c,d,e,f,g,h,i,a. Arcele desemnate, implicit, sunt ntre fiecare pereche de puncte consecutive din H, anume EH={(a,b),(b,c),(c,d),(d,e),(e,f),(f,g),(g,h),(h,i),(i,a)}. Figura 8.24(b) arat! hamiltonianul descoperit de algoritmul TSP_preord, iar figura 8.24(c) corespunde hamiltonianului cu cost minim. Teorema 8.3" Factorul de aproximare garantat de algoritmul TSP_preord este
= 2.

Fie T arborele minim de acoperire al grafului G(V), pentru n puncte V din plan, iar H* un ciclu hamiltonian cu cost minim al lui G(V). Not!m w(T) costul arborelui T #i cu r r!d!cina arborelui. Deoarece costul w(T) este minimal n raport cu costul oric!rui graf de acoperire al G(V), rezult!
w(T) w(H*)

($)

S! modific!m algoritmul preordine de parcurgere n preordine a arborelui T, astfel nct la fiecare trecere printr-un punct, punctul s! fie inserat n secven"a construit!.
preordine'(u){ S = u; for-each(vsuccs(u,T)) // n ordinea din succs(u,T) S = S @ preordine(v) @ u; return S; }

De exemplu, pentru arborele T din figura 8.24(a), secven"a rezultat! este H'=a,b,c,b,d,b,a,e,a,f,g,h,g,i,g,f,a. S! observ!m c! fiecare pereche de puncte consecutive din H' define#te un arc din T, iar fiecare arc din T apare de dou! ori n H'. ntr-adev!r, parcurgerea preordine' nregistreaz! n H' capetele unui arc (u,v) din T de dou! ori: prima dat! la coborrea pe arc din u n v #i a doua oar! la urcarea pe arc din v n u. Rezult!,
w(H') = 2 w(T)

(2)

Fie H = preordine(r) @ r secven"a ob"inut! de algoritmul TSP_preord(V), iar H'= preordine'(r) secven"a ob"inut! parcurgnd n preordine' acela#i arbore T folosit de algoritm. Dorim s! ar!t!m c! H poate fi ob"inut! din H' prin aplicarea repetat! a regulii R de mai jos #i, implicit, s! ar!t!m c! w(H) w(H').
j 1 j j+ 1 R: Tripletul de puncte Hi 1, Hi 1, Hi 1 din secven"a de puncte Hi-1, astfel

nct punctul Hj i 1 mai apare n Hi-1 pe o pozi"ie k < j, este nlocuit n Hi prin dubletul
1 j+ 1 Hj i 1, Hi 1 .

66

Cristian Giumale/Note de curs


j 1 j j+ 1 Not!m Hi-1 Hi 1, Hi 1, Hi 1 Hi, i=1,q, transformarea secven"ei Hi-1

n Hi prin regula R, astfel nct H0=H', iar pentru Hq regula nu mai poate fi aplicat!. De exemplu, pentru secven"a H'=a,b,c,b,d,b,a,e,a,f,g,h,g,i,g,f,a ce corespunde parcurgerii preordine'(a) a arborelui din figura 8.24(a), transform!rile pot fi:
H0 H1 H2 H3 H4 H5 H6 H7 H8 = = = = = = = = = a,b,c,b,d,b,a,e,a,f,g,h,g,i,g,f,a d,b,a a,b,c,b,d,a,e,a,f,g,h,g,i,g,f,a c,b,d a,b,c,d,a,e,a,f,g,h,g,i,g,f,a d,a,e a,b,c,d,e,a,f,g,h,g,i,g,f,a e,a,f a,b,c,d,e,f,g,h,g,i,g,f,a h,g,i a,b,c,d,e,f,g,h,i,g,f,a i,g,f a,b,c,d,e,f,g,h,g,i,f,a i,f,a a,b,c,d,e,f,g,h,g,i,a h,g,i a,b,c,d,e,f,g,h,i,a = H

j 1 j j+ 1 Se observ! c! pasul Hi-1 Hi 1, Hi 1, Hi 1 Hi de aplicare a regulii R are urm!toarele efecte:

Din Hi se elimin! dou! arce parcurse n T de algoritmul preordine', #i j 1 anume arcul de revenire din punctul Hj i 1 n punctul Hi 1 #i arcul de avans sau de
j+ 1 revenire din Hj i 1 n Hi 1 . n momentul n care, pentru un punct Hi 1 r fixat, regula R nu mai poate fi aplicat! nseamn! c! secven"a Hj-1 con"ine doar o singur! apari"ie a punctului, apari"ie ce corespunde primei treceri prin punct n cursul travers!rii n preordine a arborelui T. n momentul n care regula nu mai poate fi aplicat! pentru Hj i 1 =r secven"a Hj-1 con"ine punctul r doar pe prima #i ultima pozi"ie. Prin urmare, j

Hq= preordine(r)@ r = H.

j1 j+ 1 Cele dou! arce sunt nlocuite n Hi prin arcul ( Hi 1, Hi 1 ). Deoarece

j1 j+ 1 j1 j j j+ 1 c( Hi 1, Hi 1 ) c( Hi 1, Hi 1 )+c( Hi 1, Hi 1 ), avem w(Hi) w(Hi-1) #i, deci, w(Hq) w(H0).

n urma observa"iilor de mai sus, rezult! c! secven"a H' este transformat! n H n urma unei secven"e de aplic!ri$$ ale regulii R, #i
w(H) w(H')

(3)

Combinnd rela"iile ($), (2) #i (3), ob"inem w(H) 2 w(H*), deci = 2. !

$$

Pot exista mai multe secven"e de reducere a lui H', dar toate conduc la acela#i

rezultat.

Algoritmi de aproximare pentru probleme NP-dure

67

8.4.3 Algoritmul lui Christofides


Algoritmul TSP_preord din sec"iunea 8.4.2 are meritul simplit!"ii. Un algoritm polinomial mai complicat, dar care garanteaz! = 3/2, este cel al lui Christofides. De la descoperirea algoritmului, n $976, #i pn! n prezent nu a fost g!sit un alt algoritm cu un factor de aproximare mai bun. Algoritmul, are la baz! aceea#i idee ca #i algoritmii asimptotic optimali pentru problema -conectivit!"ii discuta"i n sec"iunea 8.2.3, #i anume cea a folosirii arcelor corespunz!toare unei arc-identific#ri perfecte. Reamintim c! numim b-arc-identificare perfect# pentru un graf G=(V,E) determinarea unei submul"imi ME de arce astfel nct ord(u,M)=b(u), pentru orice uV, unde b o func"ie care asociaz! fiec!rui nod din graf un ntreg pozitiv.
Christofides(V){ if(V = ) return ; T = arbore_minim_acoperire(G(V)); V1 = {uV | ord(u,T) este impar}; fie E(V1) arcele unui graf complet cu nodurile V1; fie E1E(V1) o $-arc-identificare perfect! de cost minim; // w(E1) = min{ME(V1) | (uV1 | ord(u,M)=1) w(M)}; H = ciclu(T E1); // ciclu eulerian al grafului cu arcele T E1 while(reductibilR(H)) H = R(H); return H; }

Fie G(V) graful complet definit de n puncte V din plan #i c func"ia de cost asociat! arcelor din G(V), astfel nct c(u,v)= uv pentru oricare puncte u #i v din V. Algoritmul lui Christofides are urm!torii pa#i. Pas $. Se calculeaz! un arbore T, minim de acoperire al grafului G(V) (algoritmul aplicat poate fi Kruskal sau Prim, iar rezultatul este un arbore liber). Pas 2. Fie V1 = {uV | ord(u,T) este impar} mul"imea punctelor din V astfel nct num!rul arcelor din T incidente ntr-un punct este impar. Fie G1(V1) graful complet, cu arcele E(V1), definit de punctele V1. Se determin! o 1-arc-identificare perfect! E1, de cost minimal, pentru graful G1(V1). Mul"imea E1 con"ine arcele corespunz!toare perechilor disjuncte de puncte din V1 astfel nct suma costurilor acestor arce s! fie minim!. Calculul arcelor E1 este tractabil #i ntotdeauna posibil. Propozi!ia 8.7 Graful G1(V1) accept! ntotdeauna o 1-arc-identificare perfect!. Num!rul arcelor din arborele T este n-1 #i poate fi privit ca jum!tate din inciden"a total! relativ! la T a nodurilor din V, #i anume
1 ord(u, T). 2 u V

68
1 1 ord(u, T) = 2 [ (2k)n2k + 2 u V

Cristian Giumale/Note de curs

n-1 =

(2k

+ 1) n2k + 1 ]

unde ni= card{uV | ord(u,T)=i}, (2k + 1) n2k + 1 este num!rul total al arcelor din T incidente n nodurile cu ordin impar (noduri din V1), iar (2k)n2k este num!rul total al arcelor din T incidente n nodurile cu ordin par (noduri din V\V1). Ob"inem:
card(V1) =

n2k + 1

= 2 [n-1 -

(2k)n2k

(2k)n2k + 1 ]

Num!rul nodurilor din V1 fiind par, putem grupa toate nodurile n perechi disjuncte. Aceste perechi corespund arcelor unei 1-arc-identificari perfecte pentru graful G1(V1). ! Pas 3. Se formeaz! (multi)graful G'= TE1, unde arcele E1 se consider! distincte fa"! de cele din T chiar dac! apar n T. Graful este eulerian, toate nodurile avnd ordin par. Se determin! un ciclu eulerian al grafului (un ciclu care trece o singur! dat! prin fiecare arc din graf, dar poate trece de mai multe ori prin unele noduri). Fie H secven"a nodurilor unui asemenea ciclu. Pas 4. Se reduce secven"a H folosind regula R din sec"iunea 8.4.2. Reducerile contribuie la mic#orarea costului secven"ei. Secven"a final! H, ireductibil! prin R, reprezint! ciclul hamiltonian descoperit de algoritm. Se va demonstra c! w(H) 1.5 w(H*), unde H* este ciclul hamiltonian de cost minim al grafului G(V).
c b e a f g e a f g e f g i i h h i h d c b a c d b d

a) Arborele T #i arcele E1

b) Subgraful
TE1

c) Hamiltonian suboptimal

Figura 8.25 Un exemplu cu algoritmul lui Christofides Figura 8.25 sugereaz! func"ionarea algoritmului lui Christofides pentru punctele
V={a,b,c,d,e,f,g,h,i}. n figura 8.25(a) este arborele T, minim de acoperire al grafului G(V). Cu linie punctat! sunt desenate arcele 1-arc-identific!rii perfecte E1={(a,b),(c,d),(e,g),(h,i)} pentru punctele din V1={a,b,c,d,e,g,h,i}. Figura 8.25(b) arat! graful TE1. Parcurgerea acestui graf, pornind din punctul a #i

Algoritmi de aproximare pentru probleme NP-dure

69

respectnd sensul indicat n figur!, produce ciclul eulerian H = a,b,c,d,b,a,f,g,i,


h,g,e,a. Secven"a poate fi redus! prin regula R. H = a,b,c,d,b,a,f,g,i,h,g,e,a h,g,e a,b,c,d,b,a,f,g,i,h,e,a b,a,f a,b,c,d,b,f,g,i,h,e,a d,b,f a,b,c,d,f,g,i,h,e,a

Drumul H este desenat n figura 8.25(c) #i reprezint! solu"ia construit! de algoritm, fiind mai bun! dect cea din figura 8.24(b), descoperit! de algoritmul TSP_preord pentru acelea#i puncte. Solu"ia optim! este n figura 8.24(c).
c d b a e f g i

Figura 8.26 Solu"ia corespunz!toare parcurgerii TE1 ncepnd din h Calitatea drumului calculat de algoritm depinde de construc"ia ciclului eulerian al grafului TE1. Astfel, pentru ciclul eulerian h,g,e,a,b,c,d,b,a,f,g,i,h al grafului din figura 8.25(b) solu"ia ob"inut! este h,g,e,a,b,c,d,f,i,h. Drumul este ilustrat n figura 8.26 #i este mai slab dect cel din figura 8.25(c). Teorema 8.32 Factorul de aproximare garantat de algoritmul lui Christofides este = 3/2. Fie H* un ciclu hamiltonian de cost minim al grafului G(V) definit de punctele V, * H1 un ciclu hamiltonian de cost minim al grafului G1(V1) definit de punctele V1, T arborele minim de acoperire al grafului G(V), iar H ciclul hamiltonian descoperit de algoritmul lui Christofides.
w(H1*) w(H*)

($')

S! not!m H1*= x1,x2,...,xq,x1, unde xiV1, i=1,q, #i s! observ!m c! H1* este format din dou! 1-arc-identific!ri perfecte ale grafului G1 (vezi figura 8.27), anume: E'=
q/2 i=1

! {(x2i 1, x2i)} #i

q/2

E"=

par conform propozi"iei (8.7). Astfel, w(H1*) = w(E')+ w(E"). Dar, 1-arc-identificarea

i=1

! {(x2i, x2i + 1)} , unde xq+1 = x1, iar q este

70

Cristian Giumale/Note de curs

perfect! E1 a grafului G1, folosit! de algoritm, este minimal!. Deci, w(E1) w(E') #i w(E1) w(E"). Rezult!,
1 w(H1*) w(E1) 2 x2

(2')
x3 x4 H1*

Arc din E' Arc din E"

x1

xq x2i+1 x2i x2i-1

x5

Figura 8.27 H1*= E' E" Deoarece w(T) w(H*), din ($') #i (2') ob"inem w(T E1)
3 w(H*). Totodat!, 2

w(H) w(T E1), pentru c! H rezult! din reducerea secven"ei ob"inute prin parcurgerea unui ciclu eulerian al grafului T E1. Rezult!, (n) = w (H) w(H )
*

w(T E1) w(H )


*

3 ! 2

Complexitatea algoritmului lui Christofides este condi"ionat! de complexitatea determin!rii arcelor E1, n pasul 2. Calculul se poate realiza n timp polinomial (n (n2.5 lg4(n)) conform [Vai 88]). Ceilal"i pa#i sunt n timp polinomial, astfel nct ntregul algoritm este polinomial.

8.4.4 Construc!ie prin inser!ia punctelor


Euristica lui Christofides este cea mai bun! cunoscut!. Variantele pot oferi ns! alte avantaje. De exemplu, euristica de construc"ie a unui ciclu hamiltonian prin inserarea treptat! a punctelor din V conduce la un algoritm lacom simplu, dar cu factorul de aproximare (n) = lg(n)+1, indiferent de ordinea inser!rii celor n = card(V) puncte [RSL 77]. Defini!ia 8."3 Fie Q = s,...,s un ciclu simplu n graful G(V), construit prin inserarea unor puncte pornind de la ciclul s,s. Fie u un punct din Q, iar x #i y vecinii$2 lui u n Q imediat dup! momentul inser!rii lui u. Definim costul punctului u relativ la ciclul Q: costQ(u)=def c(x,u)+c(u,y)-c(x,y).
$2 Punctul u este inserat ntre x #i y, puncte consecutive n Q la momentul inser!rii lui u.

Un caz particular este x = y = s pentru care costQ(u) = 2 c(s,u).

Algoritmi de aproximare pentru probleme NP-dure

7"

Cu alte cuvinte, costQ(u) este suprataxa pl!tit! pentru a ajunge din x n y trecnd prin u. Prin conven"ie, definim costQ(s)=0. De asemenea, costul unui punct r!mne neschimbat dup! inserarea punctului n ciclu. Algoritmul porne#te cu un ciclu H, format cu un punct s ales la ntmplare din V. Apoi, treptat, fiecare punct u din V\{s} este inserat n H astfel nct costH(u) s! fie minim. Ordinea inser!rii punctelor este arbitrar!. Complexitatea algoritmului este (n2).
TSP_insert(V){ if(V = ) return ; // ciclu hamiltonian vid fie s un punct din V; // cap!t ciclu H = s,s; V = V\{s}; // extindere drum H prin inserarea punctelor din V while(V ) { fie u un punct din V; fie x,yH puncte consecutive astfel nct diferen"a de cost c(x,u)+c(u,y)-c(x,y) este minim!; H = inserare u n H ntre x #i y; V = V\{u}; } return H; }

Propozi!ia 8.8 Fie Q= s,...,s un ciclu simplu n G(V) construit prin inser"ia unui num!r de m puncte pornind de la ciclul s,s. Not!m Q mul"imea punctelor din ciclu. Costul ciclului este:
w(Q) =
vQ

costQ(v)

Demonstr!m prin induc"ie dup! m proprietatea P(m)=def w(Q)=

vQ

costQ(v) .

Caz de baz! m = 0. Folosind conven"ia privind costul punctului in"ial s se verific! imediat: w(Q) = 0 = costQ(s). Pas de induc"ie m 0. Ca ipotez! inductiv! consider!m P(m) adev!rat!. Pentru a ar!ta c! P(m+1) este adev!rat!, fie Q = s,...,s un ciclu simplu construit prin inser"ia unui num!r de m puncte pornind de la ciclul s,s, iar Q' ciclul rezultat din Q prin inser"ia unui nou punct u ntre punctele consecutive x #i y din Q. Avem:
w(Q') = w(Q) + c(x,u) + c(u,y) - c(x,y) =
vQ

costQ(v)
(v) costQ'

+ costQ'(u) =

v Q' vu

costQ'(v)+

costQ'(u)

v Q'

72

Cristian Giumale/Note de curs

Propozi!ia 8.9 Fie x #i y dou! puncte distincte ale unui ciclu hamiltonian H n G(V), construit prin inser"ia celor n puncte din V conform algoritmului TSP_insert. Atunci,
2 c(x,y) min(costH(x),costH(y)).

Caz $: Punctul x exist! n H n momentul inser!rii lui y. Not!m cost'(y) costul lui y pentru cazul n care y este inserat necondi"ionat ca succesor al lui x n H. Deoarece algoritmul decide locul de inser"ie n H al lui y prin minimizarea costului punctului, avem costH(y) cost'(y). S! evalu!m cost'(y). Fie z succesorul lui x n H naintea virtualei inser!ri a lui y ca succesor al lui x. Din defini"ia (8.$3) avem
cost'(y) = c(x,y)+c(y,z)-c(x,z),

iar din triunghiul !xyz ob"inem c(y,z) c(x,y)+c(x,z). Rezult!, cost'(y) 2 c(x,y) #i, cu att mai mult, costH(y) 2 c(x,y). Caz 2: Punctul y exist! n H n momentul inser!rii lui x. Similar cu cazul $. Rezult!: costH(x) 2 c(x,y). Din cele dou! rela"ii, avem 2 c(x,y) min(costH(x),costH(y)). ! Propozi!ia 8."0 Fie H* un cilcu hamiltonian de cost minim w(H*) al grafului G(V), H un ciclu hamiltonian ob"inut prin algoritmul TSP_insert(V), iar z un punct oarecare din V. Atunci w(H*) costH(z). n cazul n=card(V)=1 propozi"ia este verificat! banal: w(H*)=costH(z)=0. Fie n >1, iar x #i y vecinii lui z n momentul n care z este inserat n ciclul H (eventual x = y, dac! n = 2). Not!m cost*(x,z) costul drumului n H* de la x la z, drum care nu trece prin y, iar cost*(y,z) costul drumului n H* de la y la z, drum care nu trece prin x.
w(H*) cost*(x,z)+cost*(y,z) c(x,z)+c(y,z) c(x,z)+c(y,z)-c(x,y) = costH(z) !

Teorema 8.33 (Rosenkrantz et al.) Factorul de aproximare al algoritmului


TSP_insert(V) este (n) = lg(n)+1, unde n > 0 este num!rul de puncte din V.

Fie H* un ciclu hamiltonian de cost minim al grafului G(V), iar H solu"ia calculat! de algoritmul TSP_insert(V). Demonstra"ia urm!re#te g!sirea unei limite superioare a costului w(H)= costH(u), n raport cu ordinea n care punctele din V apar n H*. Not!m H0 = H*, n0 = n, #i efectu!m urm!toarele construc"ii ce apar"in etapei i, ini"ial i=0, a demonstra"iei.
u V

Algoritmi de aproximare pentru probleme NP-dure

73

$. Din arcele ciclului Hi= xi,1, xi,2,..., xi,ni, xi,1 construim dou! mul"imi maximale, E' #i E", astfel nct arcele din fiecare mul"ime s! aib! capete disjuncte.
n (e) E'= {k1.. i (xi,2k 1, xi,2k )}, cu costul w(E')= c 2 e E' n E"={k1.. i (xi,2k, xi,2k + 1)}, xi,ni + 1 = xi,1 , cu cost w(E")= c (e) 2 e E"

2. Numim Ei acea mul"ime dintre E' #i E" care are costul minim, iar Ei mul"imea (E'E")\Ei. Pentru ni>1 impar, ultimul arc din Hi, anume (xi,ni, xi,1), nu este n EiEi. Deci w(Hi) w(Ei) + w(Ei). 3. Pe baza parti"ion!rii EiEi construim mul"imea de noduri Vi cu costul costH(u) astfel nct s! fie satisf!cut! inegalitatea w(H*) w(Vi).
u Vi

w(Vi)=

3.$ Dac! ni>1, atunci Ei . Definim


Vi = {e Ei nod_min(e)},

unde nod_min(u,v) este u, dac! costH(u) costH(v), #i v altfel. Vi este mul"imea capetelor de cost minim (cost relativ la ciclul H) ale arcelor din Ei. Arcele din Ei au capete distincte #i, conform propozi"iei (8.9), avem Deci,
eEi 2 c(e) costH(nod_min(e)). 2
e Ei

c(e)

u Vi

costH(u)

= w(Vi).

Putem scrie:
w(H*) w(Hi) w(Ei)+w(Ei) 2w(Ei) = 2
e Ei

c(e)

w(Vi)

3.2 Dac! ni=1, avem Hi= xi,1, xi,1 , iar Ei= Ei= #i w(Ei)= w(Ei)=0. Definim Vi={ xi,1 }. Conform propozi"iei (8.$0) avem:
w(H*) costH(xi,1) = w(Vi).

4. Se calculeaz! ciclul Hi+1 = xi + 1,1,..., xi + 1,1 = Hi-Vi ob"inut prin eliminarea din Hi a punctelor mul"imii Vi. 5. Se repet! pa#ii ($)...(4), construind ciclurile Hi = Hi-1-Vi-1, w(H*) w(Hi), i=1,q, pn! ce se ob"ine un ciclu Hq = xq,1,xq,1 ce trece printr-un singur punct. Deoarece num!rul punctelor prin care trece Hi este ni = i , rezult! q = lg(n). 2
n

74
i h b g c a h

Cristian Giumale/Note de curs


i

f n0= H0= E0= V0=

f n1= H1= E1= V1=

d 5 b,d,f,h,i,b {(d,f),(h,i)} {d,h}

e n= 9 a,b,c,d,e,f,g,h,i,a {(a,b),(c,d),(e,f),(g,h)} {a,c,e,g} i

f n2= H2= E2= V2= 3 b,f,i,b {(f,i)} {i}

f n3= H3= E3= V3= 2 b,f,b {(b,f)} {b}

f n4= H4= E4= V4= 1 f,f {f}

Figura 8.28 Construc"ia ciclurilor Hi, i=0, lg(n) Un exemplu al construc"iilor efectuate pentru deducerea costului w(H) n raport cu costul w(H*), este ilustrat n figura 8.28. Rela"iile stabilite n urma construc"iei ciclurilor Hi, i=0,q, unde q = lg(n), sunt: a) w(H*) w(Vi), pentru 0 i q. b) Vi Vj = , pentru 0 i,j q #i ij. c) V =
q i=0

! Vi
u V

Ob"inem, w(V)= (8.8), w(H)=


u V

costH(u)

costH(u). Rezult! w(H) ( lg(n)+1) w(H*), deci (n)=

i=0

w(Vi)

(q+1)w(H*) #i, conform propozi"iei lg(n)+1.

Analiza de mai sus nu a impus o anumit! ordine de inserare a punctelor n cursul construc"iei ciclului H, deci factorul de aproximare stabilit este valabil pentru o ordine arbitrar! #i pentru orice cap!t de ciclu ales ini"ial. !

Algoritmi de aproximare pentru probleme NP-dure

75

8.5 Duritatea algoritmilor de aproximare


Teorema (8.29) din sec"iunea 8.4.$, sugereaz! un fapt remarcabil, anume c! pot exista probleme pentru care un algoritm polinomial de aproximare acceptabil! poate exista doar dac! P=NP. Cu alte cuvinte, algoritmii practici de aproximare pentru asemenea probleme sunt NP-duri. Din nefericire, aceast! proprietate nu este singular!, ci relativ frecvent!, multe probleme cu aplicabilitate practic! fiind NP-dure att din perspectiva rezolv!rii exacte ct #i din cea a aproxim!rii. Totu#i o nuan"are este important!. Factorul de aproximare este o func"ie n raport cu dimensiunea, fie ea n, a datelor problemei Q rezolvate, astfel nct proprietatea:
Aprox-dur(Q)=def Q are algoritmi de aproximare acceptabil# P=NP

trebuie reformulat! "innd seama de natura dependen"ei lui n raport cu n, dependen"! reprezentat! printr-o func"ie f, considerat! n cele ce urmeaz! ca fiind calculabil! n timp polinomial. Defini!ia 8."4 Fie Q o problem! pentru care exist! algoritmi (polinomiali) de aproximare cu factorul de aproximare (n) f(n) doar dac! P = NP. Spunem c! faproximarea problemei Q este dur! sau, alternativ, c! factorul de aproximare (n)=f(n) este dur.
Aprox-dur(Q,f)=def | (n) f(n) (Q are algoritmi polinomiali de (n)-aproximare P=NP)

De exemplu, problema MAX-3SAT (pentru o formul! boolean! F n form! normal conjunctiv!, astfel nct fiecare termen are cel mult trei literali, s! se g!seasc! o asociere 0/1 a variabilelor formulei F care maximizeaz! num!rul termenilor satisf!cu"i din F) are aproximarea dur!, curent cunoscut!, 1+1/38.

8.5.1 O problem" cu aproximare dur"


O asemenea problem! cu aproximare dur! este cea a color!rii unui graf neorientat. S-a demonstrat c! problema accept! algoritmi polinomiali de aproximare cu un factor constant doar dac! P = NP. Cu alte cuvinte, problema asigur!rii unui factor de aproximare constant este NP-dur!. Defini!ia 8."5 Fie G=(V,E) un graf neorientat oarecare. a) Numim num!r cromatic al grafului G, notat (G), num!rul minim de culori cu care pot fi colorate nodurile grafului astfel nct (u,v)E c(u)c(v), unde c(u) este culoarea nodului u. b) Numim Colorare problema determin!rii num!rului cromatic al grafului G. n particular, numim k-Colorare problema de decizie "k=(G)?", iar kColorare problema "graful G poate fi colorat cu k culori?".

76

Cristian Giumale/Note de curs

Problema k-Colorare (n particular, k-Colorare) este NP-complet! pentru k3. Pentru k=1 problema este banal!, iar pentru k=2 se testeaz! dac! graful este bipartit, deci algoritmul este polinomial. Un caz remarcabil este cel al grafurilor planare care pot fi ntotdeauna colorate cu 4 culori, dar determinarea num!rului cromatic este NP-complet!. Teorema 8.34. Problema k-Colorare, k 3, este NP-complet!. $. Este u#or de ar!tat c! exist! un algoritm nedeterminist cu complexitate polinomial! care decide testul k = (G), pentru un graf dat G=(V,E) nevid.
k-Colorare(G,k){ V= noduri(G); E=arce(G); n = card(V); // n1 for(i=1; i n; i++) if (N_Colorare(V,E,i)) return (k = i); } N_Colorare(V,E,i) { // Sintez! solu"ie poten"ial! colorare for-each(uV) c(u) = choice(1..i); // Verificare colorare corect! for-each((u,v)E) if(c(u) = c(v)) fail; success; }

Orice graf neorientat cu n noduri #i m arce poate fi colorat cu n culori. Astfel, nu se poate ie#i f!r! solu"ie din ciclul cu contorul i al algoritmului k-Colorare, iar algoritmul se termin! dup! cel mult n repeti"ii ale ciclului. Complexitatea algoritmului este (n2+n m). 2. S! ar!t!m c! exist! reductibilitatea 3SAT13 p k-Colorare. Demonstra"ia urm!re#te #ablonul discutat n [Wilf 94]. Fie F = T1 T2 ... Tq o formul! 3SAT cu q termeni, iar Var = {x1, x2,...,xn} mul"imea variabilelor ce apar n F, astfel nct n = k-1 2. Pentru nceput, presupunem n 4. Construim graful GF=(V,E) astfel:
V = {i1..n xi} {i1..n xi} {i1..n yi} {i1..q Ti} E = {i1..n (xi,xi)} { i,j1..n | ij (yi,yj)} {i,j1..n | ij (xi,yj)} {i,j1..n | ij (xi,yj)} {i1..n, j1..q | xiTj (xi,Tj)} {i1..n, j1..q | xiTj (xi,Tj)}

Nodurile xi #i xi, i=1,n corespund literalilor construi"i cu variabilele formulei F, nodurile Ti, i=1,q, sunt asociate termenilor lui F, iar nodurile yi, i=1,n, sunt
$3 Problema 3SAT const! n determinarea satisfiabilit!"ii unei formule propozi"ionale n form! normal conjunctiv! unde num!rul literalilor din fiecare termen este cel mult 3. Problema este un caz particular al SAT (capitolul 3) #i este NP-complet!.

Algoritmi de aproximare pentru probleme NP-dure

77

suplimentare, cte unul pentru fiecare variabil! din F. Un asemenea graf este ilustrat n figura 8.29.

y4

y3

y2

y1

x1

x1

x2

x2

x3

x3

x4

x4

(x1 x3 x4)

T1

T2

(x1 x2 x3)

Figura 8.29 Graful corespunz!tor formulei (x1 x3 x4) (x1 x2 x3) S! observ!m c! pentru colorarea nodurilor V\{i1..q Ti} sunt necesare exact n+1 culori. ntr-adev!r, considernd culorile numerotate 1,2,..., arcele (yi,yj), ij, impun folosirea culorilor 1,2,...,n. Astfel, nodul yi poate fi colorat n culoarea i. Arcele (xi,xi), (xi,yj) #i (xi,yj), ij, impun ca unul dintre nodurile xi #i xi s! fie colorat la fel ca #i yi, iar cel!lalt nod ntr-o culoare suplimentar! n+1. S! numim nod Fals orice nod colorat n culoarea n+1 #i nod Adev!rat orice nod colorat ntr-una din culorile 1,2,...,n. De asemenea, folosim conven"ia: variabila xi are valoarea boolean! |
(GF)=n+1 F este satisfiabil!. | 1 dac! nodul xi este Adev!rat | 0 dac! nodul xi este Adev!rat

Pentru a colora un nod Ti din GF s! observ!m c!, datorit! restric"iilor n4 #i F are termeni cu cel mult 3 literali, exist! cel pu"in o pereche de literali xj #i xj care nu sunt n termenul Ti din formula F. Atunci, n GF exist! arcele (xj,Ti), (xj,Ti) #i (xj,xj). Pentru c! unul din nodurile xj #i xj este colorat n culoarea n+1, rezult! c! nodul Ti nu poate fi colorat n+1. Prin ipotez!, GF este colorabil cu n+1 culori, deci nodul Ti este colorat cu o culoare c1..n diferit! de culorile tuturor nodurilor adiacente, noduri corespunz!toare literalilor care nu sunt n Ti. Rezult! c! c poate fi doar culoarea unui nod Adev!rat asociat unui literal din Ti, literal care are valoarea 1, conform conven"iei. ntr-adev!r, un asemenea nod Adev!rat exist!. Dac! toate nodurile asociate literalilor din Ti ar fi colorate n+1, atunci nodurile adiacente lui Ti ar folosi toate cele n+1 culori, iar Ti nu ar putea fi colorat, ceea ce ar contrazice ipoteza. Prin urmare, literalul din nodul Adev!rat, neadiacent lui Ti, satisface termenul Ti. Pentru c! Ti este ales la ntmplare, F are valoarea adev!rat.

78
F este satisfiabil! (GF)=n+1.

Cristian Giumale/Note de curs

Fie Ti un termen din F ales la ntmplare. Prin ipotez!, exist! un literal Ti care are valoarea 1. Prin conven"ie, nodul asociat lui este un nod Adev!rat #i poate fi colorat ntr-o culoare c1..n. De asemenea, s! observ!m c! nodurile adiacente lui Ti nu pot fi colorate n culoarea c. Conform construc"iei grafului GF, avem (,Ti)E #i, deci, nodul Ti poate fi colorat n culoarea c. Toate nodurile Ti, i=1,k, pot fi colorate similar, folosind culorile 1..n. Deja s-a ar!tat c! celelalte noduri din GF, diferite de Ti, i=1,q, pot fi colorate cu exact n+1 culori, deci (GF)=n+1. n urma celor dou! implica"ii rezult!: (GF)=n+1 (F este satisfiabil!). Pentru c! graful GF este construit n timp polinomial, iar k=n+1, rezult! 3SAT pk-Colorare. Din pa#ii ($) #i (2) ob"inem: problema k-Colorare este NP-complet!. n demonstra"ia de mai sus s-a presupus n4. Dac! n=2 sau n=3, atunci se pot ad!uga m1 variabile suplimentare care nu apar n termenii formulei F. Fie %F graful construit pentru formula F #i pentru cele n+m variabile, iar GF graful construit pentru formula F cu n variabile; GF este subgraf al %F. Conform demonstra"iei, avem (%F)=n+m+1 (F este satisfiabil!). Dar cele m variabile suplimentare nu influen"eaz! satisfiabilitatea formulei, iar subgraful GF poate fi colorat exact n n+1 culori. Prin urmare, (GF)=n+1 (F este satisfiabil!). Deci problema k-Colorare este NP-complet! pentru k3. ! Teorema (8.34) arat!, impicit, c! problema Colorare este NP-complet! #i justific! folosirea algoritmilor de aproximare pentru rezolvarea problemei. Exist! oare algoritmi de aproximare acceptabili? Ca #i n cazul problemei TSPo din sec"iunea 8.4.$, colorarea cu un factor de aproximare acceptabil este posibil! doar dac! P=NP sau, altfel spus, aproximarea acceptabil! a problemei Colorare este dur!. Teorema 8.35. Dac! exist! un -algoritm de aproximare, < 4/3, pentru colorarea oric!rui graf G cu factorul cromatic (G) q, unde q 1 este o constant! ntreag! aleas! arbitrar, atunci P = NP. Demonstra"ia teoremei se bazeaz! pe o opera"ie numit! compunerea grafurilor. Defini!ia 8."6 Fie G1=(V1,E1) #i G2=(V2,E2) dou! grafuri neorientate. Numim graf compus G1[G2] un graf neorientat G=(V,E), cu
V = V1V2 E = {(u,v)E2,xV1 ((x,u),(x,v))} {(x,y)E1,uV2,vV2 ((x,u),(y,v))}

(arce locale) (arce globale)

Nodurile grafului compus G1[G2] sunt toate perechile (x,u) ce se pot forma cu noduri xV1 #i uV2. Un hipernod$4 al grafului compus se construie#te prin nlocuirea unui nod al grafului G1 printr-o copie a grafului G2.
$4 Un hipernod x al grafului G [G ] con"ine nodurile {uV (x,u)}, xV . 1 1 2 2

Algoritmi de aproximare pentru probleme NP-dure

79

Arcele grafului compus con"in arce locale (arcele dintr-un hipernod al grafului compus) #i arce globale. Arcele locale, corespund arcelor copiei grafului G2, iar arcele globale sunt ntre oricare dou! noduri (x,u) #i (y,v) din hipernodurile x #i y ale grafului compus, astfel nct (x,y)E1. Figura 8.30 ilustreaz! compunerea unor grafuri complete. Arcele locale din G1[G2] sunt desenate cu linii ngro#ate.

G1 x y

G2 a

x,b x,a G1[G2] x,c y,a

y,b

y,c

Figura 8.30 Compunerea G = G1[G2] Putem s! parcurgem acum demonstra"ia teoremei (8.35). S! presupunem c! problema Colorare accept! un algoritm Alg de aproximare (cu complexitate polinomial!) astfel nct, pentru orice graf G cu (G) q, num!rul de culori calculat de algoritm este Alg(G) < (4/3) (G). Atunci, fie G un graf nevid oarecare, iar Gq un graf complet cu q noduri. S! construim graful compus G' = Gq[G]. Graful G' poate fi construit n timp polinomial, n raport cu num!rul de noduri din G #i cu q. Pentru c! fiecare nod din orice hipernod x al lui G' este conectat cu fiecare alt nod din orice hipernod y, yx, al lui G', rezult! c! num!rul de culori necesare pentru a colora G' este (G') = q (G) q, deci putem folosi algoritmul Alg. S! presupunem c! (G)3. Atunci, (G')3q #i Alg(G')<(4/3)3q = 4q. Dac! (G)>3, atunci Alg(G')4q. nseamn! c! putem folosi algoritmul Alg pentru a decide problema 3-Colorare(G): "graful G poate fi colorat cu 3 culori?".
Alg_3-Colorare(G){ G'= Gq[G]; return (Alg(G') < 4q) ? 1 : 0; }

Pentru c! algoritmul Alg este polinomial, iar construc"ia grafului compus G' este n timp polinomial, rezult! c! algoritmul Alg_3-Colorare are complexitate polinomial!, deci 3-ColorareP. Dar, se #tie c! problema 3-Colorare este NP-complet!. Atunci, prin teorema (3.5), ob"inem P = NP. ! Teorema (8.35) sugereaz! c! dac! PNP atunci nu exist! algoritmi tractabili de colorare aproximativ! care s! fie acceptabili din punctul de vedere al calit!"ii aproxim!rii. Pentru algoritmii existen"i factorul de aproximare variaz! n raport cu talia problemei #i cu diverse propriet!"i ale grafului. Bun!oar!, algoritmul de colorare secven"ial! are o calitate a aproxim!rii ce depinde att de n, num!rul de noduri ale

80

Cristian Giumale/Note de curs

grafului colorat, ct #i de ordinea n care sunt colorate nodurile, implicit, de modul n care este reprezentat graful.
colorare_secven"ial!(G) { V = noduri(G); E = arce(G); n = card(V); culori = 0; for-each(uV) c(u) = 0; // ini"ializare culoare nod for-each(uV) for(culoare = 1; culoare n; culoare++) { culoare_posibil! = $; for-each(vsuccs(u)) // test colorare vecini nod u if(culoare = c(v)) {culoare_posibil!=0; break;} if(culoare_posibil!) {c(u)= culoare; culori= max(culoare,culori); break;} } return culori; }

De exemplu, pentru un graf bipartit G=(V,E), cu n=2m noduri #i m(m-1) arce, unde V= {a1,a2,...,am}{b1,b2,...,bm} #i E= {i,j1..m | ij (ai,bj)}, exist! dou! cazuri extreme de comportare a algoritmului de colorare secven"ial!. a) Dac! reprezentarea grafului impune colorarea nodurilor n ordinea a1, a2, ..., am, b1, b2, ..., bm, atunci nodurile ai sunt colorate cu culoarea 1, iar nodurile bi sunt colorate cu culoarea 2, cum se arat! n figura 8.3$. Num!rul de culori folosite de algoritm este cel minim, anume 2. b) Dac! reprezentarea grafului impune colorarea nodurilor n ordinea a1, b1, a2, b2, ..., am, bm, atunci pentru fiecare pereche de noduri ai, bi algoritmul folose#te o nou! culoare. Num!rul de culori folosite este m.
a1 a2 ai am

b1

b2

bi

bm

Figura 8.3" Colorarea unui graf bipartit (sunt figurate doar arcele incidente n nodurile ai #i bi) O estimare mai exact! a calit!"ii algoritmului de colorare secven"ial! este dat! de urm!toarea propozi"ie. Propozi!ia 8."" Num!rul de culori folosite de algoritmul colorare_secven"ial!(G) este culori (G)+1, unde (G) este ordinul grafului G. Alegem momentul n care algoritmul coloreaz! un nod u, oarecare, ntr-o culoare c(u). Fie c1<c2<...<ck, k (G), #irul ordonat nedescresc!tor al culorilor nodurilor adiacente lui u. Sunt posibile doar urm!toarele cazuri:

Algoritmi de aproximare pentru probleme NP-dure $. Exist! c1=0 sau c1>1. Atunci, c(u)=1 (G)+1.

8"

2. Exist! un indice j<k astfel nct ci=i, pentru 1ij, #i cj+1>j+1. Atunci, c(u)=j+1. Pentru c! j+1 k (G), avem c(u) (G). 3. &irul culorilor este ci=i, 1ik. Atunci, c(u)=k+1 (G)+1. Prin urmare, orice nod u este colorat ntr-o culoare c (G)+1. Astfel, num!rul culorilor folosite nu poate dep!#i (G)+1. ! Conform propozi"iei (8.$$), pentru un graf bipartit factorul de aproximare al algoritmului de colorare secven"ial! este (n)=n/4.Similar, pentru un arbore binar liber cu n noduri, (n)=2. Exist! diverse de euristici de colorare mai elaborate dect colorarea secven"ial!, dar rezultatele ob"inute sunt slabe. Astfel, unul dintre algoritmii performan"i cunoscu"i, anume algoritmul lui Wigderson [BG 00]), asigur! un factor de aproximare dependent de num!rul cromatic al grafului colorat. Pentru un graf G cu (G)=k algoritmul asigur! o colorare cu cel mult 2k n k 1 culori, n fiind num!rul de noduri din G. n particular, pentru (G)=3 graful poate fi colorat n 3 n culori. Acest ultim rezultat este probat de propozi"ia (8.$$) a c!rei demonstra"ie sugereaz! chiar algoritmul de colorare. Propozi!ia 8."2 Pentru orice graf 3-colorabil exist! un algoritm polinomial de colorare cu factorul de aproximare (n)= n . Fie G=(V,E) un graf 3-colorabil #i u un nod din graf. Nodurile adiacente lui u pot fi colorate n 2 culori, deci graful Gu format doar cu aceste noduri este bipartit #i poate fi colorat n timp polinomial printr-o parcurgere DFS. O a treia culoare este ad!ugat! de colorarea nodului u. Atunci, fie urm!torul algoritm tractabil:
colorare3(G) { fie n num!rul de noduri din graful G; for(c=1; (G) n ; c +=2) { fie u un nod astfel nct ord(u,G)=(G); coloreaz! Gu folosind culorile c,c+1; c(u) = c+2; //coloreaz! u n culoarea c+2 elimin! nodul u #i subgraful Gu din G; } // graful rezidual G are ordinul (G)< n colorare_secven"ial!(G), ncepnd cu culoarea c; }
1 1

Se observ! lesne c! graful este colorat corect. ntr-adev!r, pentru orice nod u, graful Gu este colorat corect prin parcurgere DFS, fiind bipartit, iar orice nod din Gu are culoare diferit! de culorile vecinilor, inclusiv u. Pentru a estima num!rul total de culori folosite s! observ!m c! ciclul algoritmului se execut! de cel mult n ori, deci num!rul de culori folosite este c2 n . Conform propozi"iei (8.$$) graful rezidual, cu

82

Cristian Giumale/Note de curs

ordin (G)< n , poate fi colorat n cel mult (G)+1 < n +1 culori, adic! n cel mult
n culori. Num!rul total de culori folosite de algoritm este c 3 n , iar factorul de

aproximare este (n)= n . !

8.5.2 Probarea durit"!ii aproxim"rii


Probarea f-durit!"ii aproxim!rii unei probleme de optimizare Qo, anume verificarea propriet!"ii Aprox-dur(Qo,f), se poate efectua n dou! moduri ce pot fi eventual combinate. Prin reducerea n timp polinomial a unei probleme de decizie NP-dure la problema Qo, asigurndu-se un ecart al costului solu"iei optime n raport solu"ia binar! a problemei de decizie. Numim aceast! metod! "reducere cu ecart de cost optim". Printr-o metod! similar! verific!rii NP-durit!"ii problemelor. O problem! cu aproximare dur! este redus! n timp polinomial la problema dat! Qo, p!strndu-se un ecart de cost optim. Numim metoda "reducere cu p!strarea ecartului de cost optim".

Reducere cu ecart de cost optim


Fie Qo:IoSo o problem! de minimizare, iar cost*(i)R+ costul unei solu"ii optime pentru datele iIo. Dorim s! verific!m dac! proprietatea Aprox-dur(Qo,f) este satisf!cut! pentru o func"ie f:R+ calculabil! n timp polinomial, f(n)1, unde n este dimensiunea datelor i. $. Se presupune c! pentru Qo exist! un algoritm polinomial de aproximare Alg_Qo cu factorul de aproximare 1(n)f(n). Not!m cost(i) costul solu"iei calculate de algoritm pentru datele iIo. 2. Se alege o problem! de decizie Qd:Id{0,1}, cunoscut! ca NP-dur!, pentru care exist! construc"ia de la pasul 3. 3. Se construie#te o reducere polinomial! r:IdIo a problemei Qd la problema Qo, astfel nct s! existe un ecart net n raport cu f(n) ntre costul unei solu"ii optime a problemei Qo(r(i)), n cazul Qd(i)=1, #i costul solu"iei optime Qo(r(i)) n cazul Qd(i)=0. Reducerea r trebuie s! satisfac! proprietatea:
Pmin(r)=def iId [Qd(i)=1 cost*(r(i)) c(n)] [Qd(i)=0 cost*(r(i)) > c(n)f(n)],

unde n este dimensiunea datelor r(i), iar c:R+, este o func"ie strict pozitiv!, calculabil! n timp polinomial, ce deriv! din construc"ia reducerii r. n nici un caz, c(n) < cost*(r(i)) c(n)f(n), altfel proprietatea este fals!. Astfel, proprietatea Pmin(r) implic! iId Qd(i)=1 cost*(r(i))c(n).

Algoritmi de aproximare pentru probleme NP-dure

83

Exist! un ecart de cost optim n interiorul c!ruia se poate plasa solu"ia algoritmului Alg_Qo, cum se sugereaz! n figura 8.32, astfel nct costul cost(r(i)) al solu"iei aproximative s! poat! fi folosit pentru a decide problema Qd(i).
Qd(i)=1 cost*(r(i))<c(n) cost*(r(i))=c(n) c(n)cost(r(i))(n)c(n) 1(n)f(n) c(n) c(n)f(n) Qd(i)=0 cost*(r(i))>c(n)f(n)

Figura 8.32 Reducere cu ecart de cost optim 4. Se construie#te un algoritm de decizie pentru problema Qd, conform #ablonului urm!tor:
Alg_Qd(i) { fie n dimensiunea datelor r(i); if(cost(Alg_Qo(r(i))) c(n)f(n)) return 1; // Qd(i)=1 return 0; // Qd(i)=0 }

Conform propriet!"ilor Pmin(r) #i 1(n)f(n), costul solu"iei Alg_Qo(r(i)) satisface inegalit!"ile: a) cost(r(i)) (n)cost*(r(i)) f(n)c(n), dac! Qd(i)=1 b) cost(r(i)) cost*(r(i)) > f(n)c(n), dac! Qd(i)=0 Pentru c! transformarea r este polinomial!, algoritmul Alg_Qd poate rezolva problema Qd n timp polinomial. Dar Qd este NP-dur! #i, conform teoremei (3.6), rezult! P = NP. Conform defini"iei (8.$4) f-aproximarea problemei Qo este dur!. Exemple ale metodei de mai sus sunt reducerea problemei TSPd, a existen"ei ciclului hamiltonian ntr-un graf, la problema comisului voiajor TSPo, prezentat! n sec"iunea 8.4.$, precum #i reducerea problemei de 3-colorare a unui graf la problema determin!ri num!rului cromatic al unui graf compus, discutat! n sec"iunea 8.5.$. Tehnica descris! mai sus este aplicabil! #i problemelor de maximizare. Difer! doar modul n care se realizeaz! ecartul dintre costul solu"iei optime a problemei Qo n raport cu solu"ia problemei de decizie Qd. Astfel, considernd Qo:IoSo o problem! de maximizare, iar Qd:Id{0,1} o problem! de decizie NP-dur!, construim reducerea polinomial! r:IdIo astfel nct s! fie satisf!cut! proprietatea:
Pmax(r)=def iId [Qd(i)=1 cost*(r(i)) c(n)] c (n) ], [Qd(i)=0 cost*(r(i)) < f (n)

unde n este dimensiunea datelor r(i).

84

Cristian Giumale/Note de curs

Fie Alg_Qo un algoritm polinomial de aproximare a problemei Qo, 1(n)f(n) factorul de aproximare al algoritmului, iar cost(i) costul solu"iei calculate de algoritm pentru datele iIo. Problema Qo fiind de maximizare avem 1 (n). cost (i) Datorit! propriet!"ii Pmax(r), avem:
Qd(i)=1 cost(r(i)) cost*(r (i)) c (n) c (n) (n) (n) f (n) c (n) f (n) cost*(i)

Qd(i)=0 cost(r(i)) cost*(r(i)) <

Conform propriet!"ii Pmax(r), putem construi un algoritm cu complexitate polinomial! care decide problema Qd.
Alg_Qd(i) { fie n dimensiunea datelor r(i); if(cost(Alg_Qo(r(i))) c(n)/f(n)) return 1; // Qd(i)=1 return 0; // Qd(i)=0 }

nseamn! c! QdP #i, implicit, P=NP. Prin urmare, algoritmul Alg_Qo poate asigura un factor de aproximare (n)f(n) doar dac! P=NP. Justificarea metodei de probare a f-aproxim!rii dure prin reducere cu ecart de cost optim st! ca baz! a defini"iei (8.$7) #i teoremei (8.36). Defin!ia 8."7 Fie o problem! de optimizare Qo:IoSo, cu cost*(i), iIo, costul solu"iei optime, #i Qd:Id{0,1} o problem! de decizie. Fie r:IdIo, c:R+ #i f:R+ func"ii calculabile tractabil, astfel nct c(n)>0 #i f(n)1 pentru orice n. Spunem c! r este o reducere polinomial! de la Qd la Qo, cu ecart de cost optim #i cu parametrii (c,f), dac! sunt satisf!cute restric"iile de mai jos, unde n este dimensiunea datelor problemei Qo.
Pmin(r)=def iId [Qd(i)=1 cost*(r(i)) c(n)] [Qd(i)=0 cost*(r(i)) > c(n)f(n)],

dac! Qo este problem! de minimizare,


Pmax(r)=def iId [Qd(i)=1 cost*(r(i)) c(n)] c (n) ], [Qd(i)=0 cost*(r(i)) < f (n)

dac! Qo este problem! de maximizare. Teorema 8.36 Fie Qo:IoSo o problem! de optimizare. Dac! exist! o problem! de decizie Qd NP-dur! #i o reducere polinomial! de la Qd la Qo, cu ecart de cost optim #i cu parametrii (c,f), atunci f-aproximarea problemei Qo este dur!.

Algoritmi de aproximare pentru probleme NP-dure

85

Ca exemplu de aplicare a teoremei, fie problema de maximizare MAX-3SAT, pentru care consider!m drept cost al unei solu"ii MAX-3SAT(F) raportul dintre num!rul termenilor satisf!cu"i de solu"ie #i num!rul total al termenilor din F, deci o valoare adimensional! mai mic! sau cel mult egal! cu 1, #i not!m MAX-3SAT(F) acest raport15. Propozi!ia 8."3 Exist! o constant! > 0 #i o reducere polinomial! r de la problema SAT la MAX-3SAT$6 astfel nct pentru orice formul! F n form! normal conjunctiv! avem:
SAT(F)=1 MAX-3SAT(r(F)) = 1 SAT(F)=0 MAX-3SAT(r(F)) < 1 1 +

Demonstra"ia este schi"at! n [Hoc 97]. Conform teoremei, dac! F este satisfiabil!, atunci exist! o legare a variabilelor din formula F'=r(F) astfel nct to"i termenii din F' au valoarea de adev!r 1. Dac! F nu este satisfiabil!, atunci doar cel mult un procent (1+)-1 din termenii formulei F' pot fi satisf!cu"i. Cu alte cuvinte, conform teoremei (8.36), problema MAX-3SAT are (1+)-aproximare dur!. Problema MAX-3SAT, ca #i alte probleme considerate canonice, poate fi folosit! pentru verificarea durit!"ii aproxim!rii altor probleme de maximizare, la fel cum SAT este folosit! pentru probarea durit!"ii unei probleme de decizie. Tehnica folosit! este cea de reducere cu p!strarea ecartului de cost optim.

Reducere cu p!strarea ecartului de cost optim


Defini!ia 8."8 Fie problemele de optimizare Q1:I1S1 #i Q2:I2S2, iar r:I1I2 o func"ie calculabil! tractabil. Fie c1,c2:R+ #i f1,f2:R+ func"ii, astfel nct c1(n)>0, c2(n)>0 #i f1(n)1, f2(n)1 pentru orice n. Not!m cost* 1 (i1) #i
cost* 2 (i2) costurile solu"iilor optime ale celor dou! probleme pentru datele i1I1 #i, respectiv, i2I2. Spunem c! r este o reducere polinomial! de la Q1 la Q2, cu p!strarea ecartului de cost optim #i cu parametrii (c1,f1) #i (c2,f2), dac! sunt satisf!cute restric"iile de mai jos, unde n1 este dimensiunea datelor i1, iar n2 este dimensiunea datelor i2=r(i1). -

Dac! problemele Q1 #i Q2 sunt de minimizare:


* i1I1 [ cost* 1 (i1) c1(n1) cost2 (r(i1)) c2(n2)] * [ cost* 1 (i1) > c1(n1)f1(n1) cost2 (r(i1)) > c2(n2)f2(n2)]

$5 Solu"ia este o legare a variabilelor din F la valori de adev!r, legare care maximizeaz! num!rul termenilor satisf!cu"i din F. $6 Pentru orice formul! F n form! CNF avem r(F) este n form! CNF #i are termeni cu cel mult trei literali.

86
-

Cristian Giumale/Note de curs Dac! problemele Q1 #i Q2 sunt de maximizare:


i1I1 [ cost* 1 (i1) c1(n1) c1 (n1) [ cost* 1 (i1) < f1(n1) cost* 2 (r(i1)) c2(n2)] c2(n2) cost* ] 2 (r(i1)) < f2(n2)

Teorema 8.37 Fie problemele de optimizare Q1:I1S1 #i Q2:I2S2 astfel nct exist! o reducere r:I1I2 cu parametrii (c1,f1) #i (c2,f2) de la Q1 la Q2, unde c1, f1, c2 #i f2 sunt func"ii calculabile tractabil. Dac! Q1 are f1-aproximare dur!, determinat! folosind o reducere cu ecart de cost optim cu parametrii (c1,f1), atunci problema Q2 are f2-aproximare dur!. Demonstra"ia este pentru probleme de maximizare, cea pentru probleme de minimizare fiind asem!n!toare. Dac! problema Q1 are f1-aproximare dur!, determinat! folosind o reducere cu ecart de cost optim cu parametrii (c1,f1), atunci exist! o problem! de decizie Qd:Id{0,1} #i un algoritm polinomial r':IdI1 astfel nct:
iId [Qd(i)=1 cost* 1 (r'(i)) c1(n1)] c1 (n1) ], [Qd(i)=0 cost* 1 (r'(i)) < f1(n1)

unde n1 este dimensiunea datelor i1=r'(i). Considernd reducerea r:I1I2, prin tranzitivitate, se ob"ine:
iId [Qd(i)=1 cost* 2 (r(r'(i))) c2(n2)] c2(n2) ], [Qd(i)=0 cost* 2 (r(r'(i))) < f2(n2)

unde n2 este dimensiunea datelor i2=r(r'(i)). Conform teoremei (8.36), problema Q2 are f2-aproximare dur!. ! De exemplu, s! numim LABELCOVERmax acoperirea maxim! a arcelor unui graf bipartit, acoperire confom! unor func"ii de etichetare asociate arcelor. Fie G=(V1V2,E) un graf bipartit cu n noduri #i L o mul"ime de etichete. Pentru fiecare arc eE exist! o func"ie par"ial! fe:LL asociat! arcului. Etichetarea grafului G nseamn! asocierea unei etichete luL fiec!rui nod uV1V2. Etichetarea acoper# arcul e=(u,v), uV1 #i vV2, dac! func"ia fe este definit! n punctul lu #i fe(lu)=lv. Se cere determinarea unei etichet!ri care maximizeaz! num!rul arcelor acoperite din G. Pentru simplitate, consider!m ca solu"ie raportul dintre num!rul de arce acoperite #i num!rul total de arce din G. Vom ar!ta, folosind o reducere cu p!strarea ecartului de cost, c! aproximarea problemei LABELCOVERmax cu un factor constant este dur!.

Algoritmi de aproximare pentru probleme NP-dure

87

Propozi!ia 8."4 Dac! exist! un algoritm de aproximare a problemei


LABELCOVERmax cu factorul 1 1 3

, pentru o constant! 0 < < 1, atunci P=NP.

$. Rezultatul propozi"iei (8.$3) poate fi rescris n forma:


SAT(F)=1 MAX-3SAT(r(F)) = 1 SAT(F)=0 MAX-3SAT(r(F)) < 1-, = ,0<<1 1 +

2. Pentru o formul! F = T1 T2 ... Tn, cu variabilele Var={x1,x2,...,xm} #i cu cel mult 3 literali n fiecare termen, construim graful bipartit GF=(V1V2,E) n felul urm!tor: V1 = {T1, T2,...,Tn} cte un nod pentru fiecare termen din F V2 = {x1,x2,..., xm} cte un nod pentru fiecare variabil! din F E = {TV1,xV2 | variabila x apare n termenul T (T,x)} Not!m ne num!rul arcelor din GF. Pentru c! fiecare termen din F are cel mult 3 literali, adic! cel mult 3 variabile, n GF exist! cel mult 3 arce incidente n fiecare nod din V1. Num!rul total de arce din GF este ne 3n. Pentru etichetarea grafului GF alegem 8 etichete L={0,1,...,7} #i convenim s! reprezent!m eticheta vL prin tripletul de bi"i v2,v1,v0, vj{0,1}, j=0,1,2, astfel nct v = 22v2+21v1+20v0. De asemenea, numerot!m de la dreapta spre stnga, ncepnd de la 0, pozi"ia unei variabile ce apare ntr-un termen #i not!m Var(T)v legarea variabilelor ce apar n termenul T, astfel nct variabila de pe pozi"ia j din T este legat! la valoarea vj, 0j2. Construim func"iile fe, eE, astfel nct pentru arcul e=(T,x) s! avem:
fe(v) = , func"ia este nedefinit! n punctul v dac! termenul T nu este satisf!cut de legarea Var(T)v. fe(v) = vj, dac! termenul T este satisf!cut de legarea Var(T)v, unde 0j2 este pozi"ia variabilei x n termenul T.

Evident, graful GF #i func"iile {eE fe} pot fi construite cu un algoritm r' n timp polinomial n raport cu n #i m. Func"iile de etichetare intercondi"ioneaz! acoperirea arcelor (T,x), xVar(T), #i satisfacerea termenului T pentru o anumit! legare a variabilelor Var(T). Pentru ca arcul e=(T,x) s! fie acoperit trebuie ndeplinite condi"iile:
-

func"ia fe s! fie definit! n punctul lT=v, adic! termenul T s! fie satisf!cut de legarea Var(T)v #i
fe(lT)=vj=lx, unde vj este bitul de pe pozi"ia j, pozi"ie pe care apare variabila x apare n termenul T.

88

Cristian Giumale/Note de curs

Reciproc, dac! arcul e=(T,x) este acoperit, atunci termenul T este satisf!cut de lagarea Var(T)v. n acest caz, s! g!sim o etichetare a nodurilor grafului GF care maximizeaz! arcele acoperite #i, totodat!, num!rul termenilor satisf!cu"i din F. Fieb=(b1,b2,...,bm){0,1}m un vector de valori 0/1 folosit ntr-o legare a variabilelor Var din formula F. Scriem Varb pentru a desemna legarea xi=bi, i=1,m. Etichet!m graful GF n raport cu legarea Var b felul urm!tor:
-

Pentru un nod xiV2, i=1,m, alegem eticheta lxi = bi, bi{0,1}L. Pentru un nod TV1 asociem o etichet! lT=v din L astfel nct dac! variabila xiVar apare pe pozi"ia j n T s! avem vj=bi.$7

Etichetarea aleas! are o proprietate important!: pentru orice termen T din formula F legarea Var(T)lT este consistent! cu legarea Varb, adic! valoarea legat! variabilei xi, i=1,m, este aceea#i pentru cele dou! leg!ri #i este bi. Un exemplu de etichetare este ilustrat n figura 8.33.
T1=(x1 x2) lT1 = 0 ,1 ,0 = 2 x1 lx1 = 1 x2 lx2 = 0 x3 lx 3 = 0 T2=(x1 x2 x3) lT2 = 1 ,0 ,0 = 4

Figura 8.33 Graful GF corespunz!tor formulei F=(x1 x2)(x1 x2 x3) etichetat conform leg!rii x1=1, x2=0, x3=0 Folosind etichetarea aleas!, un arc oarecare e=(T,xi) din E este acoperit doar dac! termenul T este satisf!cut de legarea Varb a variabilelor din formula F. ntradev!r, dac! termenul T este satisf!cut de legarea Varb atunci el este satisf!cut de legarea Var(T)lT #i, prin construc"ia func"iei fe, avem fe(lT)= bi= lxi , deci arcul
e este acoperit. Dac! T nu este satisf!cut de legarea Var(T)lT, avem fe(lT)=, iar arcul e este neacoperit. Prin urmare, dac! legarea Varb maximizeaz! num!rul termenilor satisf!cu"i din F atunci etichetarea aleas! face ca num!rul arcelor acoperite din GF s! fie maxim.

Se poate constata c! #i reciproca este adev!rat!, anume: o etichetare care asigur! o acoperire maximal! a arcelor grafului GF corespunde unei leg!ri Varb care maximizeaz! num!rul termenilor satisf!cu"i din formula F. Astfel, unei solu"ii optime a problemei MAX-3SAT(F) i corespunde o solu"ie optim! a problemei LABELCOVERmax(GF), reciproca fiind de asemenea adev!rat!.
$7 Eticheta l este unic definit! doar dac! termenul T are exact 3 literali. De exemplu, T n figura 8.33 eticheta nodului T1 poate fi sau lT1 = 0 ,1 ,0 = 6 . ,1 ,0 = 2 sau lT1 = 1

Algoritmi de aproximare pentru probleme NP-dure

89

S! verific!m dac!, prin construc"ia realizat!, este men"inut un ecart de cost optim al solu"iilor problemei LABELCOVERmax(GF) n raport cu ecartul de cost optim al solu"iilor pentru MAX-3SAT(F). Caz MAX-3SAT(F)=1 pentru legarea Varb. Etichetarea grafului GF n raport cu legarea Varb asigur! c! pentru orice arc e=(T,xi) din E avem lxi = bi #i
fe(lT)=bi, i=1,m. Toate arcele grafului GF sunt acoperite #i, n consecin"!, se ob"ine solu"ia optim! LABELCOVERmax(GF)=1.

Caz MAX-3SAT(F) < 1- pentru legarea Varb. Doar o frac"iune (1-) din cei termeni ai formulei F sunt satisf!cu"i. S! presupunem c! legarea Varb maximizeaz! num!rul termenilor satisf!cu"i din F. Atunci, etichetarea grafului GF n raport cu legarea Varb maximizeaz! num!rul arcelor acoperite din GF. Not!m:
n n+ ne+ e< (1-)n num!rul termenilor satisf!cu"i din F > n num!rul termenilor nesatisf!cu"i din F num!rul arcelor acoperite din GF num!rul arcelor neacoperite din GF

Conform etichet!rii nodurilor #i construc"iei func"iilor fe, observ!m c! toate arcele incidente nodurilor (din V1) corespunz!toare termenilor satisf!cu"i din F sunt acoperite. Arcele neacoperite sunt cele incidente n nodurile (din V1) care corespund celor n- termeni nesatisf!cu"i din F. n fiecare nod asociat unui termen nesatisf!cut din F sunt incidente cel mult 3 arce din GF #i cel pu"in un arc. Atunci,
e- n- > n e+ = ne e- < ne - n

Pentru c! ne 3n, rezult!


e+/ne < 1 n n < 1 = 1 ne 3n 3

n cazul MAX-3SAT(F) < 1-, solu"ia optim! a problemei LABELCOVERmax satisface inegalitatea LABELCOVERmax(GF) < 1 .
3

Parametrii reducerii sunt:

n urma celor dou! cazuri de mai sus, algoritmul r'(F) de construc"ie a grafului GF constituie o reducere care p!streaz! ecartul de cost optim, conform defini"iei (8.$7).
1 , pentru MAX-3SAT 1 1 1 3

c1(n) = 1 #i f1(n) =

c2(ne) = 1 #i f2(ne) =

, pentru LABELCOVERmax

90

Cristian Giumale/Note de curs

Conform teoremei (8.37), rezult! c! problema LABELCOVERmax are aproximare 1 dur! n raport cu factorul constant ,0<<1!
1 3

Este interesant de observat c! transformarea GF=r'(F) p!streaz! ecartul de cost #i n sens invers, de la problema LABELCOVERmax la MAX-3SAT, desemnnd o coresponden"! similar! cu cea a reducerii polinomiale p folosit! la verificarea NPdurit!"ii problemelor. Caz $. Dac! LABELCOVERmax(GF) = 1, atunci to"i termenii din F sunt satisf!cu"i de legarea Varb. nseamn! c! MAX-3SAT(F) = 1. Caz 2. Dac! LABELCOVERmax(GF) < 1 , pentru 0 < < 1, num!rul arcelor 3

e n . Pentru c! n ne 3n, avem n- > n. Deci n+ = n n- < n n. n > 3 9 e 9 9 concluzie, MAX-3SAT(F) < 1 - . 9 n-

n . Num!rul nodurilor din V1 la care sunt incidente neacoperite din GF este e- > 3 e cele e- arce #i, implicit, num!rul termenilor din F nesatisf!cu"i de legarea Varb este

Conform cazurilor de mai sus, s-au ob"inut rela"iile:


SAT(F)=1 MAX-3SAT(r(F)) = 1 SAT(F)=0 MAX-3SAT(r(F)) < 1 , 9 1 1 9 1 . 1

#i, conform teoremei (8.36) de reducere cu generarea unui ecart de cost optim , factorul de aproximare dur! a problemei MAX-3SAT este
<

F!r! a contrazice rezultatul propozi"iei (8.$4), problema LABELCOVERmax are 1 aproximare mult mai dur!, anume pentru un factor (n)= 2lg (n) , > 0. Intuitiv, aproximarea este cu att mai dur! cu ct factorul (n) corespunde unei func"ii mai repede cresc!toare n n. Prin urmare, reducerea cu p!strarea ecartului exemplificat! mai sus nu este cea mai "strns!" reducere posibil! pentru LABELCOVERmax. Descoperirea unei anumite reduceri cu generarea sau cu p!strarea unui ecart de cost optim nu garanteaz! unicitatea limitei de duritate a aproxim!rii problemei analizate. Aproximarea poate fi eventual mai dur! dect cea determinat! prin reducerea aleas!. De asemenea, exist! probleme pentru care factorii de aproximare dur! descoperi"i teoretic sunt mai mici dect factorii de aproximare tractabil! cunoscu"i. Determinarea exact! a factorului corespunz!tor durit!"ii maxime a aproxim!rii unei probleme este nc! nel!murit! deplin.

Algoritmi de aproximare pentru probleme NP-dure Tabelul 8.$ Clase de probleme NP-dure, cu aproximare dur!
Clas! Duritate aproximare Ipotez! Problem!

9"

1+, >0

PNP

MAX-3SAT. Pentru o formul! boolean! F n form! normal conjunctiv!, astfel nct fiecare termen are cel mult trei literali, s! se g!seasc! o asignare 0/1 a variabilelor formulei F care maximizeaz! num!rul termenilor satisf!cu"i din F. METRIC TSP. Pentru un set de puncte #i o func"ie de distan"! ce respect! inegalitatea triunghiului, s! se determine drumul cel mai scurt care trece o singur! dat! prin fiecare punct #i se termin! n punctul de plecare. SETCOVER. Pentru o mul"ime M cu n elemente #i submul"imile SiM, M= !i Si , date s! se determine

setul minim de submul"imi care prin reuniune produc M. II (1)ln(n), > 0 NP P


~

DOMINATING SET. Fie G=(V,E) un graf cu n noduri, iar w:VR+ o func"ie de cost a nodurilor. S! se determine o submul"ime SV astfel nct w(u) s! fie minim! #i orice nod din V s! aib! cel pu"in un vecin n S. LABELCOVER. Fie G=(V1V2,E) un graf cu n noduri, bipartit regulat (toate nodurile din por"iunea Vk au acela#i ordin dk, k=1,2) #i L o mul"ime de etichete (de exemplu ntregi). Pentru fiecare eE fie fe:LL o func"ie asociat! arcului. Etichetarea lui G nseamn! asocierea unei submul"imi LuL fiec!rui nod uV1V2. Etichetarea acoper# arcul (u,v) dac! lLv (l'Lu l=fe(l')). LABELCOVERmin. S! se g!seasc! o etichetare a lui G care acoper! toate arcele E #i minimizeaz! card (L u).
u V1 u S

III

1 (n) , 2lg > 0

NP P

LABELCOVERmax. S! se g!seasc! o etichetare a lui G, astfel nct uV1V2 card(Lu)=1, #i care maximizeaz! num!rul arcelor acoperite. CLIQUE. Fiind dat un graf G, cu n noduri, neorientat #i conex, s! se determine un subgraf complet cu num!r maxim de noduri (o clic! maximal!). IV n, >0 PNP CHROMATIC NUMBER. S! se determine num!rul minim de culori cu care pot fi colorate cele n noduri ale unui graf neorientat G astfel nct nodurile adiacente s! aib! culori diferite. Num!rul minim de culori este denumit num!rul cromatic al lui G #i se noteaz! (G).

92

Cristian Giumale/Note de curs

8.5.3 Clasificarea problemelor cu aproximare dur"


mp!r"irea problemelor n clase de dificultate a aproxim!rii lor este nc! neclar!. Exist! totu#i ncerc!ri de ierarhizare a durit!"ii aproxim!rii n raport cu mai multe tipuri de dependen"! (n)=f(n). Conform [Hoc 97], exist! urm!toarele clase de duritate a aproxim!rii: clasa I: (n) = 1+, unde >0 este o constant! dependent! de problem!. clasa II: (n) = (1-)ln(n), pentru > 0.
1 (n) clasa III: (n) = 2lg , pentru > 0.

clasa IV: (n) = n, unde >0 este o constant! dependent! de problem!. Existen"a factorilor de aproximare corespunz!tori claselor de mai sus se bazeaz! pe anumite ipoteze. Astfel pentru clasele I #i IV ipoteza este PNP, n"elegnd c! factorul dur de aproximare determinat pentru o problem! din clasele respective exist! doar dac! PNP. Pentru clasele II #i III ipoteza este NP P , unde P este clasa problemelor rezolvabile prin algoritmi determini#ti cu complexitate cvasi-polinomial! (probleme rezolvabile n timp np(lg(n)), unde p(lg(n)) este un polinom n lg(n)). Prin urmare, factorul dur de aproximare determinat pentru o problem! din clasele II #i III exist! doar dac! n NP sunt probleme ce nu pot fi rezolvate determinist n timp cvasipolinomial. Cteva exemple de clasificare a unor probleme NP-dure n raport cu duritatea aproxim!rii sunt ilustrate n tabelul 8.$, cu date preluate din [Hoc 97], unde n desemneaz! dimensiunea datelor problemei. Denumirile problemelor sunt cele din literatura de specialitate n englez!. Tabelul reflect! o realitate pu"in optimist!, cel pu"in aparent. Multe probleme cu aplicabilitate practic! direct! sunt nu numai NP-dure dar, mai mult, sunt la fel de greu de aproximat satisf!c!tor. Este dificil de spus dac! este vorba de starea curent! a cunoa#terii n domeniu sau de o realitate obiectiv!, chiar n prezen"a unor descoperiri care deplaseaz! semnificativ bariera rezolvabilit!"ii unor probleme. Dou! exemple remarcabile sunt algoritmii lui Cheryan #i Thurimella pentru -conectivitate #i algoritmul Frer #i Raghavachari pentru arbori Steiner. Una din problemele considerate deschise n [Hoc 97] a fost mbun!t!"irea factorului de aproximare a solu"iei problemei -conectivit!"ii unui graf n raport cu cre#terea gradului de conectivitate . Algoritmul simplu arc__conectat din sec"iunea 8.2.$ asigur! < 21 , factor ce se degradeaz! propor"ional cu . Peste pu"in timp, 2 2 pentru -nod conectivitate #i =1+ 1 +
~ ~

metoda de aproximare descoperit! de Cheryan #i Thurimella [CT 98] (sec"iunea 8.2.3) garanteaz! un factor de aproximare =1+ pentru -arc conectivitate. Problema minimiz!rii ordinului arborelui T, de acoperire al unui graf G, prezentat! n sec"iunea 8.3.$, a fost rezolvat! de c!tre Frer #i Raghavachari [FR 94] pentru o eroare relativ! de aproximare cel mult 1, anume (T)*(G)+1. Mai mult,

Algoritmi de aproximare pentru probleme NP-dure

93

algoritmul polinomial arb_ord_min este relativ simplu. nainte de aceast! descoperire, problema a fost considerat! drept dificil!, fiind atacat! folosind tehnici de c!utare informat! #i euristici complicate. Asemenea descoperiri sunt importante nu numai pentru problemele particulare rezolvate, dar #i pentru considera"iile colaterale privind u#urin"a de rezolvare a altor probleme nrudite. De exemplu, un graf n care exist! un drum hamiltonian (un graf hamiltonian) accept! un arbore de acoperire de ordin 2. Atunci, este oare posibil! folosirea algoritmului de aproximare arb_ord_min(G) pentru a decide dac! graful G are un drum hamiltonian? n cazul arb_ord_min(G) > 3 cu siguran"! graful G nu este hamiltonian. Dac! arb_ord_min(G) = 2 graful are un drum hamiltonian. n schimb, dac! arb_ord_min(G) = 3 decizia este discutabil! #i depinde de eroarea relativ!, 0 sau 1, realizat! de algoritm pentru graful G. n acest ultim caz, se poate oare controla modul n care este aproximat rezultatul (T): (T)=*(G) sau (T)=*(G)+1? Un r!spuns pozitiv ar implica imediat tractabilitatea problemei drumului hamiltonian #i, implicit, ar implica P = NP. Ca justificare, fie urm!toarea problem! simpl!. Un algoritm A, de aproximare a unei probleme de minimizare Q:I, QNPcomplete, g!se#te o solu"ie A(i) care satisface rela"ia iI Q(i)A(i)Q(i)+1, unde Q(i) este solu"ia optim! pentru datele i. Fie algoritmul supraestimare(i,A(i)) care decide dac! valoarea solu"iei A(i) este supraestimat!. S! se demonstreze propozi"ia: supraestimareP P=NP.
supraestimareP P=NP. &tim c! AP, A fiind un algoritm de aproximare. Atunci, dac! supraestimareP, se construie#te algoritmul polinomial AlgQ, care rezolv! problema Q. Dar, QNP-complete #i QP implic! P=NP. AlgQ(i){sol=A(i); return supraestimare(i,sol) ? sol-1 : sol;} P=NP supraestimareP. Dac! P=NP #i QNP-complete, atunci QP. Fie AlgQ un algoritm polinomial de rezolvare a problemei Q. Se construie#te algoritmul supraestimareP. supraestimare(i,sol){return sol>AlgQ(i) ? 1 : 0;} !

Tabelul 8.$ sugereaz! #i alte dificult!"i privind controlul aproxim!rii problemelor: ct de bun poate fi considerat un algoritm de aproximare #i care sunt limitele exacte ale aproxim!rii unei probleme? Evident, algoritmii precum cel al lui Frer #i Raghavachari pot fi considera"i net superiori n compara"ie cu orice algoritm de aproximare, chiar #i cu factor constant. Dar, cum se poate decide calitatea aproxim!rii n cazul n care duritatea aproxim!rii include o constant! neprecizat! sau atunci cnd caracteristicile aproxim!rii nu sunt cunoscute? n asemenea cazuri nu se poate #ti dac! algoritmii descoperi"i sunt ntr-adev!r cei mai buni. Bun!oar!, problema acoperirii minimale a unui graf neorientat, demonstrat! ca fiind NP-complet! n sec"iunea 3.3.3, are algoritmi de aproximare cu factorul constant =2. Totodat!, s-a demonstrat c! aproximarea problemei este dur! pentru un factor

94

Cristian Giumale/Note de curs

16 , dar nu s-au descoperit nc! algoritmi de aproximare cu un factor ntre cele dou! 15 16 < < 2 de -aproximare? Este algoritmul cu valori. Ce caracteristici are zona 15 factorul 2 cel mai bun? Doar o conjectur! a lui Hochbaum sus"ine c! aproximarea cea mai bun! posibil! este =2.

Un alt exemplu este cel al problemei MAX-2SAT$8, anume considernd o formul! n


format CNF n care fiecare termen are cel mult 2 literali (con"ine cel mult 2 variabile) s! se g!seasc! o legare 0/1 a variabilelor din formul! la care maximizeaz! num!rul termenilor satisf!cu"i. Pentru MAX-2SAT factorul de aproximare a progresat ncepnd de la 2 la aproximativ 1.333, apoi la 1.138 #i, mai recent, la aproape 1.074. Care este limita

aproxim!rii? n pofida efortului de cercetare din domeniu #i a metodelor foarte variate de rezolvare, nu se poate spune nc! ce caracteristici asigur! simplitatea unei probleme #i ce caracteristici o fac complicat!. Astfel, c!utarea algoritmilor de aproximare performan"i este oarecum supus! intui"iei #i ncerc!rilor exhaustive. Aceast! stare de fapt explic! de ce euristica lui Christofides a r!mas imbatabil! din $976 pentru problema comisului voiajor restric"ionat! la spa"ii euclidiene, iar asigurarea unui factor de aproximare sub 1.5 r!mne nc! deschis!.

$8 Ca problem! de decizie 2SAT este n P, dar ca problem! de optim MAX-2SAT este

NP-complet!.

Vous aimerez peut-être aussi