Sunteți pe pagina 1din 7

Algoritmica grafelor

Curs 3
Reprezentri ale grafelor
Pentru a putea lucra mai uor cu grafe se recurge la o reprezentare a acestora. Aceste reprezentri sunt necesare n cazul n care vrem s precizm graful pe hrtie sau pentru un calculator. Aa cum se ntmpl n general la reprezentarea datelor i aici se poate vorbi despre modelul logic i cel fizic al reprezentrii grafelor. Noi vom prezenta doar modelele logice. n funcie de problema care dorim sa o rezolvm i de modul de rezolvare a acesteia se va utiliza una sau alta dintre reprezentrile grafelor. Bineneles c alegerea facut influeneaz timpul de rspuns al algoritmilor sau exprimat mai general influeneaz complexitatea acestora. Se cunosc mai multe moduri de reprezentare ale grafelor. 1. Reprezentarea geometric Aceast reprezentare se face prin a pune n corespondena elementelor grafului elemente geometrice din plan. Corespondena este: vrfurile grafului se reprezint prin puncte sau cerculee sau ptrele, dac este nevoie marcate (etichetate); fiecare arc se reprezint printr-o linie dreapt sau curb (curb Jordan) ce unete reprezentrile extremitilor arcului respectiv, orientat de la reprezentarea extremitii iniiale ctre reprezentarea extremitii terminale a arcului; muchiile se reprezint ca i arcele numai c lipsete orientarea. Uneori arcele (muchiile) sunt marcate fie cu numrul arcului respectiv fie cu alte valori care pot avea semnificaii conform problemei. Dac reprezentrile vrfurilor sunt marcate (etichetate) graful se numete graf etichetat. Aici trebuie s remarcm c acelai graf etichetat poate avea reprezentri diferite (vezi figura 1). Dac reprezentrile vrfurilor nu sunt etichetate graful se numete graf neetichetat. Definiie: Graf planar este un graf care admite o reprezentare geometric n care reprezentrile arcelor nu se intersectez.

Algoritmica grafelor

Figura 1. Reprezentari diferite ale unui graf etichetat

Orice component conex, n sens topologic, a planului din care s-au eliminat reprezentrile vfurilor i ale arcelor unui graf planar se numete fa a grafului planar respectiv. Adic fa a unui graf planar este o regiune a planului, n care s-a reprezentat un graf planar, limitat de muchii ale grafului cu proprietatea c oricare dou puncte ale sale se pot uni printr-o linie poligonal care nu intersecteaz muchii ale grafului. Un rezultat important este acela prin care se arat c numrul feelor unui graf planar este constant indiferent de reprezentarea planar a grafului. n spaiu orice graf se poate reprezenta astfel nct oricare dou muchii (arce) s nu se intersecteze. Asceast reprezentare se poate face astfel: Se reprezint toate vrfurile pe o dreapt; Pentru reprezentarea fiecrei muchii se alege cte un plan distinct ce conine dreapta pe care sunt reprezentate vrfurile grafului, apoi se reprezint n acel plan muchia (arcul). Cum planele n care s-au reprezentat cte o muchie sunt disjuncte i au n comun doar dreapta pe care s-au reprezentat vrfurile grafului nseamn c oricare dou muchii nu se intersecteaz. Reprezentrii geometrice n calculator i corespunde reprezentarea cu liste nlnuite sau pointeri sau o alt structur de date convenabil.
2

Algoritmica grafelor

2. Reprezentarea matriceal Un graf G=(X,U) se poate reprezenta cu ajutorul matricei de adiacen (vrfuri-vrfuri) sau al matricei de inciden (vrfuri-arce). Fiecare linie i coloan corespunznd unui vrf sau unui arc (muchie) a grafului. 2.1. Matricea de adiacen Matricea de adiacen este o matrice ptratic, linia i coloana i corespunznd vrfului i al grafului. Elementele matricei de adiacen se definesc astfel:
1, (i, j) U aij = , i, j X. 0, (i, j) U

Astfel graful G=(X, U), cu X={1,2,3,4,5} i U={(1,2);(2,1);(2,3);(3,5);(3,4);(4,3);(4,5);(5,1)} se poate preciza i prin matricea de adiacen urmtoare:
0 1 A = 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0

Observaii: a. Valorile matricei de adiacen se pot considera ca valori booleene i deci elementul aij precizeaz dac perechea de vrfuri (i,j) este sau nu arc n graful reprezentat prin matricea de aiacen A. b. Dac valorile matricei de adiacen se interpreteaz ca numere naturale, atunci numrul aij este numrul arcelor de la i la j n graful G. Pentru multigrafe se poate conveni astfel ca valorile matricei A s fie numere naturale conforme acestei interpretri. c. Pentru grafele neorientate matricile de adiacen sunt simetrice i putem interpreta i invers, dac matricea de adiacen a unui graf este simetric, atunci acel graf este neorientat.

Algoritmica grafelor

2.2. Matricea de inciden Matricea de inciden se ataeaz grafelor simple (fr bicle) i a cror mulime de arce s-a ordonat, adic s-au numerotat arcele, U={1,2,..m}. Linia i corespunde vrfului i iar coloana u corespunde arcului u. Deci matricea este de tip n m . Elementele matricei de inciden se definesc astfel:
1, j X : u = (i, j) biu = 1, j X : u = ( j , i ), i X, u U 0, altfel

Graful reprezentat n figura 2 se poate reprezenta prin matricea de inciden urmtoare:


1 1 0 0 0 1 1 0 1 1 0 1 B = 0 1 0 1 0 0 . 0 0 0 1 1 0 0 0 0 0 1 0

Figura 2.

Definiie: ntr-un graf G conex numim distan dintre vrfurile i i j minimul lungimilor lanurilor dintre i i j. Notm distana dintre i i j cu d(i,j). Noiunea introdus verific axiomele distanei: pozitivitatea, adic d (i, j ) 0, i, j X , egalitatea are loc dac i numai dac i=j. simetria, adic d (i, j ) = d ( j, i ), i, j X, relaia are loc pentru c orice lan de la i la j induce un lan de la j la i. inegalitatea triunghiului, adic d (i, j ) d (i, k ) + d ( k , j ), i, j, k X, care are loc din cauz c d(i,k)+d(k,j) reprezint numrul de muchii ale unui lan de la i la j, mai precis ale lanului obinut prin compunerea lanului de lungime minim de la i la k cu lanul de lungime minim de la k la j, iar d(i,j) reprezint minimul numrului de muchii ale lanurilor de la i la j. Ori, tim c minimul dintre elementele unei mulimi este mai mic sau egal dect orice element al mulimii.

Algoritmica grafelor

3. Reprezenarea cu tablouri unidimensionale Dac un graf are numarul de vrfuri mare i un numr relativ mic de muchii atunci matricele cu care se reprezint graful au multe valori zero. Complexitatea cutrii ntr-o asemenea matrice i cantitatea mare de suport (memorie) fac ca s creasc complexitatea algoritmilor. O reprezentare mai eficient n aceste cazuri este cea care folosete dou tablouri (liste liniare), ce necesit o cantitate de memoie de aproximativ n+m celule. n continuare prezentm doar trei astfel de moduri de reprezentare. 3.1. Lista arcelor

n aceast reprezentare se utilizeaz tablourile i de dimensiune m. Valorile (u) i (u) fiind extremitile iniial respectiv final ale arcului u U. Mai jos dm o astfel de reprezentare pentru graful reprezentat geometric n figura 3. u (.) (.) 1 1 2 2 1 3
2 1 1 2 3 Figura 3. 5 4 3 4 9 6

3 2 4

4 3 4
6

5 1 4
5 10

6 5 4
7 7 8

7 5 7

8 7 6

9 6 4

10 4 7

3.2.

Lista succesorilor (valorile lui )

n acest caz tabloul are dimensiunea n+1, iar are dimensiunea m (pentru grafe orientate) sau 2m (pentru grafuri neorientate). Pentru fiecare vrf i X, (i) indic adresa (indicele) din tabloul de unde sunt nregistrai succesorii si. Succesorii vrfului i se afl, deci, n tabloul ntre poziiile (i) i (i+1)-1 inclusiv. Dac (i)= (i+1), atunci vrful i nu are nici un succesor.
5

Algoritmica grafelor

Deci, pentru fiecare i X, au loc relaiile:


a (i ) = g + ( j ) + 1 i (n+1)=m+1 sau (n+1)=2m+1
j =1 i 1

g+(i)= (i+1)-(i) (la grafele orientate) g(i)= (i+1)-(i) (la grafele neorientate)
i = { ( (i )), ( (i ) + 1),..., ( (i ) 1)}.

Dac arcele (muchiile) grafului au anumite ponderi (valori) acestea se pot pastra ntr-un alt tablou p(.) de dimensiunea tabloului . Pentru exemplificare considerm graful din figura 4 pentru care n=4 i m=6. Tablourile a i b conin urmtoarele valori:

Figura 4.

3.3. Lista predecesorilor (valorile lui -1) n acest caz tabloul are dimensiunea n+1, iar are dimensiunea m (pentru grafe orientate) sau 2m (pentru grafuri neorientate). Pentru fiecare vrf i X, (i) indic adresa (indicele) din tabloul de unde sunt nregistrai predecesorii si. Predecesorii vrfului i se afl, deci, n tabloul ntre poziiile (i) i (i+1)-1 inclusiv. Dac (i)= (i+1), atunci vrful i nu are nici un predecesor. Deci, pentru fiecare i X, au loc relaiile:
a (i ) = g ( j ) + 1 i (n+1)=m+1 sau (n+1)=2m+1
j =1 i 1

g-(i)= (i+1)-(i) (la grafele orientate) g(i)= (i+1)-(i) (la grafele neorientate)

Algoritmica grafelor
i = { ( (i )), ( (i ) + 1),..., ( (i ) 1)}.

Dac arcele (muchiile) grafului au anumite ponderi (valori) acestea se pot pastra ntr-un alt tablou p(.) de dimensiunea tabloului . Tema Scrieti algoritmii de conversie ai reprezentrii unui graf dintr-o form dat n alt form dat: 1. Conversia reprezentrii unui graf din matricea de adiacen A n matricea de inciden B. 2. Conversia reprezentrii unui graf din matricea de adiacen A n lista succesorilor definit de vectorii unidimensionali i . 3. Conversia reprezentrii unui graf din matricea de adiacen A n lista predecesorilor definit de vectorii unidimensionali i . 4. Conversia reprezentrii unui graf din matricea de inciden B n matricea de adiacen A. 5. Conversia reprezentrii unui graf din matricea de inciden B n lista sccesorilor definit de vectorii unidimensionali i . 6. Conversia reprezentrii unui graf din matricea de inciden B n lista predecesorilor definit de vectorii unidimensionali i . 7. Conversia reprezentrii unui graf din lista succesorilor, cu ajutorul vectorilor i , n matricea de adiacen A. 8. Conversia reprezentrii unui graf din lista succesorilor, cu ajutorul vectorilor i , n matricea de inciden B. 9. Conversia reprezentrii unui graf din lista succesorilor, cu ajutorul vectorilor i , n lista predecesorilor cu ajutorul vectorilor a i b. 10. Conversia reprezentrii unui graf din lista predecesorilor, cu ajutorul vectorilor i , n matricea de adiacen A. 11. Conversia reprezentrii unui graf din lista predecesorilor, cu ajutorul vectorilor i , n matricea de inciden B. 12. Conversia reprezentrii unui graf din lista predecesorilor, cu ajutorul vectorilor i , n lista succesorilor cu ajutorul vectorilor a i b.

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