Grafuri si arbori teorie

11
Grafuri şi arbori, clasa a XI-a Grafuri neorientate Def. Se numeşte graf neorientato pereche ordonată de mulţimi G=(X,U), unde X este o mulţime nită şi nevidă de elemente numită mulţimea varfurilor(nodurilor), iar U este o mulţime de perechi neordonate de elemente din X numită mulţimea muchiilor . Not . G=(X,U) - graf neorientat u=[x, !"U se numeşte muchie a grafului G=(X,U) x,y se numesc extremităţi ale muchiei u x,y!"y,x! deoarece nu contea#ă orientarea muchiei Def. $%rfurile x şi se #ic adiacente &n G dacă sunt extremităţi ale aceleiaşi muchii. Def. Spunem despre '%rful x şi muchia u că sunt incidente (la fel '%rful y şi muchia u). Def. Spunem că două muchii sunt incidente dacă au o extremitate comună. xemplu graful din *gura + "( , ) "/+,0,1,2,34 "/+,3!, 3,0!, 3,2!, 0,2!4 $%rfurile # şi $ sunt adiacente. $%rfurile % şi $ nu sunt incidente . 5uchiile [%,&! si [#,&!sunt incidente. 5uchia [#,$! şi '%rful # sau $ sunt incidente . 5uchia [#,$! şi '%rful % sau & nu sunt incidente . Def. n graf parţial al grafului G=(X,U ) este un graf G %=(X,') cu proprietatea că ' U (este graful &nsuşi sau se o6ţ din graful iniţial prin eliminarea unor muchii ). Se mai spune că graful parţial G % e te indu de mulţimea de muchii ' . xemplu graful din *gura 0 G %=(X,U) e te graf partial al lui G "/+,0,1,2,34 $"/3,+!, 3,2!4 Def. n u graf al unui graf neorientat G=(X,U) este un graf *=(+,') astfel inc%t + X şi ' conţine toate muchiile din U care au am6ele extremităţi &n + (poate * graful iniţial sau se o6ţine din acesta prin eliminarea unor '% incidente cu acestea). Spunem că u graful * e te indu de mulţimea de v rfuri + . xemplu graful din *gura 1 *=(+,') este u graf al lui G +=-%,$,& '=-[%,&!, [&,$! 76s. /umărul total al grafurilor neorientate cu n '%rfuri date este # n(n0%)1# . Def. 7 muchie de la un nod la el &nsuşi se numeşte uclă . Def. n graf cu muchii multiple se numeşte multigraf. 76s. Studiem grafuri fără muchii multiple şi fără 6ucle. 76s. Gradul maxim al unui nod poate n0%. xemplu graful din *gura 2 G=(X,U) graf cu muchii multiple şi cu o 6uclă X=-%,#,2,$ "/+,2!, 2,0!, +,2!,2,+!,1,1!4 Def. Gradul unui v rf este numărul muchiilor incidente cu el şi se notea#ă d(x). Def. n '%rf care are gradul 3 se numeşte v rf i4olat . Def. n '%rf care are gradul % se numeşte v rf terminal . xemplu pentru graful din 8igura + d(3)"1 d(+)"+ ('%rf terminal) d(1)"9 ('%rf i#olat) Def. n graf se #ice regulat , dacă toate v rfurile ale au acela5i grad . xemplu graful din *gura 3 este regulat :rop. Dacă un graf G=(X,U ) are n '%rfuri şi m muchii, iar X=-x %, x #, 6, x n atunci 7 d(x i )=#m ,i=%,6n. ( uma gradelor varfurilor unui graf e te #m ) ;orolar. 8n orice graf exi tă un număr par de v rfuri de grad impar. <plicaţie 8iind dat un sir s d %, d #,6, d n format din n numere &ntregi nenegative, se pune pro6lema sta6ilirii unor con necesare şi su*ciente astfel &ncat să existe un graf ale cărui '%rfuri să ai6ă ca grade numerele de graf, şirul s se numeşte 5ir grac. ;ondiţiile necesare sunt (+) d i 9n0% (0) d %:d #:6:d n ă e număr par 1 1 2 5 4 3 Figura 1. 1 3 2 Figura 5. Figura 2. 1 2 5 4 3 Figura 3. 1 5 4 Figura 4. 2 4 3 1 1 2 5 4 3 Figura 1.

description

grafuri si arbori teorieorientatneorientat

Transcript of Grafuri si arbori teorie

Grafuri neorientate

Grafuri i arbori, clasa a XI-a

Grafuri neorientate

Def. Se numete graf neorientat o pereche ordonat de mulimi G=(X,U), unde X este o mulime finit i nevid de elemente numit mulimea varfurilor (nodurilor), iar U este o mulime de perechi neordonate de elemente din X numit mulimea muchiilor.

Not. G=(X,U) - graf neorientat

u=[x,y]U se numete muchie a grafului G=(X,U)x,y se numesc extremiti ale muchiei u[x,y]=[y,x] deoarece nu conteaz orientarea muchiei

Def. Vrfurile x i y se zic adiacente n G dac sunt extremiti ale aceleiai muchii.

Def. Spunem despre vrful x i muchia u c sunt incidente (la fel vrful y i muchia u).

Def. Spunem c dou muchii sunt incidente dac au o extremitate comun.

Exemplu: graful din figura 1 G=(X,U) X={1,2,3,4,5} U={[1,5], [5,2], [5,4], [2,4]}

Vrfurile 2 i 4 sunt adiacente. Vrfurile 1 i 4 nu sunt incidente. Muchiile [1,5] si [2,5] sunt incidente. Muchia [2,4] i vrful 2 sau 4 sunt incidente. Muchia [2,4] i vrful 1 sau 5 nu sunt incidente.

Def. Un graf parial al grafului G=(X,U) este un graf G1=(X,V) cu proprietatea c V(U (este graful nsui sau se obine din graful iniial prin eliminarea unor muchii). Se mai spune c graful parial G1 este indus de mulimea de muchii V.

Exemplu: graful din figura 2G1=(X,U) este graf partial al lui G

X={1,2,3,4,5} V={[5,1], [5,4]}

Def. Un subgraf al unui graf neorientat G=(X,U) este un graf H=(Y,V) astfel inct Y(X i V conine toate muchiile din U care au ambele extremiti n Y (poate fi graful iniial sau se obine din acesta prin eliminarea unor vrfuri i a muchiilor incidente cu acestea). Spunem c subgraful H este indus de mulimea de vrfuri Y.

Exemplu: graful din figura 3H=(Y,V) este subgraf al lui G: Y={1,4,5} V={[1,5], [5,4]}

Obs. Numrul total al grafurilor neorientate cu n vrfuri date este 2n(n-1)/2.Def. O muchie de la un nod la el nsui se numete bucl.

Def. Un graf cu muchii multiple se numete multigraf.Obs. Studiem grafuri fr muchii multiple i fr bucle.

Obs. Gradul maxim al unui nod poate fi n-1.

Exemplu: graful din figura 4G=(X,U) graf cu muchii multiple i cu o bucl X={1,2,3,4} U={[1,4], [4,2], [1,4],[4,1],[3,3]}

Def. Gradul unui vrf este numrul muchiilor incidente cu el i se noteaz d(x).

Def. Un vrf care are gradul 0 se numete vrf izolat.

Def. Un vrf care are gradul 1 se numete vrf terminal.

Exemplu: pentru graful din Figura 1: d(5)=3 d(1)=1 (vrf terminal)d(3)=0 (vrf izolat)

Def. Un graf se zice regulat, dac toate vrfurile sale au acelai grad.

Exemplu: graful din figura 5 este regulat

Prop. Dac un graf G=(X,U) are n vrfuri i m muchii, iar X={x1, x2, , xn} atunci

d(xi)=2m, i=1,n. (suma gradelor varfurilor unui graf este 2m)

Corolar. In orice graf exist un numr par de vrfuri de grad impar.Aplicaie: Fiind dat un sir s: d1, d2,, dn format din n numere ntregi nenegative, se pune problema stabilirii unor condiii necesare i suficiente astfel ncat s existe un graf ale crui vrfuri s aib ca grade numerele date. Daca exist un astfel de graf, irul s se numete ir grafic. Condiiile necesare sunt:

(1) din-1

(2) d1+d2++dn s fie numr parDef. Ordinul unui graf este numrul nodurilor sale.

Def. Un graf se zice planar dac se poate reprezenta ntr-un plan astfel nct oricare dou muchii distincte ale sale se intersecteaz numai n noduri.Def. Se numete graf complet cu n vrfuri un graf care are proprietatea c oricare dou noduri diferite sunt adiacente.

Not. Graful complet se noteaz Kn.Obs. Un graf complet are n(n-1)/2 muchii.

Exemplu: pentru n=4 K4 este graful din figura 6:

Def. Un graf se numete bipartit dac exist dou mulimi nevide A i B astfel nct A(B=X i A(B= i orice muchie u a lui G are o extremitate n A i una n B.

Exemplu: graful din figura 7

este bipartit cu A={1,2,4}

B={3,5}

A(B=X i A(B=Def. Un graf bipartit se numete complet dac pentru orice x din A i orice y din B exist in G muchia [x,y].

Obs. Dac A are p elemente si B are q elemente numrul total de muchii este p*q i graful bipartit complet se noteaz Kpq.Exemplu: graful din figura 8 este bipartit completA={1,2,3} B={4,5} G=(X,U) este graf bipartit complet

Def. Fiecrei muchii a unui graf neorientat i se poate asocia o valoare real pozitiv care reprezint costul acelei muchii.

Def. Un graf neorientat n care fiecrei muchii i s-a asociat o valoare se numete graf ponderat sau graf valoric.

Def. Fie un graf neorientat G=(X, U) i o funcie L: U(R+, care asociaz fiecrei muchii u(U un numr real numit costul (ponderea) sa L(u). Costul unui graf reprezint suma costurilor muchiilor sale.

Exemplu: in figura 9 este un graf ponderat

Def. Un graf G=(X,U) se numete nul dac U= (reprezentarea lui n plan const doar n vrfuri izolate).

Def. Fie graful G=(X,U). Se numete graf complementar al grafului G graful G=(X,U), cu proprietatea c dou vrfuri adiacente n G dac nu sunt adiacente n G.Exemplu:

graful G este complementar grafului G

G=(X,U)

G=(X,U)Def. Fie un graf G=(X,U) cu vrfurile X={x1, x2,, xn}. Se numete lan n graful G succesiunea de vrfuri

L=[ xi1, xi2,, xik] cu proprietatea c dou vrfuri consecutive din L sunt adiacente, adic muchiile [ xi1, xi2], [xi2,xi3] [xik-1,xik] sunt din U.

Def. Vrfurile xi1 i xik se numesc extremitile lanului.

Obs. Dac L=[ xi1, xi2,, xik] este lan i L=[ xik, xik-1,, xi1] este lan.

Def. Numrul de muchii al unui lan reprezint lungimea lanului.

Exemplu:

L1=[1,2,4,7,5,4,2] L2=[3,4,2,4]; sunt lanuri neelementare i compuse

L3=[8,7,6,4,3,1]; este lan elementar, simplu;L4=[2,4,5,7,4,3] este lan neelementar simpluDef. Un lan este elementar dac toate vrfurile sale sunt distincte. Altfel este neelementar.

Def. Un lan este simplu dac are toate muchiile distincte. n caz contrar se zice compus.

Obs. Un lan compus este neelementar.

Exemplu: pentru graful din Figura 11: L1, L2 sunt lanuri neelementare i compuseL3 este lan elementar, simplu; L4 este lan neelementar simpluDef. Se numete ciclu n G un lan L pentru care xi1=xik i toate muchiile [xi1, xi2], [xi2,xi3] [xik-1,xik] sunt diferite dou cte dou.

Def. Se numete ciclu elementar un ciclu care are proprietatea c oricare dou vrfuri ale sale cu excepia primului i ultimului sunt diferite dou cte dou. Altfel se zice neelementar.

Exemplu: pentru graful din Figura 11:

C1=[1,2,4,3,1] este un ciclu elementar

C2=[1,2,4,6,7,5,4,3,1] este un ciclu neelementar

Def.Dou cicluri C i C sunt egale dac muchiile lor induc acelai graf parial al subgrafului generat de vrfurile ce aparin lui C, respectiv C.

Def. Lungimea unui ciclu este dat de numrul su de muchii.

Obs. Un ciclu are lungimea minim de trei muchii.

Def. Un ciclu se numete par dac lungimea sa este numr par i impar n caz contrar.

Def. Se numete numrul ciclomatic al unui graf numrul de cicluri care se pot alctui n graful respectiv.Def. Un graf se zice conex dac pentru oricare dou vrfuri x si y distincte exist un lan care le leag.

Exemplu: graful din figura 8 este conex.

Def. Se numete component conex a grafului G=(X,U) un subgraf G=(X,U) conex cu proprietatea c nu exist nici un lan n G care s lege un vrf din X cu un vrf din X\X.

Exemplu: graful alturat are dou componente conexe:

C1=(X1,V1), X1={1,2,3}, V1={[1,2], [2,3]}

C2=(X2,V2), X2={4,5,6}, V2={[5,4], [5,6]}

Obs. Un graf cu n noduri i n componente conexe are numai vrfuri izolate. Graful format dintr-un singur nod este conex.Def. Fie G=(V,E) un graf neorientat conex. Un vrf i se numete punct de articulaie dac prin ndeprtarea sa i a muchiilor adiacente graful nu mai rmne conex.

Def. Un graf G=(V,E) se numete biconex dac nu are puncte de articulaie. Dac G nu este biconex se pune problema determinrii componentelor sale biconexe, unde prin component biconex (sau bloc) se nelege un subgraf biconex maximal.

Def. Se numete lan hamiltonian un lan elementar care conine toate vrfurile grafului.

Def. Intr-un graf neorientat G=(X,U) se numete ciclu hamiltonian un ciclu elementar care conine toate vrfurile grafului.

Def. Se numete graf hamiltonian un graf care conine un ciclu hamiltonian.

Exemplu: graful alturat este hamiltonian:

C1=[1,2,5,4,3,6,1]

C2=[1,2,3,4,5,6,1]

sunt cicluri hamiltoniene

Teorem. Graful complet Kn este hamiltonian.

Teorem. (condiie suficient ca un graf s fie hamiltonian) Dac G=(X,U) este un graf cu n3 vrfuri astfel nct gradul fiecrui vrf satisface condiia: d(x)n/2 atunci este hamiltonian.Obs. O metod de a arta c un graf este hamiltonian este s se genereze un ciclu hamiltonian folosind metoda backtracking.Def. Se numete lan eulerian un lan elementar care conine toate muchiile grafului.

Def. Intr-un graf G=(X,U) se numete ciclu eulerian un ciclu care conine toate muchiile grafului.

Def. Se numete graf eulerian un graf care conine un ciclu eulerian.

Exemplu: graful alturat este eulerian:

C1=[1,2,7,5,4,8,9,4,3,7,6,1]

C2=[7,2,1,6,7,3,4,9,8,4,5,7]

sunt cicluri euleriene

Teorem. Un graf G=(X,U) fra vrfuri izolate este eulerian dac i numai dac este conex i gradele tuturor vrfurilor sunt numere pare.

Obs. O metod pentru a arta c un graf este eulerian: se arat ca graful este conex, i toate vrfurile au grade pare. Parcurgerea grafurilor:

Def. Prin parcurgerea (traversarea) grafului se nelege examinarea n mod sistematic a nodurilor sale, astfel nct fiecare nod s fie atins o singur dat. Procedeul se mai numete vizitare.

Obs. Graful este o structur neliniar de organizare a datelor, rolul traversrii este tocmai acela de a determina o liniarizare a nodurilor n vederea trecerii de la unul la altul.1. parcurgerea n lime: se parcurge mai nti nodul iniial, apoi vecinii acestuia, apoi vecinii nevizitai ai acestuia, s.a.m.d. Pentru reinerea nodurilor se folosete o structur de date de tip coad.

2. parcurgerea n adncime: se parcurge mai inti nodul iniial, continu cu primul dintre vecinii si nevizitai, apoi primul dintre vecinii nevizitai ai acestui nod, s.a.m.d. Pentru reinerea noduriloe se folosete o structur de date de tip stiv.Reprezentarea grafurilor neorientate:Exist mai multe moduri de reprezentare a grafurilor, alegerea fcndu-se n funcie de tipurile de operaii care urmeaz s se efectueze:

1. matricea de adiacen: face o asociere ntre noduri i indicii matricei. Este o matrice simentric fa de diagonala principal, cu nXn elemente, unde n este numrul de noduri.

aij=1, dac muchia [i,j] exist

0, dac muchia [i,j] nu exist

Obs. Numarul de valori 1 de pe linia i (sau de pe coloana i) reprezint gradul nodului i.

2. matricea lanurilor: este o matrice ptratic simetric fa de diagonala principal cu nXn elemente, unde n este numrul de noduri.

aij=1, dac lanul de la i la j exist

0, dac lanul de la i la j nu exist

Obs. matricea lanurilor se obine din matricea de adiacen prin aplicarea algoritmului lui Roy-Warshall. Se utilizeaz pentru a arta dac un graf este conex sau nu. Dac are n matrice numai valori de 1, insemn c graful este conex.

3. matricea costurilor: pentru reprezentarea grafurilor valorice. Este o matrice simentric fa de diagonala principal, cu nXn elemente, unde n este numrul de noduri.

aij=costul muchiei, dac muchia [i,j] exist

0, dac muchia [i,j] nu exist

, dac este o problem de minim (-, dac este o problem de maxim)

4. lista de adiacen reprezentat folosind alocarea dinamic se reine pentru fiecare nod lista vecinilor

a) se folosete un vector care reine adresa de nceput a listei vecinilor fiecrui nod

b) se folosete o list care reine adresa de nceput a listei vecinilor fiecrui nod

5. lista de adiacen reprezentat folosind tablouri bidimensionale cu n+2m coloane i dou linii (n=numrul de noduri, m=numrul de muchii), pe prima linie se scriu numerele de la 1 la n+2m, iar pe a doua se reine n coloanele de la 1 la n coloana n care apare primul vecin al su, iar pe coloanele de la n+1 la n+2m coloana pe care se afl urmtorul vecin al nodului.6. doi vectori: se reine un capt al muchiei ntr-un vector, iar cellalt capt n al doilea vector. Lungimea vecorilor este egal cu numrul de muchii.

7. un vector de muchii: se definete tipul muchie (reine capetele muchiei si eventual costul-pentru grafuri valorizate), apoi definim un vector de muchii care are attea componente cte muchii sunt

8. lista de muchii: se definete tipul nod care reine capetele muchiei i eventual costul - pentru grafuri valorice.

Grafuri orientate

Def. Se numete graf orientat o pereche ordonat de mulimi G=(X,U), unde: X este o mulime finit i nevid numit mulimea vrfurilor (nodurilor), iar U este o mulime format din perechi ordonate de elemente distincte din X numit mulimea arcelor.

Not. Orice arc se noteaz u=(x,y) i spunem c x este extremitate iniial i y este extremitate final a arculuui.

Def. Pentru graful G=(X,U) dac exist arcul u=(x,y) spunem c vrfurile x i y sunt adiacente i amndou sunt incidente cu arcul u.

Obs. Arcul (x,y) difer de arcul (y,x).

u4 u6

Exemplu: pentru graful G=(X,U) u3 u5 X={1,2,3,4,5,6}, U={(2,1), (2,3), (3,2), (1,3), (1,5), (5,1), (3,5), (5,6)} u2 u1 u8

u7=(5,6) , deci 5, 6 incidente cu u7 u7Obs. Intr-un graf pot exista mai multe arce identice. Un graf n care numrul arcelor identice nu depete un numr natural p se numete p-graf. Se vor studia 1-grafuri fr bucle (nu exist un arc de la un vrf la el nsui).

Def. Se numete grad exterior al unui vrf x notat cu d+(x), numrul arcelor de forma (x,y)(U.

Def. Se numete grad interior al unui vrf x notat cu d-(x), numrul arcelor de forma (y,x)(U.

Not. (+(x)={y(X|(x,y) (U}- mulimea succesorilor lui x

Not. (-(x)={y(X|(y,x) (U}- mulimea predecesorilor lui x

Not. +(x)={u=(x,y)| u(U } mulimea arcelor ce ies din xNot. -(x)={u=(y,x)| u(U } mulimea arcelor ce intr in x

Obs. Vor avea loc egalitile:

d+(x)=| (+(x)|=| +(x)|d-(x)=| (-(x)|=| -(x)|

Exemplu: Pentru graful din figura de mai sus:

d+(1)=2 d-(1)=2

d+(4)=0 d-(4)=0 d+(5)=1 d-(5)=3

d+(6)=0 d-(6)=1(+(1)={3,5} (-(1)={2,5} (+(4)= (-(4)=(+(5)={6} (-(5)={1,3}(+(6)= (-(6)={5}+(1)={u3,u2} -(1)={u1,u4} +(4)= -(4)= +(5)={u7} -(5)={u2,u8}+(6)= -(6)={u7}Obs. Un vrf este izolat dac are gradul interior i gradul exterior egale cu 0.Obs. Un vrf se numete terminal dac are gradul interior 1 i gradul exterior 0.Obs. Suma gradelor interioare ale unui graf orientat este egal cu suma gradelor exterioare.

Def. Se numete lan ntr-un graf orientat o succesiune de L=(u1,u2,,un) cu proprietatea c orice dou arce vecine (ui i ui+1) au o extremitate comun.Def. Extremitatea x0 a arcului u1 se numete extremitate iniial, extremitatea xn a arcului un se numete extremitate final. Exemplu. Pentru graful din figura 1 un lan este: L1=(u4, u1, u2, u3, u8), sau L2=(u7,u1,u4).Obs. In definirea unui lan nu se ine cont de orientarea arcelor sale.Def. Se numete drum ntr-un graf orientat G=(X,U) unde X={x1, x2, ..., xn} este un ir de vrfuri notat D=( xi1, xi2, ..., xim) cu proprietatea c ( xi1, xi2), ( xi2, xi3), ..., ( xim-1,xim) sunt arce ale grafului.Obs. Un drum este un lan n care toate arcele au aceeai orientare dat de sensul de deplasare de la x0 ctre xm.Def. Dac toate vrfurile unui drum sunt distincte, drumul se zice elementar. Altfel este neelementar. Exemplu. Pentru graful din figura 1 un drum este: D1=(2, 3, 5, 6), sau D2=(1, 5, 1, 3, 2, 3, 5).Drumul D1 este elementar. Drumul D2 este neelementar.

Def. Dac toate arcele unui drum sunt distincte, drumul se zice simplu. Altfel se zice drum compus.

Def. Lungimea unui drum este dat de numrul de arce care l compun.

Def. Un drum n care toate arcele sunt distincte i extremitaile coincid (xi1=xim) se numete circuit.Def. Dac toate vrfurile circuitului cu excepia primului i ultimului vrf sunt distincte dou cte dou circuitul se zice elementar. Altfel este neelementar.

Exemplu. Pentru graful din figura 1 exemple de circuite: C1=(1, 2, 1), C2=(1, 2, 3, 5, 1), C3=(2, 1, 3, 5, 1, 3, 2).Circuitele C1 i C2 sunt elementare C3 este un circuit neelementar.Obs. Dou vrfuri ntre care exist dou arce cu orientri diferite este circuitul de lungime minim care se poate forma ntr-un graf.Def. Un drum hamiltonian ntr-un graf orientat este un drum care conine toate vrfurile grafului.

Def. Intr-un graf orientat G=(X,U) se numete circuit hamiltonian un circuit elementar care conine toate vrfurile grafului.

Def. Se numete graf hamiltonian un graf care conine un circuit hamiltonian.Def. Un drum eulerian ntr-un graf orientat este un drum simplu care conine toate arcele grafului.

Def. Intr-un graf orientat G=(X,U) se numete circuit eulerian un circuit care conine toate arcele grafului.

Def. Se numete graf eulerian un graf care conine un circuit eulerian.

Def. Un graf parial al grafului orientat G=(X,U) este un graf G1=(X,V) cu proprietatea c V(U (este graful nsui sau se obine din graful iniial prin eliminarea unor arce). Se mai spune c graful parial G1 este indus de mulimea de arce V.

Exemplu: graful din figura 2G1=(X, U) este graf parial al lui G din figura 1 X={1, 2, 3, 4, 5, 6} V={(1,5), (5,6), (3,5)}

Def. Un subgraf al unui graf orientat G=(X,U) este un graf H=(Y,V) astfel inct Y(X i V conine toate arcele din U care au ambele extremiti n Y (poate fi graful nsui sau se obine din acesta prin eliminarea unor vrfuri i a arcelor incidente cu acestea). Spunem c subgraful H este indus de mulimea de vrfuri Y.

Exemplu: graful din figura 3

H=(Y,V) este subgraf al lui G: Y={1, 4, 3, 5} V={(1,5), (1,3), (5,1), (3,5)}

Def. Un graf orientat G=(X,U) se numete conex dac pentru oricare dou vrfuri distincte x, y ( X exist un lan cu extremitile x i y. Def. Se numete component conex a unui graf orientat G un subgraf conex al su maximal n raport cu aceast proprietate (oricare ar fi un vrf din subgraf, nu exist un lan ntre acel vrf i vrfurile care nu fac parte din subgraf).

Obs. Un graf cu o singur component conex este conex.

Exemplu: Graful din figura 4 este conex. Graful din figura 5 nu este conex i are trei componente conexe C1=(X1,V1) X1={1, 3, 4} V1=((1,2), (2,4)}; C2=(X2,V2) X1={2} V2= ; C3=(X3,V3) X3={5, 6} V3=((5,6), (6,5)}.

Def. Un graf orientat este complet dac oricare dou vrfuri distincte ale sale sunt adiacente.

Obs. Spre deosebire de grafurile neorientate unde graful complet este unic, la grafurile orientate se pot construi mai multe grafuri orientate complete cu n vrfuri. Dou vrfuri x i y sunt adiacente ntr-un graf orientat n oricare din situaiile: exist arcul (x,y) sau arcul (y,x) sau arcele (x,y) i (y,x). Sunt n(n-1)/2 posibiliti de a alege dou vrfuri distincte. Pentru fiecare dintre acestea exist 3 situaii deci n total sunt 3n(n-1)/2 grafuri orientate complete cu n vrfuri.Def. Un graf este tare conex dac pentru oricare dou vrfuri x, y ( X exist un drum de la x la y i un drum de la y la x. Def. O component tare conex a unui graf orientat G=(X, U) este un subgraf G1=(X1,Y1) al lui G care este tare conex i care este maximal n raport cu aceast proprietate (adic oricare ar fi x ( X\X1, subgraful lui G generat de X1({x} nu mai este tare conex). Exemplu: graful din figura 6 este tare conex, iar graful din figura 7 nu este tare conex dar are dou componente tare conexe.

Def. Fiecrei muchii a unui graf orientat i se poate asocia o valoare care reprezint costul acelei muchii.

Def. Un graf orientat n care fiecrei muchii i s-a asociat o valoare se numete graf ponderat sau graf valoric.Def. Fie un graf orientat G=(X, U) i o funcie L: U(R+, care asociaz fiecrui arc u(U lungimea (costul sau ponderea) sa L(u). Lungimea unui drum n acest graf este egal, prin definiie cu suma lungimilor asociate arcelor sale.Def. Un graf orientat cu prprietatea c ntre oricare dou vrfuri x i y exist un arc i numai unul se numete graf turneu.

Def. Numim transpusul unui graf orientat G=(X, U) un graf G=(X, U) care are aceeai mulime de vrfuri ca i graful iniial, arcele sale fiind cele ale grafului iniial dar avnd sens opus. Reprezentarea grafurilor orientate:

Exist mai multe moduri de reprezentare a grafurilor, alegerea fcndu-se n funcie de tipurile de operaii care urmeaz s se efectueze:

1. matricea de adiacen: face o asociere ntre vrfuri i indicii matricei. Este o matrice ptratic cu nXn elemente, unde n este numrul de noduri.aij=1, dac arcul (i,j) exist

0, dac arcul (i,j) nu existObs. Matricea de adiacen a unui graf orientat nu este simetric fa de diagonala principal.

Obs. Numarul de valori 1 de pe linia i reprezint gradul exterior al nodului i.Obs. Numarul de valori 1 de pe coloana i reprezint gradul intrerior al nodului i.

2. matricea de inciden (matricea vrfuri-arce): este o matrice cu n linii i m coloane, unde n este numrul de vrfuri i m este numrul de arce; pe linii se rein vrfurile, pe coloane se rein muchiile; matricea are valorile 0, 1 i -1.

aij=1, dac i este extremitate iniial a arcului j -1, dac i este extremitate final a arcului j

0, dac i nu este extremitate a arcului j

Obs. Completarea matricei se face coloan cu coloan. Pe fiecare coloan sunt dou valori diferite de 0 (1 pentru vrful iniial, -1 pentru vrful final) iar celelalte valori sunt 0.

Obs. Numarul de valori 1 de pe linia i reprezint gradul exterior al nodului i. Obs. Numarul de valori -1 de pe linia i reprezint gradul intrerior al nodului i.3. matricea drumurilor: este o matrice ptratic cu nXn noduri unde n este numrul de vrfuri

aij=1, dac drumul de la i la j exist

0, dac drumul de la i la j nu existObs. matricea drumurilor se obine din matricea de adiacen prin aplicarea algoritmului lui Roy-Warshall. Se utilizeaz pentru a arta dac un graf este tare conex sau nu. Dac are n matrice numai valori de 1, insemn c graful este tare conex.

4. matricea costurilor: pentru reprezentarea grafurilor valorice. Este o matrice cu nXn elemente, unde n este numrul de noduri.

aij=costul arcului, dac arcul (i,j) exist

0, dac arcul (i,j) nu exist

, dac este o problem de minim (-, dac este o problem de maxim)Obs. Matricea de costurilor unui graf orientat nu este simetric fa de diagonala principal.5. lista de adiacen reprezentat folosind alocarea dinamic se reine pentru fiecare vrf lista succesorilor si

a) se folosete un vector care reine adresa de nceput a listei succesorilor fiecrui vrf

b) se folosete o list care reine adresa de nceput a listei succesorilor fiecrui vrf6. lista de adiacen reprezentat folosind tablouri bidimensionale cu dou linii i n+m coloane (n=numrul de vrfuri, m=numrul de arce), pe prima linie se scriu numerele de la 1 la n+m, iar pe a doua se reine n coloanele de la 1 la n coloana n care ncepe lista succesorilor nodului respectiv i n coloanele de la n+1 la m, coloana pe care se afl urmtorul succesor al nodului.

7. doi vectori: se reine un capt al arcului ntr-un vector, iar cellalt capt n al doilea vector. Lungimea vectorilor este egal cu numrul de arce.8. un vector de arce: se definete tipul arc (reine capetele arcului i eventual costul-pentru grafuri valorizate), apoi definim un vector de arce care are attea componente cte arce sunt.9. lista de arce (alocat dinamic): se definete tipul nod care reine capetele arcului i eventual costul - pentru grafuri valorice.

Arbori cu rdcinDef1. Se numete arbore un graf conex i fr cicluri.

Def2. (definiie recursiv dat de D.E.Knuth) Se numete arbore (arborescen) o mulime finit de n0 elemente numite noduri (vrfuri) care, dac nu este vid, are:

un nod special numit rdcina arborelui

celelalte noduri sunt repartizate n m0 mulimi disjuncte A1, A2, ..., Am, fiecare din ele fiind la rndul ei un arbore, iar un nod al fiecrei mulimi este adiacent rdcinii

Obs. O arborescen cu un singur nod este format doar din nodul rdcin. Def. Nodul rdcin r se consider de nivel 0. Deoarece A1, A2, ..., Am sunt la rndul lor arbori i ei au rdcinile r1, r2, ..., rm. Acestea formeaz nivelul 1 al arborelui. Def. Nodurile r1, r2, ..., rm se numesc fii ai rdcinii (descendeni ai rdcinii). Def. Rdcina este printe (tat) al nodurilor r1, r2, ..., rm. Astfel, continund procedeul, se pot defini nivelurile 2, 3, ....

Obs. Fii (subordonaii) tuturor nodurilor nivelului i formeaz nivelul i+1. Obs. Rdcina arborelui nu are un nod printe .Def. Descendenii unui nod sunt nodurile adiacente cu el, care se afl pe nivelul urmtor.

Def. Descendenii (subordonaii) aceluiai nod se numesc frai.

Def. Nodul care nu are nici un descendent se numete terminal sau frunz.

Def. Inlimea unui nod ntr-un arbore este lungimea celui mai lung drum de la nodul respectiv la un nod terminal.

Def. Inlimea unui arbore este

nlimea nodului rdcin egal cu 1+maximul dintre nlimile subarborilor rdcinii sale

numrul maxim de ascendeni ai unui nod terminal maximul dintre nivelele sale (nivelul maxim)

Def. Adncimea unui nod este lungimea drumului unic de la rdcin la acel nod.

Def. Se numete diametru al unui arbore distana maxim dintre dou noduri ale arborelui. Def. Ordinul (gradul) unui nod este numrul de descendeni direci ai acelui nod.

Def. Ordinul (gradul) unui arbore este gradul maxim al nodurilor sale.Def. Dac ordinul nodurilor este nelimitat arborele se zice arbore multici.Def. Dac ordinea relativ a nodurilor n arbore are importan, arborele se numete arbore ordonat. Def. Un arbore binar este o mulime finit de noduri care este fie vid, n care ficare nod are cel mult doi descendeni direci (fii).Exemplu. Pentru arborele binar din figura 2: nodul 3 este rdcin i tat pentru 2 i 4; arborele nu este ordonat;

nodurile 1, 5, 7 sunt terminale; nodurile 2 i 4 sunt fii ai rdcinii i sunt frai; ordinul arborelui este 2; nalimea arborelui este 3.

Obs. Cei doi subarbori ai rdcinii unui arbore binar se numesc subarbore stng i subarbore drept.

Def. Dac toate nodurile unui arbore, cu excepia celor terminale au exact doi descendeni, arborele se numete arbore binar complet.

Def. Un arbore binar care conine noduri terminale numai pe ultimele dou nivele i numrul de noduri din subarborele stng este mai mare cu cel mult unul fa de numrul de noduri din subarborele drept se numete arbore perfect (total) echilibrat.Prop. Un arbore binar complet care are n noduri terminale, toate situate pe acelai nivel, are n total, 2n-1 noduri.Obs. Un arbore binar complet are numr impar de noduri.Obs. Arborii din figura 3 sunt identici ca arbori, dar se face distincie ntre ei ca arbori binari. n primul caz, subarborele drept este vid, iar B este fiu stng al lui A. In cazul al doilea, subarborele stng este vid i B este fiu drept al lui A.Teorema de caracterizare a unui arbore: Pentru un graf G=(X, U) cu n2 noduri, m muchii i p componente conexe, urmtoarele afirmaii sunt echivalente:I. G este conex i fr cicluri

II. G este fr cicluri i m=n-1III. G este conex i m=n-1

IV. G este fr cicluri, maximal in raport cu aceast proprietate (dac se adaug o muchie ntre dou noduri neadiacente, se formeaz un ciclu)

V. G este conex x i minimal n raport cu aceast proprietate (dac se elimin o muchie oarecare se obine un graf care nu mai este conex)

VI. orice pereche de noduri din graf este legat print-un lan i numai unul

Def. Un subgraf parial al unui graf G=(X, U) care n plus este arbore se numete arbore parial. Prop. Un graf G=(X, U) conine un arbore parial dac i numai dac G este conex.

Prop. Orice arbore cu n2 noduri conine cel puin dou noduri terminale.

Prop. Un graf cu n noduri este arbore dac i numai dac are n-1 muchii i nu conine cicluri.Def. Fie un graf neorientat G=(X, U) i o funcie L: U(R+, care asociaz fiecrei muchii u(U un numr real numit costul (ponderea) sa L(u). Costul unui subgraf reprezint suma costurilor muchiilor sale.Def. Se numete arbore parial de cost minim un graf parial al grafului G conex i de cost minim care, n plus este arbore. Obs. Arborele parial de cost minim (APM) se poate obine cu algoritmul lui Kruskal sau cu algoritmul lui Prim.

Parcurgerea (traversarea, vizitarea) arborilor:1. parcurgerea n lime: se parcurge mai nti rdcina, apoi de la stnga la dreapta nodurile aflate pe primul nivel, apoi nodurile aflate pe al doilea nivel, s.a.m.d. Pentru reinerea nodurilor se folosete o structura de date de tip coad.2. parcurgerea n adncime: se parcurge mai inti rdcina, apoi fii rdcinii de la stnga la dreapta, ncepnd cu primul fiu. Trecerea de la un frate la altul se realizeaz numai dup vizitarea tuturor descendenilor nodului curent, deci a ntregului subarbore dominat de acesta. Pentru reinerea noduriloe se folosete o structur de date de tip stiv.3. parcurgerea n preordine: se viziteaz rdcina, apoi subarborele stng, apoi subarborii drepi. 4. parcurgerea n inordine: se viziteaz subarborele stng, apoi rdcina, apoi subarborii drepi.

5. parcurgerea n postordine: se viziteaz subarborele stng, apoi subarborii drepi, apoi rdcina.

Obs. Dac arborele este binar, parcurgerea n preordine, inordine i postordine se simplific deoarece arborele are maxim doi fii.Def. Se numete arbore binar de cutare (ordonat) un arbore pentru care la traversarea n inordine nodurile apar n ordinea cresctoare a cheilor (informaiei coninute n nod).Reprezentarea intern a arborilor:

Exist mai multe moduri de reprezentare a arborilor, alegerea fcndu-se n funcie de tipurile de operaii care urmeaz s se efectueze:

1. matricea de adiacen: face o asociere ntre noduri i indicii matricei. Este o matrice ptratic cu nXn elemente, unde n este numrul de noduri.aij=1, dac muchia [i,j] exist

0, dac muchia [i,j] nu existObs. Memorarea unui arbore folosind matricea de adiacen nu este eficient din punctul de vedere al alocrii spaiului.

2. vector de tai se folosete vectorul tat care conine pentru fiecare vrf tatl su. Nodul rdcin se consider de tat 0. Se mai poate folosi i un vector desc care s rein dac nodul respectiv este fiu stng sau drept al nodului respectiv.3. vector de descendeni se specific pentru fiecare nod fiul su stng i fiul su drept. Lipsa unui descendent se indic prin valoarea 0. Pentru memorarea arborelui se folosesc doi vectori, unul care reine fii stngi, altul reine fii drepi. Se mai poate folosi i un vector care s rein informaia nodului.4. alocarea dinamic se definete o structur de tip nod care conine informaia nodului i dou referine ctre fii si. Dac un fiu lipsete va indica 0 (NULL).5. lista de adiacen reprezentat folosind alocarea dinamic se reine pentru fiecare vrf lista succesorilor si

a) se folosete un vector care reine adresa de nceput a listei succesorilor fiecrui vrf

b) se folosete o list care reine adresa de nceput a listei succesorilor fiecrui vrf1

2

5

4

3

Figura 1.

Figura 2.

1

2

5

4

3

Figura 3.

1

5

4

Figura 4.

2

4

3

1

1

2

5

4

3

Figura 1.

1

3

2

Figura 5.

1

4

2

3

Figura 6.

1

4

3

2

Figura 7.

5

Figura 8.

1

4

3

2

5

Figura 9.

1

4

3

2

5

3

8

6

1

1

2

3

4

1

2

3

4

Figura 10.

6

5

4

3

1

2

8

7

Figura 11.

6

5

4

3

1

2

8

7

Figura 11.

Figura 8.

1

4

3

2

5

2

1

3

6

5

4

Figura 12.

1

2

61

51

41

31

Figura 14.

1

2

61

51

41

31

71

9

8

Figura 15.

3

2

4

6

5

1

Figura 1

3

2

4

6

5

1

Figura 1

3

2

4

6

5

1

Figura 2

3

4

5

1

Figura 3

3

2

4

6

5

1

Figura 1

3

4

5

1

Figura 3

5

3

2

4

1

Figura 4

15

35

45

65

25

5

Figura 5

Figura 6

15

35

45

25

65

5

15

35

45

25

Figura 7

r1

r

r

r

r

r2

rm

r

r

nivelul 2

nivelul 1

nivelul 0

r

Figura 1

1B

7

54B

4B

2B

6B

3A

Figura 2

A

A

B

B

Figura 3

19