Documente Academic
Documente Profesional
Documente Cultură
2. 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 de asemenea
incidente.
A = {1,2,3,4,5}
B = {(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
2.2. Lanturi
Se numeste lant o succesiune de noduri x1 ... xk , cu proprietatea ca oricare doua noduri
vecine (xi, xi+1 ) apartin de B.
x1, xk 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
2.3. Cicluri
Se numeste ciclu intr-un graf neorientat un lant x 1, x2 ... xk cu proprietea ca x1=xk si
oricare 2 muchii (xi, xi+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.
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
3. 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: Pentru 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.
d(1)=3;
d + (1)=1;
d - (1)=2
Proprietati:
1. d + (x1) + d + (x2) + ... + d + (xn) = m
2. d - (x1) + d - (x2) + ... + d - (xn) = m
3.2. Drumuri
Se numeste lant o succesiune de arce u 1 , u2 ... uk , cu proprietatea ca oricare doua
arce de pe pozitii consecutive au un nod comun. Nu conteaza ordinea de parcurgere.
Se numeste drum o succesiune de noduri x 1 , x2 ... xk cu proprietatea ca (xi ,xi+1 ) este
arc. Conteaza ordinea de parcurgere.
Daca nodurile sunt distincte, drumul se numeste elementar, in caz contrar este
neelementar.
Exemplu:
Lanturi
Drumuri
(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
1,2,3,1,2 - Drum
neelementar
1,2,3,4 - Drum
elementar
3,1,2,5 - Nu este drum
3.3. Circuite
Se numeste circuit intr-un graf un drum x1, x2 ... xk cu proprietate ca x1 = xk si arcele
(xi, xi+1) sa fie distincte doua cate doua.
Un circuit in care toate nodurile sunt distincte cu exceptia capetelor se numeste circuit
elementar.
Exemplu:
1,2,3,1 - Circuit elementar
2,3,1,2 - Circuit elementar
1,2,3,1,2,1 - Nu este circuit
a[i,j] = 0 altfel
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
a[i,j] = 0, altfel.
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
Lista de adiacenta
asociata
2,3,5
1,3
1,2
Nod
De exemplu, pentru i = 1, informatia din lista figurata mai sus se va completa astfel:
p[1] 2 3 5.
Lista de adiacenta
asociata
2,3
1,3
Nod
Observatie: pentru grafurile orientate se memoreaza in lista lui i nodurile k pentru care
exista arcul (i,k)
5. Parcurgerea grafurilor
Parcurgerea unui graf presupune vizitarea (prelucrarea) nodurilor grafului, o singura
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)
6. Tipuri de grafuri
Proprieti:
1. Un graf neorientat cu n noduri are n(n-1)/2 muchii.
2. Exista un singur graf complet neorientat cu n noduri.
3. Exista mai multe grafuri orientate complete cu n noduri.
6.4.Grafuri bipartite
Fie G=(A,B) neorientat. G este bipartit daca exista doua multimi, A1 si A2 astfel incat
A1 A2 = si A1 A2 = A, iar oricare muchie (x,y) apartinand lui B are un capat in multimea
A1 si celalalt in A2 .
Un graf bipartit este bipartit complet daca fiecare nod din multimea A1 este adiacent cu
toate nodurile din A2 si reciproc.
6.5.Grafuri conexe
Un graf este conex daca este format dintr-un singur nod sau daca intre oricare doua
noduri ale sale exista cel putin un lant.
Aplicand algoritmul de parcurgere in latime a unui graf putem stabili daca un graf este
conex sau nu astfel: daca in urma parcurgerii vor fi vizitate toate nodurile grafului atunci graful
este conex, in caz contrar nu este conex.
A. Pentru grafuri neorientate
Se numeste componenta conexa a unui graf G un subgraf conex al grafului si care este
maximal in raport cu aceasta proprietate (daca i se adauga un nod isi pierde aceasta
proprietate).
Observatie: pentru grafurile orientate nu se tine cont de orientarea arcelor.
Daca numarul componentelor conexe dintr-un graf este mai mare decat 1, atunci graful nu
este conex.U graf conex are o sigura componenta conexa care cuprinde nodurile sale.
Un graf fara ciclu se numeste aciclic.
Teorema :Un graf neorientat conex cu n noduri si n-1 muchii este aciclic maximal cu
aceasta proprietate. Daca se adauga o noua muchie graful nu mai este aciclic.
1.
2.
3.
4.
Proprietati:
Daca un graf cu n noduri are p comp conexe, atunci numarul minim de muchii care
trebuie adaugat ca sa devina conex este p-1.
Daca un graf conex cu n noduri are n-1 muchii, atunci orice pereche de noduri este
legata printr-un lant si numai unul.
Daca un graf neorientatat cu n noduri si m muchii este conex, numarul maxim de muchii
care se pot elimina pentru a obtine un graf partial conex este: m-n+1.
Daca un graf are n noduri,m muchii si p componente conex, numarul de muchii care
trebuie eliminate pentru a obtine un graf partial aciclic este egal cu m-n+p.
Teorema: Un graf care nu contine noduri izolate este eulerian daca si numai daca este
conex si gradul tuturor nodurilor sunt numere pare.
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
6.7.Grafuri Hamiltonian
1. Lant hamiltonian: lant elementar care contine toate nodurile grafului.
2. Ciclu hamiltonian: ciclu elementar care contine toate nodurile grafului.
3. Graf hamiltonian: graf care contine un ciclu hamiltonian.
Conditii de suficienta:
Teorema lui Dirac: Fie G dat prin perechea (A,B). Daca G are un numar de cel putin 3 varfuri
astfel incat gradul fiecarui nod respecta conditia d(x)=n/2, atunci graful este hamiltonian.
Un graf hamiltonian nu poate avea noduri izolate.
Adeseori suntem tentati sa credem simplul fapt de a traversa strazi sau poduri nu
implica nici o idee deosebita. Iata nsa ca exista o celebra problema de traversare n care
singura idee implicata este aceea de traversare, problema celor sapte poduri din
Orasul Knigsberg era asezat pe coasta Marii Baltice, la gurile rului Pregel. Pe ru
erau doua insule legate de tarmuri si ntre ele de sapte poduri ca n figura 1.
Oamenii care cutreierau aceste insule au observat ca daca porneau de pe malul sudic
al rului, nu puteau sa-si planifice plimbarea astfel nct sa traverseze fiecare pod o singura
data. Se parea ca ori trebuia sa sara un pod ori sa-l traverseze de doua ori.
n anul 1735 Euler a descoperit ca nu mai are rost sa se ncerce, propunnd
urmatoarea analiza a problemei, din punct de vedere matematic:
Figura 3
Muchiile grafului reprezentnd posibilitatile de trecere de pe un mal pe un pod si reciproc.
Problema are solutie daca acest graf contine un ciclu eulerian. Un astfel de ciclu,
utilizeaza la fiecare trecere printr-un vrf doua muchii ce nu mai pot fi folosite pentru o noua
trecere. Cum fiecare dintre cele patru vrfuri (A,B,C,D) au grade impare, rezulta ca ultima
muchie va ramne nefolosita sau va fi folosita pentru a face trecerea de final (pentru a ncheia
plimbarea). Aceasta ar nsemna ca ori va ramne la unul din vrfuri, o muchie nefolosita (fapt
ce demonstreaza ca nu avem un ciclu eulerian) ori plimbarea ar trebui sa se termine n mai
multe locuri simultan ceea ce e iarasi imposibil.
Ciclu eulerian : Fiind dat un graf neorientat, sa se verifice daca este graf eulerian si n
caz afirmativ, sa se determine un ciclu eulerian al sau.
1,2,4,7,6,9,7,8,11,7,5,10,7,2,3,1
7. Drumuri maxime/minime
Problemele de optim presupun ca fiecare muchie a grafului are asociat un anumit cost
(de exemplu, distanta intre doua orase, i si y). Aceste informatii se memoreaza in matricea
costurilor:
c(i,j) = costul asociat muchiei (i,j);
c(i,j) = +8, daca nu exista muchia (i,j);