Sunteți pe pagina 1din 10

GRAFURI

Numim graf o pereche ordonat de mulimi, notat G=(X,U), unde X este o mulime finit i nevid de elemente numite noduri sau vrfuri, iar U este o mulime de perechi (ordonate sau neordonate) de elemente din X numite muchii (dac sunt perechi neordonate) sau arce (dac sunt perechi ordonate). n primul caz, graful se numete neorientat, altfel acesta este orientat. Aadar un graf poate fi reprezentat sub forma unei figuri geometrice alctuite din puncte (care corespund vrfurilor) i din linii drepte sau curbe care unesc aceste puncte (care corespund muchiilor sau arcelor).

I. TIPURI DE GRAFURI
1. GRAFURI NEORIENTATE

Definitie : Se numeste graf neorientat o pereche de multimi G = (A,B) in care A este multimea nodurilor (este finita si nevida) si B este multimea relatiilor/muchiilor. B = { (x,y) / x apartine lui A, y apartine lui A } Definitie : O muchie a apartine de B este deci o submultime cu elemente {x,y} de varfuri distincte din A si o vom nota (x,y)-notatie muchie.Vom spune ca varfurile x si y sunt adiacente in G si ca ambele sunt incidente cu muchia (x,y). Varfurile x si y se mai numesc si extremitatile muchiei(x,y). Daca B1 si B2 sunt 2 muchii care au o extremitate comuna,ele vor fi numite deasemenea incidente. A = {1,2,3,4,5}
Page 1

{(1,2),(1,3),(2,3),(2,5)}

Exemplu: -1 este adiacent cu 2 si 3 -1 si 2 sunt extremitatile (1,2) - nodul 1 este incident cu (1,2) - (5,2) si (2,3) sunt incidente Gradul unui nod la grafurile neorientate Gradul unui nod x , notat cu d(x),reprezinta numarul muchiilor care trec prin nodul x (incidente cu nodul x). Exemplu: - d(1)=2 Nodul care are gradul 1 se numeste nod terminal. Nodul care are gradul 0 se numeste nod izolat. Proprietati: d + (x) + d - (x) = d(x) Daca un graf are m muchii sau arce atunci: d( x 1 )+d(x 2 ) + ... + d(x n ) = 2m Lanturi Se numeste lant o succesiune de noduri x 1 ... x k , cu proprietatea ca oricare doua noduri vecine (x i ,x i+1 ) apartin de B. x 1 , x k sunt extremitatile lantului Lungimea lantului este egala cu numarul de muchii care il compun, k-1. Daca nodurile din lant sunt distincte, atunci lantul este elementar, in caz contrar este neelementar. Exemplu: 1,2,3,1,4 - Lant neelementar (lungime 4) 1,2,3,4 - Lant elementar (lungime 3) 1,2,3,1,2,5 - Lant neelementar (lungime 5) 1,2,3,5 - Nu este lant

Cicluri Se numeste ciclu intr-un graf neorientat un lant x1 , x2 ... x k cu proprietea ca x1 =xk si oricare 2 mchii (x i ,x i+1 ) sunt distincte. Daca un ciclu are toate nodurile distincte 2 cate 2 cu exceptia capetelor, atunci el se numeste ciclu elementar, in caz contrar neelementar.
Page 2

Exemplu: 1,2,3,4,1 - Ciclu elementar 2,3,4,1,2 - Ciclu elementar 1,2,3,4,2,3,1 - Nu este ciclu 1,2,3,4,2,5,1 - Ciclu neelementar

2. GRAFURI ORIENTATE

Definitie: Se numeste graf orientat o multime ordonata (A,B) in care A este multimea nodurilor (finita si nevida), iar B este multimea arcelor. Definitie : Pt muchia (x,y) nodul x reprezinta extremitatea initiala,iar y extremitatea finala a muchiei.De remarcat faptul ca la grafurile orientate muchia(x,y) este diferita de muchia(y,x). Raman valabile notiunile de varfuri adiacente si varfuri incidente cu o muchie prezentate la grafuri neorientate.

Gradul unui nod la grafurile orientate


Gradul exterior al unui varf x notat cu d + (x), reprezinta numarul arcelor care ies din nodul x,adica nr arcelor de forma (x,y)apartine de B. Gradul interior al unui varf x notat cu d - (x), reprezinta numarul arcelor care intra in nodul x,adica nr arcelor de forma (x,y)apartine de B. A = {1,2,3,4,5}
Page 3

B = {(1,2),(2,1),(2,3),(3,1),(5,2)}

Exemplu: - d(1)=3 - d + (1)=1 - d - (1)=2 Proprietati: 1. d + (x 1 ) + d + (x 2 ) + ... + d + (x n ) = m 2.d - (x 1 ) + d - (x 2 ) + ... + d - (x n ) = m Drumuri Se numeste lant o succesiune de arce u 1 , u 2 ... u k , cu proprietatea ca oricare doua arce de pe pozitii consecutive au un nod comun. Observatie: nu conteaza ordinea de parcurgere Se numeste drum o succesiune de noduri x 1 , x 2 ... x k cu proprietatea ca (x i ,x i+1 ) este arc. Observatie: conteaza ordinea de parcurgere Daca nodurile sunt distincte, drumul se numeste elementar,in caz contrar este neelementar. Exemplu:

Lanturi (1,2),(2,3),(3,4) - Da (1,2),(5,2),(2,3) Da (1,2),(2,1),(1,3) Nu (1,2),(2,3),(1,5),(5,2) - Nu Circuite

Drumuri 1,2,3,1,2 - Drum neelementar 1,2,3,4 - Drum elementar 3,1,2,5 - Nu este drum

Se numeste circuit intr-un graf un drum x 1 ,x 2 ... x k cu prop ca x 1 = x k si arcele (x i ,x i+1 ) sa fie distincte doua cate doua. Un circuit in care toate nodurile sunt distincte cu exceptia capetelor se numeste circuit elementar.

Page 4

Exemplu:

1,2,3,1 - Circuit elementar 2,3,1,2 - Circuit elementar 1,2,3,1,2,1 - Nu este circuit

Page 5

II. REPREZENTAREA GRAFURILOR IN MEMORIE


1. Reprezentarea prin matrice de adiacenta
A. Pentru grafuri neorientate a[i,j] = 1, daca intre i si j este muchie a[i,j] = 0 altfel 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0

Observatie: Pe diagonala principala toate elementele sunt 0 (nu avem bucle). Matricea este simetrica fata de diagonala principala, deci: a[i,j] = a[j,i]. B. Pentru grafuri orientate a[i,j] = 1, daca exista arcul (i,j); a[i,j] = 0, altfel. 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0

2. Liste de adiacenta
Pentru fiecare nod se memoreaza o lista a vecinilor sai. Pentru intregul graf este necesar un vector de liste (P) in care P i este adresa primului element al listei asociate lui i.
Page 6

Nod Lista de adiacenta asociata 1. 2,3,5 2. 1,3 3. 1,2 4. 5. 1

De exemplu, pentru i = 1, informatia din lista figurata mai sus se va completa astfel : p[1] 2 3 5. Nod Lista de adiacenta asociata 1. 2,3, 2. 1,3 3. 2 4. 5. 1

Observatie: pentru grafurile orientate se memoreaza in lista lui i nodurile k pentru care exista arcul (i,k)

3. Matrice arce-noduri
Este o matrice b de dimensiune linii si m coloane in care elem b[i][j]= 1,daca i-extremitatea initiala a arcului -1,daca i-extremitatea finala a arcului 0,daca nodul i-nu este nici o extremitate pt arcul cu nr j Este folosita in special pentru grafurile orientate.

Page 7

4. Matricea noduri-arce
Observatie: matricea noduri-arce poate fi adaptata si pentru grafurile neorientate.

5. Vector de muchii
Fiecare arc al grafului poate fi privit ca o inregistrare cu 2 campuri care defapt sunt cele 2 noduri, care constituie extremitatile arcului. Putem defini tipul: typdef struct {int st,dr;} TARC;

III. PARCURGEREA GRAFURILOR


Parcurgerea unui graf presupune vizitarea (prelucrarea) nodurilor grafului, o sigura data fiecare,intr-o anumita ordine. Nodurile vizitate sunt legate intre ele direct sau indirect. In functie de ordinea relativa a nodurilor exista 2 metode de parcurgere: 1. Metoda parcurgerii pe latime - Breadth First (BF) 2. Metoda parcurgerii in adancime - Depth First (DF) 1. Metoda parcurgerii pe latime - Breadth First (BF)

A. Pentru grafuri neorientate

Page 8

Se porneste de la un nod oarecare x. Se viziteaza toti vecinii directi ai nodului x daca nu au fost deja vizitati. Fiecare dintre nodurile vizitate la pasul anterior devine nod curent si este prelucrat la fel ca nodul x. x=1 1, 2, 3, 4, 6, 7, 8, 9, 5

B. Pentru grafuri orientate


Observatie: algoritmul se adapteaza astfel incat sa poata fi luati in considerare toti vecinii unui nod.

2. Metoda parcurgerii in adancime - Depth First (DF) A. Pentru grafuri neorientate


Se porneste de la un nod oarecare x. Se alege primul vecin al lui x care nu a fost inca vizitat,de ex y,dupa care se trece la primul vecin nevizitat al lui y si asa mai departe pana cand se parcurge in adancime ramura respectiva. Cand s-a ajuns la capatul ei, se revine la nodul din care s-a plecat ultima data si se parcurge urmatorii sai vecini nevizitati.

Page 9

B.Pentru grafuri orientate


Parcurgerea este similara, punandu-se conditia de parcurgere a tuturor vecinilor unui nod indiferent de sens.

Page 10

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