Documente Academic
Documente Profesional
Documente Cultură
Vârfuri adiacente = noduri legate prin muchie Noduri legate prin arce.
Adiacent = Vârful xi este adiacent cu xj dacă perechea (xi, Nodurile xi şi xj se vor numi adiacente dacă
xj)E. Într-un graf neorientat existenţa muchiei (xi,xj) există cel puţin unul din arcele (xi,xj) şi (xj,xi).
presupune că (xi este adiacent cu xj şi xj adiacent cu xi,
Muchii incidente = muchii cu o extremitate comună Având arcul(i,j) se mai spune că acesta este
Incidenţă = o muchie este incidentă cu un nod dacă îl are pe incident spre exterior cu i şi incident spre
acesta ca extremitate. Muchia (xi,xj) este incidentă în nodul interior cu j
xi, respectiv xj.
Incidenţă spre interior = Un arc este incident
spre interior cu un vârf dacă îl are pe acesta ca
vârf terminal (arcul converge spre vârf). Arcul
(v,w) este incident spre interior cu vârful w.
Gradul unui vârf i = d(i) = numărul muchiilor cu o Gradul interior al vârfului i d-(i)=numărul
extremitate în i arcelor incidente cu i pentru care i este
Fie graful G=(V,E) cu n vârfuri x1, x2,…xn şi m muchii . extremitate finală.(arcele care intră în nodul x)
Arunci suma gradelor nodurilor grafului este 2m adică: Gradul exterior al vârfului i d+(i)=numărul
n arcelor incidente cu i pentru care i este
d ( x ) 2m
k 1
k extremitate iniţială.(arcele care ies din nodul x)
gradul unui nod i: este suma semigradelor
Fiecare graf are un număr par de vârfuri cu grad impar.
nodului i: d(i)= d-(i) +d+(i);
d+(i)=3 d-(i)=2
2 3
3 6 5
Ciclu elementar 3, 6, 4, 5, 1, 3 Circuit elementar 1, 3, 5,
4, 2, 1
Graf regulat = un graf în care toate vârfurile au acelaşi grad
Graf complet(Kn )= dacă oricare 2 vârfuri ale sale sunt Dacă graful este orientat există mai multe
adiacente (există o muchie între i,j V) grafuri complete cu un număr dat de vârfuri,
Graful complet este unic. acestea deosebindu-se fie prin orientarea arcelor,
2 fie prin aceea că între două vârfuri oarecare
Pentru un graf neorientat cu n vârfuri, graful Kn are
n c
există sau un arc sau două arce de sensuri
muchii( orice muchie este o submulţime de 2 vârfuri) contrare.
Observaţie: Graful Numărul total de grafuri orientate complete ce
neorientat complet cu n n ( n 1)
vârfuri se notează şi
se pot forma cu n vârfuri este
3 2
conţine muchii.
Numărul de grafuri orientate complete care se pot construi
cu n noduri este egal cu .
Există arcul (u,v), există arcul (v,u) sau există ambele arcuri
2
(u,v), (v,u). Cum sunt C n posibilităţi de a alege două vârfuri
distincte iar pentru fiecare dintre acestea există 3 situaţii ca
ele să fie adiacente, rezultă că pentru n dat sunt 3 x grafuri
2
orientate complete cu n vârfuri unde x= C n .
Grafuri neorientate Grafuri orientate
Graf bipartit
Un graf neorientat se numeşte bipartit dacă
mulţimea vârfurilor sale poate fi partiţionată în două
submulţimi A şi B nevide astfel încât
orice muchie are o extremitate în A şi una în B.
graf neconex
Definitie: Se numeste arbore un graf neorientat care este conex si nu contine cicluri.
Un program care verifica daca un graf este arbore:
3
1. se face verificarea daca un graful este conex, se parcurge graful in adancime, dupa alegerea unei
muchii, de exemplu de la i la j se elimina muchia de la j la i. In final daca au fost atinse toate nodurile
inseamna ca graful este conex.
2. trebuie analizat daca graful nu are cicluri. Se realizeaza tot cu parcurgerea in adancime, parcurgerea
asigura selectia unei muchii o singura data. Daca graful are cel putin un ciclu, atunci un nod este atins
de doua ori.
Apoi rezultă că G este un arbore
(Definiţia recursivă dată de D.E. Knuth) Se numeşte arbore o mulţime finită T de noduri care îndeplinesc
propietăţile :
există un nod cu rol special numit rădăcină
celelalte noduri sunt repartizate în q≥0 mulţimi disjuncte T1…..Tq, unde fiecare dintre acestea
este un arbore
1 2
3 4
2
3
1
5 4 5
1 3
2 4
Studiul arborilor este justificat de existenţa în practică a unui număr mare de probleme care pot fi
modelate prin arbori. Dintre acestea amintim:
1. construirea unor reţele de aprovizionare cu apă potabilă (sau cu energie electrică sau termică etc) a
unor puncte de consum, de la un punct central;
2. construirea unor căi de acces între mai multe puncte izolate;
3. desfăşurarea unui joc strategic;
4. luarea deciziilor în mai multe etape (arbori decizionali);
5. evoluţii posibile ale unui sistem pornind de la o stare iniţială;
6. construirea unei reţele telefonice radiale, a unei reţele de relee electrice;
7. legarea într-o reţea a unui număr mare de calculatoare;
8. organigramele întreprinderilor;
9. studiul circuitelor electrice în electrotehnică ;
10. schemele bloc ale programelor pentru calculatoare etc.
În toate problemele de mai sus se doreşte ca, dintre muchiile unui graf neorientat, să se extragă arborele
optim din mulţimea tuturor arborilor care pot fi extraşi din graful dat.
Deoarece definiţia arborelui este dificil de aplicat pentru deciderea faptului că un graf este arbore sau nu (şi
în special sunt greu de verificat conexitatea şi mai ales existenţa ciclurilor) există mai multe caracterizări
posibile ale unui arbore, acestea fiind date de teorema de mai jos
Propietati ale arborilor:
Fie G(V,E), un graf neorientat de ordin n cu n≥2 noduri, m muchii şi p componente conexe. Urmatoarele
afirmatii sunt echivalente şi caracterizează un arbore :
1. G este un arbore
2. Oricare doua varfuri sunt unite printr-un lant simplu unic.
3. G este conex si minimal cu aceasta propietate(daca eliminam o muchie oarecare devine neconex)
4. G este aciclic si maximal cu aceasta propietate(daca adaugam o muchie intre oricare două nosuri
adiacente se formeaza un ciclu şi numai unul)
5. G este conex si are m=n-1 muchii
6. G este aciclic si are m=n-1 muchii
Teorema:
Fie un graf neorientat G cu n noduri. G este arbore daca si numai daca are n-1 muchii si nu contine cicluri.
Teorema: Numerele intregi 0<d1<= d2<=…….dn sunt gradele varfurilor unui arbore de ordin n>=2 daca si
numai daca d1+d2+….dn=2n-2
Fie G un graf neorientat. Un subgraf parţial H al lui G cu propietatea că H este arbore se numeşte arbore parţial
al lui G.
Un graf neorientat G conţine un arbore parţial dacă şi numai dacă G este conex.
Un arbore cu n ≥2 vârfuri conţine cel puţin două vârfuri terminale.
Orice arbore cu n vârfuri are n-1 muchii.
Arbori cu radacina:
Definitie: Un arbore cu radacina este o multime finita de noduri care este fie multimea vida, fie o multime
nevida cu urmatoarele propietati:
a) Exista un nod special numit radacina arborelui
b) Multimea celorlalte noduri este partitionata in k submultime V1, V2,….VK, fiecare submultime fiind la
randul ei un arbore cu radacina(subarborii radacinii) radacina arborelui fiind unita prin muchii cu radacinile
subarborilor.
2 nivel 1
3
subarborii radacinii 6
nivel 2
4 5
7 nivel 3
-liste de adiacenta
Pentru fiecare nod se pastreaza informatia utila asociata nodului precum si un vector de referinte catre fii.
struct arb{ arb fii;
nod *prim;
tip_info info;};
se poate utiliza o lista simplu inlantuita in care sa pastram referintele catre fii.
-legaturi de tip TATA-arborele se reprezinta sub forma unui vector t cu n componente: daca t[i]=k, atunci nodul
i este descendent al nodulul k. Daca nodul i este varf t[i]=0.
Exemplu: t
5 535503417
123456789
3 1 4
2 6 8 7 9
Parcurgerea arborilor
Parcurgerea în lăţime
Parcurgerea în adâncime
Arbori binari:
Definitie: Un arbore binar este un arbore cu radacina in care fiecare nod are cel mult doi fii, numiti fiul stang si
fiul drept.
Fiul stang este radacina subarborelui stang, iar fiul drept radacina subarborelui drept corespunzator.
Propietati ale arborilor binari
1. numarul maxim de noduri de pe nivelul i al unui arbore este 2i
2. numarul maxim de noduri dintr-un arbore binar cu inaltimea h este 2h+1-1
3. un arbore cu n varfuri are inaltimea mai mare sau egala cu [log2n].
Metode de reprezentare:
In afara metodelor prezentate anterior, putem utiliza reprezentari care sa memoreze descendentii fiecarui nod
Dinamic memoram pentru fiecare nod informatia utila si doua referinte catre fiul stang, si drept.
struct nod{tip_info info;
nod st, dr;};
Static se utilizeaza doi vectori ST SI DR in care ST[i]=fiul stang al nodului i si DR[i]= fiul drept al nodului i.
Fie G=(X,U) un graf neorientat si conex. Graful este dat prin matricea ponderilor(costurilor).Prin
eliminarea unor muchii din G se obtine un graf partial al lui G. Daca acesta este arbore, se va numi arbore
partial.
Problema: Definim costul unui arbore partial ca suma costurilor muchiilor sale. Se cere sa se obtina un arbore
partial de cost minim, adica:
-intre oricare doua noduri sa existe drum
-suma muchiilor sa fie minima
Pentru rezolvare se folosesc 2 vectori:
Vectorul S cu urmatoarea semnificatie:
0 daca nodul i apartine arborelui deja construit
S[i]=
k daca sunt respectate conditiile de mai jos: