Sunteți pe pagina 1din 16

Capitolul X

ElEMENTE DE TEORIA GRAFURILOR

1.

Noiuni generale

Definiia 1. Un graf G este o perecJw de forma G = (X, A), unde X este


o nwlfime finit, iar A este o submulime a lui X X X.
Elementele x e X se numesc "vrfuri " sau "noduri" ale grafului G, iar
perechile (x, y) e A - arce ale grafului.
Penlru un arc (x, y) e A, vrful x se numete extremitate iniial sau
,.surs", iar vrful y, extremitatea final sau "destinafie".
Ca un exemplu, vom considera graful G = (X, A), dat de X = {x1 , x2 ,
x 3, x 4 } , iar A = {(x1 , x3 ), (x2 , x1 ), (x3 , x 2 ), (x1 , x 4 ) }.
Graful G admite o reprezentare geometrk n plan, obPnut astfel :

- cele patru vrfuri se plaseaz n plan n poziii distincte oar~care ;


- pentru fiecare a rc (xt, x;) e A, punctele Xt i Xi se unesc printr-u n
segment orientat.
Se obine astfel figura 1.
Dac arcele a 1, a 2, , a ~.; ale unui graf G au proprietatea c extremitatea final a arcului a1(j = 1, k - 1) coincide cu extremitatea iniilll a
arcului a i+1 atnnci mulimea ordonat d = {a1 , a 2 , . , a"} formeaz un
drum n graful G. Dac extremitatea final a arcului a ~.; din drumul mentionat anterior coincide cu extremitatea iniial a arcului a 1, atu nci drumul
se numete "circuit" n grafu l G: noiunea de circuit are o mare importan
i Yom reveni deseori asupra ei.
}Ienionm c drumul mai poate fi definit i ca o mulime ordonat de
vrfuri, ceea ce este de multe ori avantajos: anume, fi e d = {x, 1, Xt 2, . , Xt1,} C
C X, pentru care avem proprietatea (V) j = 1, h - 1, (X ti, Xi;+ 1) e A .
Echivalena celor dou moduri de prezentare este evident. Se sp une despre
un drum d c "trece" prin arcele i prin vrfurile care le conine. Dac un
drnm trece de dou sau mai multe ori prin acel a i Yrf, el se numete drum
neelementar: n cazul contrar, drumul este elementar. Un drum elementar
care trece prin toate vrfurile grafului se numete drum hamiltonian. Uneori,
numrul arcelor care compun un drum este numit "lungimea" acelui drum.
Arcele de forma (x 1, x 1) e A se numesc " bucle".
ntr-un graf G, se numete muchie o pereche [xt, XJ] de vrfuri pentru care
avem proprietatea c (x 1, x 1) e A sau (x J. Xt) e A : muchiile unui graf reprezentat geometric se prezint ca nite segmente neorientate.
0 SUCcesiune de vrfuri lJ = {Xil Xtz, , X;t}
formeaz un lan n grafulG, dac (V) j = l, k-1,
avem [x 1J, XiJ+ 1 ) e A. Lanul se numete elementar dac nu trece de dou ori prin acelai
vrf. Un lan avnd X t 1 = Xi~o: i toate muchiile
distincte dou cte dou se numete ciclu. Num
rul de muchii care formeaz un lan se numete
Fig. 1

102

lungimea

lanului.

Un graf G este cone.1: dac pentru orice dou Y lrfuri ale sale, x i y, exisl
{x, cx 1, .. , cx 1,, y}. Vrfurile x, yale unui graf G se zic .,adi acente",
y] este o muchie n G; alunci se sp une c virfurile .1: i y s nt incidente la mu chia [.r, y].
F ie G = (X, A ) un graf i fie Y C X : spu nem c arcul (cx1 , o: 2) este
incident inlerior mulpmii r, dac cxl ~ y i CXz E 1'. Dac ayem 0(1 E ) ',
o: 2 r. Y i (o:1 , cx2) e A, atu nci arcul (o:1, cx2) este incident exterior mulimii Y.
Vom nota cu w- (Y) mulpmea arcelor incidente interior lui Y, iar cu
w+(n - mulimea arcelor incidente exlerior lui Y: mu l im ea w(l"J = .
= ()-Cl') U w+(Y) se numelc mulime de arce incidente lui Y. Fie G =
= (X, A) - un graf: atunci graful G1 = (X, B) se numete "gTaf partial'
al lui G, dac B CA i "subgraf", d ac are strict m ai puine vrfuri dec t G,
iar a rcele sale se obin prin preh!area arcelor lui G care unesc vrfuril e subgrafului. Aadar, G2 = (Y, C) este subgraf al lui G, dac Y C X i dac
C = ( Y X Y)
A.
lan
dac [:r,

un

o=

2. Matrici asociate unui graf


Fie G = (X, A) un graf aYnd X = {x1, X2, ... , x.. }. i\Iatricea A

= Il

UtJ 1

da l de relaiile : aH= 1, pentru (x 1, x ,) e A, i Uti =O pentru (xt, x,) f/= A,


se numete matricea arcelor (malricea conexiunilor directe) pentru graful G.
1\Ialricea r/)
d u , dat de rclapite do= 1 pen lru cazul n care n G
exi s t cel puin un drum de la Xt lax, i do= O n caz co ntrar, se num ete
matricea dr11murilor (mat r icea conexiunilor t olale) a gr afu lui G. S remarcm c :
- dac dou grafuri au aceeai m alrice a arcclor (i aceeai mulime
de Yirfuri), at unci cele dou grafuri coincid:
- d ou grafuri avnd aceeai mulime de vrfuri i aceea i matrice a
d rumurilor, atu nci nu este obligatoriu ca aceste dou gra furi s aib i ace-

leai

a rce.

P .-opozipa 1. intr-un graf G avnd ,.n" vrfuri, orice dmm elemen tar are
!Hngimea de cel mult n- 1.
Demonstraie. Afirmai a este ev ident pentru cazu l n = 2, ntrueit
ntr-u n graf cu numai dou Yirfuri, orice drum elemenlar est e format dintr-un
singu r arc.
Presupunem c ntr-un g ra f av nd k virfuri, orice drum elementar are
ce l mul t k - 1 arce.
F ie acum un graf G ad nd k
1 virfuri, i fie :r A-+ 1 - un Yirf fixat a l
acestu ia . D ac G = (X, .1 ), atunc i subgraful G1 corespu nzind m ul !imii
X "-{:r,.+1 } are k Yirfuri. Pentru a obpne din drumuril e g ra fului G1 , mulimea
de drumuri din graful G, o bse rv m c snt posibile trei metode :
- fiind dat un drum d 1 = fxt1 , . , Xt.~:} in g raful G1 , se poale obpne
drumu l d = {:r;1, . . . , 1't1-, xA-+d in .graful G, d ac (:r1k> xH 1) e .tl;
- dac d 1 = {xt 1, , Xt.~:} este drum in grafu l G1, se poale obpne
drum ul d = {xHI Xt1, ... , x,.tJ dac Sn graful G aYe m (:r H I xc1) e A;
- aYnd drumu l i.l1 = {xt1 , . , Xt", x'v+J .. ., :t;.t} n g rafu l G1 se
poate obine drumul d = {x;1, ... , x,", :r,.+I X t" +t . . , X tk} n g raful G,
ori de cite ori (xt", .1 1-+ 1) i (x 1.+ l Xt"+ 1) s nl a rce n G. Se observ aadar c
trecerea de la drumuril e din subgraful G1 la drumurile din g ra ful G presupune
ad u garea unu i singur arc, deci drumuril e din g r a ful G Yor aYCa cel mult k
arce.

103

Fie G = (X, A) un graf,

f ie

X;

e X; vom introduce urmtoarele

notaii:

- r <l) (Xti mulpmea de vrfuri din G la care se poate ajunge din vrful
fol os ind drumuri formaLe dintr-un singur arc ;
- r <2>(:v,) - m u l-im ea de v rfuri din G la care se poale ajunge din
fol osind drumuri elementar<' formate din dou arce;
- r <t> (.c;) - mulim ea de vrfuri din G la care se p oa te ajunge din
folosind drumuri elementare formate din k arce.
1n a ces te condij ii es te valabil urmtoarea a firm a- i e :

Xt
Xt
Xt

PJ'OJlOZiia 2. Fie G w1 graf ai' lnd " n" virfuri : atunci elementul d ti(i :f j)
al matricii (/) a d rum urilor grafului G este egal cu 1, d ac i numai dac
a\'cm relaia
n-1
XJ e

r <> (:t: t).

S= l

Demonstraie. Afirmapa este evident, deoarece orice drum se p oate


trans fo rm a ntr-un drum elementar prin s uprimarea unor arce.
n vederea elaborrii unor algoritmi de determinare a . matri cii drumurilo r, vom introduce o operaie adecvat p e mulimea formal din element ele O i 1, numit oper a p e de ,.adunare boolea n " ; acea s t o peraie este
dat de reg ulil e urmtoa re : O + O = O, O + 1 = 1 + O = 1, 1 + 1 = 1.
Atunci este ev ident c algoritmul de determinare a m atricii drumurilor unui
graf, p lecnd de la malriqea a rcclor, const din ap licarea urm toarelor clape:
- 1. pentru construirea linie i J' din malricea r?J(i = I:ll> urmanm
ntii elemcnlele egale cu ,.t' p e linia .,i din matricea arcelor: d ac a 1,. = 1 ;
a ta = 1 ; ... ; a ty = 1, atunci d ta. = 1 ; c/; 13 = 1 ; . . . ; d iy = 1.
- 2. folosind adunarea boolean, se adun liniile ct., ~ , y din matricea cll
la linia "i" ; noile valori de "1 " aprute se trec n li nia " i " a matricei ([);
fie k, 1, ... , m poziii l e ocupale de aceste noi valo ri n cadrul liniei;
- :1. ad un m (b oolean) liniile k, 1, . . ., m din d la linia ,.i', trecnd
noile valori de " 1" aprute n linia " i " a m atricei (/), continu nd procedeul
pn la apariia uneia din urmr1toarcle situaii:
sau toate elrmcnLelc d u (j = l. n ) deYin egale cu .. 1;
sau nu mai apare nici un element egal cu .,1" , caz in care
Jocu rile rmase li bere se completeaz cu zerouri i se trece
la linia ..i + 1", pe ntru care se repet procedeu l.
U na din Lre noiunile ce vor fi utilizate n continuare face. obiectul defini ie i de mai jos:

D efiniia 3. Puterea de atingere p(x;) a vrfului .t t e X in graful G = (X,A)


este egal cu numrul de vrfuri la care se p oate ajunge din X t, adicil egalli cu
numrul de elemente de "1 " de pe linia "i" din matricea fl).
~Ialricea (/) = 11 diJ il;, i=G a drumurilor gra ful ui G poa le ind ica prezena sa u absena circuitelor n g rafu l G: astfel, d ac d ii = O, (V) i = T,ll,
atu nci grafu l G nu arc circuite; d ac exist un indicei, i = 1, n, pentru care
d u= 1, atunci exist n graful G un circuit care are ca vrf ini ial i final
pe X ;.

104

ele
De exemplu, pentru gr.aful G din figura 1, matricea conexiunilor directe
este
X;

d
j)
t"

Matricea drumurilor,

~ (~

obinut

0 ~ (l

o
o
1

o
o
o

din matricea
1
1
1

~)
precedent,

est e

;)

o,

intrucit d11 = 1, in grafu l G din figura 1 ex ist circuite.


ln ceea ce privete puterile de atingere ale Yirfurilor, avem p(x1 ) =
= p(x2) = p(x3 ) = 4 ; p(x4 ) = O.
Algoritmul de determinare a matricii drumurilor prezentat anterior
este destul de lent in ce privete aplicarea pe calculator, avnd complexitatea O(n 2 ), dar este util in aplicai i efectuate manual pe grafuri de dimensiuni
reduse.
Se poate observa de asemenea caracteru l prea sin tetic al acestui algoritm,
in sensul c prezena unei valori de "1" in matricea drumurilor nu d informaii asupra vrfurilor din care se compun drumurile corespunztoare, bineineles i nici asupra numrului de drumuri intre vrfurile care corespu nd
acelor valori de " 1".
Ca un exemplu de algoritm capabil s rsp und aces tor deziderate, prezentm a lgoritmul fundamental datorat lui A. Kaufmann, numit al " nmu lirii latine". Drept punct de plecare, acest algoritm folosete o matri ce a
conexiunilor directe, notat .:::<:: (1>, care, in locul \alorilor de "1 'utilizate de
matricea obinuit a arcelor, utilizeaz nsu i arcul respectiv, reprezen tat
prin virfurile care il compun: astfel, pentru graful din figura 1, matricea x<IJ
este

Sensul simbolului "* .. este acela de " inexisten! a arcului".


P rin suprimarea primei litere in matricea .:::<::(ll, se obine o matrice .:::<:: (0>,
numitii "a destinaiilor posibile". Se compun matricile _::e:(ll i .:::e:w> (in aceast
0rdine) prin operaia numit "concatenare" sau ,. nmulire l atin", astfel :
se respect regulile din nmulirea obinui L a matricilor, cu urmtoa rel e
preci z ri :
- dac una din componen tele particip a nte la calcul este ocupat de
si mbolul .,*", atunci rezu ltatu l es te .,*";
- n caz contrar, rezultatu l compunerii consL n Si ricrea n continuare
a Yrfurilor componente ale simbolurilor participante.

105

aceast regul

Kotind
de

recuren

de compunere prin "&",

introducnd

relaia

x<r+l) = x<r>&x<o>, r

1,

se obsen c matricea x<m> conine lista tuturor drumurilor formate din "m"
arce in graful dat. Pentru exemplul analizat, avem

~ ((x,,

*
*

(xv

:r2, xJ)

~ c

x3, :r2,

*
*
*

X;~,

*
*
*
XI)

*
*

x2)

4:*) , _:x 121 = _:xco & _:x <o>=

*
(x2,

Xl,

*
x3) (x2, x,,

*
*

*
*

.*

(x2, xl, x3, x~)

*
*

(x3, Xz,

x,) )::<:'"~:<:'"& :X"'~


*
*

Xl,

x3)

(:t:3, x2, xl,

x,) )-

3. Determinarea drumurilor hamiltoniene


in grafuri fr circuite
Ca i pn acum, vom nota prin p(x) puterea de atingere a virfului x
al unui graf. Dac graful G nu are circuite, vom scrie matricea (/) a drumurilor grafului, ordonind n prealabil vrfurile grafu lui in ordinea descresc
toare a puterilor de atingere: dup cum se va art:1, prin acest procedeu
toale valorile de " 1" din matrice vor apare deas: -pra diagonalei principale.
Pentru a justifica aceasta, s observm intii cJ, dac n graful G exist
un drum de Ia x, la x 1, atunci p(x 1) < p(x 1), deoarece orice vrf atins din x 1
poate fi atins i din Xt, printr-un drum obinut in cadrul unei operaii de
concatenare. Aadar, dac ar mai fi posibil ca dtJ = 1, cu i > j, atunci
p(xr) > p(x 1), ceea ce, conform conveniei privind rearanjarea liniilor i
coloanelor, nu mai este posibil. 1 O astfel ele form a matricii (/) se numete
,.form t riangularizat superior". Aceast form are proprietatea c fiecare
element egal cu "1" de pe fiecare linie a matricii drumului corespunde unui
drum format dintr-un singur arc. ntr-adevr, s presupunem c d,.b = 1,
(a< b) este prima valoare de "1" de pe linia "a", i c exist un drum de
cel puin dou arce, d = (a, h, b), atunci vrful xA ar verifica relaia p(xA) >
> p(.1:b), deci, pe de o parte, csLe sigpr c xA va precede pe xb, iar pe de alt
parle, am avea dAb = 1, ceea ce am presupus c nu se ntmpl.
Aceste consideraii simple permit elaborarea unui algoritm de determinare a drumurilor hamiltoniene n grafuri fr circuite, dup cum urmeaz :
Teorema (Y. Chen). Un graf fr circuite, care are "n" vrfuri,
un drum hamillonian, dac i numai dac avem :

~ p(Xt) = n (n 2- 1)
i = 1, n

106

conine

Demonstraie. Fie d = (x1 , x 2 , , x,.) drumul hamiltonian


- dac i
j, din x 1 nu se poate atinge vrful Xt, deoarece

>

n G ar exista circuite ;
- din drful Xt (i = -:-1-,.-n-~1 ) se pot atinge virfurile
deci p(."Ct) = n - i ;
din vrful Xn nu se poate atinge nici un vrf.
n total avem deci :

L: p(~t) = L:

i=l,n

Invers,

presupunem

(n _ i)

n G; aturrci :
n caz contrar

Xt+t X t.L , ,
2

x,.,

n(n; 1).

i = l,n

:
~ p(Xt)

LJ
i= l ,

n(n -1) .
2
'

Il

atu n ci n matricea -0 se gsesc n(n- 1)/2 elemente de "1 . 1riangulariznd


superior aceast matrice, aceste elemente vor ocupa toate locurile disponibile de deasupra d iagonalei : n final, drumul hamiltonian nsui esle claL
de succesiunea Yrfurilor corespunztoare matricii triangu l arizat superior.
Se observ c ntr-un graf fr circuite, exist cel mult un drum ham iltonian. n adevr, dac ar exista dou drumuri hamiltoniene distinclr,
d)}' i d~;>, atunci n cele dou drumuri ar exista cel puin dou virfuri Xa, .1:0
aezate n ordine invers, ceea ce ar face s apar un circuit ntre -xa i :rb.
Algoritmul final de determinare a drumului hamiltonian const n aplicarea urmtoare l or etape :

1. se scrie matricea fZ) = 11 di1 11 a drumurilor: dac exist un indice


,.i" pentru care d11 = 1, aLunci graful are circuite i dec i algoritmul Y. Chen
nu se poalc ap lica:
2. n caz conLrar, dac n malrice ex isl n(n - 1)/ 2 valori de " 1 ",
graful admiLe drum ham il tonian i se poate trece la ct.apa urmtoare; dac
numru l de valori de "1 " este mai mic dect n(n - 1 )/ 2, grafu l nu arc drum
ham iltonian ;
!l. ordinea virfurilor n cadrul dru mulu i hamiltonian esle dal de (lrdinea descrescloare a puterilor de atingere.
Exemplul J.: s determi nm drumul hamiltonian pent ru graful din
figura 2.
Penlru accsl graf, matricea a rcelor i malricca drumuri lor sint urmtonrelc :

o o o
o () 1
()
1
1
o o ()
o o o

fJ.

o o o
o o 1
1
o 1
o o o
o o o o

lJ.

d~ (l
'0

0
Fig. 2

~ (l

107

deci p(x1 ) = 1, p(x2 ) = 3, p(x3 ) = 4, p(x4 ) = 2, p (:t5 ) = O. Cum este verificat condii a teoremei, deducem c n graful dat exist drum hamiltonian.
Cum avem p(.1:3 ) > p(:c2 ) > p(x4 ) > p(x1 ) > p(x5 ), acest drum va fi du =
= (:r3 , x 2 , x 4 , x 1 , X;;) .
.:\Ienionm c p rincipalul algoritm (elementar) de determinare a drumurilor hamiltoniene n grafuri avnd circuite rmne algoritmul Kaufmann :preze na unui clement diferit de ., *" pe diago nala uneia dintre matricile _x <h)
din cadrul acestui algoritm indic att prezena, de exemplu, a unui circuit
hamiltonian, ct i o rdinea vrfurilo r. n ceea ce iHivete drumurile hamiltoniene intr-un graf avnd "n' vrfuri, ele coresp und elementelor diferite de "*"
di n matricea _x<n>.

4. Drumuri de valoare

optim ntr-un graf :

algoritmul Bellman - Kalaba


F ie G = (X, A) un graf ; vo m introdu ce o func ie p: X --+ n+, pent ru
care vom nota: (x 1, x 1) e A = p(x1, x 1) = p ;;.
Numrul Pii va fi numit .. valoarea" a rcului (x ;, XJ), iar funcia p - funcpe
de valuare a graful ui. Un graf nzestrat cu o funcie de valuare v a fi numit
:.graf valu~l ", i va fi notat cu G = (X, A, p). Pentru u n drum d = (x;1,
:t;2 , , XtA:) n graful G, vom numi " valoare a drumul ui , su ma valorilor
arcelor componente, ad ic :

Ne propunem abordarea urmtoarei probleme : fiind dat u n graf valuat


un vrf Xn e X fixat, s gsim drumul " d' de la un virf oarecare X; la
virful Xn, pentru care valoarea p (d) s fie minim .
Drept instrument de lucru se folosete o matrice, numit " matricea
exti n s a valorilor a rcelor", V= 11 v 11 11, ale crei elemente se determin
astfel :
i

V ;J

O, pentru i = j,
PtJ. pen~tr~t (.1:~, ~J) e A ,
co, daca z =1= J t (."C;, XJ) f{= A.

Fie, de ase menea, m!"> - valoarea mtmma a drumului d de la X t la Xn


n g raful dat, considerat n mulimea drumurilor de cel mult k arce : vom
n ota prin m ; - valoarea minim a drumului de la X; la Xn, considerat n
mu!J imea t ut uror drumurilor (indiferent de numrul de arce componente).
n determinarea matricilor 11 m~"> lli=G li m t lri=G ne bazm pe
urmtoarele propoziii : .
l,ropoziia

l. Pentru orice k e N* avem


mfh l) = minim {viJ

i =T.Ii
10.8

+ m?>}.

i-

Demonstraia propoziiei este evident, deoarece un drum de cel


cu destinaia Xn se poate ob-ine dintr-un drum de cel mult k
dcslinapa Xn, prin adugarea unui arc la nceputul su . Aadar,

le + 1 arce
cu

m?'+l 1 = minim {v 0 + minim


j = t;li

!-

1)

{p(d.~;)}} =

mult
arce

minim {v 11 + m ~t>}.
j=~

{d d

Pro})OZiia 2. Dac(t exist k e N* pentru care mlk' = mlk+l>,


orice i = G, atunci :
a) m ~kJ = m ~> , (V) i = 0, (V)s ~ 1.:
1;

pentru

i = 0Demonslra!ie. Vom demonstra proprietatea a) prin inducie dup s:


penlru s = 1.: + 1, proprietatea esle adevrat conform enunul u i;
- presupunnd proprielalea adev rat pentru o v aloare s ~ h, ave m
b)

mf =

m ;, (V)

mf11 - l> = minim {vu +


j =~

m ~M}

= minim {v11 + mfk'} = mf+ 1.


j =~

P roprietatea b) rezult n mod evident, de vreme ce adngarea de noi


arce nu ma i conduce la drumuri de valoare mai mic . Din cele prezentate deducem algoritmul de construire a Yectorulu i 11 m c l!i= l.fl; acesta
con s t n aplicarea urm toare l o r etape :
J. se cons truiete matricea V = 11V tJ li;, i=T,li pentru graful dat;
2. se adaug matricii \', liniile suplimentare 11 mf0 11, 11 ml2 ' 11. . ..,
aslfel :
a. linia 11 m~ 0 11 coincide cu coloana 11 vJn II]=T.n ;
b. presupunnd completat linia 11 mlk) ll i=f.l1 se completeaz linia
11 m\!:+l ) 11;=[,11 conform propoziiei 1 ;
c. se continu aplicarea fazei (b) pn la obinerea a dou linii
11 m~k> 11, 11 mlk+l J 11 identice.
3. se adun linia "i" din V cu linia 11 m <f+l> 11, urmrindu-se rezultatul '
minim ce se poate obine : s presupunem c

atunci primul arc din drumul minim de la x 1 la Xn este arcul (x 1, x 1). In continuare, se adun linia " j" din V cu 11 m <~+l > 11, reinnd noua valoare minim,
aflat pe coloana .,!.:" ; atu nci al doilea arc este (x,, x.~:) etc.
Exemplul 3. F ie graful valuat din
figura 3 : ne propunem s determinm lungimile drumurilor m axime cu desti naia x 5
Pent ru acest graf avem p 12 = 2 ; p 13 =
2
= 8 ; P24 = 12 ; P2s = 2; P32 = 9 ; P 3t> = 1 ~
P 34 = 3; p45 = 10. n matricea V, din cauza
faptului c se urmrete deter~inarea
valorilor drumurilor maxime, vom pune :
(xt. x,) </::. A => v 0 = _:.._ w. Se obine matricea urmtoare, la care s-au adugat i
liniile si1plimentare din pagina urm toare .
) 7ig. 3
.109

X2

- oo

00

-00

-00

-00

-00

00

00

Y)

00

12

10

-00

10

11

22

13

10

24

22

31

10

39

22

31

10

3H

22

31

10

-00

Il ml 2 ' 11

Cum m\ 4 ' = m~ 5 > , (V) i = 1, 5, a lgoritmul ia sfrit, linia li ml4 '


co ninnd deja Jungimile drumurilor maxime de la toate vrfurile grafului, la
vrfu l x 5 Ca un exemplu , valoarea m1 4 ' = 39 arat c drumul ma xim de
la xt la x 5 are Yaloarea 39. S determinm efectiv arcele care compun acest
drum.
Cum mf 4 > > mi3 >, deducem c acest drum este format din exact 4 arce:
pe de alt parte,

mf4 > = n:axi_m {ml3 ' +

Vt1 }

= maxim {24 + O; 22 + 2; 3(+ 8_; IO~+Ll ;

1= 1.:>

- oo +O}= 31 + 8, unde 31 = m~3 > i 8 = v13


Aadar, primul arc al drumului coresp unde lui v13, este deci arcul (xt, x 3 ).
In continuare, se urmrete proveniena lui m~3 > pentru a determina .cel
de-al doil ea arc al drumului: avem

m~ 3 > = maxim {mi 2> + v13 } = maxim {Il -

oo; 22 + 9; 13 +O; 10 + 3;

:-::-1,5

O + 1}
aadar,

22

+ 9,

unde 22 = m~2 >, iar 9

32 ;

al doilea arc corespunde lui v32 , fiind deci arcul (x3 , X 2 ). Se contiuu
n mod asemntor pn la dc.terrninarca tuturor ar.celor.
ln cazul unor grafuri de dimensiuni mari, aceast metod nu este convenabil, deoarece presupune memorarea tuturor vectorilor Il m~ll 11.11 mi!> Il, ...
Varianta de organizare prezentat[! n cont inuare uiilizeaz uu mai vectolul

110

11 m~"> Il final i matricea V, ceea ce poate insemna degrevarea unui nsemnat


volum de memorie n cazul rezolvrii problemei pe calculator.
La exemplul prezentat, urmrim dac este posibil s avem
mi4> - m~4> = v1" pentru {m~4> fm~4) ~ m{4> }.
Cum se constat c mt4 > - m~ 4 > = 39 - 31 = v13, rezult c primul arc
este (.1:1, x 3) , rmnnd acum de urmrit proveniena celorlalte 31 de uniti
din care este format drumul rmas. Pentru aceasta, se studiaz egalitatea
m~ 4 > - m~ 4 > = v3 , ; aYnd m~4 > - m~ 4 > = v32 , se deduce c al doilea arc al
drumului poate fi (x~, x 2 ) etc.

5. Flux maxim intr-o reea de transport


Un graf orientat valuat G =(V, A, p), fr circuite, se numete "reea
de transport ", dac ndeplinete urmtoarele condiii:
a. dac X = (x1 , x 2, , x ..) atunci (V) i = l,'n, avem .(Xt, Xt) f/= A ;
b. x 1 arc proprietatea c (Xt, x 1) f/= A, (V) i = T,Tl, fiind singurul vrf
cu aceste proprieti; acest vrf se numete "sursa" reelei;
c. Yrful x,. are proprietate (x,., x 1) .. A, (V) i = 1, n, fiind singurul
virf cu aceast proprietate: vrful x,. se numete "destinaia" reelei;
d. pentru orice Yrf x1 e X "'-{xt, x,.}, exist cel puin un drum d de Ia
x 1 la x", care trece prin vrful x 1
Definijie. O funcie cp : A

dac:

-+

n+se numete " flux " pe reeaua G =

(X, A, p),

l. (V) (xi, x,) e A, avem O ~ cp(Xt, Xt) ~ Po ;


2. penlm orice virf x 1 e X"'-{x1, Xn}, avem
~

cp(x~:, x 1) =

k=l,n
EA

(Xt , X J )

!fl(Xt, xh).

11 = 1, Il
(x j, x.) e A

Problema avut n vedere este aa-numita problem a "fluxului maxi~',


adic situaia n care, dintre toate fluxurile cp : A -+ R+ posrbde in reeaua
G = (X, A, p), se urmrete s se determine fluxul "cp pentru care

" vom prezenta n prealabil


1 n vederea determinrii fluxului maxim cp,
unele concepte.
Astfel, un arc (xt, x,) e A se numete "arc saturat", dac. in raport
cu fluxul cp are loc relaia : cp(Xt, x,) = Plf
Fiind dat o submulime Y C X, se numete "tietur de suport Y"
mulimea de arce
w-(Y) = {(xt, x,) e A/Xt f/= Y;

x,

e Y}

C ;1.

in mod analog, se consider i mulimea urmtoare :


w+(Y) = {xt1, x,) e A/xt e Y;

XJ

f/= Y} CA.
111

Cantitatea :
c[w-(Y)] =

Po

(~t. X J) E <>-(Y)

" capacitate a tieturii" w- (Y).


1n legtt:ira cu aceste nopuni, au loc urmtoarele afirmaii :
Propoziia 1. Fie G = (X, A, p) o refea de transport avnd sursa .x
1
i destinaia x,.; fie <p : .~1 ~ n+ un flux oarecare in reJeaua G: atunci
se

numete

<p(:l;l, Xt )

Demonstraie.
E V

~
~

ceea ce demonstreaz
Valoarea:
ci> =

( Xj, l'!.J

(x,,a, ) E w- (x 1)

X 11 ) )

'P(x 1, XJ)

O,

afirmaia.

cp(x ,,

.1'n )

,l:

(.:ri,Xj ) '2 w+(x,)

a fluxului cp : A

total "

,.Yaloare

? (XJ.

E w+ (x J)

cp(Xt, x,.) -

(x ~ , .rn 1 E l.J-(lt,)

numete

<p(Xt, .'t;) -

(a;, X; ) E <U- (o, )

(x; , a,.) E w- (.r n)

se

cp(XJ, Xn),

j = l ,n
(l'J, x ,.) E A

Cum avem relaia evident w- (xJ = (v+(x,.) = f/J, deducem c:

~
XJ

i = l.n
(x,, ~, ) E .1l

Propoziia. 2. Fie G = (X,


submulime cu proprielfile :

->

-:p(x 1,

X J)

n .

A, p) o refea de transport,

fie Y C X o

- pentru sursa xt a lui G auem .T 1 fi/= Y;


- pentru destinaia x" a lui G avem Xn e Y:
Atunci, pentru orice flux cp : A -> n+ avem :
~

cj> =
Demonstraie

<p(X ;, .'I:J) -

ceea ce

=
~

(
l'

:p(.l:t, x,.)-

cp(Xt, X A) -

(x,, >'t) E w-(xd

,., E Y

?(Xk, XJ)) -

(.r,., x ; ) E w+ (.~A')

(X;, Xt ) E <U-(x.)

(Xh,

demon streaz

cj>

x,. E

cp(X;, :rh) -

(a.,,tl E w - (x,, )

<p (Xt, XJ)

(a, ,o';) E w+( \ ' )

~
cp(.l: ,,., XJ))
(x, , XJ ) E o.+ ; .l't )
E V /1 '

<p(Xt, XJ) ~ C[w- (1' )].

(.1:t ,XJ ) E co+(Y )

: avem

(x r, x ; ) E w-(Y)

Xh

cp(Xt, XJ) -

(.r, , .1:1) E w-(Y)

cp(.rh, .1'j)) =

x ; ) E w+ (x)

(:r., x 1) E co""(l ,)

q;(.T1, Xt) = $,

egalitatea, inlrucL
~

cp(.t;, XJ) ~

(Xt , l'J) E w-(l')

cp(Xt, XJ) -

(Xi , X 1 ) E w-(1' )

(.1'; ,

cp(Xt, X; ) ~

J';) E w+ (Y)

p(Xt, l :J)

= C (w- (Y)).

(XI, Xj ) E o>-( }')

Pentru simplificare vom considera c toate capacitile snt nu mere


raionale sau, ntruct numrul total de arce este finit, chiar numere nat urale.
Pe baza consideraiunilor precedente, se deduce urmtorul algoritm
(Ij'ord-Fulkers<{!l) pentru determinarea fluxului maxim ntr-o reea de tra nsport:

1. Se construiete un flux iniial oarecare, cp0 : A -> N; se poate lu a chiar


cp0(Xt, x,) = O, (V) (x t, x,) e A, dar interesul este de a dispune de la nceput
de un flux care s asigure ct mai multe arce saturate.

112

2. Utiliznd operaiile de marcare ce vor fi prezentate ulterior, se cerfluxul iniial <p0 este maxim : operaiunile de marcare constau
n urmtoarele :
a. marcm sursa x 1 a reelei cu semnul "+" ;
b. vrfurile x 1 e w+(x1 ) snt marcate cu "+x1 ", dac arcul (x1 , x 1) este
nesaturat;
e. dac vrful x, este deja marcat, i dac pentru un vrf X.~: e w+(x1)
arcul (x 1, xk) este nesaturat, atunci marcm vrful X.~: prin "+x/' ;
d. dac vrful x 1 este deja marcat, i dac pentru un vrf X.t e w-(x 1)
arcul (xk, x 1) are flux nenul, marcm vrful x" prin "-x/'.
In urma terminrii operaiei de marcare, se pot prezenta urmtoarele
situaii :
- dac nu s-a marcat destinaia Xn a reelei, atunci fluxul este maxim
i aplicarea algoritmului se termin ;
- dac s-a marcat destinaia Xn, fluxul nu este maxim, i se va trece
la majorarea fluxului prin aplicarea urmtoarelor proceduri :
a. se alege un drum "d" de la x1 Ia Xn ;
b. pe arcele drumului marcat cu "+", fluxul se majoreaz (de
exemplu, cu o unitate) ;
c. pe arcele drumului marcat cu " -", ~luxul se micoreaz (de
exemp lu, cu o unitate) ;
d. flu~ul arcelor de pe drumurile nemarcate nu se schimb;
e. se revine la pasul 2.
Justificarea algoritmului este bazat pe urmtoarele:
ceteaz dac

Propoziia 3. Pentru o refea de transport G = (X, A, p), p: A -+ N


algoritmul Ford-Fulkerson se termin dup un numr finit de pai : fluxul
maxim cp se atinge cnd nu mai poate fi marcat destinaia Xn a reelei.
Demonstratie. Pentru orice Y C X cu proprietile x1 fi/= y, x" e Y tim
c valoarea <I> a oricrui flu x t? verific

Aadar,

pentru valoarea <I> a fluxului maxim cp avem de asemenea

Fie Y = fx,. } ; atu nci


"
<I> ~ c[w-(:t:n)]

2:;

p(x1, Xn)

= K.

(>,, Xn)E w - (xn)

Cum la fiecare ap li care a pailor algoritmului flu xu l crete cu cel puin


o unitate, deducem c snt posibile cel mult K aplicri ale algoritmului.
Fie acum Y mulpmea vrfurilor ce nu pot fi marcate: aYem evident
xl fi/= Y, Xn E y .
Pentru orice arc (x1, x ,) e w- (Y) avem cp(.'t:;, x 1) = PtJ. deoarece n cazul
contrar, cp(xt, XJ) < fJ iJ, s-ar putea marca i vrful x 1. n mod asemntor.
dac am avea (x ,, x 1) e w+(Y), atunci cp(X;, x 1) = O. n final,

<f> =

2:;

cp(Xt, XJ) -

.
deci fluxul <I> este maxim, iar
(x,, :r1)e w-(Y)

2:;

<p(Xt, Xt) =

(XI, XJ)E wi(Y)

tietura

8 - Ma temati c! aplicate, voi. Il - cel. 229

2:;
(:r1, :r1) ew-(Y)

p(Xt, x 1) = c[w-(g)}

w-(Y) are capacitate minim.

113

Exemplul 4. Se consid er rera ua de


transport din figura 4, n care numerele din afara parantezelor reprezint capacitile arcelor, iar numerele din interior, . Yalorile unui flux i niia l care nu
satureaz nici un arc. Se execu t u rm
tomele majorri a le fluxului iniial :
- folosind drumul d1 = (x,, :r2, x 4 , X5 ),
Fig. 4
fluxul se poate majora cu va lo.a rea minim
(40-20, 15-{i, 22- 16)=6;
pe arcele acestui drum, fluxurile devin cp 12 = 26; cp24 = 12 ; cp 4.:; = 22;
folosind drumu l d 2 = (xl> x 2 , x5 ), m aj orm flu xu l cu cantitatea minim
(40 - 26 ; 8 - 6) = 2 ;
pe arcele acestui drum, flu xurile devin 9 12 = 28, 9 25 = 8;
folosi nd drum ul d 3 = (x1 , x 2 , x 3 , x5 ), fluxul se poate majora cu valoarea
minim (40 - 28; 12 - 8, 18 - 8) = 4;
.
p e arcele acestui d rum, fluxurile devin cp 23 = 12, '? 1" = 12;
folosind drumul d4 = (x 1 , x 3 , x5 ), fluxul se p oate majora cu valoarea
minim (18 - 10, 18 - 12) = 6;
- pe arcele acestui drum, flu xurile devin cp13 = 16, '?:P = 18;
1ntruct orice drum ntre x 1 i x 5 conine acum cel puin un arc saturat,
se trece la marcare : astfel, primesc marcri urmtoare l e :
vrful x 2 primete marcarea ,;+x1 ".;
vrful x3 primete marcarea "+x1 " ;
vrful x 4 primete ma.rcarea "+x 2 " i "+x3 ";
vrful x5 nu primete nici o marcare.
Aadar, fluxul fina l construit este m axim, iar valoarea lui total este
de 48.

6. Problema arborelui de valoare

minim

Algoritmul Kruskal
Definiia 1. Un graf neorientat finit se numete~. dac este
nu are cicluri.
Urmtoarele proprieti ale unui arbore snt evidente:

Propoziia 1.

Un

a. ntre orice

dou

conex_,i

arbore G are urmtoarele proprieti :


virfuri exist un singur lan ;
b. graful obinut din G prin suprimarea oricrei muchii este n econex;
e. graful obinut din G prin adugarea unei muchii ntre do u vrfuri
oarecare conine cel puin un ciclu ;
d. un arbore avnd "n" vrfuri, conine cel puin dou destinaii, dac
n;;.:: 2;

c. un arbore avnd " n" vrfuri are n - 1 muchii.


Demonstraii

a. dac ntre dou vrfuri Xt i XJ nu ar exista nici un lan, graful nu


ar fi conex, ceea ce ar contrazice definiia arborelui; n ceea ce privete
unicitatea, dac ntre vrfurile x, i XJ ar exista dou lanuri, atunci rezult
u n ciclu obinut prin reuniunea celor dou lanu ri, ceea ce este imposibil ;
114

b. vom proceda prin reducere la absurd : s presupunem c prin suprimarea muchiei [x, x,], graful parial G1 rezultat ar fi conex, deci c ntre
x 1 i x 1 ar exista un lan d n G1 . Atunci, prin completarea lanului d cu muchia
[x 1, x 1] s-ar obine un ciclu n graful iniial G, ceea ce ar contrazice definiia
arborelui;
e. fie G = (X, A) un arbore pentru care [xt, x,] .;tA : s presupunem c
graful Gz obinut pstrnd vrfurile i adugnd muchia [x1, x1] la mulimea A
de muchii iniiale nu ar conine cicluri; dar cum in G exist deja un lan d
intre x 1 i x" reunind lanul d cu muchia [x,, x,] se va obine un ciclu n Gz;
d. presupunem c ar exista un arbore G = (X, A) avnd "n" vrfuri
(n ~ 2), care ar avea cel mult o destinaie ; fie d = (x1 , x 2 , , x,.) un lan
elementar maxim n G. Atunci x 1 are gra'dul cel puin egal cu 2, deci este
adiacent cu altul dintre vrfurile lui d, ceea ce face s apar n G un ciclu ;
e. vom proceda prin inducie dup "n", n ~ 2 ; n cazul n = 2, arborele este format dintr-o singur muchie care unete cele dou vrfuri, deci
afirmaia este adeYrat.
Presupunem c orice arbore cu "m" vrfuri are m - 1 muchii.
Pen Lru un arbore G1 cu m
1 vrfuri, exist cel puin un vrf terminal x0
Suprimndu-1 pe :10 mpreun . cu muchia incident lui, din G1 se obine un
graf cu " m'' Yirfuri, care nu conine cicluri. S artm c G astfel o binut
es le i el conex: fie x 1 , :r2 - dou vrfuri oarecare din G, diferite de x 0 Atunci
in G1 exis l llll )an d, adnd extremitile X1 i Xz, lan care nu trece prin x 0
i ca re este l a n i in graful G, deci G1 este conex, adic este arbore.

Definit-ia 2. Un graf parial S al grafului G, cu proprietatea cel S este


arbore, se n urnete "arbore parial" al grafului G.
Propozit-ia 2. Un graf este conex, dac i numai dac admite un arbore
parjial.
Demonstraie. Condiia este n mod evident necesar : n ceea ce privete
suficiena, observm c dac G nu este el nsui un arbore, atunci n G exist
cel puin o muchie [x t, x 1J, care prin suprimare conduce la un graf parial G1

conex. Dac G1 devine un arbore, atunci demonstraia se termin ; n caz


contrar, din . G1 sepoate suprima o muchie, obinndu-se un graf G2 conex etc.
Problema pe care dorim s o rezolvm acum este urmtoarea: fiind
dat un graf G neorienLat, conex i valuat, ne propunem s extragem din G
un arbore parial pentru care suma valorilor muchiilor s fie minim .
Pentru simplificare, vom presupune nti c ntre orice dou vrfuri
ale grafului G exist cite o muchie, i c toate valorile muchiilor snt diferite dou ele dou. Fie X = (a 1 , a 2 , , a".), unde valoarea muchiei a 1
este notal cu p(a ,) = Pl Vom presupune c p 1 < p 2 < ... < Pn Alg2:
ritmul (Kruskal) de determinare a arborelui minimal const n urmtoarele:
1. se alege muchia a 1 de valoare minim;
2. se ~lege muchia az de Yaloare minim rmas ;
3. fie S = {a1, Uz};
4. dac r.spunsul nu este cumva dat la punctul precedent, se alege
muchia de Yaloare minim din
S, care nu formeaz cicluri cu muchiile
lui S; fie a, aceast muchie ;
5. nlocuim S cu S U {ar} i reYenim la pasul 4.

.1""

115

E:r:emplul 5. Fie graful neorienlat Yaluat din figura 5: ne propunem s det erminm arborele minimal co respu nztor.
a. muchia de valoare minim este
[x 2, x 5 ] ;
h. selectm muchia [x2 , :r~] care are
Yaloare minim dintre muchi\e rmase;
c. muchia [x4 , x5 ] avnd urmtoarea
Yaloare n ordinea cresctoare a mrimilor
trebuie omis deoarece formeaz un ciclu
cu precedentele dou, deci acum vo m seFig. 5
lecta muchia [x4 , x3] de Yaloare 4 ;
~
d. muchia [x 2 , x3 ] d e valoare 5 urmtoare formeaz ciclu cu precedentele trei, deci la aceast etap select m
muchia [.r1 , :r2 ] de valoare 6 ; intrucit am acoperit toate Yirfu rile graful ui
dat, a lgoritmu l se oprete aici: a rborele minimal obpnut arc va loare
to ta l de 13.
De observat c preten i a ca ntre orice dou \'rfuri s existe o muchie
este nee~enial : dac exist i muc hii de Ya lori egale, este posibil ca problema
s admit mai multe solu ii.

7. Aplicarea problemei drumului optim in probleme


de organizare : metoda drumului critic
n scmtele consideraiu ni prezentate mai j os, vom numi "program"
o mulime precizat de operaii care condu c la realizarea unu i obiectiv economic, de exemplu, realizarea unei construcii, efectuarea unui proces tehnologic, etc., n care ordinea exec utrii etapelor componente este mai mult
sau mai puin lsat la lati tud inea organizatorului activitii. ntre unele
etape prevz ute a fi realizate se poate totui ntmpla s existe relaii de
precede n obligatorii (de exemplu, cazul n care una dintre o peraii preia
produsul realizat n cadrul operaiei anterioare precizate). U n astfel de plan
de activiti poate fi reprezentat printr-un graf,' numit .,graf de progr..1m"
sau .. graf de ordona n are"; arcele acestui graf corespund tocmai operaii l or
ce se vor executa, ia r valorile ce se trec pe arce snt tocmai du ratele proiectate de execu ie corespunztoare. Vrfurile acestui graf au un rol mai mult
conYen ional, reprezentnd, de exemp lu, evenimentul term in rii operaiei
reprezentat prin a rcul ce se termin n acel v rf. :Qe a ltfel, v rfurile grafufui
de ordonanare se i numesc "evenimente", i le vom nota prin E 1, E 2 , . ~ En.
Scopul studiului este stabilirea datei realizrii ntregului ansamblu de
operaii. Acest timp total nu poate fi inferior sumei timpilor cei mai nefaYorabili dintre toate combinaiile de la E 1 la E,., adi c tocmai Yalorii drumului
maxim de la E 1 la E,. n graful de ordonanare. Acest drum se va numi "drum
critic", iar valoarea sa va fi notat prin t+.
.
n raport cu drumul critic, evenimentele E 1 , . , E,. se mpart n dou
categorii, i anume :
.
.
- evenimentele care aparin <lrumului critic, numite "evenimente critice": ele trehuiesc realizate la momentui precis dat de valoarea drumu lui
maxim de la E 1 pn la fiecare eveniment critic n parte;
- evenimentele care nu aparin drumului critic, numite .,evenimente
necritice".
116

:J.-

I-

te

Evenimentele necritice permit anumite ntrzieri n execuie, dar ntre


limite ce pot fi determinate exact. Fie astfel E , un eveniment necritic: det erminnd valoarea drumului maxim (deci cel mai nefavorabil) de la Et la E,.,
ne asigurm c toate operaiile care urmeaz lui E, Yor putea fi efectiv realizate. Aadar, pentru fiecare eveniment ne critic E, se pot determina dou
m rimi:

valoarea t;, reprezentnd lungimea drumului maxim de la E 1 la Et;


valoare reprezint data cea mai apropiat n care trebuie terminat
operapunea co respunztoare lui E,;

- valoarea t;, reprezentnd diferena dintre valoarea t + i valoarea


dru mului maxim de la E; la E".
Intervalul [1;, ( ] se numete "interval de fluctuaie " al evenimentului E,
necritic, reprezentnd momentul terminrii acestuia, care nu perturb desf u rarea ce lorla lte eYenimente .
-

aceas t

)T

..

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