Sunteți pe pagina 1din 5

GRAFURI

Numim graf o pereche ordonată de mulțimi, notată G=(X,U), unde X este


o mulțime finită și nevidă de elemente, numite vârfuri sau noduri iar U este o
mulțime de perechi de elemente din X, numite muchii sau arce.
Există două tipuri de grafuri:

1. Grafuri orientate
2. Grafuri neorientate

1.GRAFURI ORIENTATE

Un graf orientat este un triplet G=(X,U,f) format din două mulțimi


abstracte, X fiind mulțimea vârfurilor și U mulțimea arcelor și o aplicație
f:U→X×X.

X={1,2,3,4,5}
U={(1,2);(2,1);(5,2);(2,3);(3,1)}

Nodurile xi și xj se vor numi adiacente dacă există cel puțin unul din
arcele (xi,xj) și (xj,xi). Prin arce adiacente vom înțelege arce care au o
extremitate comună.
Un vârf se numește vârf izolat dacă și numai dacă nu este legat prin nici
un arc de un alt vârf. Dacă pentru un arc nodul inițial coincide cu nodul final
atunci acesta se numește buclă.
Gradul unui nod x este notat cu d(x) și reprezintă numărul muchilor care
trec prin vârful x.

DRUMURI: Se numeşte drum o succesiune de noduri x1 , x2 ... xk cu


proprietatea că (xi ,x i+1 ) este arc. (contează ordinea de parcurgere). Dacă
nodurile din drum sunt distincte, atunci drumul este elementar, în caz contrar
este neelementar.

Exemplu:
1,2,3,1,2 – drum neelementar
1,2,3,4 – drum elementar

1
CIRCUITE : Se numește circuit într-un graf un drum x1, x2,..xk cu
proprietatea ca x1=xk și arcele xi,xi+1 să fie distincte două câte două. Un circuit
în care toate nodurile sunt distincte cu excepția capetelor se numește circuit
elementar.

Exemplu:
1,2,3,1,2 – circuit elementar
2,1,5,2,3,1,2 – circuit neelementar

2.GRAFURI NEORIENTATE :

Un graf neorientat este o perche G=(X,U), unde U este o mulțime de


perechi neordonate ( nu are importanță ordinea scrierii vârfurilor) (xi,xj) aparțin
X×X, numite muchiile grafului.

X={1,2,3,4}
U={(1,2);(1,3);(2,3);(2,5)}

LANTURI : Se numeşte lanţ o succesiune de noduri x1 ... x k , cu


proprietatea că oricare două noduri vecine (x i ,x i+1 ) aparţin de U. x1, xk sunt
extremităţile lanţului. (nu contează ordinea de parcurgere).
Lungimea lanţului este egală cu numărul de muchii care îl compun, k-1.
Dacă nodurile din lanţ sunt distincte, atunci lanţul este elementar, în caz
contrar este neelementar.

Exemplu:
1,2,3,1,4 –Lanț neelementar (lungime4)
1,2,3,4 – Lanț elementar (lungime 3)
1,2,3,1,2,5 – Lanț neelementar (lungime 5)
1,2,3,5 – Nu este lanț

CICLURI: Se numeşte ciclu într-un graf neorientat un lanţ x1 , x2 ... x k


cu proprietea că x1 = xk şi oricare 2 mchii (x i ,x i+1 ) sunt distincte.
Dacă un ciclu are toate nodurile distincte 2 câte 2 cu excepţia capetelor, atunci el
se numeşte ciclu elementar, în caz contrar neelementar.

2
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

Parcurgerea grafurilor neorientate

Prin parcurgerea grafurilor neorientate se intelege vizitarea varfurilor intr-


o anumita ordine, ordine data de un anumit criteriu.
Exista doua metode de parcurgere:
 Parcurgerea in latime BF(Breadth First);
 Parcurgerea in adancime DF(Depth First);

Algoritmul de parcurgere in latime (BF)

Fiind dat un graf neorientat G=(X,U) si un nod xIX, sa se parcurga toate


varfurile grafului incepand din varful x.
Metoda consta in:
-se viziteaza varful de pornire, dupa care se viziteaza toate varfurile adiacente cu
acesta care nu au fost vizitate inca,in continuare se alege primul varf adiacent cu
varful de pornire si se viziteaza toate varfurile adiacente cu acesta nevizitate inca
si asa mai departe pentru celelalte varfuri cat timp este posibil.

Algoritmul de parcurgere in adancime DF

Metoda consta in:


-alegem varful de pornire, pentru acesta se alege primul vecin al sau nevizitat
inca,pentru acest vecin cautam primul vecin al sau nevizitat si asa in continuare.
In cazul in care un varf nu mai are vecini nevizitati atunci ne intoarcem la nodul
anterior, iar pentru acel nod cautam urmatorul vecin nevizitat al sau.

Parcurgerea grafurilor orientate este similara cu a grafurilor neorientate,


se tine cont insa de orientare.

3
Moduri de reprezentare ale unui graf

Pentru reprezentarea analitică avem două variante:


A1. O primă modalitate de reprezentare este listarea efectivă a tuturor
nodurilor și a arcelor sale.
X={x1,x2,x3,x4,x5} și
U={(x1,x2);(x2,x1);(x2,x3);(x3,x1);(x1,x5);(x3,x4),(x5,x2)}
A2. Putem reprezenta graful dând pentru fiecare nod mulțimea nodurilor
cu care formează arce în care el este pe prima poziție.
x1→{x2,x5} x2→{x1,x3} x3→{x1,x4} x5→{x2}
Cea mai simplă reprezentare a unui graf este reprezentarea grafică:
G1. Putem reprezenta geometric, printr-un desen în plan, reprezentând
fiecare nod printr-un punct și fiecare arc printr-un segment de curbă care are
ca extremități nodurile arcului și pe care este trecută o săgeată orientată de
la nodul inițial spre cel final.
G2. Putem folosi o reprezentare geometrică în care nodurile sunt
reprezentate de două ori, în șiruri paralele, de la fiecare nod din unul din șiruri
plecând săgeți spre nodurile cu care formează arce în care el este pe prima
poziție, de pe al doilea șir (reprezentare prin corespondență)

G1 G2

Un graf poate fi reprezentat cu ajutorul unor matrici booleene sau latine.


M1. Un graf poate fi reprezentat printr-o matrice pătratică booleană, de
dimensiune egală cu numărul de noduri, în care o poziție aij va fi 1 dacă există
arcul (xi,xj) și 0 în caz contrar, numită matricea adiacențelor directe.
M2. Un graf poate fi reprezentat printr-o matrice pătratică latină, de
dimensiune egală cu numărul de noduri, în care pe o poziție aij va fi xixj dacă
există arcul (xi,xj) și 0 în caz contrar.

M1. Matrice booleană M2. Matrice latină

0 1 0 0 1 0 (x1,x2) 0 0 (x1,x5)
1 0 1 0 0 (x2,x1) 0 (x2,x3) 0 0
1 0 0 1 0 x3,x1) 0 0 (x3,x4) 0
0 0 0 0 0 0 0 0 0 0

4
0 1 0 0 0 0 (x5,x2) 0 0 0

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