Sunteți pe pagina 1din 46

GRAFURI SI ARBORI

GRAFURI NEORIENTATE
Grafuri neorientate
• Un graf neorientat este o pereche ordonata

G = (X,U),
unde X este o multime finita si nevida de elemente
numite noduri (vârfuri),
iar U este o multime de perechi (neordonate) de
elemente distincte ale lui X, numite muchii.
• O muchie având vârfurile i si j (numite
extremitatile sale) este notata prin [i, j] sau [j, i].
• nod/vârf = poate fi reprezentat în plan
printr-un punct (cerc etc.), eventual
numerotat
 vom considera ca sunt n noduri intr-un graf

• muchie = pereche neordonată de noduri;


poate fi reprezentată în plan printr–un
segment de dreaptă.
 vom considera ca sunt m muchii intr-un graf
• Exemplu 1. Graful neorientat
• G = (X = {1,2,3,4,5,6,7,8},

U = {[1,2], [1,5], [2,3], [2,4],[2,6], [3,6], [4,5], [7,8]})


poate fi reprezentat grafic ca în figura 1.
Noduri
• Un vârf (nod) care este extremitatea unei singure
muchii se numeste vârf (nod) terminal. (7 sau 8)
• Doua vârfuri unite printr-o muchie se numesc
vârfuri adiacente. (7 si 8, 1 si 2, 4 si 5)
• incidenta =
proprietatea unei
muchii de a uni două
noduri
 dacă [x,y] U, spunem că muchia este
incidentă cu nodurile x şi y
• gradul nodului x = numărul de muchii
incidente cu nodul x, notat d(x)
• nod izolat = nod cu gradul 0; d(x) = 0
• nod terminal = nod cu gradul 1; d(x) = 1
Propoziţie
• În orice graf neorientat cu n noduri şi m muchii,
are loc egalitatea
2*m = d(x1) + d(x2) + ... + d(xn)
 Suma gradelor varfurilor este dublul numarului de
muchii.
• Consecinta: In orice graf G exista un numar par de
varfuri de grad impar.
Subgraf
• Un subgraf al unui graf G = (X,U) este un graf

H = (Y, V),
unde Y  X, iar V este formata din toate muchiile
lui U care unesc vârfuri din Y.
• Astfel H = ({1,2,3,4}, {[1,2], [2,3], [2,4]}) este un
subgraf al grafului din figura 1.
subgraf = graf care se
obţine din graful iniţial prin
eliminarea unor noduri şi
a tuturor muchiilor incidente
Graf partial
• Un graf partial al unui graf G = (X,U) este un graf

H = (X, V) cu V  U.
• Astfel

H = ({1,2,3,4,5,6,7,8},
{[1,2], [2,3], [2,6] [3,6], [4,5], [7,8]})
 este un subgraf al grafului din figura 1.
• graf parţial = graf care se obţine din graful iniţial
prin eliminarea unor muchii, nu şi a nodurilor
Lant
• Numim lant într-un graf o succesiune de muchii
[i1,i2], [i2,i3],…, [in-1,in],
notata prescurtat [i1, i2, …,in].
• Lungimea lantului este definita ca fiind numarul
muchiilor care intra în componenta sa.
Astfel în graful din figura 1, [1, 2, 3, 6] este un lant.

• Un lant [i1, i2, …,in] pentru care i1, i2, …,in sunt
distincte se numeste lant elementar.
Ciclu

• Un ciclu elementar este un lant [i1, i2, …,in, i1] cu


proprietatea ca [i1, i2, …,in] este lant elementar si n
>= 3.
• Un lant [i1, i2, …,in, i1] în care muchiile sunt diferite
doua câte doua se numeste ciclu.
• În graful din figura 1
[1, 2, 4, 5 ,1] este un ciclu elementar,
iar [ 2, 1, 5 , 4, 2, 6, 3, 2] este ciclu (ne-elementar).
Graf neorientat conex
• Un graf neorientat se numeste conex daca oricare
doua vârfuri diferite sunt unite ale sale prin cel
putin un lant.
• Graful din figura 1 nu este conex
de exemplu, vârfurile 1 si 7 nu sunt unite prin nici
un lant.
• În cazul unui graf neconex se pune problema determinarii
componentelor sale conexe.

• O componenta conexa este


un subgraf conex maximal,
un subgraf în care nici un vârf al sau nu este unit cu
nici un vârf din afara subgrafului printr-o muchie.
• Se observa ca împartirea unui subgraf în
componentele sale conexe determina o partitie a
multimii vârfurilor. De exemplu, pentru graful din
figura 1 se obtine: X = {1,2,3,4,5,6}  {7,8}.
• Un nod izolat constituie o componentă
conexă
Tipuri particulare de grafuri
• graf regulat = graf în care toate nodurile
au grade egale

• graf aciclic = graf în care nu există nici un ciclu


• graf complet = graf în care orice două
noduri distincte sunt adiacente
 numărul de muchii într-un graf complet
este n*(n–1)/2 . Graful se noteaza Kn
 numărul grafurilor neorientate cu n vârfuri
este 2^n*(n-1)/2
 numărul grafurilor partiale peste un graf cu
m muchii 2^m
Graf bipartit
• Un graf neorientat G = (X,U) se numeşte
bipartit dacă mulţimea vârfurilor sale poate fi
partiţionată în două submulţimi A şi B nevide
A  B = X, A  B = 
• astfel încât orice muchie are
o extremitate în A şi una în B.
Graf bipartit complet
• Un graf bipartit se numeşte complet dacă
fiecare vârf din mulţimea A este adiacent cu
fiecare vârf din mulţimea B.
• Observaţie: Dacă numărul de vârfuri din
mulţimea A este p, iar numărul de vârfuri din
mulţimea B este q,
• graful bipartit complet se notează Kp,q şi
conţine p*q muchii.
Graf hamiltonian
• ciclu hamiltonian = ciclu elementar care trece prin
toate vârfurile grafului
• graf hamiltonian = graf care conţine cel puţin un
ciclu hamiltonian
• Condiţie suficientă de existenţă a unui ciclu
hamiltonian:
 Un graf neorientat cu n vârfuri, în care gradul
oricărui vârf este mai mare sau egal cu n/2
este hamiltonian.
Graf eulerian
• ciclu eulerian = ciclu care trece prin toate
muchiile grafului
• graf eulerian = graf care conţine un ciclu eulerian
• Condiţie necesară şi suficientă de existenţă a
unui ciclu eulerian:
Un graf fără vârfuri izolate, este eulerian
dacă şi numai dacă este conex si
gradele tuturor vârfurilor sale sunt
pare.
Observatii
• Un graf complet cu numar impar de varfuri este
hamiltonian si eulerian.
• Un graf complet cu numar par de varfuri este
hamiltonian si NU este eulerian
 pentru ca are toate gradele impare.
Metode de reprezentare
• Matricea de adiacenta: matricea este
simetrica fata de diagonala principala,
gradul unui nod d(x) = numarul de valori
1 de pe linia/coloana x
• Listele de adiacenta:
L1: 2,4
L2: 1,3,4
L3: 2,5
L4: 1,2
L5: 3,6
L6: 5
Metode de reprezentare
• Lista de muchii
2 1
4 1
4 2
3 2
5 3
6 5
GRAFURI ORIENTATE (DIGRAFURI)
Grafuri orientate
• Un graf orientat este o pereche ordonata

G = (X,U),
unde X este o multime finita si nevida de elemente
numite noduri (vârfuri),
 iar U este o multime de perechi ordonate de
elemente distincte ale lui X, numite arce.
• Un arc având vârfurile i si j (extremitatile sale) se
noteaza prin (i, j).
• Deosebirea fata de grafurile neorientate consta în
faptul ca fiecare arc (i, j) are un sens de
parcurgere si anume
 de la extremitatea initiala i la extremitatea finala j.

• Graful orientat G = ( X = {1,2,3,4,5,6,7,8},


U={(1,2), (5,1), (2,3), (2,4), (6,2), (3,6), (4,5), (8,7)} )
poate fi reprezentat grafic ca în Figura 2.
• adiacenta = proprietatea a două noduri de
a fi unite prin arc; dacă (i,j) U, spunem că
nodurile i şi j sunt adiacente
• incidenta = proprietatea unei arc de a uni
două noduri; dacă (i,j)  U, spunem că arcul
(i,j) este incident cu nodul i.
• gradul intern al nodului i = numărul de
arce care intra in nodul i, notat cu d-(i)
• gradul extern al nodului i = numărul de
arce care ies din nodul i, notat cu d+(i)
• nod izolat = nod cu gradul intern si extern 0
Propozitie
• În orice graf orientat cu n noduri şi m arce, are loc
egalitatea:
suma gradelor interioare =
= suma gradelor exterioare =
= numarul de arce
• În cazul grafurilor orientate, notiunile de lant si
ciclu îsi au corespondentul în notiunile de drum si
circuit.

• Astfel în graful din Figura 2:


 (1,2,3,6,2,4) este un drum
 (1,2,3,6) este un drum elementar
 (1,2,3,6,2,4,5,1) este un circuit
 (1,2,4,5,1) este un circuit elementar
Tare conexitate
• graf tare conex = oricare ar fi două noduri
distincte i si j, există drum si de la i la j si
de la j la i.
• componentă tare conexă = un subgraf
tare conex şi maximal în raport cu această
proprietate
nu există drum între un nod din subgraf şi un
nod care nu aparţine subgrafului
• Un nod izolat este o componentă tare
conexă.
Graf orientat complet
• Un graf orientat (sau neorientat) se
numeşte complet dacă oricare două
vârfuri din graf sunt adiacente.
• Pentru un număr de vârfuri fixat,
 graful neorientat este unic,
 dar grafurile orientate complete
sunt mai multe.
• Exemplu: Grafuri orientate complete cu 4 vârfuri
Graf plin
• graf plin = graf în care intre orice două
noduri distincte i si j exista si arcul (i, j)
si arcul (j, i)
• numărul de arce într-un graf plin = n*(n–1)
Graf transpus
• Fie G = (X,U) un graf orientat. Graful

GT = (X, UT)
se numeşte graf transpus al grafului G dacă
UT = { (j, i) | (i, j)  U}.

Graful Graful transpus al lui G:


T
Matricea de adiacenta
• matricea de adiacenta nu este simetrica fata de
diagonala principala
• gradul exterior = numarul de valori 1 de pe linia i
• gradul interior = numarul de valori 1 de pe
coloana j
Observatii
• Cu ajutorul unui graf neorientat putem modela o
relaţie simetrică între elementele unei mulţimi,
 în timp ce cu ajutorul unui graf orientat modelăm
o relaţie care nu este simetrică.

• Între oricare două vârfuri ale unui graf poate


exista cel mult o muchie / arc.
Dacă între două vârfuri există mai multe muchii /
arce atunci structura se numeşte multigraf
ARBORI
Arbori
• Arborele este un graf neorientat conex si fara
cicluri.
• Exemplu de arbore în Figura 3.
Urmatoarele afirmatii sunt echivalente
• A este arbore cu n varfuri
• A este conex cu n-1 muchii
• A este aciclic cu n-1 muchii
• A este conex minimal (daca se elimina o muchie
se distruge conexitatea)
• A este aciclic maximal (daca se adauga o muchie
se formeaza un ciclu)
• Oricare ar fi doua noduri distincte in arbore exista
un lant elementar unic intre ele.
Arbori cu radacina
• În multe aplicatii, se evidentiaza un vârf: radacina.
Astfel, asezam arborele pe nivele:
plasam radacina pe nivelul 1;
plasam pe fiecare nivel i >= 2
• vârfurile pentru care lungimea lanturilor care le
leaga de radacina este i–1.
• Un arbore cu radacina este un arbore in care exista un
nod special numit radacina, iar toate celelalte noduri
reprezinta descendenti directi sau indirecti ai radacinii.
• La arborele din Figura 3 alegând drept radacina
vârful 4 obtinem arborele asezat pe nivele din
Figura 4:
• vârfurile de un nivel i >= 2 legate de acelasi vârf k
de pe nivelul i-1 se numesc succesorii (fiii,
descendentii directi) vârfului k,
k este ascendent direct (tata) al acestor vârfuri.

• gradul vârfului se defineşte ca la grafuri


neorientate = numărul de muchii incidente cu
vârful
• vârfurile de grad unu se numesc frunze (varfuri
terminale),
celelalte vârfuri sunt vârfuri interne (neterminale)
• daca exista un drum de la vârful i de pe nivelul m la
un vârf j de pe nivelul n >= m+1,
atunci i este ascendent al lui j, iar j descendent al lui i
• descendent al nodului x = nod care se afla pe un
lant elementar ce pleaca din x, altul decat cel care
uneste radacina de x.
• fiu/descendent direct al nodului x = descendent al
nodului x adiacent cu x (nod adiacent cu x care nu
se afla pe lantul care uneste radacina de nodul x)
• ascendent al nodului x = nod care se afla pe lantul
elementar care uneste radacina de nodul x.
• parinte/tata/ascendent direct al nodului x =
ascendent al nodului x adiacent cu x.
• frunza/terminal = nod care nu are descendenti
(are gradul 1)
• adancime = lungimea lantului elementar maximal
care uneste radacina cu o frunza
• inaltimea arborelui = numarul de muchii a lantului
maxim de la radacina la o frunza
• arbore degenerat = arbore in care orice nod care
nu este terminal are exact un descendent
direct/fiu.
Arbori n-ari
• Un arbore se numeste arbore n-ar daca valoarea
maxima a gradului vârfurilor sale este n.
• Daca toate vârfurile sale au acelasi grad, n,
arborele se numeste arbore n-ar strict.
• În cazul n = 2 arborele se numeste binar, respectiv
binar strict.
Metode de reprezentare
• Matricea de adiacenţă
• Vectorul de tati:

Parintele nodului i, daca i ≠ radacina


tata(i) =
0, altfel

1 2 3 4 5 6 7 8 9 10
2 4 6 0 4 5 6 9 4 9

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