Documente Academic
Documente Profesional
Documente Cultură
3
Se numeste graf partial...............................................................................................................................................................................................................................4
Se numeste subgraf ....................................................................................................................................................................................................................................4
Reprezentarea grafurilor neorientate ........................................................................................................................................................................................................7
GRAFURI NEORIENTATE
Definiie : Un graf parial al grafului G=(X,U) este un graf G1(X,V) astfel nct V U,
adic G1 are aceeai mulime de vrfuri ca G, iar muimea de muchii V este chiar U sau o
submulime a acesteia.
Se numeste graf partial daca se pastreaza nodurile si se suprima niste muchii
Ex. Mai jos avem un graf parial al grafului de mai sus (Fig. 1)
Cu alte cuvinte, un graf parial al unui graf se obine pstrnd aceeai mulime de
noduri i eliminnd o parte din muchii.
Definiie : Un subgraf al unui graf G=(X,U) este un graf H(Y,V) astfel nct Y X
iar V conine toate muchiile din U care au ambele extremiti n Y. Vom spune c
subgraful H este indus sau generat de mulimea de vrfuri Y.
Se numeste subgraf daca se elimina niste noduri
Ex. Mai jos avem un subgraf al grafului din Fig. 1 obinut prin eliminarea nodului 3
din
1. Lista vecinilor : Putem memora graful dnd pentru fiecare nod mulimea nodurilor cu
care formeaz arce n care el este pe prima poziie.
x1 { x2, x3,x5}
x2 { x1, x3 }
x3 {x1, x2}
x4 { 0}
x5 { x1 }
x6 { x10, x7}
x7 { 6,8}
x8 { 9,7 }
x9 { x10, x8}
x10 { x6, x9}
de dimensiune egal cu
numrul de noduri, n care o poziie aij va fi 1 dac exist muchia (xi,xj) i 0 n caz
contrar, numit matricea adiacenelor directe.
x1
x2
x3
x4
x5
x6
x1
0
1
1
1
1
0
x2
1
0
1
1
1
0
x3
1
1
0
0
0
0
x4
1
1
0
0
1
1
x5
1
1
0
1
0
0
x6
0
1
0
1
0
0
8
Proprietatile matricei :
1. Este o matrice simetrica
2. Elementele de pe diagonala principale sunt egale cu 0
3. Suma elementelor pe lini i sau coloana j este egala cu gradul nodului i
4. Daca toate elementele pe linia/ coloana i sunt egale cu 0 atunci nodul este izolat
5. Daca toate elementele sunt egale cu 1 mai putin cele de pe DP atunci inseamna ca
graful este complet
Vectorul muchiilor.
Fiecare muchie a grafului poate fi privita ca o inregistrare cu doua componente: cele doua
varfuri care constitue extremitatile muchiei. Notand aceste extremitati cu nod1 si nod2, putem
defini tipul de date tmuchie, astfel:
int tmuchie
{ int nod1, nod2;
};
Graful in ansamblul sau, este o multime de muchii, adica o multime de elemente de tipul
tmuchie.In consecinta definim graful ca un vector de muchii, adica un vector cu elementele
de tipul muchie:
tmuchie vector[25];
1.
1
0
A 0
0
1 0 0 0 0 0
0 1 1 0 0 0
1 0 1 0 0 0
1 1 0 0 0 0
0 0 0 0 1 0
0 0 0 1 0 0
0 0 0 0 0 0
2.
1
2
3
.
4
5
6
7
2
1,3,4
2,4
2,3
6
5
Def.
Fie graful G = (X,U). Un graf parial se obine din G pstrnd toate vrfurile
i suprimnd nite muchii.
Def. Fie graful G = (X,U). Un subgraf al lui G se obine din G eliminnd nite vrfuri i
pstrnd doar acele muchii care au ambele extremiti n mulimea vrfurilor rmase.
Ex :
-graful initial
10
11
Parcurgerea grafurilor
Ne amintim:
Ce este un graf?
Ce este un graf
Se numeste graf partial daca se pastreaza nodurile si se suprima niste muchii
partial?
Ce este un subgraf? Se numeste subgraf daca se elimina niste noduri dintr-un graf
Cum aflam gradul
unui nod?
Care sunt
proprietatile unei
matrice de
adiacenta?
(reprezentarea
grafului in
memorie)
12
parcurgere in adancime DF
(Depth First):
6,3, 1,2,4,5
http://portal.edu.ro/bac2012/materiale/TIC_011/M8/index.html
13
Exemplul 1:
Presupunem ca varful de pornire este 1,atunci parcurgerea BF este:1,2,5,6,3,4,7.
Pentu 3 varf de pornire:3,2,4,1,5,6,7.
Pentru implementare vom folosi :
1) un vector care are proprietatile unei cozi, fie
c=(c1,c2,,ck). Capetele de intoducere si
extragere vor fi identificate prin pozitiile p si
respectiv u.
2) Mai avem nevoie de un vector viz cu n elemente, in care elementele viz[k]
(k=1,2,.,n) au semnificatia: viz*i+=0, daca varful i nu a fost vizitat sau viz[i]=1daca a
fost vizitat. Mai intai initializam tot vectorul viz cu 0.
14
Aplicatie
Construirea matricei de adiacenta:
Se considera urmatorul graf:
16
cin>>y;
}
18
for(i=1;i<=n;i++)
//afisare grad nod
cout<<"varful "<<i<<" are gradul "<<grad(i)<<endl;
}
Parcurgerea in latime:
19
20
Pentru graful de mai sus parcurgerea in adancime plecand de la varful 1 este: 1,2,3,4,5,6,7.
Pentru a implementa vom folosi o stiva si metoda backtracking.
CONEXITATE
Prin parcurgerea in latime acelui graf am subliniat o
proprietate importanta a grafului:faptul ca in urma
parcurgerii au fost vizitate toate varfurile.
Luand oricare doua varfuri,putem gasi cel putin un traseu care porneste dintr-un varf si
ajunge in celalalt.
Luand oricare doua varfuri, ele pot fi legate printr-un lant.
Dar nu toate grafurile sunt conexe. In schimb putem desprinde din el portiuni care, fiecare
luata separat, este un graf conex.
Exemplu:
Se numeste componenta conexa a grafului G=(X,U), un subgraf G1=(X1,U1) a lui G,
conex, cu proprietatea ca nu exista nici un lant care sa lege un varf din X1 cu un varf din
X-X1.
22
24
- ciclu elementar
- ciclu ne-elementar
Obs. In cadrul unui lan, muchiile se pot repeta, dar n cadrul unui ciclu ele trebuie s fie
distincte.
Def. Un graf G este conex dac oricare ar fi dou vrfuri ale sale, exist un lan care le
leag.
Obs. Intr-un graf conex, lund oricare dou vrfuri , putem gsi cel putin un traseu(lan)
care pornete dintr-un vrf i ajunge n cellalt.
25
Ex.
26
27
28
Def. Se numete ciclu hamiltonian ntr-un graf, un ciclu elementar care conine toate
vrfurile grafului.
Se numete graf hamiltonian un graf care conine un ciclu hamiltonian.
Ex
Graful din acest exemplu este hamiltonian, deoarece ciclu C =[2,5,1,3,4,2] este
elementar (pleac din vrful 2 i se ntoarce tot n 2, iar muchiile *2,5+, *5,1+, *1,3+, *3,4+,
*4,2+ sunt distincte dou cte dou) i n plus conine toate vrfurile.
Def. Se numete lan hamiltonian ntr-un graf, un lan elementar care conine toate
vrfurile grafului.
29
Ex L = [2,5,1,3,4]
Th. Dac ntr-un graf G=(X,U) cu n 3 vrfuri, gradul fiecrui vrf verific condiia
d ( x)
n
2
Pentru acest graf, ciclu C = *2,1,5,2,3,4,2+ este eulerian, deoarece pleac din 2 i se
ntoarce tot n doi, iar muchiile sale consecutive, adica [2,1], [1,5], [5,2], [2,3], [3,4], [4,2]
sunt distincte dou cte dou i reprezint toate muchiile grafului.
30
Th. Un graf fr vrfuri izolate este eulerian dac i numai dac este conex i gradele
tuturor vrfurilor sunt numere pare.
Teorema:
31
Fie G=(X,U), cu n>=3 varfuri, daca oricare ar fi x un nod al
grafului si d(x)>=n/2, atunci graful este hamiltonian.
Se numeste ciclu eulerian intr-un graf, un ciclu care contine
toate muchiile grafului.
Un graf care contine un ciclu eulerian se numeste graf
eulerian.
Un lant eulerian este un lant care contine toate muchiile
grafului.
Teorema:
Un graf fara varfuri izolate este eulerian, daca si numai daca este
conex si gradele tuturor varfurilor sunt numere pare
32