Sunteți pe pagina 1din 6

Grafuri neorientate

Se numeste graf neorientat o pereche ordonata de multimi(X,U) cu semnificatia: X ese o multime finita si nevida de elemente numite noduri, U este o multime de perechi neordonate(submultimi cu 2 elemente din X), numite muchii. Un graf neorientat se noteaza cu G=(X,U), unde X se numeste multimea nodurilor graficului G, iar U se numeste multimea muchiilor. O submultime{x,y} de varfuri din X se noteaza cu u=[x,y]( u este muchie, iar x,y sunt extremitatile), uU. In cazul general, intr-un graf neorientat G=(X,U), se folosesc notatiile: Grafurile din figura 65 si figura 66 sunt exhivalente. Definitie Fie uU, u=[x,y]. Nodurile x,y din X sunt adiacente in G iar u si x sunt incidente (la fel u si y). In figura 67: -nodul 1 este adiacent cu nodul 2 deoarece ele sunt extremitati ale muchiei[1,2]. -nodul 2 este adiacent cu nodul 6 deoarece ele sunt extremitati ale muchiei[2,6]. -nodul 3 este inicident cu muchia [2,3] deoarece el este extremitate a muchiei. Gradul uni nod Prin gradul unui nod x notat d(x), se intelege numarul de muchii incidente cu nodul x. Fie graful neorientat G=(X,U)(fig71) X={1,2,3,4,5,6}si U={[1,2];[1,3];[1,4];[1,5];[3,4];[3,5];4,6]}; n=6(numarul de noduri), m=7(numarul de muchii). d(1)=4, deoarece muchiile incidente cu nodul 1 sunt in numar de 4; d(2)=1, deoarece exista o singura muchie incidenta cu nodul 2; d(3)=3, deoarece muchiile incidente cu nodul 3 sunt in numar de 3. Definitie Se numeste nod izolat un nod cu gradul 0. Se numeste nod terminal un nod cu gradul 1. Reprezentatrea in memorie a grafurilor neorientate Fie G=(X,U) un graf neorientat unde X={1,2,3,...,n}, nN*, este multimea nodurilor, iar U este multimea muchiilor. Reprezentarea in memoria calculatorului a unui graf neorientat se poate face prin mai multe modalitati; alegerea formei de reprezentare a unui graf depinde de problema pentru care se solicita algoritmul de rezolvare. Memorarea grafurilor folosinf matricea de adiacenta Matricea de adiacenta atasata unui graf este o matrice patrara cu n linii si n coloane (n numarul de noduri din multimea X), cu elementele: A[i,j]={1,[i,j] U; {0,[i,j]nu ap U. Observatii: 1. Matricea de adiacenta atasata unui graf neorientat este o matrice simetrica fata de diagonala principala, deoarece pentru orice muchie[i,j] U este adevarata relatiia A[i,j]=A[j,i]. 2. Muchia [i,j] exista in graful neorientat G=(X,U) reprezentat prin matricea de adiacenta, daca A[i,j]=1.
card(X)=n numarul de noduri din graf; card(U)=m numarul de muchii din graf.

3. Suma valorilor din matricea de adiacenta astasata unui graf neorientat este egala cu 2*m, unde m este numarul muchiilor din graf. 4. Fie x X. Gradul nodului lui x este egal cu suma valorilor de elementelor matricei de adiacenta atasata garafului neorientat, de pe linia x sau coloana x. Fie graful neorientat G=(X,U)(fig71) X={1,2,3,4,5,6}si U={[1,2];[1,3];[1,4];[1,5];[3,4]; [3,5];4,6]}; n=6(numarul de noduri), m=7(numarul de muchii). Matricea de adiacenta asociata acestui graf este: A= 011110 100000 100110 101001 101000 000100 Elementele din matricea de adiacenta situate pe diagonala principala au valoarea 0. Acestea sunt de forma A[i,i], cum nu exista muchie de la un nod la el insusi pentru grafurile studiate, rezulta ca A[i,i]=0. Se observa ca d(1)=4 (numarul elementelor egale cu 1 de pe prima linie), d(2)=1 (numarul elementelor egale cu 1 de pe linia 2). Pentru graful dat, suma elementelor din matricea atasata este 14, adica 2*m. Matricea de adiacenta atasta unui graf neoriantat poate fi cititadirect de la tastarura sau din fisierul de intrare sau poate fi completata initial cu 0, urmand a fi citite din fisierul de intrare m perechi de varfuri ce reprezinta muchiile de forma [x,y]; se completeaza A[x,y]=1si A[y,x]=1.

Memorarea grafurilor folosind listele de adiacenta Reprezentaraea unui graf neorientat se paote realiza utilizand listele de adiacenta a nodurilor:pentru fiecare nod se alcatuieste lista nodurilor adiacente cu el. Exemplu: Pentru graful G=(X,U) Se formeaza urmatoarele liste de adiacenta: -lista vecinilor lui 1: 2, 3, 4, 5; -lista vecinilor lui 2: 1; -lista vecinilor lui 3:1, 4 ,5; -lista vecinilor lui 4:1, 3 ,6; -lista vecinilor lui 5: 1,3; -lista vecinilor lui 6:4; Suma lungimilor listelor este egala cu 2*m, unde m reprezinta numarul de muchii. Memorarea grafurilor folosind vectorul de muchii struct muchie { int st,dr ;}; muchie v[30]; int m; m= numar muchii v[i].st, v[i].dr = extremitatile muchiei i Lant= sir de noduri , oricare 2 vecine sunt adiacente Lant simplu =lant cu muchii distincte

Lant elementar= lant in care nodurile sunt distincte 2 cate 2 Lungime lant= nr muchii ce compun lantul Ex:In fig 70 L1={2,1,4,6} e lant elementar L2={1,3,5,1,2} e lant simplu Ciclu= lant simplu in care primul si ultimul nod coincid Ciclu elementar= un ciclu in care nodurile sunt distincte 2 cate 2 in afara de primul si ultimul; Ex Fig 70 C1={1,5,3,1} ciclu elementar

Graf complet Definitie Se numeste graf complet cu n varfuri, notat K indice n, un graf G=(X,U) cu proprietatea ca oricare doua varfuri sunt adiacente, adica: orivare ar fi x,y apartinand lui X, rezulta ca exista mucia[x,y] apartinand lui U. Teorema 2: Un graf complet cu n varfuri, are [n*(n-1)/2] muchii. Graf bipartit : Se numeste graf bipartit, un graf G=(X,U) cu proprietatea ca exista doua multimi A si B incluse in X, astfel incat: *A intersectat cu B=multimea vida, A reunit cu B=X, *toate muchiile grafului au o extremitate in A si cealalta in B. Se numeste graf bipartit complet, un graf bipartit cu proprietatea ca pentru orice varf x din A si orice varf z din B, exista muchia (x,z) (unde A si B sunt cele doua submultimi care partitiomeaza multimea varfurilor x). Graf Hamiltonian graf ce contine un ciclu hamiltonian Ciclu hamiltonian ciclu elementar ce contine toate nodurile grafului Obs 1 : Un graf complet cu n noduri este hamiltonian. Obs 2 : Un graf hamiltonian are cel putin 3 noduri Graf eulerian = are un ciclu eulerian Ciclu eulerian=ciclu ce contine toate muchhile grafului Teorema Fie G=(X,U) graf fara noduri izolate . G este eulerian daca si numai daca fiecare nod are grad par si G este conex

Parcurgerea grafurilor neorientate Prin parcurgerea grafurilor intelegem o modalitate de vizitare a nodurilor acestuia.Exista 2 modalitati generale de parcurgere si anume: parcurgerea in latime(BF) si parcurgerea in adancime(BF) Parcurgerea in latime(BF Breadtg First) Parcurgerea in latime se face incepand de la un anumit nod i, pe care il consideram vizitat. Vizitam apoi toate nodurile adiacente cu el fie ele j1, j2,....jk, vizitate in aceasta ordine. Viziram toate nodurile adiacente cu j1, apoi cu j2, ...., apoi cu jk. ........ Parcurgera continua in acest mod pana cand au fost vizitate toate nodurile accesibile. Exemple de parcurgeri BF ale aceluiasi graf, pornind de la noduri diferite.

Pentru graful alaturat avem: Nod pornire 1: 1 3 6 2 7 5 4 Nod pornire 3: 3 7 6 1 2 5 4 Nod pornire 6: 6 3 1 7 2 5 4

Parcurgerea BF se efectueaza prin utilizarea structurii numita coada, avand grija ca un nod sa fie vizitat o singura data. Atunci cand un nod a fost introdus in coada se marcheaza ca vizitat. Coada va fi alocata prin utilizarea unui vector. Parcurgerea in adancime (DF Depth First) Parcurgerea in adancime se face incepand de la un anumit nod i, pe care il consideram vizitat Dupa vizitarea unui nod, se viziteaza primul dintre nodurile adiacente, nevizitate inca, apoi urmatorul nod adiacent, pana cand au fost vizitate toate nodurile adiacente cu el. ... Parcurgerea continua in acest mod pana cand au fost vizitate toate nodurile accesibile. Exemple de parcurgeri DF ale aceluiasi graf, pornind de la noduri diferite:

Pentru graful alaturat avem: Nod pornire1: 1 3 7 6 2 5 4 Nod pornire3: 3 7 6 1 2 5 4 Nod pornire6: 6 3 7 1 2 5 4 } Graf conex Definitie: Un graf neorientat G=(V,E) este conex, daca pentru orice pereche de noduri x,yV, exista un lant in care extrimitatea initiala este x si extremitatea finala este y.

Graful alaturat este conex. De exemplu intre nodurile 1 si 5 exista lanturi [1,2,3,4,5] dar si lantul [1,3,4,5]. Intre nodurile 3 si 5 exista lantul [3,4,5], samd. Oricum am alege 2 noduri, exista lantul cerut de definitie.

Graful alaturat nu este cnex. De examplu intre nodurile 1 si 4 nu exista nici un drum. Un graf cu un singur nod este, prin definitie, conex. Aceasta pentru ca nu exista 2 noduri diferite pentru care sa se puna problema existentei unui lant. Componente conexe Definitie Fie un G=(V,E) un graf neorientat si G1=(V1,E1) un subgraf al sau. Atunci G1=(V1,E1) este o componenta conexa a grafului G=(V,E) daca sunt indeplinite conditiile de mai jos: a. orcare ar fi x,yV1 exista un lant de la x la y. b. Nu exsta un alt subgraf al lui G, G2=(V2,E2) cu V1 INCLUS in V2 care indeplineste conditia a. 1.Graful alaturat este alcatuit din 2 componente conexe. Prima este alcatuita din nodurile 1,2,3 si muchiile care le unesc pe acestea, a doua este formata din nodurile 4 si 5 si muchia care le uneste Acest graf contine 3 componente conexe. Asa cum un graf, cu un singur nod, este conex, tot asa un nod izolat alcatuieste el singur o componenta conexa.

Observatii: 1. Cate componente conexe poate avea un graf neorientat cu n noduri? Numarul lor este cuprins intre 1 pentru un graf conex si n corespunzator unui graf cu toate nodurile izolate. 2. In unele probleme, se da un graf neorientat, care nu este conex si se cere sa se adauge un numar minim de muchii astfel incat graful sa devina conex. In astfel de cazuri, se determina componentele conexe, fie ele C1,C2,...,Cp. Fie p numarul lor.Vom adauga p-1 muchii, prima uneste un nod din C1 cu unul din C2, a diua uneste un nod din C2 cu unul din C3,...,ultima uneste un nod din Cp-1 cu unul din Cp.

3.

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