Documente Academic
Documente Profesional
Documente Cultură
1 10
4
9 Fig. 1
5 2
6
7 8
3 11
1
1 10
4
9
5 2
6 Fig. 2
7 8
3 11
2 Fig. 3
7
2
muchii [x,y] corespunzând acelor submulţimi {x,y} pentru care funcţia f ia valoarea
1.
Cum mulţimile A şi B = {0,1} sunt finite, având n(n-1)/2, respectiv 2
elemente, corespondenţa definită anterior între mulţimea grafurilor şi mulţimea
funcţiilor asociate în modul arătat este o bijecţie. Si atunci numărul total al
grafurilor cu mulţimea dată X de vârfuri este egal cu numărul total de funcţii
definite pe A cu valori în B = {0,1}, adică 2n(n -1)/2.
Definiţie. Gradul unui vârf x este numărul muchiilor incidente cu x. Se
notează cu d(x).
Un vârf care are gradul 0 (deci pentru care nu există vreo muchie incidentă
cu el) se numeşte vârf izolat. Un vârf care are gradul 1 (deci care este incident cu o
singură muchie) este numit vârf terminal.
Pentru graful din figura 1 avem: d(11) = 0, deci vârful 11 este izolat.
Propoziţia 1. Dacă un graf G = (X, U) are m muchii şi n vârfuri iar X =
n
3
Definiţie. Se numeşte graf complet cu n vârfuri un graf care are
proprietatea că oricare două noduri diferite sunt adiacente.
Un graf complet cu n vârfuri se notează prin Kn.
Propoziţia 2. Un graf complet Kn are n(n - 1)/2 muchii.
Demonstraţia rezultă imediat dacă se enumeră toate submulţimile formate
din câte două vârfuri.
Definiţie. Un graf G = (X, U) se numeşte bipartit dacă există două mulţimi
nevide A şi B astfel încât X = A ∪ B, A ∩ B = φ şi orice muchie u a lui G are o
extremitate în A iar cealaltă în B.
Observaţie. Mulţimile A şi B formează o partiţie a lui X.
Definiţie. Un graf bipartit se numeşte complet dacă pentru orice x din A şi
orice y din B, există în G muchia [x, y].
Dacă A are p elemente iar B q elemente, numărul total de muchii ale
unui graf bipartit complet este pq. Notaţia folosită pentru un asemenea graf este
Kp,q.
Definiţie. Se numeşte graf regulat un graf care are proprietatea că toate
nodurile au acelasi grad.
Obs. Daca un graf este complet atunci el este regulat.
6
2 Fig. 4
Pentru graful din figura 4, n este 6 iar matricea de adiacenţă A este
următoarea:
0 1 1 0 0 0
1 0 1 0 0 1
A= 1 1 0 0 0 1
0 0 0 0 1 1
0 0 0 1 0 1
0 1 1 1 1 0
2) Se precizează numărul n de vârfuri şi, pentru fiecare vârf i, lista Li a vecinilor
săi, adică lista vârfurilor j pentru care [i,j] ∈U.
Pentru graful din figura 4, n este 9 iar listele Li ale vecinilor, pentru toate
vârfurile i ale grafului G, sunt date în continuare:
vârf i lista Li a vecinilor săi
1 2,3
2 1,3,6
3 1,2,6
4 5,6
5 4,6
6 2,3,4,5
3) Se dau numărul n de vârfuri, numărul m de muchii.
O variantă de implementare mai naturală ar fi aceea de a defini un tip de dată
5
‘muchie’ utilizând tipul înregistrare, care să conţină cele două extremităţi ale unei
muchii, şi apoi de a defini un tablou cu n componente de acest tip:
type muchie = record
x,y:byte;
end;
……………………………..
var u:array[1..n] of muchie;
Referirea la extremităţile muchiei i se face prin: u[i].x, respectiv u[i].y.
Acest mod de reprezentare permite înglobarea naturală în tipul de date muchie şi a
altor informaţii asociate muchiilor (cost, lungime) şi este utilizată în problemele în
care muchiile se prelucrează succesiv, eventual după o modificare a ordinii lor în
tabloul u. Reprezentarea nu se pretează însă la parcurgerea rapidă a vârfurilor şi de
aceea este folosită mai rar.
2.3. METODA DE PARCURGERE BF
Prin parcurgerea unui graf neorientat se înţelege examinarea în mod
sistematic a nodurilor sale, plecând dintr-un vârf dat i , astfel încât fiecare nod
accesibil din i pe muchii adiacente două câte două, să fie atins o singură dată.
Trecerea de la un nod y la altul se face prin exploatarea, într-o anumită ordine, a
vecinilor lui y, adică a vârfurilor cu care nodul y curent (în care s-a ajuns) este
adiacent. Această acţiune este numită şi vizitare sau traversare a vârfurilor grafului
scopul acestei vizitări fiind acela de prelucrare a informaţiei asociată nodurilor.
Graful este o structură neliniară de organizare a datelor iar rolul traversării sale
poate fi şi determinarea unei aranjări lineare a nodurilor în vederea trecerii de la
unul la altul.
Am presupus că X = {1,2,…, n}. Atunci când vom prezenta metodele de
parcurgere a grafurilor, vom presupune că ordinea vârfurilor este cea dată de relaţia
de ordine “<”, existentă în mulţimea numerelor naturale. Este totuşi posibilă
introducerea, pe mulţimea vârfurilor, şi a altei relaţii de ordine, de exemplu
asocierea unor priorităţi care să schimbe ordinea în care vârfurile sunt prelucrate.
6
Există mai multe metode de parcurgere a grafurilor neorientate. Cele mai
importante sunt:
1) Metoda de parcurgere BF
2) Metoda de parcurgere DF
Algoritmul BF (Breadth First) parcurge graful “în lăţime “: se vizitează
întâi vârful iniţial i, apoi vecinii acestuia, apoi vecinii nevizitaţi ai acestora, şi aşa
mai departe.
Exemplu:
Pentru graful din figura 5, ordinea de parcurgere a nodurilor cu metoda BF,
când se pleacă din vârful 1, este următoarea: 1, 2, 3, 4, 5, 6, 7, 8.
1
2 4
3
5 Fig. 5
7 8
Observăm că în cazul particular al unui arbore este vizitată întâi rădăcina,
apoi sunt vizitate vârfurile de pe nivelul 1, apoi cele de pe nivelul 2 etc.
2.4. METODA DE PARCURGERE DF
2 7 10
3 4 6 8
9
5 Fig. 6
8
2 5
1 3 8
Fig. 7
4
2
Fig. 8
3 9 8
Definiţie. Se numeşte componentă conexă a grafului G =(X, U) un subgraf
C =(X1,U1), conex, al lui G care are proprietatea că nu există nici un lanţ în G
care să lege un vârf din X1 cu un vârf din X-X1.
Exemplu: Pentru graful din figura 8, C= (X1,U1), unde X1=[5, 6, 7, 8], iar
U1={[5, 6], [6, 8], [5, 8], [5, 7]}, este o componentă conexă.
Grafuri hamiltoniene
Definitie: Intr-un graf G=(X,U) se numeste ciclu hamiltonian un ciclu
elementar care contine toate varfurile grafului.
Observatii:
1. Ciclu hamiltonian = ciclu elementar de lungime n=card(X)
Definitie: Se numeste graf hamiltonian un graf care contine un ciclu
hamiltonian.
Observatii:
1. Daca un graf este hamiltonian el contine cel putin 3 varfuri.
2. Un graf complet este un graf hamiltonian.
Teorema: Daca G=(X,U) este un graf cu n>=3 varfuri, astfel incat gradul
fiecarui varf x satisface conditia d(x)≥ n/2 atunci G este hamiltonian.
Obs.: conditia este suficienta dar nu necesara.
Definitie: Intr-un graf G=(X,U) se numeste lant hamiltonian un lant
elementar care contine toate varfurile grafului.
10
Grafuri euleriene
Definitie: Intr-un graf G=(X,U) se numeste ciclu eulerian un ciclu care
contine toate muchiile grafului.
Definitie: Se numeste graf eulerian un graf care contine un ciclu eulerian.
Teorema de caracterizare: Un graf G=(X,U) fara varfuri izolate este
eulerian daca si numai daca este conex si gradele tuturor varfurilor sunt numere
pare.
Definitie: Intr-un graf G=(X,U) se numeste lant eulerian un lant care
contine toate muchiile grafului, fiecare muchie fiind prezenta o singura data.
Arbori:
Definitie: Se numeste arbore un graf conex si fara cicluri.
Observatie: Daca eliminam oricare muchie graful nu mai e conex si
adaugand oriunde o muchie, apare un ciclu.
Teorema (de caracterizare a arborilor): Fie un graf
G=(X,U).Urmatoarele afirmatii sunt echivalente:
1) G e arbore;
2) G e un graf conex, minimal cu aceasta proprietate ( eliminand o muchie
oarecare, se obtine un graf neconex );
3) G e graf fara cicluri, maximal cu aceasta proprietate ( daca se adauga o
muchie se obtine un graf care are macar un ciclu );
4) G conex cu n-1 muchii;
5) G fara cicluri cu n-1 muchii;
Definitie: Fie G un graf. Un graf partial H al sau care in plus este si arbore
se numeste arbore partial.
Corolar: Un graf G=(X,U) contine un arbore partial daca si numai daca G
este conex.
Definitie: Daca G e un graf cu n varfuri, m muchii si p componente conexe,
numarul µ(G)=m-n+p se numeste numarul ciclomatic al lui G. Se demonstreaza
ca µ(G)=numarul maxim de cicluri independente ale lui G.
11
Grafuri orientate
Definitie: Se numeste graf orientat o pereche ordonata de multimi G=(X,U)
unde:
X e o multime finita si nevida numita multimea varfurilor;
U este o multime formata din perechi ordonate de elemente distincte
din X, numita multimea arcelor.
Orice arc u din U se noteaza u=(x,y) unde:
x se numeste extremitate initiala a arcului u
y de numeste extremitate finala a arcului u
Daca exista arcul u=(x,y) atunci x si y se numesc adiacente si ambele sunt
incidente cu arcul u.
Definitie:
a) se numeste grad exterior al unui varf x, notat cu d+(x), numarul arcelor
care ies din x de forma (x,y) apartine U.
b) se numeste grad interior al unui varf x, notat cu d-(x), numarul arcelor
care intra in x, de forma (y,x) apartine U.
Definitie: Se numeste lant un sir de arce L=[u1, u2, ... un] cu proprietatea ca
oricare 2 arce vecine ui, ui+1 au o extremitate comuna. Altfel spus, un lant este un
traseu care uneste prin arce doua noduri, fara a tine cont de orientarea arcelor
componente.
Definitie: Un drum intr-un graf orientat G=(X,U) este un sir de varfuri
D=(xi0,xi1,...,xik) cu proprietatea ca (xi0,xi1), (xi1,xi2), ... (xik-1,xik) sunt arce ale
grafului (un lant in care toate arcele au aceeasi orientare).
Daca varfurile care fac parte din drum sunt distincte, drumul se numeste
elementar, altfel se numeste neelementar.
Definitie: Daca D=(xi0,xi1,...,xik) este un drum cu xi0=xik si toate arcele care
fac parte din el sunt distincte doua cate doua, drumul se numeste circuit.
Daca toate varfurile circuitului, cu exceptia primului si ultimului varf sunt
distincte doua cate doua, circuitul se numeste elementar.
12
Definiţie. Un graf parţial al grafului G = (X, U) este un graf G1 = (X, V)
astfel încât V ⊆ U, adică G1 are aceeaşi mulţime de vârfuri ca G si se obtine din
G prin suprimarea unor arce.
Definiţie. Un subgraf al unui graf G = (X, U) este un graf H = (Y, V)
astfel încât Y ⊂ X, iar V conţine toate arcele din U care au ambele extremităţi în
Y. Vom spune că subgraful H este indus sau generat de mulţimea de vârfuri Y si se
obtine din G prin suprimarea unor varfuri si a arcelor incidente cu acestea.
Definitie: Un graf G orientat e complet daca oricare doua varfuri din G
sunt adiacente.
Observatie: Exista 3n(n-1)/2 grafuri orientate complete cu n varfuri.
Graf conex
Definitie: Un graf orientat G = (X, U) este conex daca oricare ar fi doua
varfuri distincte ale sale, exista un lant care le leaga.
13
Definitie: Se numeste componenta conexa a grafului G = (X, U), un subgraf
G1 = (X1, U1) conex al lui G, maximal in raport cu aceasta proprietate (nu exista
nici un lant care sa lege un nod din X1 cu un nod din X-X1).
Definitie: Un graf orientat G = (X, U) este tare conex daca |X| =1 sau pentru
oricare doua noduri x, y∈X, exista un drum de la x la y precum si un drum de la y
la x.
Observatie : Tinand cont de definitia grafului tare conex deducem ca matricea
drumurilor asociata unui astfel de graf are toate elementele egale cu 1.
Definitie: Fiind dat un graf orientat G = (X, U), se numeste componenta tare
conexa a lui G, un subgraf G1=(X1, U1) tare conex al lui G, maximal in raport cu
aceasta proprietate (adica pentru orice nod x∈X-X1, subgraful indus de X1∪{x}nu
mai este tare conex).
14