Sunteți pe pagina 1din 24

Modelare i simulare

http://adl.anmb.ro

Grafuri.
Definiii.
Matrici
asociate
grafurilor. Drumuri. Drumuri hamiltoniene
Timp mediu de studiu: 2 ore
Sarcini de nvare: Prin parcurgerea acestei uniti de studiu, studentul va fi capabil s

utilizeze matricile asociate grafurilor


determine drumuri de lungime dat
determine drumuri hamiltoniene

Grafuri. definiii, terminologie, notaii

Fie X o mulime nevid i : X P( ) , P( ) mulimea prilor lui X .


Perechea G = ( X , ) se numete graf. Elementele mulimii X se numesc noduri sau
vrfuri. Dac X este o mulime finit graful G se numete finit. Dac numrul
elementelor lui X este egal cu n , atunci graful G se numete graf de ordin n . Dac X
este o mulime infinit graful G se numete infinit.
Definiia 2 Fie graful G = ( X , ) i x X . Mulimea ( x ) = x = {xi | ( x ) = xi } P ( X )
Definiia 1

se numete mulimea succesorilor lui x . Nodul x se numete predecesor al nodului xi


pentru orice i cu proprietatea xi ( x ) .

Definiia 3 Fie graful G = ( X , ) i x , y X cu proprietatea c y ( x ) . Perechea

ordonat ( x, y ) se numete arc n care nodul x este predecesorul nodului y iar nodul y
este succesorul nodului x .
Definiia 4 Fie graful G = ( X , ) i xi , x j X . Mulimea U = ( xi , x j ) | x j xi se numete

mulimea arcelor grafului G . Graful G poate fi definit i prin perechea


G = ( X , ) = ( X ,U ) .

( X ,U )

i deci

Definiia 5 Graful G = ( X , ) se numete graf orientat dac exist cel puin un arc

( x , x ) U
i

cu proprietatea c ( x j , xi ) U .

Definiia 6 Arcul ( xi , x j ) U se numete incident spre interior vrfului x j i incident spre


exterior vrfului xi .

Definiia 7 Fie graful G = ( X ,U ) i xi X . Arcul ( xi , xi ) U se numete bucl.

Definiia 8 Fie graful G = ( X ,U ) i xi , x j X cu ( xi , x j ) U . Nodurile xi i x j se numesc


adiacente. Dou arce se numesc adiacente dac originea sau extremitatea unuia din ele
coincide cu originea sau extremitatea celuilalt.
Definiia 9 Graful G = ( X , ) se numete graf neorientat dac pentru orice arc ( xi , x j ) U
rezult ( x j , xi ) U .

Observaia 1 Un graf orientat este bine determinat de nodurile i arcele sale. Deoarece de
cele mai multe ori grafurile vor fi orientate vom nelege prin graf un graf orientat. Atunci
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
cnd graful va fi neorientat vom preciza explicit acest fapt. n continuare vom presupune
c grafurile sun finite.

Moduri de reprezentare a unui graf


Exist mai multe moduri de reprezentare a unui graf.
1. Reprezentare analitic
Fie graful G = ( X , ) finit de ordinul n , X = {x1 , x2 ,K, xn } . n reprezentarea analitic

graful este definit de mulimea X = {x1 , x2 ,K, xn } i de mulimile succesorilor fiecrui vrf

xi = xi1 , xi2 ,K, xi p

} pentru orice i = 1,2,K, n .

Exemplul 1 Fie graful G = ( X , ) . Mulimea nodurilor este X = {x1 , x2 , x3 , x4 } . Mulimile


succesorilor vrfurilor grafului

sunt: x1 = {x2 , x3} ,

x2 = { x1 , x3 , x4 } ,

x3 = {x1 , x2 , x3} ,

x4 = {x1 , x4 } .
2. Reprezentare sagital
Un graf G = ( X , ) se reprezint grafic n plan n felul urmtor: fiecare element al lui
X este reprezentat printr-un punct n plan. Dac y x , atunci punctul care reprezint x
este legat de punctul care reprezint y printr-o sgeat orientat de la x la y .
Exemplul 2 O reprezentarea sagital a grafului din exemplul 1 este:

x1

x2

x4

x3
Figura 1

3. Reprezentare prin coresponden


Reprezentarea prin coresponden este o reprezentare grafic n care se reprezint
pe dou paralele vrfurile grafului i arcele corespondente.
4. Reprezentare folosind matricea de adiacen
Fie graful G = ( X , ) = ( X ,U ) finit de ordinul n , X = {x1 , x2 ,K, xn } . Se numete
1 daca ( xi , x j ) U

matrice de adiacen matricea boolean A = ( aij )i =1,2,K,n unde aij =


.
j =1,2,K,n
0
daca
x
,
x

U
( i j)

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Exemplul 3 Matricea de adiacen a grafului din exemplul 1 este:
x1 x2 x3 x4
x1 0
x2 1
A=
x3 1

x4 1

1
0
1
0

0
1 .
0

1
1
1
0

5. Reprezentare folosind matricea latin


Fie graful G = ( X , ) = ( X ,U ) finit de ordinul n , X = {x1 , x2 ,K, xn } . Se numete
matrice latin asociat grafului G matricea L = ( lij )i =1,2,K,n ptratic, de dimensiune egal
j =1,2,K,n

cu

numrul

de

noduri,

care

pentru

fiecare

i = 1,2,K, n

j = 1,2,K, n ,

xi x j daca ( xi , x j ) U

.
lij =

daca
x
,
x

U
( i j)

Exemplul 4 Matricea latin asociat grafului din exemplul 1 este:


x1
x1
x2 x2 x1
L=
x3 x3 x1

x4 x4 x1

x2

x3

x1 x2

x3 x2

x1 x3
x2 x3
x3 x3

x4

x2 x4 .

x4 x4

6. Reprezentare folosind matricea latin redus


Fie graful G = ( X , ) = ( X ,U ) finit de ordinul n , X = {x1 , x2 ,K, xn } . Se numete

( )

matrice latin redus asociat grafului G matricea L% = l%ij

i =1,2,K,n
j =1,2,K,n

ptratic, de dimensiune

egal cu numrul de noduri, n care pentru fiecare i = 1,2,K, n i

j = 1,2,K, n ,

x j daca ( xi , x j ) U

.
lij =
daca ( xi , x j ) U
Exemplul 5 Matricea latin redus asociat grafului din exemplul 1 este:
x1 x2
x1
x x
L% = 2 1
x3 x1

x4 x1

x2

x2

x3

x4

x3
x3
x3

x4 .

x4

Definiia 10 Fie graful G = ( X , ) = ( X ,U ) i xk X . Se numete semigraf interior al


nodului xk mulimea arcelor incidente spre interior nodului xk notat cu
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene

U xk = ( x j , xk ) | ( x j , xk ) U . Semigraful interior al nodului xk se citete pe coloanele

matricei L .
Exemplul 6 Pentru graful din exemplul 1 semigrafurile interioare sunt:
U x1 = {( x2 , x1 ) , ( x3 , x1 ) , ( x4 , x1 )} ,
U x2 = {( x1 , x2 ) , ( x3 , x2 )} ,
U x3 = {( x1 , x3 ) , ( x2 , x3 ) , ( x3 , x3 )} ,
U x4 = {( x2 , x4 ) , ( x4 , x4 )} .

Definiia 11 Fie graful G = ( X , ) = ( X ,U ) i xk X . Se numete semigraf exterior al


nodului xk mulimea arcelor incidente spre exterior nodului xk notat cu
U x+k = {( xk , xi ) | ( xk , xi ) U } . Semigraful exterior al nodului xk se citete pe liniile matricei L .

Exemplul 7 Pentru
U x+1 = {( x1 , x2 ) , ( x1 , x3 )} ,
U x+4 = {( x4 , x1 ) , ( x4 , x4 )} .

graful din exemplul 1 semigrafurile exterioare sunt:


U x+2 = {( x2 , x1 ) , ( x2 , x3 ) , ( x2 , x4 )} ,
U x+3 = {( x3 , x1 ) , ( x3 , x2 ) , ( x3 , x3 )} ,

Definiia 12 Fie graful G = ( X , ) = ( X ,U ) i xk X . Se numete semigrad interior al


nodului xk numrul de arce incidente spre interior nodului xk i se noteaz cu

( )

xk = card U xk .
Exemplul 8 Pentru graful din exemplul 1 semigradele interioare ale nodurilor sunt x1 = 3 ,
x2 = 2 , x3 = 3 , x4 = 2 .

Definiia 13 Fie graful G = ( X , ) = ( X ,U ) i xk X . Se numete semigrad exterior al


nodului xk numrul de arce incidente spre exterior nodului xk i se noteaz cu

( )

x+k = card U x+k .


Exemplul 9 Pentru graful din exemplul 1 semigradele exterioare ale nodurilor sunt x+1 = 2 ,
x+2 = 3 , x+3 = 3 , x+4 = 2 .

Definiia 14 Fie graful G = ( X , ) = ( X ,U ) i xk X . Se numete grad al nodului xk suma


dintre numrul de arce incidente spre interior nodului xk i numrul de arce incidente spre
exterior nodului xk . Gradul nodului xk se noteaz cu xk = xk + x+k .
Exemplul 10 Pentru graful din exemplul 1 gradele nodurilor sunt x1 = 5 , x2 = 5 , x3 = 6 ,
x4 = 4 .

Definiia 15 Fie graful G = ( X , ) = ( X ,U ) i xk X . Nodul xk se numete izolat dac


xk = 0 .

Definiia 16 Fie graful G = ( X , ) = ( X ,U ) i xk X . Nodul xk se numete suspendat


dac xk = 1 .
Definiia 17 Se numete drum n graful G = ( X , ) o succesiune de vrfuri

cu proprietatea

( x , x ) U
ij

i j +1

( )

xi j +1 xi j

pentru fiecare

j {1,2,K, k 1}

(x

i1

, K , xik

sau, echivalent, dac

j = 1,2,..., ( k 1) .

Observaia 2 Un drum este o succesiune de arce dac este format din mai multe vrfuri
n care extremitatea unuia coincide cu originea urmtorului.
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Observaia 3 Un drum de la x la y este un drum de forma ( x,K, y ) . Pot fi mai multe
drumuri de la x la y sau poate s nu existe nici unul.
Definiia 18 Un drum de la x la x se numete circuit.
Definiia 19 Lungimea unui drum este dat de numrul arcelor care l compun. Bucla
este un circuit de lungime 1.
Definiia 20 Un drum este subdrum al unui drum dac vrfurile consecutive ale lui
sunt vrfuri consecutive i n .
Definiia 21 Un drum este elementar dac nu trece mai mult de o singur dat prin nici
un vrf (dac nu constituie un circuit ca subdrum).
Definiia 22 Un drum este simplu dac nu parcurge de dou ori acelai arc.
Observaia 4 Un drum elementar este n acelai timp un drum simplu.
Definiia 23 Un drum este hamiltonian dac este elementar i trece prin toate vrfurile
grafului.
Definiia 24 Un drum simplu se numete eulerian dac conine toate arcele grafului.
Observaia 5 n definiia noiunilor de drum, circuit, intervine i orientarea arcelor din graful
respectiv.
Definiia 25 Se numete putere de atingere a unui nod xk X n graful G = ( X , )
numrul de noduri la care se poate ajunge din nodul xk . Puterea de atingere a nodului xk
se noteaz cu p ( xk ) i evident p ( xk ) x+k .

Definiia 26 Se numete muchie a unui graf orice pereche neordonat [ x, y ] , x y de

vrfuri cu proprietatea ( x, y ) U sau ( y , x ) U . Notm mulimea muchiilor cu U .

Definiia 27 Se numete lan o succesiune de muchii [ u1 ,K, u k ], cu proprietatea c


extremitatea lui U p , ( p = 2,..., k ) coincide cu o extremitate a lui U p1 iar cealalt
extremitate a lui U p coincide cu o extremitate a lui U p+1 cu p = 1,2,..., ( k 1) . Un lan se

poate defini i ca o succesiune de vrfuri [ xi , xk +1 ] dac [ xi , xk +1 ] = ui pentru i = 1,2,K, k .


Definiia 28 Se numete ciclu un lan n care vrful iniial coincide cu cel final.
Definiia 29 Un lan este elementar dac nu trece de dou sau mai multe ori printr-un
vrf.
Definiia 30 Un lan este simplu dac nu trece de dou sau mai multe ori prin aceeai
muchie.
Definiia 31 Se numete circuit elementar un drum n care fiecare nod apare o singur
dat cu excepia nodului final care coincide cu nodul iniial.
Definiia 32 Se numete circuit simplu un drum n care fiecare arc apare o singur dat.
Definiia 33 Se numete circuit hamiltonian un circuit care trece prin toate nodurile
grafului.
Exemplul 11 Pentru graful din exemplul 1 drumul = ( x1 , x3 , x2 , x4 , x1 ) este un circuit
hamiltonian.
Definiia 34 Se numete ciclu elementar un ciclu n care fiecare nod apare o singur dat,
cu excepia nodului final care coincide cu nodul iniial.
Definiia 35 Se numete ciclu simplu un ciclu n care fiecare arc apare o singur dat.
Observaia 6 ntr-un graf neorientat noiunile de drum i lan sunt echivalente. De
asemenea noiunile de circuit i ciclu sunt echivalente.

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene

Operaii cu grafuri. Grafuri particulare


Definiia 36 Se numete graf parial al grafului G = ( X , U ) graful G = ( X ,U ) cu
U U .
Observaia 7 Un graf parial al unui graf G se obine prin suprimarea unor arce din graful
G.
Definiia 37 Graful G = ( X , ) se numete subgraf al grafului G = ( X , ) dac X X
i x = x I X , pentru orice x X .
Observaia 8 Un subgraf al unui graf G se obine prin suprimarea unor vrfuri ale grafului
G i a arcelor care au una din extremiti ntr-un vrf suprimat.
Definiia 38 Graful reciproc al grafului G = ( X , ) este graful G 1 = ( X , 1 ) unde
1 ( y ) = { x | y x} = {x | ( x, y ) U } .

Observaia 9 Reprezentarea sagital a grafului G 1 se obine din reprezentarea sagital a


grafului G prin schimbarea sensului arcelor.
Definiia 39 Se spune c graful G = ( X , ) este produsul de compoziie al grafului
G1 = ( X , 1 ) i G2 = ( X , 2 ) i se scrie G = G2 o G1 , respectiv = 2 o 1 = 2 1 dac
x =

U ( y )()x X

(1)

y1x

Observaia 10 Produsul de compoziie a dou grafuri nu este comutativ.


Observaia 11 Dac pentru orice graf G = ( X , ) i orice A X , notm ( A) = U y ,
atunci relaia (1) se mai poate scrie: ( 21 ) x = 2 ( 1 x ) pentru orice x X .

yA

Exemplul 12 Fie grafurile G1 = ( X , 1 ) i G2 = ( X , 2 ) . Vom determina produsele de

compoziie G = ( X , ) , = 2 1 i G = ( X , ) , = 1 2 .

Fie mulimea vrfurilor X = {x1 , x2 , x3 , x4 } , 1 : X P ( X ) , 1 x1 = {x2 , x4 } , 1 x2 = ,

1 x3 = {x1 , x2 } , 1 x4 = {x3} . Reprezentarea sagital a grafului G1 = ( X , 1 ) este dat n


figura 2.

x1

x2

x4

x3
Figura 2

2 : X P ( X ) , 2 x1 = {x2 } , 2 x2 = {x1 , x3 , x4 } , 2 x3 = { x1 , x4 } , 2 x4 = .
Reprezentarea sagital a grafului G2 = ( X , 2 ) este dat n figura 3.

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene

x1

x2

x4

x3
Figura 3

x1 = 2 1 x1 = U 2 y = 2 x2 U 2 x4 = {x1 , x3 , x4 } U = { x1 , x3 , x4 } ,
y1 x1

x2 = 2 1 x1 = U 2 y = U 2 y = ,
y

y1 x2

x3 = 2 1 x3 = U 2 y =

U 2 y = 2 x1 U 2 x2 =

y1 x3

y{ x1 , x2 }

y1 x4

y{ x3}

{ x2 } U { x1 ,

x3 , x4 } = {x1 , x2 , x3 , x4 } ,

x4 = 21 x4 = U 2 y = U 2 y = 2 x3 = {x1 , x4 } .
Reprezentarea sagital a grafului G = ( X , ) este dat n figura 4.

x1

x2

x4

x3
Figura 4

Fie acum G = ( X , ) , = 1 2 .
x1 = 12 x1 = U 1 y = U 1 y = 1 x2 =
y2 x1

x2 = 1 2 x2 = U 1 y =
y 2 x2

x3 = 1 2 x3 = U 1 y =
y2 x3

y{ x2 }

y{ x1 , x3 , x4 }

y{ x1 , x4 }

1 y = 1 x1 U 1 x3 U 1 x4 = {x2 , x4 } U {x1 , x2 } U {x3} = {x1 , x2 , x3 , x4 }

1 y = 1 x1 U 1 x4 =

{ x2 , x4 } U {x3} = {x2 , x3 ,

x4 } ,

x4 = 1 2 x4 = U 1 y = U 2 y = .
y 2 x4

Reprezentarea sagital a grafului G = ( X , ) este dat n figura 5.


Evident i
necomutativ.

19 September 2014

G G ceea ce arat c produsul de compoziie este

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene

x1

x2

x4

x3
Figura 5

Teorema 1 Produsul de compoziie este asociativ i necomutativ.


Demonstraie:

Folosim

= ( 3 2 ) 1 .

Pentru

egalitatea
x X

U Ai =

U U Ai .

i B j
j I

au

ji iB j

loc

Fie

= 3 ( 2 1 )

egalitile:

i
=

x = U 3 y = U 3 y = U U 3 y = U 3 2 z = ( 3 2 ) 1 xx .
y 2 1 x
y2 z
zx1 y 2 z
z1x
z x
1

Observaia 12 Perechea ( x, y ) este arc n G2G1 dac exist z X astfel ncat ( x, z ) s fie
arc n G1 iar ( z , y ) s fie arc n G2 .
Datorit asociativitii produsului de compoziie a grafurilor se poate vorbi de

produsul unui numr finit arbitrar de grafuri. n particular se poate defini graful G k = ( X , k )
unde G = ( X , ) . Pentru aceasta lum 0x = x, ( ) x X i k = k 1 .
Teorema 2 Fie grafurile G1 = ( X , 1 ) i G2 = ( X , 2 ) . Atunci G2G1 = G1G2 .

Demonstraie: Artm c ( G2 G1 ) = 11 21 , adic pentru orice z X are loc egalitatea


1

( G2G1 )1 z = ( 21 )1 z . Fie

x0 ( 21 ) z sau echivalent z ( 21 ) x0 = U 2 y . Rezult c


1

y1 x0

exist y0 1 x0 i z 2 y0 . Cu alte cuvinte exist y0 X cu proprietatea x0 11 y0 , i


y0 21 z . Rezult c x0 x0 U1 11 y0 = ( 11 21 ) z . Am artat deci c pentru orice z X
y 2 z

are loc incluziunea

( 2 1 )1 z ( 11 21 ) z . Analog se arat i incluziunea invers.

Observaia 13 k = 1 ( k 1) pentru orice k N .


Definiia 40 Fie grafurile G1 = ( X , 1 ) i G2 = ( X , 2 ) . Se numete reuniune a grafurilor G1
i G2 graful G1 G2 = ( X , 1 2 ) unde ( 1 2 ) x = 1 x U 2 x pentru orice x X .

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Definiia 41 Fie grafurile G1 = ( X , 1 ) i G2 = ( X , 2 ) . Se numete intersecie a grafurilor
G1 i G2 graful G1 G2 = ( X , 1 2 ) unde ( 1 2 ) x = 1 x I 2 x pentru orice x X .
Observaia 14 Arcul ( x, y ) este un arc n G1 G2 dac i numai dac este arc n cel puin

unul din grafurile G1 , G2 . Arcul ( x, y ) este un arc n G1 G2 dac i numai dac este arc n

ambele grafuri G1 , G2 . Cu alte cuvinte, dac U1 i U 2 sunt mulimile arcelor grafului G1 ,


respectiv G2 , atunci mulimea arcelor grafului G1 G2 este U1 U U 2 iar mulimea arcelor
grafului G1 G2 este U1 I U 2 .

Definiia 42 Un element x X se numete punct izolat al grafului G = ( X , ) dac n G


nu exist nici un arc cu originea sau extremitatea n x .
Observaia 15 Dac U1 I U 2 = atunci toate elementele lui X sunt puncte izolate ale
grafului G1 G2 .
Observaia 16 Operaiile i sunt asociative i comutative deoarece U i I sunt
asociative i comutative.
Exemplul 13 Vom
exemplifica
reuniunea
i
intersecia
a
dou
grafuri.
Fie X = { x1 , x2 , x 3 , x4 } i grafurile G1 = ( X , 1 ) , G2 = ( X , 2 ) definite prin:
1 : X P ( X ) , 1 x1 = { x2 , x4 } , 1 x2 = , 1 x3 = { x1 , x2 } , 1 x4 = { x3} .

2 : X P ( X ) , 2 x1 = { x2 } , 2 x2 = { x1 , x3 , x4 } , 2 x3 = { x1 , x4 } , 2 x4 = .
Fie G = G1 G2 = ( X , 1 2 ) , = 1 2 . Au loc egalitile:

x1 = 1 x1 U 2 x1 = { x2 , x4 } U { x2 } = { x2 , x4 } ,

x2 = 1 x2 U 2 x2 = U { x1 , x3 , x4 } = { x1 , x3 , x4 } ,

x3 = 1 x3 U 2 x3 = { x1 , x2 } U { x1 , x4 } = { x1 , x2 , x4 } , x4 = 1 x4 U 2 x4 = { x3} U = { x3}
Fie

acum

G = G1 G2 = ( X , 1 2 ) ,

= 1 2

x1 = 1 x1 I 2 x1 = { x2 , x4 } I { x2 } = { x2 } ,

Au

loc

egalitile:

x2 = 1 x2 I 2 x2 = I { x1 , x3 , x4 } = ,

x3 = 1 x3 I 2 x3 = { x1 , x2 } I { x1 , x4 } = { x1} , x4 = 1 x4 I 2 x4 = { x3} I = .

Definiia 43 Graful G = ( X , ) se numete complet dac pentru orice x, y X , x y


exist cel puin unul din arcele ( x, y ) sau ( y , x ) .

Definiia 44 Graful G = ( X , ) se numete simetric dac din ( x, y ) U rezult ( y , x ) U .


Definiia 45 Graful G = ( X , ) se numete antisimetric dac din

( y, x ) U .

( x, y ) U

rezult

Definiia 46 Graful G = ( X , ) se numete simplu dac exist X 1 , X 2 cu proprietile


X = X1 U X 2 i dac ( x, y ) U rezult x X 1 i y X 2 .

Definiia 47 Un graf orientat (neorientat) G = ( X , ) se numete conex dac pentru orice


x, y X , x y , exist un drum (lan) de de la x la y .

Graf tare conex. Determinarea componentelor tare conexe


Definiia 48 Un graf orientat G = ( X ,U ) se numete tare conex dac pentru orice
x, y X , exist un drum de la x la y i un drum de la y la x .

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Definiia 49 Subgraful G1 = ( X 1 ,U1 ) al grafului orientat G = ( X ,U ) se numete
component tare conex dac:
1. Pentru orice x , y X 1 exist un drum de la x la y i un drum de la y la x .

2. Nu exist nici un alt subgraf G2 = ( X 2 ,U 2 ) al lui G1 = ( X 1 ,U1 ) cu proprietatea 1.


Observaia 17 Orice graf graf orientat are cel puin o component tare conex.
Definiia 50 Se numesc succesori ai vrfului xi X toate vrfurile x j X cu proprietatea
c exist un drum de la xi la x j . Vrful xi este un succesor al vrfului xi .

Definiia 51 Se numesc predecesori ai vrfului xi X

toate vrfurile x j X

cu

proprietatea c exist un drum de la x j la xi . Vrful xi este un predecesor al vrfului xi .


Teorema 3 Dac vrful x j X este simultan i predecesor i succesor al vrfului xi X
atunci exist o component tare conex a grafului G = ( X ,U ) care l conine.

Demonstraie Fie xk i xl aparinnd unei componente tare conex a grafului G = ( X ,U ) .


Atunci exist un drum de la xk la xl care trece prin vrful xi i un drum de la xl la xk care
trece prin vrful xi . Rezult c xk este i succesor i predecesor al vrfului xi .
Observaia 18 Mulimea vrfurilor unei componente tare conex este maximal n raport
cu relaia de incluziune. Dac prin absurd ar mai exista un alt vrf x j care s fie simultan
i predecesor i succesor al vrfului xi X care nu aparine componentei tare conex,
atunci ar trebui s existe un drum de la x j la xi i un drum de la xi la x j , caz n care
acesta ar fi fost deja gsit.
Prezentm n continuare un algoritm pentru determinarea tuturor componentelor
tare conexe ale unui graf orientat G = ( X ,U ) .

Vom redenumi vrfurile mulimii X = {x1 , x2 ,K, xn } cu respectiv 1,2,K ,n . Fie vectorul
succesorilor denumit suc cu n componente iniializate cu 0 i vectorul predecesorilor
denumit pred cu n componente iniializate cu 0 . Componenta suc[i ] reprezint vrful
succesor al vrfului i iar componenta pred [i ] reprezint vrful predecesor al vrfului i .
Fie nrc numrul de componente tare conexe ale grafului. Descrierea algoritmului n
pseudo C cod este:
start
for (i=1;i<=n;i++)
// Iniializare vectori suc i pred
suc[i]=pred[i]=0;
end for
nrc=1;
// Exist cel puin o component tare conex
for (i=1;i<=n;i++)
// Pentru fiecare vrf
if (suc[i]==0)
then
for (j=1;j<=n;j++)
if ( x j este successor al lui xi && suc[j]==0)
then
suc[j]=nrc; // Inclusiv suc[i]=nrc
end if
if ( x j este predecessor al lui xi && pred [j]==0)
then
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

10

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
pred[j]=nrc; // Inclusiv pred[i]=nrc
end if
end for
for (j=1;j<=n;j++)
if (suc[j] != pred[j])
then
suc[j]=pred[j]=0;
end if
end for
nrc++;
end for
for (i=1;i<nrc;i++)
for (j=1;j<=n;j++)
if (suc[j]==i)
then
write j n componenta tare conex i
end if
end for
end for
write nrc-1 componente tare conexe
end
Exemplul

14

Considerm

graful

X = {x1 , x2 , x3 , x4 , x5 , x6 , x7 } ,

G = ( X ,U ) ,

U = {( x1 , x2 ) , ( x2 , x3 ) , ( x3 , x1 ) , ( x1 , x4 ) , ( x6 , x4 ) , ( x5 , x4 ) , ( x5 , x7 ) , ( x7 , x5 )} .

Vom

determina

componentele tare conexe ale grafului folosind algoritmul prezentat.


Iniial vectorii suc i pred sunt prezentai n tabelul 1:
i
suc
pred

1
0
0

2
0
0

3
0
0

4
0
0

5
0
0

6
0
0

7
0
0

Tabelul 1
Se fac atribuirile:
nrc = 1
i =1
Nodul x1 are succesorii x1 , x2 , x3 , x4 i predecesorii x1 , x2 , x3 .
Deoarece suc[1] == 0 se face atribuirea suc[1] = nrc , adic suc[1] = 1 .
Deoarece suc[2] == 0 se face atribuirea suc[2] = nrc , adic suc[2] = 1 .
Deoarece suc[3] == 0 se face atribuirea suc[3] = nrc , adic suc[3] = 1 .
Deoarece suc[4] == 0 se face atribuirea suc[4] = nrc , adic suc[4] = 1 .
Deoarece pred [1] == 0 se face atribuirea pred [1] = nrc , adic pred [1] = 1 .
Deoarece pred [2] == 0 se face atribuirea pred [2] = nrc , adic pred [2] = 1 .
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

11

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Deoarece pred [3] == 0 se face atribuirea pred [3] = nrc , adic pred [3] = 1 . Vectorii suc i
pred actualizai sunt prezentai n tabelul 2:
i
suc
pred

1
1
1

2
1
1

3
1
1

4
1
0

5
0
0

6
0
0

7
0
0

6
0
0

7
0
0

Tabelul 2
Deoarece suc[4] pred [ 4] se face atribuirea suc[4] = pred [ 4] = 0 .
Vectorii suc i pred actualizai sunt prezentai n tabelul 3:
i
suc
pred

1
1
1

2
1
1

3
1
1

4
0
0

5
0
0

Tabelul 3
Se fac atribuirile:
nrc = 2
i =2
Deoarece nodul x2 nu satisface proprietatea suc[2] == 0 , se incrementeaz i :
i = 3

Deoarece nodul x3 nu satisface proprietatea suc[3] == 0 , se incrementeaz i :


i = 4

Deoarece nodul x4 satisface proprietatea suc[4] == 0 , se determin succesorii i


predecesorii lui x4 . Nodul x4 are un singur succesor x4 i suc[4] == 0 . Se face atribuirea
suc[4] = nrc adic suc[4] = 2 . Predecesorii x j ai nodului x4 sunt x1 , x2 , x3 , x4 , x5 , x6 , x7 . Dintre
acetia x1 , x2 , x3 nu satisfac condiia pred [ j ] == 0 . Se fac atribuirile pred [ j ] = nrc , adic
pred [ j ] = 2 pentru j = 4,5,6,7 . Vectorii suc i pred actualizai sunt prezentai n tabelul 4:
i
suc
pred

1
1
1

2
1
1

3
1
1

4
2
2

5
0
2

6
0
2

7
0
2

Tabelul 4
Deoarece suc[ j ] pred [ j ] pentru j = 5,6,7 , se fac atribuirile suc[ j ] = pred [ j ] = 0 pentru
j = 5,6,7 . Vectorii suc i pred actualizai sunt prezentai n tabelul 5:
i
suc
pred

1
1
1

2
1
1

3
1
1

4
2
2

5
0
0

6
0
0

7
0
0

Tabelul 5
Se fac atribuirile:
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

12

nrc = 3

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene

i =5
Nodul x5 satisface proprietatea suc[5] == 0 . Succesorii nodului x5 sunt x5 i x7 . Nodul x7
satisface proprietatea

suc[7] == 0

suc[5] = suc[7] = nrc , adic

i se fac atribuirile

suc[5] = suc[7] = 3 . Predecesorii nodului x5 sunt x5 i x7 . Nodul x7 satisface proprietatea


pred [7] == 0 i se fac atribuirile

pred [5] = pred [7] = nrc , adic

pred [5] = pred [7] = 3 .

Vectorii suc i pred actualizai sunt prezentai n tabelul 6:


i
suc
pred

1
1
1

2
1
1

3
1
1

5
3
3

4
2
2

6
0
0

7
3
3

Tabelul 6
Deoarece nu exist j cu proprietatea suc[ j ] pred [ j ] vectorii suc i pred nu se modific.
Se fac atribuirile:
nrc = 4
i =6
Nodul x6 satisface proprietatea suc[6] == 0 . Succesorii nodului x6 sunt x6 i x4 . Nodul x6
satisface proprietatea suc[6] == 0 i se face atribuirea suc[6] = nrc , adic suc[6] = 4 . Nodul
x4 nu satisface proprietatea suc[4] == 0 i nu se face atribuirea suc[4] = nrc . Nodul x6 are
predecesorul x6 i pred [6] == 0 . Se face atribuirea pred [6] = nrc , adic pred [6] = 4 .
Vectorii suc i pred actualizai sunt prezentai n tabelul 7:
i
suc
pred

1
1
1

2
1
1

3
1
1

4
2
2

5
3
3

6
4
4

7
3
3

Tabelul 7
Deoarece Deoarece nu exist j cu proprietatea suc[ j ] pred [ j ] vectorii suc i pred nu
se modific. Se fac atribuirile:
nrc = 5
i =7
Deoarece suc[7] 0 se incrementeaz i , care devine egal cu 8 > n == 7 . n acest moment
au fost determinate nrc 1 == 4 componente tare conexe. Acestea se citesc din tabelul 7.
Din suc[i ] == pred [i ] == 1 , pentru i = 1,2,3 , rezult componenta tare conex { x1 , x2 , x3} . Din
suc[4] == pred [4] == 2 , rezult componenta tare conex

{ x4 } .

Din suc[i ] == pred [i ] == 3 ,

pentru i = 5,7 , rezult componenta tare conex { x5 , x7 } . Din suc[6] == pred [6] == 4 , rezult
componenta tare conex { x6 } .
Continum prezentarea noiunilor fundamentale ale teoriei grafurilor.
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

13

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Definiia 49 Fie graful G = ( X , ) , x X i C x mulimea format din x i din toate
celelalte vrfuri legate prin lanuri de x . Subgraful determinat de C x este conex; un astfel
de subgraf se numete component conex a grafului G . Un graf este conex dac are o
singur component conex.
Se poate arta c x C y dac i numai dac y C x dac i numai dac C x = C y i
dac C x C y atunci C x I C y = , U C x = X .
xX

Deci dac exist mai multe submulimi distincte C x ale lui X , atunci acestea
formeaz o partiie a lui X .
Grafurile de care ne vom ocupa vor fi conexe. Acesta este cazul interesant n
practic. Dac un anumit fenomen este modelat printr-un graf neconex, proprietile care
ne intereseaz sunt studiate pentru fiecare component conex a acestuia luat ca un
graf de sine stttor.
Definiia 52 Fie G = ( X , ) un graf. Spunem c y este succesor a lui x sau c x este un
predecesor a lui y dac exist un drum de la x la y . Dac exist un drum format din k
arce de la x la y se spune c y este succesor de ordinul k a lui x , sau c x este
predecesor de ordinul k a lui y .
Observaia 17 Graful G k = ( X , k ) este graful succesorilor de ordinul k pentru graful
G = ( X , ) n sensul c x k

graful G . De asemenea x
graful G .

este mulimea succesorilor de ordinul k ai vrfului

x n

este mulimea predecesorilor de ordinul k ai vrfului x n

Definiia 53 Se numete nchiderea tranzitiv a vrfului

)
)
x mulimea x = U x k ,
k =0

( )

x0 = x . Mulimea x este format din x i din toi succesorii lui x . Graful G = x, se


)
)
numete nchidere tranzitiv a grafului G = ( x, ) . Analog, mulimea 1 x = U x k se
k =0
) 1
numete nchidere tranzitiv invers a vrfului x . Mulimea x este format din x i din
mulimea predecesorilor lui x . Dac pentru orice x X , x = X atunci graful este tare
conex i reciproc.
Teorema 3 ntr-un graf finit fr circuite, exist cel puin un vrf fr succesori i cel
puin un vrf fr predecesori.
Demonstraie Artm c exist cel puin un vrf fr succesori. Fie x X oarecare. Dac
x nu are succesori afirmaia este adevrat, n caz contrar fie x1 succesorul lui x (evident
x1 x ). Dac x1 nu are succesori afirmaia este adevrat; n caz contrar fie x2 un
succesor a lui x1 cu x2 x1 , x2 x .a.m.d. Deoarece graful este finit, acest proces de
alegere a vrfului x, x1 , x2 , x3 ,K duce dup un numr finit de pai la un vrf fr succesori.
Analog se demonstreaz existena vrfului fr predecesori.

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

14

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene

Determinarea drumurilor i a numrului lor


Definiia 52 Fie graful G = ( X ,U ) , X =

{ x1 , x2 ,

K , xn } . Fie A matricea adiacenelor

1 daca ( xi , x j ) U

grafului G , A = ( aij )i =1,2,K,n unde aij =


.
j =1,2,K,n
0 daca ( xi , x j ) U
Observaia 18 Dac aii = 1 atunci G are o bucl n xi . Dac aij = a ji atunci graful G este
simetric. Dac A este matricea lui G atunci AT este matricea lui G 1 . Dac aij = 1 i

a ji = 0 atunci G este antisimetric. Dac aij = 0 i a ji = 1 atunci G este complet.


Matricea boolean a unui graf neconex are forma diagonal sau poate fi adus la
aceast form prin renumerotarea vrfurilor (prin permutarea corespunztoare a liniilor i
coloanelor matricei).
Definiia 53 Pe mulimea {0,1} se definete operaia a +& b = max {a , b} numit adunare
booleean. Aceast operaie este asociativ i comutativ.
Definiia 54 Fie matricele booleene A = ( aij )i =1,2,K,n i B = ( bij )i =1,2,K,n de acelai ordin. Atunci
j =1,2,K,n

j =1,2,K,n

matricea C = ( cij )i =1,2,K,n cu cij = aij +& bij este tot o matrice boolean i se numete suma
j =1,2,K,n

boolean a matricelor booleene A i B . Notm C = A +& B .


Observaia 19 Dac A1 este matricea boolean asociat grafului G1 = ( X , 1 ) iar A2 este
matricea boolean G2 = ( X , 2 ) , atunci A1 +& A2 este matricea boolean asociat grafului
G1 G2 .
Definiia 55 Pe mulimea

{0,1}

se definete operaia a & b = min {a , b} numit nmulire

booleean. Aceast operaie este asociativ i comutativ.


Observaia 20 Tablele adunrii i nmulirii booleene sunt prezentate n figura 6:
+&

&

Figura 6
Observaia 21 Pe mulimea {0,1} operaia & coincide n nmulirea obinuit a & b = a b .
Operaiile +& i & sunt distributive una fa de cealalt. Notm cu
Dac

A = ( aij )i =1,2,K,n

j =1,2,K,n

B = ( bij )i =1,2,K,n

n
&

a
i =1

sunt

matrice

booleene,

= a1 +& a2 +& L +& an .

atunci

matricea

j =1,2,K,n

n
&

C = ( cij )i =1,2,K,n , cij = aik & bkj este tot o matrice boolean numit produsul boolean al
j =1,2,K,n

k =1

matricelor A i B i notm C = A & B .


Acest produs definit pe mulimea matricelor booleene ptrate de acelai ordin este
asociativ i distributiv fa de adunarea boolean.
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

15

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Teorema 4 Dac A i B sunt matricele booleene asociate grafurilor G1 = ( X ,U1 ) i

respectiv G2 = ( X , U 2 ) , atunci matricea A & B este matricea boolean asociat lui G2G1 .
Teorema 5 Dac A i B sunt matrici booleene, atunci matricea A & B se obine din
produsul obinuit A B prin nlocuirea n aceasta din urm a tuturor elementelor nenule cu
1.
Demonstraie: Este suficient s artm c matricile A & B i A B au aceleai elemente
nule. Acest fapt rezult din echivalena

n
&

a
k =1

Presupunem c

n
&

a
k =1

rezult c

ik

a
k =1

b =0 .

ik kj

& bkj = 0 . Rezult c max {aik bkj } = 0 de unde aik bkj = 0 i de aici
1 k n

aik bkj = 0 . Presupunem acum


k =1

&
dac i numai dac
ik bkj = 0

a
k =1

b = 0 . Deoarece aik , bkj 0 rezult c

ik kj

aik bkj = 0 pentru orice k = 1, 2,K , n i de aici max {aik bkj } = 0 din care se obine c
1 k n

n
&

a
k =1

ik

& bkj = 0 .

Definiia 56 Fie A o matrice boolean. Produsul de k factori A & A & L & A se numete
&
puterea boolean k a matricei A i se noteaz cu Ak . Elementul de pe linia i i coloana
&
( k& )
j din matricea Ak se noteaz cu aij .
Teorema 6 Fie graful G = ( X , ) . Dac A este matricea boolean asociat grafului

G = ( X , ) atunci n G exist drumuri de lungime k (formate din k arce) de la xi la x j


( k& )
dac i numai dac aij = 1 . Dac Ak este puterea k obinuit a lui A i elementul de pe
linia i i coloana j din Ak este aij( k ) atunci numrul drumurilor de lungime k de la xi la
x j este egal cu aij( k ) .
Demonstraie: Matricea A d informaii despre toate drumurile de lungime 1 din graf. Fie
xi i x j dou noduri oarecare din graf. Existena unui drum de lungime 2 de la xi la x j
presupune existena unui nod xk cu proprietile

( xi , xk ) U

( x , x ) U

nseamn c aik = 1 i akj = 1 i de aici aik & akj = 1 din care rezult

n
&

a
k =1

ik

ceea ce

& akj = 1 adic

2&
2&
2&
aij( ) = 1 , ceea ce arat c fiecare element nenul aij( ) din matricea A( ) indic existena unui

drum de lungime 2 ntre nodurile xi i x j . Procednd prin inducie obinem c matricea


( k& )
( k& )
A indic prin elementul aij = 1 existena unui drum de lungime k ntre nodurile xi i x j ,
iar Ak indic prin elementul aij( k ) numrul de drumuri de lungime k ntre nodurile xi i x j .
Teorema 7 Graful G = ( X , ) este fr circuite dac i numai dac exist k N * astfel
&

nct Ak = 0n , A este matricea boolean asociat grafului.


Observaia 22 Dac ntre nodurile xi i x j exist un drum de lungime mai mare sau egal
cu n atunci el va conine un numr de noduri mai mare sau egal cu n + 1 i, cum n graf
sunt doar n vrfuri, este clar c cel puin unul, s zicem xk , va aprea de dou ori. Vom
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

16

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
avea n acest caz un drum de la xi pn la prima apariie a lui xk , i un drum de la ultima
apariie a lui xk la x j . Eliminnd toate nodurile dintre prima apariie a lui xk i ultima
apariie a sa vom obine un drum de la xi la x j , n care xk apare o singur dat. Aplicnd
acest procedeu pentru toate nodurile care apar de mai multe ori pe un drum, vom obine
un drum de la xi la x j , n care fiecare nod apare o singur dat (deci un drum elementar),
care are evident cel mult n 1 arce. n concluzie, dac exist vreun drum de la xi la x j
atunci exist i un drum elementar i, deci, va exista o putere a lui A , ntre A i An 1 , n
care poziia ( i, j ) este diferit de 0 . Pentru deciderea existenei unui drum ntre oricare
dou noduri este suficient, deci, calcularea doar a primelor n 1 puteri booleene ale lui
A.
Exemplul 15 Considerm graful din figura 7.

x3

x1

x5
x2

x4
Figura 7

Matricea boolean asociat este:


x1 x2 x3 x4 x5
x1 0
x2 1

A = x3 1

x4 1
x5 0

0
0
1
1
0

0
0
0
1
1

1
1
. Puterile lui A sunt:
0

0
1

1
0
0
0
0

x1 x2 x3 x4 x5
x1 1
x2 0

A2 = x3 1

x4 2
x5 1

1
0
0
1
1

2
1
0
0
1

x1 x2 x3 x4 x5

x1 3
1

x2 2
2

, 3
2 A = x3 1

2
x4 2
1
x5 2

0
1
1
1
0
&

&

2
2
1
1
1

1
3
3
3
1

1
0
1
2
1

x1 x2 x3 x4 x5

x1 4
3

x2 5
2

, 4
3 A = x3 5

5
x4 6
3
x5 3

2
3
4
5
2

4
2
4
7
4

3
2
1
2
2

8
6
.
5

8
9

&

Matricele A2 , A3 , A4 se obin prin nlocuirea respectiv n A2 , A3 , A4 a elementelor


nenule cu 1.

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

17

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
x1 x2 x3 x4 x5
x1 x2 x3 x4 x5
x1 x2 x3 x4 x5
x1 1
x2 0

&
A2 = x3 1

x4 1
x5 1

1
0
0
1
1

1
1
0
0
1

x1 1
1
x2 1
1

, 3&
1 A = x3 1

1
x4 1
1
x5 1

0
1
1
1
0

1
1
1
1
1

1
1
1
1
1

1
0
1
1
1

x1 1
1
x2 1
1

, 4&
1 A = x3 1

1
x4 1
1
x5 1

1
1
1
1
1

1
1
1
1
1

1
1
1
1
1

1
1
1

1
1

Din acestea rezult c exist dou drumuri distincte de lungime 2 de la x1 la x3 .


&

&

(vezi A2 ). Nu exist drumuri de lungime 2 de la x2 la x1 (vezi A2 i A2 ). Exist un singur


&

drum de lungime 3 de la x2 la x4 (vezi A3 i A3 ). Exist drumuri de lungime 4 de la oricare


vrf xi la oricare vrf x j (n particular, rezult c graful este tare conex).
Observaia 23 Elementele de pe diagonala matricii Ak dau informaii asupra circuitelor.
Valoarea aii( k ) este egal cu numrul circuitelor distincte formate cu k arce care conin
vrful xi .
n exemplul de mai sus a11( ) = 3 . Exist trei drumuri formate din trei arce de la x1 la
3

x1 . Acestea sunt: ( x1 , x4 , x2 , x1 ) , ( x1 , x4 , x3 , x1 ) , ( x1 , x5 , x3 , x1 ) .

Deoarece a11( ) = 4 rezult c exist patru drumuri de lungime 4 de la x1 la x1 :


4

( x1 , x4 , x1 , x4 , x1 ) , ( x1 , x4 , x3 , x2 , x1 ) , ( x1 , x5 , x5 , x3 , x1 ) , ( x1 , x5 , x3 , x2 , x1 ) .
n 1

Definiia 57 Matricea D = ( dij )i =1,2,K, n , D = Ak , cu elementele ( dij )i =1,2,K, n , cu dij = 1 dac


j =1,2,K, n

&

j =1,2,K,n

k =1

exist un drum de la xi la x j i dij = 0 dac nu exist un drum de la xi la x j se numete


matricea total a drumurilor.
Dac ne intereseaz doar existena drumurilor dintre noduri, nu i numrul lor, vom
folosi nmulirea i adunarea boolean.
Procedeul de mai sus nu asigur dect aflarea faptului dac exist sau nu drum
ntre dou noduri, eventual ce lungime are i cte sunt de aceast lungime. Totui, n
problemele practice cel mai important este s tim care sunt efectiv aceste drumuri.
Deoarece toate drumurile pot fi descompuse n drumuri elementare i n problemele
practice n general acestea sunt cele care intereseaz, paii urmtori ai algoritmului vor fi
dedicai gsirii lor. Pentru gsirea acestora se folosete reprezentarea grafului prin
matricea latin i latin redus.
Determinarea unui drum de lungime 2 de la xi la x j presupune gsirea unui nod xk
cu proprietatea c exist arcele

( xi , xk ) U

( x , x ) U
k

( x , x , x ) . Aceasta este echivalent cu a gsi un indice


i

i memorarea vectorului

k astfel nct lik = xi xk i l%kj = x j .

Vom nmuli deci matricea L cu matricea L% , folosind ns nite reguli de calcul speciale,
numite nmulire i adunare latin.
Definiia 58 Se numete alfabet o mulime de simboluri numite litere {si |i I } unde I
este o mulime oarecare de indici, finit sau nu.

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

18

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Definiia 59 Se numete cuvnt un ir finit de simboluri notat si1 si2 L sin . Cuvntul vid se
noteaz cu .
Definiia 60 Se numete produs latin o operaie definit pe mulimea cuvintelor unui
alfabet, notat L , definit prin si1 si2 L sin L s j1 si2 L s jm = si1 si2 L sin s j1 si2 L s jm . Produsul latin a
dou
cuvinte
nevide
se
obine
si1 si2 L sin L = L si1 si2 L sin = , L = .

prin

concatenarea

lor.

plus

Observaia 24 Produsul latin este asociativ, are ca element neutru cuvntul vid, nu este
comutativ i singurul element inversabil n raport cu produsul latin este cuvntul vid.
Definiia 61 Se numete produs latin modificat o operaie definit pe mulimea cuvintelor
unui alfabet, notat & L , definit prin:
si1 si2 L sin & L s j1 si2 L s jm = si1 si2 L sin s j1 si2 L s jm dac

{i1 , i2 ,K, in } I { j1 , j2 ,K , jm } =

i dac nu

p, q {1,2,K, n} cu proprietatea i p = iq i dac nu exist r , t {1,2,K, m} cu

exist

proprietatea jr = jt ,
si1 si2 L sin & L s j1 si2 L s jm =

dac

p, q {1,2,K, n} cu proprietatea

{i1 , i2 ,K, in } I { j1 , j2 ,K , jm } sau


i p = iq sau dac exist r , t {1,2,K, m}

dac

exist

cu proprietatea

jr = jt .
Produsul latin modificat a dou cuvinte nevide se obine prin concatenarea lor i
coincide cu produsul latin.
Observaia 25 Produsul latin modificat este asociativ, are ca element neutru cuvntul vid,
nu este comutativ i singurul element inversabil n raport cu produsul latin este cuvntul
vid.
Definiia 62 Se numete adunare latin o operaie definit pe mulimea cuvintelor unui
+L ,
definit
prin
alfabet,
notat
si1 si2 L sin + L s j1 si2 L s jm = si1 si2 L sin , s j1 si2 L s jm ,

si1 si2 L sin + L = + L si1 si2 L sin = , + L = . Adunarea latin a dou cuvinte nevide are ca
rezultat mulimea format cu cele dou cuvinte.
Observaia 26 Produsul latin este asociativ, are ca element neutru cuvntul vid, este
comutativ i singurul element inversabil n raport cu adunarea latin este cuvntul vid.

Determinarea drumurilor
Fie graful orientat, finit de ordinul n , G = ( X , ) , X = {x1 , x2 ,K, xn } . Se calculeaz
succesiv puterile latine ale matricei L : L2 = L L% , L3 = L2 L% , ..., Lk +1 = Lk L% , ...,
L

n 1

n 2

=L

L L% folosind operaiile de nmulire i adunare latin, alfabetul fiind mulimea

nodurilor grafului. Din felul cum a fost construit, matricea Lk va conine toate drumurile de
lungime k .

Determinarea drumurilor elementare i hamiltoniene


Fie graful orientat, finit de ordinul n , G = ( X , ) , X = {x1 , x2 ,K, xn } . Se calculeaz
succesiv puterile latine modificate ale matricei L : L2 = L & L% , L3 = L2 & L% , ..., Lk +1 = Lk & L% ,
L

..., L = L & L L% folosind operaia de nmulire latin modificat i operaia de adunare


latin, alfabetul fiind mulimea nodurilor grafului.
n 1

n 2

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

19

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Din felul cum a fost construit, matricea Lk va conine toate drumurile elementare
de lungime k . Cum un drum elementar poate avea cel mult n noduri (cte are graful cu
totul) rezult c: primele n 1 puteri ale lui L conin toate drumurile elementare din graf,
puterile lui L mai mari sau egale cu n au toate elementele egale cu 0 , matricea Ln 1
conine toate drumurile hamiltoniene din graf (dac exist).
Exemplul 15 Considerm graful din exemplul 1.

Matricea de adiacen a grafului din exemplul 1 este:


x1 x2 x3 x4
x1 0
x2 1
A=
x3 1

x4 1
x1

1
0
1
0

1
1
1
0
x2

0
1 . Matricea latina a grafului este:
0

1
x3
x4

x1
x1 x2 x1 x3

x xx

x2 x3
L= 2 2 1
x3 x3 x1 x3 x2 x3 x3

x4 x4 x1

x1 x2 x3 x4
x1
x x
L% = 2 1
x3 x1

x4 x1
x1

x2 x3
x3
x2 x3

x2 x3 x4


x2 x4 . Matricea latin redus este:

x4 x4

x4 . Primele trei puteri booleene ale matricei adiacenelor sunt:

x4
x1 x2 x3 x4

x1 1 1 1 1
x1 1 1 1 1
x 1 1 1 1 ,
x 1 1 1 1 .
&
&

A2 = 2
A3 = 2
x3 1 1 1 1
x3 1 1 1 1

x4 1 1 1 1
x4 1 1 1 1
Rezult c ntre oricare dintre cele patru noduri ale grafului exist drumuri de lungime 2 i
de lungime 3. Primle trei puteri ale matricei A sunt:
x1 x2 x3 x4
x1 x2 x3 x4
x1 2 1 2 1
x1 4 4 5 2

x2 2 2 2 1 , 3 x2 5 4 6 3 .
2
A =

A =
x3 2 2 3 1
x3 6 5 7 3

x4 1 1 1 1
x4 3 2 3 2
Rezult de exemplu c exist 2 drumuri de lungime 2 ntre nodurile
1 = ( x1 , x2 , x3 ) , 2 = ( x1 , x3 , x3 ) .
19 September 2014

x1 i x3 :

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

20

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
Vom determina toate drumurile elementare i drumurile hamiltoniene dac cele din
urm exist. Puterile latine ale matricei L sunt:
x1
x2
x3
x4

x1 x3 x2
x1

x {x x x , x x x }

L2 = L & L L% = 2 2 3 1 2 4 1
x3
x3 x2 x1
x3 x1 x2

x4

x4 x1 x2

x1

x2

x1 x2 x3

x4 x1 x3

x3

x1 x2 x4
,
x3 x2 x4

x4

x1 x3 x2 x4
x1

.
x2

x2 x4 x1 x3

3
2
%

&
L = L L L =
x3 x3 x2 x4 x1

x3 x1 x2 x4

x4
x4 x1 x3 x2 x4 x1 x2 x3

2
Din matricea L rezult c exist dou drumuri elementare de la x2 la x1 :

1 = ( x2 , x3 , x1 ) , 2 = ( x2 , x4 , x1 ) . Din matricea L3 rezult c exist 6 drumuri hamiltoniene


n graful studiat. Nu exist nici un drum hamiltonian de la x2 la x4 .

Matricea boolean a nchiderii tranzitive


Fie A matricea boolean asociat grafului G = ( X , ) , X = { x1 , x2 ,K , xn } i I n I
matricea unitate de ordinul n .
tim c pentru orice x X , x = { x} U x U 2 x UK este mulimea format din x i
= x , se numete nchiderea tranzitiv a grafului
din toi succesorii si i c graful G

( )

G.
. Notm
Ne propunem s deducem matricea boolean corespunztoare grafului G
A = I n +& A .
Aceasta este matricea corespunztoare grafului

( X ,

) . Ea se obine din A

punnd 1 pe diagonala principal a acesteia acolo unde se gsete 0 i lsnd celelalte


elemente neschimbate. Matricea A corespunde grafului obinut din G prin adugarea
buclelor n vrfurile unde acestea nu exist. n acest graf x este mulimea format din x
&
&
i din succesorii de ordinul 1 ai lui x . Evident A 2 = ( I n A ) ( I n A) = I n A A A2 .
)
2
Matricele I , A , A2 corespund respectiv grafurilor: X, 0 , (X, ), X, 2 i deci A
n

corespunde grafului X, 0 2 unde 0 2 x = { x} x 2x ( ) x X .


)&
Deci n graful corespunztor matricei A2 fiecrui element i corespunde o mulime
format din el nsui i din succesorii si de ordinul 1 i ordinul 2.
Din aproape n aproape se deduce c matricea:
&
&
&
Ak = I n +& A +& A2 +& K +& Ak corespunde grafului X , 0 K k n care fiecrui

element i corespunde o mulime format din el nsui i din succesorii si pn la ordinul


k inclusiv 0.
19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

21

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene

Se observ c toate elementele egale cu 1 n A k rmn egale cu 1 n A k +1 ,

deoarece A k +1 = Ak +& Ak +1 .

&
Ridicnd A la puteri booleene succesive, vom avea al un moment dat A k +1 = A k i
&
n acest moment s-a obinut matricea nchiderii tranzitive A k .
Numrul de pai pn la obinerea matricei nchiderii tranzitive poate fi redus
&
&
calculnd, A 2 , A 4 , i oprind calculul atunci cnd dou dintre matrice coincid.

Exerciii
1.

Fie

graful

X = {x1 , x2 , x3 , x4 , x5 } ,

G = ( X , ) ,

x1 = {x2 , x3 , x5 } ,

x2 = { x1 , x3 , x4 } ,

x3 = { x2 , x4 , x5 } , x4 = { x2 , x3} , x5 = { x1 , x4 , x5 } . S se determine numrul de drumuri


hamiltoniene din graful G .
2.

Fie

graful

X = {x1 , x2 , x3 , x4 , x5 } ,

G = ( X , ) ,

x1 = {x2 , x3 , x5 } ,

x2 = { x1 , x3 , x4 } ,

x3 = { x2 , x4 , x5 } , x4 = { x2 , x3} , x5 = { x1 , x4 , x5 } . S se determine numrul de drumuri


elementare de lungime 3 ntre nodurile x1 i x4 .
3.

Fie

graful

X = {x1 , x2 , x3 , x4 , x5 } ,

G = ( X , ) ,

x1 = {x2 , x3 , x5 } ,

x2 = { x1 , x3 , x4 } ,

x3 = { x2 , x4 , x5 } , x4 = { x2 , x3 } , x5 = { x1 , x4 , x5 } . S se determine numrul de circuite de


lungime 2 din graful G .
4.

Fie

graful

X = {x1 , x2 , x3 , x4 , x5 } ,

G = ( X , ) ,

x1 = {x2 , x3 , x5 } ,

x2 = { x1 , x3 , x4 } ,

x3 = { x2 , x4 , x5 } , x4 = { x2 , x3 } , x5 = { x1 , x4 , x5 } . S se determine numrul de drumuri de


lungime 4 ntre nodurile x2 i x5 .
5.

Fie

graful

orientat

G = ( X ,U ) ,

X = {x1 , x2 , x3 , x4 , x5 , x6 , x7 } ,

U = {( x1 , x2 ) , ( x2 , x3 ) , ( x2 , x4 ) , ( x3 , x1 ) , ( x2 , x3 ) , ( x3 , x4 ) , ( x6 , x4 ) , ( x6 , x5 ) , ( x5 , x4 ) , ( x5 , x7 ) , ( x7 , x5 )} . S
se determine componentele tare conexe ale grafului.

Rezolvri:
1. Se construiete matricea latin L asociat grafului. Se calculeaz L4 i se obine:

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

22

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene

x1 x5 x4 x3 x2
x1 x5 x4 x2 x3
x1 x2 x3 x5 x4
x1 x2 x4 x3 x5

x1 x3 x5 x4 x2

x2 x4 x3 x5 x1

x2 x1 x3 x5 x4

x3 x5 x1 x2 x4

x3 x5 x4 x2 x1
x3 x4 x2 x1 x5

4
L =
. Graful are
x3 x2 x1 x5 x4

x4 x3 x2 x1 x5
x4 x3 x5 x1 x2

x4 x2 x3 x5 x1

x4 x2 x1 x3 x5

x5 x4 x2 x1 x3 x5 x1 x3 x2 x4
x5 x4 x3 x2 x1

x
x
x
x
x

5 1 3 4 2

x
x
x
x
x
x
x
x
x
x
5
1
2
4
3
5
1
2
3
4

21

drumuri hamiltoniene.
2. Se construiete matricea latin L asociat grafului. Se calculeaz L3 i se obine:

x2 x3 x5 x1

L3 =
x3 x4 x2 x1

x x x x
4 3 2 1
x4 x3 x5 x1

xxxx
5 4 2 1

x1 x3 x4 x2

x1 x5 x4 x2

x3 x5 x1 x2

x3 x5 x4 x2

x5 x1 x3 x2

x5 x4 x3 x2

x1 x2 x3 x5

x2 x1 x3 x5
x2 x1 x3 x4

x2 x4 x3 x5
. Graful are trei drumuri
x3 x2 x1 x5

x4 x2 x1 x5

x4 x2 x1 x3

x4 x2 x3 x5

x5 x1 x2 x3 x5 x1 x2 x4

x5 x4 x2 x3 x5 x1 x3 x4

x1 x3 x2 x4
x1 x2 x4 x3

x1 x2 x3 x4
x1 x5 x4 x3 x x x x
1 3 5 4

elementare de lungime 3 ntre nodurile x1 i x4 . Aceste drumuri se citesc din matricea L3 :


1 = ( x1 x3 x2 x4 ) , 2 = ( x1 x2 x3 x4 ) , 3 = ( x1 x3 x5 x4 ) .
0
1

3. Se construiete matricea boolean asociat grafului: A = 0

0
1

determina numrul de circuite


2
0

matricei A . Se obine: A2 = 2

1
1

de
1
3
1
1
2

1
0
1 . Pentru a

0
1
lungime 2 din graf se calculeaz puterea 2 obinuit a
1 3 2
2 1 2
2 2 1 . Rezult c exist dou circuite de lungime 2

1 2 1
2 1 2
1
0
1
1
0

1
1
0
1
0

0
1
1
0
1

ntre nodurile x1 i x1 , trei circuite de lungime 2 ntre nodurile x2 i x2 , dou circuite de


19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

23

Modelare i simulare
Grafuri. Definiii. Matrici asociate grafurilor. Drumuri. Drumuri
hamiltoniene
lungime 2 ntre nodurile x3 i x3 , dou circuite de lungime 2 ntre nodurile x4 i x4 i dou
circuite de lungime 2 ntre nodurile x5 i x5 . n total exist 11 circuite de lungime 2 n graf.
0
1

4. Se construiete matricea boolean asociat grafului: A = 0

0
1

1
0
1
1
0

1
0
1 . Pentru a

0
1
determina numrul drumuri de lungime 4 ntre nodurile x2 i x5 din graf se calculeaz
11
7

puterea 4 obinuit a matricei A . Se obine: A4 = 11

7
9

14
13
12 . Rezult c exist

9
13

13
16
11
9
14

13
15
12
9
14

17
11
16
11
13

1
1
0
1
0

0
1
1
0
1

13 drumuri de lungime 4 ntre nodurile x2 i x5 .


5. Graful are dou componente tare conexe: { x1 , x2 , x3 } i { x4 , x5 , x6 , x7 } .

19 September 2014

Lect. univ. Paul Vasiliu

Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

24