Sunteți pe pagina 1din 12

Arborele componentelor biconexe si al nodurilor critice

ANDREICA MUGUREL IONUT


student Universitatea

Politehnica Bucuresti
Mai 2 !

Cuprins

"# Termeni $de ba%a& 2# Determinarea nodurilor critice si a muc'iilor critice ale unui (ra) neorientat * conex +# Determinarea componentelor biconexe ale unui (ra) neorientat * conex
4. 5.

Arborele

componentelor biconexe si al nodurilor critice

Descompunerea arborescenta a unui (ra) arborele

!# Cate,a probleme re%ol,abile )olosind componetelor biconexe si al nodurilor critice -# .iblio(ra)ie * re)erinte

"# Termeni $de ba%a&

Un graf G este o pereche (V,E), unde / este multimea nodurilor grafului, iar E este multimea muchiilor grafului. Nodurile grafului se considera etichetate cu etichete distincte (de cele mai multe ori vom folosi etichetele 1,2,..,N, unde N este 0/|). O muchie (u,v) este o pereche de noduri distincte ale grafului, u si ,. Un graf orientat este un graf in care muchiile sunt perechi ordonate ( (u,v) este diferit de (v,u) ), iar un graf neorientat este un graf in care muchiile se considera a fi perechi neordonate ( (u,v) este identic cu (v,u) ). In continuare vom considera numai grafuri neorientate. Vom folosi formularea nodul x apartine grafului G, daca G 1/2E3 si x apartine lui /. In mod similar vom folosi formularea muchia (u,v) apartine grafului G. !ormularea o muchie este adiacenta cu un nod implica faptul ca nodul respectiv este unul din cele doua noduri din perechea ce repre"inta muchia. Un subgraf 4G al unui graf 1/2E3 este un graf (V,E), unde /5 este o su#multime de noduri inclusa in /, iar E5 contine o parte dintre acele muchii din E in care am#ele noduri din pereche sunt incluse in /5. Un subgraf indus 4G al unui graf 1/2E3 este un graf (V,E), unde /5 este o su#multime de noduri inclusa in /, iar E5 contine toate muchiile din E in care am#ele noduri din pereche sunt incluse in /5 Un drum D intr$un graf este o succesiune de noduri ale grafului (n[1],n[2],..,n[k]), avand proprietatea ca e%ista muchiile 1n6i72n6i8"73. &e considera si ca"ul cand 9 '. Un drum de la x la : este un drum in care n6"7 x si n697 :. O componenta conexa a unui graf G este un su#graf indus ma%imal al lui G, cu proprietatea ca intre oricare doua noduri ce apartin componentei e%ista cel putin un drum. O componenta cone%a este ma%imala daca orice alt nod al grafului am adauga multimii nodurilor componentei, proprietatea mentionata nu se mai respecta. Orice graf poate fi partitionat in mod unic in componente cone%e (orice nod si orice muchie fac parte din e%act o componenta cone%a). Un graf se numeste cone% daca el este partitionat intr$o singura componenta cone%a. In continuare vom discuta numai despre grafuri cone%e (si, dupa cum am mentionat mai sus, neorientate).

;i(ura "# <artitionarea unui (ra) in componente conexe Un nod critic al unui graf G (numit si punct de articulatie) este un nod al grafului care, daca este scos din graf, impreuna cu toate muchiile adiacente, graful o#tinut nu mai ramane cone%. O muchie critica a unui graf G este o muchie a grafului care, daca este scoasa din graf (fara a elimina si cele doua noduri cu care este adiacenta), graful nu mai ramane cone%. O componenta biconexa a unui graf G este un su#graf indus ma%imal cone% cu proprietatea ca orice nod ce apartine su#grafului nu este nod critic relativ la su#graful respectiv. (omponenta #icone%a este ma%imala in acelasi sens preci"at anterior (la definitia unei componente cone%e). Obser,atie= &e poate verifica usor ca su#graful indus format din doua noduri legate intre ele printr$o muchie critica a unui graf G este o componenta #icone%a a lui G. Orice graf (neorientat ) cone%) poate fi partitionat in mod unic in componente #icone%e (in asa fel incat fiecare muchie a grafului sa faca parte din e%act o componenta #icone%a). Unele noduri ale grafului pot face parte din mai multe componente #icone%e. *ai e%act, fiecare nod critic face parte din cel putin doua componente, iar orice nod care nu este critic face parte din e%act o componenta.

;i(ura 2# <artitionarea unui (ra) in componete biconexe Un nod : este ,ecin cu un nod x, daca e%ista muchia 1:2x3. radul unui nod x este definit ca fiind numarul de noduri : cu care x este vecin. Un drum simplu este un drum in care fiecare nod al grafului apare cel mult o data in cadrul succesiunii de noduri. Un ciclu este un drum ce contine cel putin + noduri, iar primul si ultimul nod sunt legate printr$o muchie. Un ciclu simplu este un ciclu in care fiecare nod al grafului apare cel mult o data. Un arbore este un graf (neorientat ) cone%) care nu contine cicluri. Un ar#ore poate fi considerat ca avand un nod special, numit radacina. Nodurile ar#orelui pot fi apoi distri#uite pe niveluri, considerand ca nodul radacina are nivelul ', vecinii nodului radacina au nivelul ,, vecinii vecinilor nodului radacina au nivelul + s.a.m.d. -aca un nod are nivelul > (./'), atunci el este legat printr$o muchie de un singur nod de pe nivelul >?". Vom numi acest nod parintele (sau tatal) nodului respectiv. -aca un nod are nivelul > (./ '), orice vecin al acestuia de pe nivelul .0' se numeste fiu al nodului respectiv. Un nod al unui ar#ore cu radacina fi%ata se numeste frun!a daca el nu are nici un fiu. Un arbore partial al unui graf G 1/2E3 este un ar#ore A (V,E), cu proprietatea ca E5 este inclus in E. Un graf bipartit este un graf 1 (V1 " V2,E) unde fiecare muchie are un capat in /" si celalalt in /2. Orice ar#ore este un graf #ipartit. O parcurgere #$ a unui graf G consta intr$o vi"itare a tuturor nodurilor grafului, ce poate fi descrisa cu urmatorul algoritm recursiv (apelat pentru un nod oarecare din graf). #$ (Nod x) 1) marchea!a x ca fiind vi!itat 2) pentru fiecare vecin % al lui x, care nu a fost marcat ca fiind vi!itat, apelea!a #$(%) (omple%itatea algormtului de parcurgere -! a unui graf este de ordinul O1N8M3, unde N este numarul de noduri ale grafului, iar M este numarul de muchii.

;i(ura +# Un arbore

2# Determinarea nodurilor critice si a muc'iilor critice ale unui (ra) neorientat * conex
Nodurile si muchiile critice ale unui graf se pot determina in mod eficient folosindu$ne de proprietatile parcurgerii -!. &e face o parcurgere -! dintr$un nod oarecare al grafului, pe care il vom numi in continuare nod radacina. &tim ca o parcurgere -! determina un ar#ore partial al grafului, avand radacina in nodul radacina. In cadrul parcurgerii, vom calcula nivelul pe care se afla fiecare nod (nivelul radacinii este ', iar nivelul fiecarui nod este egal cu nivelul nodului tata plus '). (a urmare a unei parcurgeri -!, muchiile grafului pot fi impartite in doua categorii 2 muchii ce fac parte din ar#orele -! (muchii inainte sau muchii directe) si muchii ce nu fac parte din acest ar#ore ( muchii de intoarcere, muchii inapoi sau muchii inverse). 3entru fiecare nod vom calcula, pe langa nivelul acestuia, si nivelul minim la care poate a4unge nodul respectiv mergand numai pe muchii directe din su#ar#orele sau din cadrul ar#orelui -! si folosind ca ultima muchie o muchie inversa. 5ceasta valoare, pe care o vom numi nivelul minim accesi#il este egala cu minimul dintre urmatoarele + valori 2 nivelul nodului curent minimul dintre nivelurile nodurilor cu care este legat nodul curent printr$o muchie inversa minimul dintre nivelurile minime accesi#ile ale fiiilor nodului curent din cadrul ar#orelui -! &e poate o#serva usor ca un nod (diferit de radacina) este critic daca are cel putin un fiu pentru care nivelul minim accesi#il este mai mare sau egal cu nivelul nodului. 6adacina este nod critic daca are cel putin , fii. Orice muchie critica face parte din orice ar#ore -!. (onditia pentru ca o muchie 1u2,3 sa fie critica este ca u sa fie tatal lui , in ar#orele -!, iar nivelul minim accesi#il al nodului , sa fie strict mai mare decat nivelul lui u. -eterminarea nodurilor si a muchiilor critice se poate reali"a, astfel, cu o comple%itate &(N'(), unde N este numarul de noduri ale grafului, iar ( este numarul de muchii ale grafului.

+# Determinarea componentelor biconexe ale unui (ra) neorientat * conex


3entru a determina componentele #icone%e ale unui graf folosim tot o parcurgere -!, precum si o stiva de muchii. 5lgoritmul in pseudocod este urmatorul2

;i(ura @# Arborele D;2 muc'iile directe si muc'iile in,erse# Determinarea ca un nod este critic
DF(Nod x) 1)marcheaza x ca fiind vizitat 2)pentru fiecare y vecin al lui x 2.1)daca y NU este tatal lui x 2.1.1)daca y a fost deja vizitat si nivelul lui y este mai nivelul lui x 2.1.1.1)pune muchia (x y) in stiva 2.1.2)daca y NU a fost deja vizitat 2.1.2.1)memoreaza ca tatal lui y este x 2.1.2.2)pune muchia (x y) in stiva 2.1.2.!)DF(y) 2.1.2.")daca x este nod critic relativ la y (mai exact minim accesi#il al lui y este mai mare sau e$al cu nivelul lui x) 2.1.2.".1)incepe o componenta #iconexa noua 2.1.2.".2)cat timp in varful stivei nu este muchia 2.1.2.".2.1)scoate muchia din varful stivei si facand parte din componenta #iconexa curenta 2.1.2.".!)scoate din varful stivei muchia (x y) si facand parte din componenta #iconexa curenta

mic decat

daca nivelul (x y) marcheaz%o ca marcheaz%o ca

@#

)rborele componentelor biconexe si al nodurilor critice

Intuitiv, privind partitionarea unui graf in componente #icone%e, o#servam un fel de structura ar#orescenta.
&otusi cand incercam sa o formalizam constatam cateva dificultati.

@#"# Gra)ul componentelor biconexe (onsideram $raful '( asociat unui $raf '. Fiecare nod al lui '( corespunde unei componente #iconexe a lui '. )xista muchie intre 2 noduri din '( daca cele 2 componente #iconexe corespunzatoare au un nod critic in comun. *ceasta idee corespunde unei partitionari de $enul + componente #iconexe , noduri noduri critice , muchii. &otusi privind fi$ura - o#servam ca nu o#tinem rezultatul dorit. Intrucat mai multe componente #icone%e pot avea in comun acelasi nod critic, un nod critic nu devine o singura muchie in 17, ci poate deveni o clica, ceea ce nu este de dorit, deoarece clicile nu sunt, in general, structuri cu care se lucrea"a usor.

;i(ura A# Gra)ul componentelor biconexe @#2# Gra)ul nodurilor critice (onsideram graful 17 asociat unui graf 1. !iecare nod al lui 17 corespunde unui nod critic din 1. 8%ista muchie intre , noduri din '( daca exista o componenta #iconexa din care sa faca parte
cele 2 noduri critice corespunzatoare celor doua noduri din '(. *ceasta idee corespunde unei partitionari de $enul + noduri critice , noduri componente #iconexe , muchii. &otusi privind fi$ura . o#servam ca nici de data aceasta nu o#tinem rezultatul dorit.

;i(ura !# Gra)ul nodurilor critice Ne$am fi dorit ca o componenta #icone%a sa se transforme intr$o muchie. 9otusi, deoarece se pot afla mai multe noduri critice in aceeasi componenta #icone%a, o componenta #icone%a se transforma, de fapt, intr$o clica . @#+# Gra)ul componentelor biconexe si al nodurilor critice
/onsideram in continuare urmatorul $raf #ipartit asociat unui $raf ' + toate nodurile din partea stan$a corespund unei componente #iconexe a lui ' si toate nodurile din parta dreapta corespund unui nod critic al lui '. *vem muchie intre un nod u din partea stan$a si un nod v din partea dreapta daca nodul critic corespunzator lui v face parte din componenta #iconexa corespunzatoare lui u. 0e poate o#serva (si demonstra) usor ca acest $raf #ipartit al componentelor #iconexe si nodurilor critice este un ar#ore.

;i(ura *. +omponentele biconexe si nodurile critice ale unui graf.

componentelor biconexe si al nodurilor critice

raful si arborele

A#

#escompunerea arborescenta a unui graf

1 descompunere arborescenta a unui graf consta in construirea unui ar#ore , in care nodurile ar#orelui sunt reprezentate de su#multimi de noduri ale lui . 0a consideram ca nodurile ar#orelui sunt -1,-2,..,-.. Descompunerea ar#orescenta a lui are urmatoarele proprietati+

') 3entru orice nod u al lui


apartine lui -i

exista cel putin un nod -i al lui , astfel incat u

,) 3entru orice muchie 1u2,3 a lui G e%ista cel putin un nod Bi al lui T astfel incat atat u, cat si , apartin lui
Bi +) 1ricare ar fi doua noduri ale lui ,
afla pe drumul de la -i la -0 -/. -i si -j si un al treilea nod -/ ce se are loc proprietatea + -i 1 -0 este inclus in

3roprietatea + poate fi reformulata su# forma +5 +


!() 1ricare ar fi doua noduri ale lui , -i si -0 daca un nod u al lui apartine atat lui -i cat si lui -0 atunci el apartine tuturor nodurilor lui , ce se afla pe drumul dintre -i si -0.

Orice graf G are cel putin o descompunere ar#orescenta. 5ceasta afirmatie este #anala, deoarece nu s$a impus nici o limita pentru numarul de noduri ale ar#orelui T. 5stfel, se poate construi un ar#ore cu un singur nod, ce corespunde multimii tuturor nodurilor lui G.
2entru o descompunere ar#orescenta se defineste dimensiunea acesteia ca fiind max23 -i3 4 15. *r#orele ce contine un sin$ur nod (deci tot $raful intr%un sin$ur nod) are dimensiunea maxima. 3n $eneral ne intereseaza descompuneri ar#orescente de dimensiune cat mai mica. Determinarea descompunerii ar#orescente de dimensiune minima nu se poate realiza insa in timp polinomial (decat pentru clase particulare de $rafuri). Folosind o descompunere ar#orescenta a unui $raf putem rezolva mai usor diverse pro#leme care se pot rezolva in timp polinomial pentru ar#ori dar nu se pot rezolva in timp polinomial pentru $rafuri $enerale. De exemplu determinarea celui mai lun$ drum determinarea celei mai mari clici determinarea celei mai mari multimi intern sta#ile determinarea unei acoperiri a tuturor muchiilor cu numar minim de noduri realizarea unei colorari cu numar minim de culori sunt doar cateva pro#leme

ce pot fi rezolvate in timp polinomial pentru ar#ori dar care sunt N6 pentru $rafuri $enerale. Folosind o descompunere ar#orescenta putem rezolva aceste pro#leme mai eficient folosind al$oritmi specifici ar#orilor ajun$and la o complexitate exponentiala (de cele mai multe ori) in dimensiunea descompunerii si nu in numarul de noduri ale $rafului. Din acest motiv ne intereseaza descompuneri ar#orescente avand dimensiuni cat mai mici. 0a analizam in continuare daca $raful componentelor #iconexe si al nodurilor critice (pe care il vom numi de acum inainte ar#orele componentelor #iconexe si al nodurilor critice) reprezinta o descompunere ar#orescenta. Nodurile ar#orelui corespunzatoare componentelor #iconexe contin ca su#multime de noduri nodurile din componenta respectiva iar nodurile corespunzatoare nodurior critice contin ca su#multime de noduri o su#multime ce are un sin$ur element + nodul critic respectiv. 3rimele , proprietati reies imediat din definitia componentelor #icone%e. 0a verificam in continuare a treia proprietate + orice nod u care nu este nod critic face parte din e%act un nod al ar#orelui, deci verifica proprietatea + orice nod critic u face parte dintr$un nod al ar#orelui corespun"ator nodului critic respectiv si din mai multe

componente #icone%e : oricare , componente #icone%e, .i si .C din care face parte nodul u, se afla la distanta de , muchii in ar#ore si singurul nod intermediar de pe drumul dintre ele este chiar nodul corespun"ator nodului critic u ,4 proprietatea este verificata 5r#orele componentelor #icone%e si al nodurilor critice repre"inta o #una modalitate de a reprezenta un $raf su# forma unui ar#ore. 3n $eneral dimensiunea descompunerii ar#orescente o#tinute este mai mica decat numarul de noduri ale $rafului minus 1 insa pentru $rafuri indeajuns de dense dimensiunea este in continuare prea mare. 2entru a folosi acest ar#ore in rezolvarea de pro#leme ce au complexitate exponentiala in dimensiunea descompunerii ar#orescente tre#uie sa avem informatii suplimentare despre numarul maxim de noduri dintr%o componenta #iconexa. 8%ista algoritmi care incearca sa reali"e"e o descompunere ar#orescenta de dimensiune cat mai mica a unui graf si e%ista si clase de grafuri pentru care e%ista descompuneri ar#orescente cu proprietati speciale (specifice clasei de grafuri respective).

!# Cate,a probleme re%ol,abile )olosind arborele componetelor biconexe si al nodurilor critice


!#"# &e da un graf neorientat si cone%, in care fiecare muchie are o anumita lungime. &e mai stie ca fiecare componenta #icone%a are cel mult D noduri. &e doreste determinarea celui mai lung drum simplu din acest graf (nu se specifica capatele acestui drum : ele pot fi orice pereche de noduri din graf) 5ceasta pro#lema (intr$o forma ;im#racata<) a fost data la ta#ara de pregatire comuna a loturilor de informatica din (ehia, 3olonia si &lovacia ((3&3(), in anul ,===. 3entru a o re"olva, construim ar#orele componetelor #icone%e si al nodurilor critice corespun"ator grafului dat. 5poi, pentru fiecare componenta #icone%a, pentru fiecare pereche de noduri (u,v) ce fac parte din componenta, determinam (prin #ac>trac>ing, generand permutari ale nodurilor, cu o comple%itate ?@, sau cu programare dinamica, cu o comple%itate de cel mult ?,A,?) cel mai lung drum (simplu) care uneste nodurile u si v si trece numai prin alte noduri din componenta respectiva (sa notam aceasta distanta calculata cu -B%, u, vC, unde % este nodul din ar#ore corespun"ator componentei #icone%e). Urmea"a acum etapa de programare dinamica pe ar#orele construit. In mod similar ca"ului cand graful ar fi ar#ore, vom calcula, pentru fiecare nod % al ar#orelui construit, doua valori 2 5B%, uC lungimea celui mai lung drum care incepe undeva mai 4os in ar#ore si se termina la nodul %, in nodul u al grafului din nodul % al ar#orelui DB%C lungimea celui mai lung drum care incepe undeva mai 4os in ar#ore, trece prin nodul % si se termina undeva mai 4os in ar#ore 3entru un nod % de tipul $nod critic& 2

5B%, uC (cu u nodul critic respectiv) se calculea"a ca fiind ma%imul dintre 5BE, uC cu E fiu al lui % DB%C ma%'F5BE, uC G 0 ma%,F 5BE,uC G , cu E fiu al lui % (adica suma dintre primul ma%im si al doilea ma%im)

3entru un nod % de tipul $componenta biconexa& 2 5B%, uC ma%F-B%, t, uC 0 F = H daca t nu e nod critic : 5BE, tC H daca t este nod critic, E fiind nodul din ar#ore corespun"ator nodului critic t G G , cu u si t noduri din componenta corespun"atoare lui % DB%C ma% F -B%, u, vC 0 F = H daca u nu e nod critic : 5BE, uC H daca u este nod critic, E fiind nodul din ar#ore corespun"ator nodului critic u, si E fiu al lui % G 0 F = H daca v nu e nod critic : 5BE, vC H daca v este nod critic, E fiind nodul din ar#ore corespun"ator nodului critic v, si E fiu al lui % G G, cu u si v noduri din componenta corespun"atoare lui % -rumul ma%im din graf este egal cu ma%imul dintre toate valorile 5B%, uC si DB%C. -aca drumul tre#uie si reconstituit, pro#lema devine un pic mai complicata. 9re#uie gasit nodul % din care s$a determinat ma%imul, apoi tre#uie determinat cum s$a calculat valoarea 5 sau D din care a re"ultat ma%imul (si drumul se reconstituie in mod recursiv, mergand in fiii lui %). !#2# &e da un graf neorientat ) cone%. &a se colore"e nodurile grafului folosind un numar minim de culori, cu conditia ca oricare doua noduri intre care e%ista muchie sa fie colorate in culori diferite. &e stie ca fiecare componenta #icone%a contine cel mult E noduri. (onstruim ar#orele componentelor #icone%e si al nodurilor critice. Vom calcula apoi 5B%C minim de culori cu care se poate colora su#ar#orele ce il are ca radacina pe nodul %. 3entru un nod de tipul $nod critic&2 5B%C ma% F 5BEC G, cu E fiu al lui % 3utem sa consideram ca nodul critic are culoarea '. In fiecare componenta #icone%a corespun"atoare fiecaruia din fii, nodul respectiv este colorat in culoarea ', culorile celorlalte noduri permutandu$se, in ca"ul in care colorarea s$a calculat considerand ca nodul respectiv avea alta culoare. 3entru un nod de tip $componenta biconexa&2 se determina, prin #ac>trac>ing (generand permutari si colorand in ordinea determinata de permutare sau generand colorari cu ',,,+,..,I culori si verificand apoi ca sunt valide) numarul minim de culori necesar pentru a colora componenta #icone%a respectiva : fie acest numar ( 5B%C ma% F (, ma%F 5BEC G G, cu E fiu al lui % Numarul minim de culori, sa$l notam ., este egal cu 5Bradacina ar#oreluiC. -aca tre#uie reconstituita solutia, parcurgem ar#orele de la radacina in 4os. 3entru fiecare nod % al ar#orelui, o parte din nodurile grafului corespun"atoare nodului ar#orelui vor fi de4a colorate cand a4ungem la nodul %. *ai tre#uie doar sa generam o colorare valida cu ma%im . culori pentru nodurile ramase necolorate si sa parcurgem, mai departe, fiii lui %. !#+# Un cactus este un graf neorientat ) cone% cu proprietatea ca orice muchie a grafului face parte din cel mult un ciclu simplu. -andu$se un cactus, determinati cate su#grafuri ale acestuia, care contin toate nodurile grafului, sunt, la randul lor, cactusi. 3ro#lema a fost data la etapa regionala a concursului 5(* din nord$estul 8uropei (N886(), in anul ,==5. (onstruim intai ar#orele componentelor #icone%e si al nodurilor critice. O#servam usor ca, intr$un cactus, orice componenta #icone%a este ori o muchie critica, ori un ciclu simplu. Vom calcula 5B%C, repre"entand numarul de su#grafuri cactusi ce contin toate nodurile grafului ce se gasesc in noduri din su#ar#orele nodului % al ar#orelui construit. 3entru un nod de tip $nod critic&2 numarul

5B%C

J (5BEC) , unde E este fiu al nodului % in ar#ore

5B%C este produsul valorilor 5BEC, cu E fiu al lui % 3entru un nod de tip $componenta biconexa& H muc'ie critica2 &a presupunem ca muchia critica este (u,v). 5ceasta tre#uie pastrata neaparat in cadrul oricarui su#graf cactus. Nodul % corespun"ator muchiei critice poate fi radacina ar#orelui, ca" in care 5B%C 5BECA5B"C, unde E si " sunt nodurile ar#orelui corespun"atoare nodurilor critice u si v. -aca u sau v nu sunt noduri critice (daca graful contine doar muchia u$v, atunci nici u si nici v nu sunt critice : daca unul din noduri are gradul ', atunci nu este critic), atunci inlocuim 5BEC, respectiv 5B"C, cu valoarea '. -aca nodul % este frun"a, 5B%C '. 5ltfel, nodul % are un singur fiu, E, de tip ;nod critic< si 5B%C 5BEC.

;i(ura E# Exemple de (ra)uri care sunt cactusi si (ra)uri care nu sunt cactusi 3entru un nod de tip $componenta biconexa& H ciclu2 &a presupunem ca e%ista . noduri in componenta cone%a respectiva. -eci, e%ista si . muchii. -aca s$ar elimina doua din aceste . muchii, s$ar o#tine un su#graf care nu va mai fi cone%. 5sadar, se poate elimina cel mult ' muchie. 8%ista, in total, .0' posi#ilitati (se poate elimina oricare din cele . muchii sau nu se elimina nici una din ele). 5vem 5B%C (.0') A J (5BEC), unde % este nodul corespun"ator componentei #icone%e, iar E este fiu al lui %. 6e"ultatul il avem in 5Bradacina ar#oreluiC. In ca"ul acestei pro#leme, constatam ca folosirea ar#orelui componentelor #icone%e si al nodurilor critice este o ;masura e%agerata<. -aca anali"am mai atent algoritmul anterior, vom o#serva ca re"ultatul este2 produs din F numarul de muchii ale fiecarui ciclu + 1 G. 5sadar, tot ceea ce ne interesea"a este sa determinam ciclurile. -eterminarea ciclurilor se poate face folosind algoritmul pentru gasirea componentelor #icone%e sau folosind o parcurgere -! mai simpla.

-# .iblio(ra)ie * re)erinte
5r#orele componentelor #icone%e si al nodurilor critice a fost descoperit in mod independent de autorul acestui document, in luna fe#ruarie, ,==K. In urma unor investigatii recente, autorul a descoperit, din nefericire, ca acest tip de ar#ore este de4a cunoscut in literatura de specialitate si, pentru a cita dintr$unul din documentele citite, acest tip de ar#ore este ;Lell$>noLn<. (ateva denumiri ale acestui ar#ore sunt ;#loc> tree<, ;#loc>$cut verte% tree<

sau ;#loc>$cut point tree<. 3entru informatii suplimentare despre acest tip de ar#ore, cautati cele + denumiri mentionate anterior pe 1oogle, adaugand, eventual si cuvintele cheie ;graph< sau ;algorithm<.

;Introduction to 5lgorithms<, (ormen, Meiserson ) 6ivest (http2NN"hu"eEuan.hp.infosee>.co.4pNitaNtoc.htm , varianta online) ;1a"eta de Informatica<, numerele din '??5$'??I, unde autorul a intalnit pentru prima data algoritmul de determinare a componentelor #icone%e ;(ulegere de pro#leme si programe 35&(5M<, (adar (ristian, &troe *ihai http2NNneerc.ifmo.ruNinformationNhome.html http2NNcs.pu#.roNOsdNinde%.phpPsection Ma#oratoare)file Ma#oratorQ,=',

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