Sunteți pe pagina 1din 33

ELEMENTE DE TEORIA GRAFURILOR

1. Noiuni generale
n general, pentru situaiile care necesit la rezolvare un oarecare efort mintal (i un caz tipic
este cel al celor din economie), se caut, n primul rnd, o metod de reprezentare a lor care s
permit receptarea ntregii probleme dintr-o privire (pe ct posibil) i prin care s se evidenieze ct
mai clar toate aspectele acesteia.
n acest scop se folosesc imagini grafice gen diagrame, scie, grafice etc. ! reprezentare
dintre cele mai utilizate este cea prin grafuri. "cestea sunt utilizate n special pentru vizualizarea
sistemelor i situaiilor comple#e. n general, vom reprezenta componentele acestora prin puncte n
plan iar relaiile (legturile, dependenele, influenele etc) dintre componente prin arce de curb cu
e#tremitile n punctele corespunztoare. ntre dou puncte pot e#ista unul sau mai multe segmente
(n funcie de cte relaii dintre acestea, care ne intereseaz, e#ist) iar segmentelor li se pot asocia
sau nu orientri (dup cum se influeneaz cele dou componente ntre ele), numere care s e#prime
intensitatea relaiilor dintre componente etc.
$ste evident, totui, c aceast metod are limite, att din punct de vedere uman (prea multe
puncte i segmente vor face desenul att de complicat nct se va pierde ciar scopul pentru care a
fost creat % claritatea i simplitatea reprezentrii, aceasta devenind neinteligibil) ct i din punct de
vedere al tenicii de calcul (un calculator nu poate &privi& un desen ca un om).
'in acest motiv, alturi de e#punerea naiv-intuitiv a ceea ce este un graf, dat mai sus, se
impune att o definiie riguroas ct i alte modaliti de reprezentare a acestora, adecvate n general
rezolvrilor matematice.
Definiia 1 (e numete multigraf un triplet ) * (+, ", f) n care + i " sunt dou mulimi
iar f este o funcie, definit pe produsul vectorial al lui + cu el nsui (+
,
* ++), care ia valori n
mulimea prilor mulimii " (notat P("))
-ulimea + se numete mulimea nodurilor multigrafului i elementele sale se numesc
noduri (sau vrfuri) ale multigrafului, iar " reprezint mulimea relaiilor (legturilor) posibile ntre
dou noduri ale multigrafului.
Definiia 2 (e numete graf orientat un multigraf n care mulimea " are un singur
element. " * /a0.
n acest caz mulimea prilor mulimii " are doar dou elemente. mulimea vid i
ntreaga mulime ". 'ac unei pereci orientate (#
i
, #
1
) din +
,
i se asociaz prin funcia f mulimea
" atunci spunem ca e#ist arc de la nodul #
i
la nodul #
1
iar perecea (#
i
,#
1
) se va numi arcul (#
i
,#
1
).
2odul #
i
se numete no iniial sau e!tremitate iniial" a arcului (#
i
,#
1
) iar nodul #
1
se numete no
final sau e!tremitate final" a arcului (#
i
,#
1
). "rcul (#
i
,#
1
) este incient #$re interior vrfului #
1
i
incient #$re e!terior vrfului #
i
. 'ac pentru un arc nodul iniial coincide cu nodul final atunci
acesta se numete %ucl". 2odurile #
i
i #
1
se vor numi aiacente dac e#ist cel puin unul din
arcele (#
i
,#
1
) i (#
1
,#
i
).
'ac unei pereci orientate (#
i
, #
1
) din +
,
i se asociaz prin funcia f mulimea vid atunci
spunem c nu e#ist arc de la nodul #
i
la nodul #
1
.
$ste evident c a cunoate un graf orientat este ecivalent cu a cunoate vrfurile i arcele
sale. 'in acest motiv putem defini un graf orientat prin perecea (+,3), unde + este mulimea
vrfurilor sale iar 3 mulimea arcelor sale.
'e asemenea, putem cunoate un graf orientat cunoscnd mulimea nodurilor i, pentru
fiecare nod, mulimea arcelor incidente spre e#terior. 'in acest motiv putem defini un graf orientat
ca o perece (+,) unde + este perecea nodurilor iar este o funcie definit pe + cu valori n
mulimea prilor lui +, valoarea acesteia ntr-un nod #
i
, (#
i
) + fiind mulimea nodurilor
adiacente nodului #
i
, prin arce pentru care #
i
este e#tremitatea iniial.
Definiia & (e numete graf neorientat un multigraf n care mulimea " are un singur
element iar funcia f are proprietatea.
f4(#
i
,#
1
)5 * f4(#
1
,#
i
)5 , oricare ar fi nodurile #
i
i #
1
din +
n aceste condiii, dac f4(#
i
,#
1
)5 * f4(#
1
,#
i
)5 * " atunci perecea neorientat /#
i
,#
1
0 este o
muc'ie iar dac f4(#
i
,#
1
)5 * f4(#
1
,#
i
)5 * spunem c nu e#ist mucie ntre vrfurile #
i
i #
1
.
'eoarece, n cele mai multe din cazurile practice care vor fi analizate n acest capitol,
situaia este modelat matematic printr-un graf orientat, vom folosi, pentru simplificarea e#punerii,
denumirea de graf n locul celei de graf orientat iar n cazul n care graful este neorientat vom
specifica acest fapt la momentul respectiv.
2. Mouri e re$re(entare ale unui graf
". ! prim modalitate de reprezentare este listarea efectiv a tuturor nodurilor i a arcelor
sale.
6. 7utem reprezenta graful dnd pentru fiecare nod mulimea nodurilor cu care formeaz
arce n care el este pe prima poziie.
8. 7utem reprezenta geometric graful, printr-un desen n plan, reprezentnd fiecare nod
printr-un punct(cercule) i fiecare arc printr-un segment de curb care are ca e#tremiti
nodurile arcului i pe care este trecut o sgeat orientat de la nodul iniial spre cel
final.
'. 7utem folosi o reprezentare geometric n care nodurile sunt reprezentate de dou ori, n
dou iruri paralele, de la fiecare nod din unul din iruri plecnd sgei spre nodurile cu
care formeaz arce n care el este pe prima poziie, de pe al doilea ir (reprezentarea prin
coresponden).
$. 3n graf poate fi reprezentat printr-o matrice ptratic boolean, de dimensiune egal cu
numrul de noduri, n care o poziie a
i1
va fi 9 dac e#ist arcul (#
i
,#
1
) i : n caz contrar,
numit matricea adiacenelor directe.
;. 3n graf poate fi reprezentat printr-o matrice ptratic latin, de dimensiune egal cu
numrul de noduri, n care pe o poziie a
i1
va fi #
i
#
1
dac e#ist arcul (#
i
,#
1
) i : n caz
contrar.
Exemplu. 'ac n reprezentarea " avem graful ) * (+,3), unde + * /#
9
, #
,
, #
<
, #
=
, #
>
, #
?
0 i
3 * /(#
9
,#
9
), (#
9
,#
,
), (#
9
,#
=
), (#
9
,#
>
), (#
,
,#
<
), (#
,
,#
=
), (#
,
,#
?
), (#
<
,#
9
), (#
<
,#
,
), (#
=
,#
>
), (#
>
,#
,
), (#
?
,#
=
)0,
atunci n celelalte reprezentri vom avea.
6 #
9
/#
9
, #
,
, #
=
, #
>
0 8
#
,
/#
<
, #
=
, #
?
0
#
<
/#
9
, #
,
0
#
=
/#
>
0
#
>
/#
,
0
#
?
/#
=
0
' (reprezentarea prin coresponden)
#
9
#
,
#
<
#
=
#
>
#
?
#
9
#
,
#
<
#
=
#
>
#
?
#
9
#
,
#
?
#
>
#
=
#
<
$ ;
&. )once$te e %a(" *n teoria grafurilor
9. #emigraf interior al unui nod #
@
. este mulimea arcelor

@
#
3 * /(#
1
,#
@
)A (#
1
,#
@
) 30 care
sunt incidente spre interior nodului #
@
B
,. #emigraf e!terior al unui nod #
@
. este mulimea arcelor
+
@
#
3 * /(#
@
,#
i
)A (#
@
,#
i
) 30 care
sunt incidente spre e#terior nodului #
@
B
<. #emigraul interior al unui nod #
@
. este numrul arcelor care sunt incidente spre interior
nodului #
@
* cardinalul lui

@
#
3 i se noteaz cu

@
#
B
=. #emigraul e!terior al unui nod #
@
. este numrul arcelor care sunt incidente spre
e#terior nodului #
@
* cardinalul lui
+
@
#
3 i se noteaz cu
+
@
#
B
>. graul unui nod #
@
. este suma semigradelor nodului #
@
.
@
#

*
+
@
#
C

@
#
B
?. no i(olat. este un nod cu gradul :B
D. no #u#$enat. este un nod cu gradul 9B
E. arce aiacente. arce care au o e#tremitate comunB
F. rum ntr-un graf. o mulime ordonat de noduri ale grafului. (#
9
, #
,
, ..., #
@
), cu
proprietatea c e#ist n graf toate arcele de forma (#
i
,#
iC9
) i * 9,...,@-9B
9:. lungimea unui rum. este numrul arcelor care l formeazB
99. rum elementar. un drum n care fiecare nod apare o singur datB
9,. rum #im$lu. un drum n care fiecare arc apare o singur datB
9<. $utere e atingere a unui nod #
i
+ n graful ). numrul de noduri la care se poate
a1unge din #
i
. 7uterea de atingere se noteaz cu p(#
i
), 9 i n i evident p(#
i
)
+
i
#

.
9=. rum 'amiltonian. un drum elementar care trece prin toate nodurile grafuluiB
9>. rum eulerian. un drum simplu care conine toate arcele grafuluiB
9?. lan. un drum n care arcele nu au neaprat acelai sens de parcurgereB
9D. circuit. un drum n care nodul iniial coincide cu cel finalB
9E. circuit elementar. un drum n care fiecare nod apare o singur dat, cu e#cepia celui
final, care coincide cu cel iniialB
9F. circuit #im$lu. un drum n care fiecare arc apare o singur datB
,:. circuit 'amiltonian. un circuit care trece prin toate nodurile grafuluiB
,9. ciclu. este un circuit n care arcele nu au neaprat acelai sens de parcurgereB
,,. ciclu elementar. un ciclu n care fiecare nod apare o singur dat, cu e#cepia celui
final, care coincide cu cel iniialB
,<. ciclu #im$lu. un ciclu n care fiecare arc apare o singur datB
Observaie. ntr-un graf neorientat noiunile de drum i lan sunt ecivalente i de
asemenea cele de circuit i ciclu.
,=. graf $arial al unui graf ) * (+,3). este un graf )G(+,3G) cu 3G 3B
,>. #u%graf al unui graf ) * (+,). este un graf )G(+G,G) unde +G + i G(#
i
) * (#
i
) +G
pentru orice #
i
+GB
#
9
#
,
#
<
#
=
#
>
#
?
#
9
9 9 : 9 9 :
#
,
: : 9 9 : 9
#
<
9 9 : : : :
#
=
: : : : 9 :
#
>
: 9 : : : :
#
?
: : : 9 : :
#
9
#
,
#
<
#
=
#
>
#
?
#
9
#9#9 #9#, : #9#= #9#> :
#
,
: : #,#< #,#= : #,#?
#
<
#<#9 #<#, : : : :
#
=
: : : : #=#> :
#
>
: #>#, : : : :
#
?
: : : #?#= : :
,?. graf reu# al unui graf ) * (+,3). este un graf )
H
(+
H
,3
H
) unde +
H
este format din
mulimile unei partiii de mulimi nevide ale lui +, iar (
H
i
+ ,
H
1
+
) e#ist doar dac i 1
i e#ist cel puin un arc n 3, de la un nod din
H
i
+ la un nod din
H
1
+
.
,D. graf tare cone!. este un graf n care ntre oricare dou noduri e#ist cel puin un drumB
,E. graf #im$lu cone!. este un graf n care ntre oricare dou noduri e#ist cel puin un lanB
Observaie. 7entru grafuri neorientat noiunile de tare cone# i simplu cone# sunt
ecivalente, graful numindu-se doar cone#B
,F. com$onent" tare cone!" a unui graf ) * (+,3). este un subgraf al lui ) care este tare
cone# i nu este subgraful nici unui alt subgraf tare cone# al lui ) (altfel spus, ntre
oricare dou noduri din component e#ist cel puin un drum i nu mai e#ist nici un nod
n afara componentei legat printr-un drum de un nod al componentei).
G"#irea rumurilor *ntr+un graf orientat
'ac privim graful ca imagine a unui sistem, nodurile reprezentnd componentele sistemu-
lui, atunci o interpretare imediat a unui arc (#
i
,#
1
) este c, componenta #
i
influeneaz direct
componenta #
1
. 'ac nodurile au semnificaia de stri posibile ale unui sistem atunci un arc (#
i
,#
1
)
semnific faptul c sistemul poate trece direct din starea #
i
n starea #
1
. n ambele cazuri se vede c
avem de-a face doar cu informaii despre legturi directeB totui, ciar dac o component #
i
nu
influeneaz direct componenta #
1
ea o poate influena prin intermediul altor componente, e#istnd
un ir de componente intermediare. #
9
#
,
,..., #
@
, fiecare influennd-o direct pe urmtoarea i #
i
direct pe #
9
iar #
@
direct pe #
1
. "stfel, dac dintr-o stare #
i
nu se poate trece direct ntr-o stare #
1
s-ar
putea totui n mai multe etape, prin alte stri intermediare. 'eoarece gsirea acestor influene sau
treceri posibile este de obicei foarte important iar pentru un sistem cu mii sau zeci de mii de
componente acest lucru nu mai poate fi fcut &din oci&, este necesar formalizarea noiunii de
&influene& i &treceri& posibile, nu neaprat directe. "cest lucru a i fost fcut mai sus, deoarece
este evident c &#
i
influeneaz #
1
& sau &din starea #
i
se poate trece n starea #
1
& este ecivalent cu
e#istena n graf a unui drum de la nodul #
i
la nodul #
1
.
n continuare vom da un algoritm prin care putem gsi toate drumurile dintr-un graf orientat
cu un numr finit de noduri.
,a#ul 1. (e construiete matricea boolean a adiacenelor directe corespunztoare grafului, notat
cu ". n aceasta se afl, evident, toate drumurile de lungime 9.
$ste interesant de vzut ce legtur e#ist ntre aceast matrice i drumurile de lungime ,.
;ie dou noduri #
i
i #
1
oarecare din graf. $#istena unui drum de lungime , ntre ele presupune
e#istena unui nod #
@
, din graf, cu proprietatea c e#ist att arcul (#
i
,#
@
) ct i arcul (#
i
,#
@
). 7entru a
vedea dac acesta e#ist, lum pe rnd fiecare nod al grafului i verificm dac e#ist sau nu ambele
arce ((#
i
,#
@
) i (#
i
,#
@
)). "ceasta este ecivalent cu a verifica dac, n matricea boolean a adiacene-
lor directe, e#ist vreun indice @ astfel nct elementul @ al liniei i i elementul @ al coloanei 1 s fie
ambele egale cu 9. 'ac folosim operaiile algebrei booleene de adunare i nmulire.
+

: 9 : 9
: : 9 : : :
9 9 9 9 : 9
atunci verificrile de mai sus sunt ecivalente cu a verifica dac elementul de pe poziia (i,1) din "
,
este egal cu 9. Ialoarea 9 spune doar c e#ist cel puin un drum de lungime , de la #
i
la #
1
. 'ac
dorim s vedem i cte sunt, vom folosi regulile de nmulire i adunare obinuit.
'e asemenea, se poate observa c e#istena unui drum de lungime < de la #
i
la #
1
presupune
e#istena unui nod #
@
astfel nct s e#iste un drum de lungime , de la #
i
la #
@
i un arc de la #
@
la #
1
,
care este ecivalent cu a verifica dac e#ist vreun indice @ astfel nct elementul @ al liniei i din
matricea "
,
i elementul @ al coloanei 1 din " sunt ambele egale cu 9 sau, mai simplu, dac
elementul (i,1) din "
<
este 9.
'in cele de mai sus se observ c e#istena drumurilor de lungime @ este dat de valorile
matricei "
@
, dac s-au folosit regulile algebrei booleene i numrul lor este dat de "
@
, dac s-au
folosit regulile obinuite.
,a#ul 2. Iom calcula succesiv puterile lui " pn la puterea "
n-9
'ac ntre nodurile #
i
i #
1
e#ist un drum de lungime n atunci el va conine un numr de
noduri mai mare sau egal nu nC9 i, cum n graf sunt doar n vrfuri, este clar c cel puin unul, s
zicem #
@
, va aprea de dou ori. Iom avea n acest caz un drum de la #
i
pn la prima apariie a lui
#
@
, i un drum de la ultima apariie a lui #
@
la #
1
. $liminnd toate nodurile dintre prima apariie a lui
#
@
i ultima apariie a sa vom obine un drum de la #
i
la #
1
, n care #
@
apare o singur dat. "plicnd
acest procedeu pentru toate nodurile care apar de mai multe ori pe drum, vom obine un drum de la
#
i
la #
1
, n care fiecare nod apare o singur dat (deci un drum elementar), care are evident cel mult
n-9 arce. n concluzie, dac e#ist vreun drum de la #
i
la #
1
atunci e#ist i un drum elementar i,
deci, va e#ista o putere a lui ", ntre "
9
i "
n-9
, n care poziia (i,1) este diferit de :. 7entru
deciderea e#istenei unui drum ntre oricare dou noduri este suficient, deci, calcularea doar a
primelor n-9 puteri ale lui ".

,a#ul &. (e calculeaz matricea ' * " C "
,
C ... C "
n-9
'ac ne intereseaz doar e#istena drumurilor dintre noduri, nu i numrul lor, vom folosi
nmulirea i adunarea boolean i conform observaiei de mai sus.
d
i1
*

'

1 i
1 i
# la # de drum un nici a e#ist nu a dac :
# la # de drum un putin cel a e#ist a dac 9


n acest caz, observnd c.
"(" C J)
n%,
*
:
, n
8

" C
9
, n
8

"
,
C
,
, n
8

"
<
C ... C
, n
, n
8

"
n%9
* " C "
,
C "
<
C ... C "
n-9
* '
rezult c e suficient s calculm doar puterea n-, a matricei " C J i apoi s-o nmulim cu ".
"vanta1ul acestei metode, n ceea ce privete economia de timp, este susinut i de urmtoarea
observaie. dac ' conine toate perecile de arce ntre care e#ist drum atunci.
' * (" C "
,
C ... C "
n-9
) C "
n
C "
nC9
C ... C "
nC@
* ' oricare ar fi @ :
"(" C J)
n%,C@
* (" C "
,
C ... C "
n-9
) C "
n
C "
nC9
C ... C "
nC@-9
* ' * "(" C J)
n%,

"(" C J)
n%,C@
* "(" C J)
n%,
oricare ar fi @ :
deci de la puterea @ * n-, toate matricile "
@
sunt egale. 7utem, deci, calcula direct orice putere a lui
"CJ mai mare sau egal cu n-9 (de e#emplu calculnd ("CJ)
,
, ("CJ)
=
, ("CJ)
E
, ...,
r
,
J) ("+ , r fiind
prima putere a lui , pentru care ,
r
n-,).
7rocedeul de mai sus nu asigur dect aflarea faptului dac e#ist sau nu drum ntre dou
noduri, eventual ce lungime are i cte sunt de aceast lungime. Kotui, n problemele practice cel
mai important este s tim care sunt efectiv aceste drumuri. 'eoarece 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. 7entru gsirea acestora se
folosete reprezentarea grafului prin matricea latin de la cazul ;.
,a#ul -. 8onstruim matricea latin L asociat grafului, unde.
l
i1
*
( )
( )

'

1 i
1 i 1 i
# , # arcul a e#ist nu a dac :
# , # arcul a e#ist a dac # #


i matricea L
M
, definit prin.
i1
l
M
*
( )
( )

'

1 i
1 i 1
# , # arcul a e#ist nu a dac :
# , # arcul a e#ist a dac #


numit matricea latin" reu#".
)sirea unui drum de lungime , de la #
i
la #
1
presupune gsirea unui nod cu proprietatea c
e#ist arcele (#
i
,#
@
) i (#
@
,#
1
) i memorarea vectorului (#
i
, #
@
, #
1
). "ceasta este ecivalent cu a gsi un
indice @ astfel nct elementul de pe poziia @ a liniei i, din matricea L, s fie #
i
,#
@
i elementul de pe
poziia @ al coloanei 1, din matricea L
M
, s fie #
1
. Iom nmuli deci matricea L cu matricea L
M
,
folosind ns nite reguli de calcul speciale, numite nmulire i adunare latin.
Definiia 9. (e numete alfa%et o mulime de semne numite #im%oluri sau litere /s
i
AiJ0
unde J este o mulime oarecare de indici, finit sau nu.
Definiia ,. (e numete cu./nt un ir finit de simboluri notat
n , 9
i i i
s ... s s
.
Definiia <. (e numete *nmulire latin" o operaie definit pe mulimea cuvintelor unui
alfabet, notat &
L

&, astfel.
n , 9
i i i
s ... s s
L

m , 9
1 1 1
s ... s s *
m , 9 n , 9
1 1 1 i i i
s ... s s s ... s s
(produsul a dou cuvinte se obine prin concatenarea lor)
nmulirea latin este asociativ, are ca element neutru cuvntul vid, nu e
comutativ i un element este inversabil doar dac este cuvntul vid.
Definiia <. (e numete aunare latin" o funcie definit pe mulimea cuvintelor unui
alfabet cu valori n mulimea parilor mulimi cuvintelor, notat &
L
+ & astfel.
n , 9
i i i
s ... s s
L
+
m , 9
1 1 1
s ... s s
*

'

m , 9
n , 9
1 1 1
i i i
s ... s s
s ... s s
(suma a dou cuvinte este mulimea format din cele dou cuvinte)
,a#ul 0. (e calculeaz succesiv matricile.
L
,
* L
L

L
M
, L
<
* L
,
L

L
M
, ... ,L
@C9
* L
@
L

L
M

folosind operaiile de nmulire i adunare latin, alfabetul fiind mulimea nodurilor grafului, unde
operaia de nmulire este uor modificat, produsul dintre dou elemente ale matricilor fiind :, dac
unul dintre ele este : sau au un nod comun i este produsul latin al lor, n caz contrar.
'in felul cum a fost construit, matricea L
@
va conine toate drumurile elementare de
lungime @. 8um un drum elementar poate avea cel mult n noduri (cte are graful cu totul) rezult
c.
primele n-9 puteri ale lui L conin toate drumurile elementare din grafB
puterile lui L mai mari sau egale cu n au toate elementele egale cu :B
matricea L
n-9
conine toate drumurile amiltoniene din graf (dac e#ist).
Observaie. 'eoarece obinerea matricii ' prin metoda de mai sus presupune un volum
foarte mare de calcule (de e#emplu, dac graful are 9:: de noduri, ridicarea unei matrici de
9::N9:: la puterea 9::) pentru obinerea acesteia se poate aplica i urmtorul algoritm.
Pas 1. (e construiete matricea de adiacen "B
Pas 2. 7entru fiecare linie i se adun boolean la aceasta toate liniile 1 pentru care a
i1
* 9.
Pas 3. (e reia pasul , pn cnd, dup o aplicare a acestuia, matricea rmne aceeai (nu
mai apare nici un 9)
3ltima matrice obinut este matricea drumurilor ' numit i matricea cone#iunilor totale.
"ceast metod, dei mai simpl nu spune ns i care sunt aceste drumuri, pentru gsirea
lor aplicndu-se, de e#emplu, nmulirea latin
0. Drumuri o$time *ntr+un graf
n marea ma1oritate a problemelor care pot fi modelate prin grafuri nu ne intereseaz numai
dac e#ist sau nu legturi ntre componentele reprezentate prin nodurile grafului ci i intensitatea
acestora. "ceast intensitate are semnificaia unei valori numerice (pozitive sau negative) asociate
arcului corespunztor legturii a crei intensitate o msoar.
n aplicaiile economice aceast valoare poate fi.
lungimea drumului dintre dou localitiB
costul parcurgerii rutei reprezentate prin arcul corespunztorB
durata parcurgerii rutei respectiveB
cantitatea transportat pe ruta respectivB
capacitatea ma#im a rutei respectiveB
ctigul realizat prin trecerea de la o stare la alta a sistemuluiB
consum de energie pentru efectuarea trecerii respectiveB
puncta1 realizat etc.
3na din problemele care poate aprea n aceste situaii este gsirea, pentru o anumit
perece de noduri (sau mai multe pereci), a drumului optim ntre acestea.
7entru formalizarea problemei vom introduce noiunea de .aloare a unui rum, care este
egal cu suma valorilor arcelor care l compun. Iom nota n continuare valoarea unui arc (#
i
,#
1
) cu
v(#
i
,#
1
) sau cu v
i1
. n aceste condiii putem enuna problema drumului optim astfel.
&Dat un graf G = (X,U) i o funcie care asociaz fiecrui arc o vaoare rea, s se
gseasc, !entru o !erec"e #at #e no#uri, #ru$u (#ru$urie) #e vaoare o!ti$ ($ini$ sau%i
$a&i$) 'ntre cee #ou no#uri i vaoarea acestuia (acestora)&
'eoarece este vorba de gsirea minimului unei mulimi de numere reale, prima ntrebare
care se pune este dac aceasta admite minim. 'ac mulimea nodurilor grafului este infinit atunci
pot e#ista o infinitate de drumuri elementare distincte ntre cele dou noduri i mulimea valorilor
acestora poate avea orice form (ncis sau nu, mrginit sau nu) devenind foarte greu de
caracterizat cazurile cnd minimul dorit e#ist. 'eoarece totui ma1oritatea covritoare a
problemelor economice se modeleaz prin grafuri cu numr finit de noduri, ne vom limita n
continuare doar la acestea.
3n numr finit de noduri n atrage dup sine e#istena unui numr finit de arce (cel mult n
,
)
i a unui numr finit de drumuri elementare ( cel mult nnO

9 - n
9 @
@O
9
). 'eoarece oricrui drum d i
corespunde un drum elementar d
e
(obinut prin eliminarea tuturor subcircuitelor lui d) putem calcula
valoarea oricrui drum ca sum ntre valoarea drumului elementar corespunztor i valorile unor
subcircuite ale sale, fiecare nmulit cu numrul de parcurgeri ale circuitului respectiv.
n concluzie, dac e#ist un circuit de valoare negativ nseamn c e#ist drumuri de
valoare orict de mic (cele care conin acest circuit), obinut prin parcurgerea acestuia de oricte
ori dorim) i, deci, mulimea valorilor drumurilor este nemrginit inferior, nee#istnd drum de
valoare minim. 'ac e#ist un circuit de valoare pozitiv atunci e#ist drumuri de valoare orict de
mare i mulimea valorilor drumurilor este nemrginit superior, nee#istnd drum de valoare
ma#im.
'ac nu e#ist circuite de valoare negativ atunci valoarea oricrui drum este mai mare sau
egal cu a drumului elementar corespunztor, deci drumul de valoare minim (dac e#ist) va fi un
drum elementar. 8um mulimea drumurilor elementare este finit (i deci i mulimea valorilor lor)
va avea minorant i am lmurit problema compatibilitii problemei. "nalog, dac nu e#ist circuite
de valoare pozitiv atunci valoarea oricrui drum este mai mic sau egal cu a drumului elementar
corespunztor, deci drumul de valoare ma#im (dac e#ist) va fi un drum elementar. 8um
mulimea drumurilor elementare este finit (i deci i mulimea valorilor lor), va avea ma1orant.
Obs. 9. 'ac n graf nu e#ist dect arce de valoare pozitiv atunci e#ist drum de valoare
minim.
Obs. 9. 'ac n graf nu e#ist dect arce de valoare negativ atunci e#ist drum de valoare
ma#im.
Obs. 9. 'ac n graf nu e#ist circuite atunci e#ist i drum de valoare minim i drum de
valoare ma#im.
'eoarece din cele de mai sus se sesizeaz importana e#istenei circuitelor ntr-un graf vom
da n continuare un algoritm e e$i#tare a e!i#tenei circuitelor *ntr+un graf.
,a#ul 1. (e construiete mulimea " format din nodurile pentru care toate arcele incidente sunt
incidente spre interior ( noduri n care toate arcele &intr& sau, altfel spus, noduri din care
nu &pleac& nici un arc).
,a#ul 2. (e gsesc toate nodurile care nu sunt din " pentru care toate arcele incidente au cealalt
e#tremitate n " (noduri din care se poate &a1unge& doar in "). 'ac nu e#ist nici un
astfel de arc se trece la pasul =.
,a#ul &. (e adaug arcele gsite la pasul , la mulimea " apoi se reia algoritmul de la pasul ,,
pentru noua mulime ".
,a#ul -. 'ac " conine mulimea tuturor nodurilor atunci graful nu conine circuite. 'ac au
rmas noduri n afara lui " atunci graful conine circuite.
Algoritmi e g"#ire a rumului o$tim
'in cauza varietii nelimitate a grafurilor posibile, nu e#ist un algoritm care s rezolve
orice problem n timp util, dar s-au elaborat o mulime de algoritmi, fiecare fiind cel mai eficace n
anumite cazuri. "ceti algoritmi pot fi grupai n cinci categorii.
9. "lgoritmi prin calcul matricial (6ellman-Palaba, J. Komescu, 6ellman-(cimbell)B
,. "lgoritmi prin a1ustri succesive. (;ord)B
<. "lgoritmi prin inducie ('antzig)B
=. "lgoritmi prin ordonare prealabil a vrfurilor grafuluiB
>. "lgoritmi prin e#tindere selectiv ('i1@stra).
n continuare vom prezenta trei dintre aceti algoritmi.
A. Algoritmul lui 1ellman + 2ala%a
"lgoritmul se aplic n grafuri finite care nu au circuite de valoare negativ (pentru o
problem de minim) sau care nu au circuite de valoare pozitiv (ntr-o problem de ma#im) i
gsete drumurile de valoare minim (ma#im) de la toate nodurile grafului la un nod oarecare,
fi#at. 'ac dorim s cunoatem drumurile de valoare minim (ma#im) ntre oricare dou noduri
vom aplica algoritmul, pe rnd, pentru fiecare nod al grafului.
;ie ) * /#
9
, #
,
, ... ,#
n
0 un graf orientat finit. 7resupunem (fr a restrnge generalitatea, c
am numerotat nodurile astfel nct nodul spre care cutm drumurile de valoare minim (ma#im)
de la celelalte noduri s fie #
n
.
,a#ul 1. (e construiete matricea ptratic - cu dimensiunea egal cu numrul de noduri ale
grafului ale crei elemente sunt.
mi1 *

'

) # , (# arcul e#ista nu daca


ma#im) de problema o - (ntr
minim) de problema o - (ntr
1 i daca :
1 i si ) # , (# arcul e#ista daca ) # , (# arcului valoarea
1 i
1 i 1 i
,a#ul 2. (e adaug succesiv liniile L
i
la matricea -, elementele acestora calculndu-se prin
relaiile de recuren.
9. L
91
* m
1n
1 * 9,...,n (prima linie este ultima coloan, transpus, a matricii -)
,. L
i1
* min (L
i-9,1
,
n 9, @
min

(m
1@
C L
i-9,@
)) ntr-o problem de minim
#au L
i1
* ma# (L
i-9,1
,
n 9, @
ma#

(m
1@
C L
i-9,@
)) ntr-o problem de ma#im
,a#ul &. 'up calcularea fiecrei linii noi se compar elementele ei cu cele ale precedentei.
'ac L
i1
* L
i-9,1
pentru orice 1 * 9,...,n atunci se oprete recurena i ultima linie
calculat conine valorile minime ale drumurilor de la celelalte noduri la nodul #
n
.
'ac e#ist cel puin un indice 1 cu L
i1
L
i-9,1
se trece la calcularea noii linii L
iC9
,a#ul -. 7entru gsirea drumului care d valoarea minim de la un nod #
1
la nodul #
n
se gsesc,
ncepnd napoi de la ultima linie, pe care s-au obinut valorile finale, notat L
f
, nodurile
9
@
#
,
,
@
#
, ...,
r
@
#
care formeaz drumul cutat, unde
9
@
#
* #
1
,
r
@
#
* #
n
i fiecare alt
indice @
iC9
este cel pentru care s-a obinut minimul(ma#imul) de pe poziia @
i
al liniei L
i
.
Observaie. 7entru grafuri foarte mari, algoritmul necesit un volum mare de memorie, prin
necesitatea memorrii matricei -, care este greu de manipulat. 8iar dac din cele n
,
arce posibile
graful ar avea doar un procent foarte mic matricea grafului va avea tot n
,
poziii de memorat i
analizat.
Exemplu: 7resupunem dat graful orientat de mai 1os, n care se dorete gsirea drumului de valoare
minim de la nodul #
9
la nodul #
F
.
#
,
#
9
#
?
#
<
#
D
#
=
#
E
#
F
F
D
<
E
=
>
<
<
,
,
>
D
F
=
<
D
?
E
E
F
#
>
-atricea - va fi

,
_










:
D : =
E ? :
> : E
F , < : D , E
< :
F < :
F D :
> = :
iar dup calcularea liniilor L
i
obinem.
#
9
#
,
#
<
#
=
#
>
#
?
#
D
#
E
#
F
#
9 : = >
#
, : D F
#
< : < F
#
= : <
#
> E , D : < , F
#
? E : >
#
D : ? E
#
E = : D
#
F :
L
9
F <

E D :
L
, 9, ? < 9: 9< E D :
L
<
9> 9, ? < E 9< E D :
L
=
9< 9, ? < E 9< E D :
L
>
9< 9, ? < E 9< E D :
'eoarece L
=
* L
>
oprim calcularea liniilor dup calcularea liniei >. n aceast linie se afl
valorile celor mai scurte de la toate nodurile la nodul #
F
. 'rumul dorit de noi (#
9
#
F
) are valoarea
dat de prima poziie a liniei >, fiind egal cu 9<.
7entru a gsi acest drum, plecm napoi de la linia = i avem.
#9 #>

9< * E C > #<

E * ? C , #=

? * < C <

< #F
1. Algoritmul lui For #im$lificat
"lgoritmul lui ;ord simplificat se a!ic #oar 'n grafuri care nu a#$it circuite. 8u a1utorul
lui se gsete drumul de valoare optim ntre dou noduri fi#ate #
i
i #
1
. 7rintr-o eventual
renumerotare a nodurilor putem presupune c nodul de la care pornete drumul este #
9
, care va fi
numit nod iniial, iar nodul la care se termin este #
n
, numit nod final.
"lgoritmul este.
,a#ul 1. J se d vrfului iniial valoarea : (zero). Q(#
:
) * :
,a#ul 2. (e construiete mulimea " format din nodul iniial. " * /#
9
0
,a#ul &. (e analizeaz nodurile din afara mulimii ".
'ac e#ist noduri n care se poate a1unge prin arce directe doar de la nodurile
mulimii ", acestea se adaug la mulimea ", cu valoarea.
Q(#
i
) *
( )
( ) ( ) ( )
i 1 1
# , #
#
# , # v # Q min
i 1
1
+

, n problemele de minim
#au Q(#
i
) *
( )
( ) ( ) ( )
i 1 1
# , #
#
# , # v # Q ma#
i 1
1
+

, n problemele de ma#im
apoi se trece la pasul =
'ac nu e#ist nici un nod de acest tip atunci nu e#ist nici un drum de la #
9
la #
n
.
(K!7
,a#ul -. (e analizeaz mulimea ".
'ac #
n
" atunci valoarea sa reprezint valoarea drumului de valoare optim de la
#
9
la #
n
. 7entru gsirea acestui drum se pornete napoi de la nodul final #
n
i se
gsesc nodurile
9
@
#
,
,
@
#
, ...,
r
@
#
care formeaz drumul cutat, unde
9
@
#
* #
n
,
r
@
#
* #
9
i fiecare alt indice @
iC9
este cel pentru care.
Q(
9 i
@
#
+
) C v(
9 i
@
#
+
,
i
@
#
) * Q(
i
@
#
) (K!7
'ac #
n
" se reia algoritmul de la pasul <.
(&e$!u. 7entru acelai graf i aceeai perece de noduri din e#emplul rezolvat cu algoritmul lui
6ellman-Palaba vom avea succesiv.
pas9. Q(#
9
) * :
pas,. " * /#
9
0
pas<. 2odurile n care se poate a1unge doar din #
9
. /#
>
0
Q/#
>
) * min( Q(#
9
) C v(#
9
,#
>
)) * : C > * >
pas=. #
F
"
pas<. " * /#
9
,#
>
0 i nodurile n care se poate a1unge prin arce directe doar din #
9
i #
>
sunt. /#
?
0
Q/#
?
) * min( Q(#
9
) C v(#
9
,#
?
), Q(#
>
) C v(#
>
,#
?
)) * min(: C < , > C <) * <
pas=. #
F
"
pas<. " * /#
9
,#
>
,#
?
0 i nodurile n care se poate a1unge prin arce directe doar din #
9
, #
>
i #
?
sunt.
/#
,
,#
D
0
Q/#
,
) * min( Q(#
9
) C v(#
9
,#
,
), Q(#
>
) C v(#
>
,#
,
), Q(#
?
) C v(#
?
,#
,
)) * min(: C =,> C E,< C E) * =
Q/#
D
) * min( Q(#
>
) C v(#
>
,#
D
), Q(#
?
) C v(#
?
,#
D
)) * min(> C ,,< C >) * D
pas=. #
F
"
pas<. " * /#
9
,#
,
,#
>
,#
?
,#
D
0 i nodurile n care se poate a1unge prin arce directe doar din #
9
, #
,
, #
>
, #
?
i
#
D
sunt. /#
<
,#
E
0
Q/#
<
) * min( Q(#
,
) C v(#
,
,#
<
), Q(#
>
) C v(#
>
,#
<
)) * min(= C D,> C ,) * D
Q/#
E
) * min( Q(#
>
) C v(#
>
,#
E
), Q(#
D
) C v(#
D
,#
E
)) * min(> C F,D C ?) * 9<
pas=. #
F
"
pas<. " * /#
9
,#
,
,#
<
,#
>
,#
?
,#
D
,#
E
0 i nodurile n care se poate a1unge prin arce directe doar din #
9
,
#
,
,#
<
,#
>
, #
?
, #
D
i #
E
sunt. /#
=
0
Q/#
=
) * min( Q(#
,
) C v(#
,
,#
=
), Q(#
<
) C v(#
<
,#
=
),Q(#
>
) C v(#
>
,#
=
), Q(#
E
) C v(#
E
,#
=
)) * min(= C
F,D C <,> C D,9< C =) * 9:
pas=. #
F
"
pas<. " * /#
9
,#
,
,#
<
,#
=
,#
>
,#
?
,#
D
,#
E
0 i nodurile n care se poate a1unge prin arce directe doar din #
9
, #
,
,
#
<
, #
=
, #
>
, #
?
, #
D
i #
E
sunt. /#
F
0
Q/#
F
) * min( Q(#
<
) C v(#
<
,#
F
), Q(#
=
) C v(#
=
,#
F
), Q(#
D
) C v(#
D
,#
F
), Q(#
E
) C v(#
E
,#
F
)) * min(D C
F, 9: C <, D C E, 9< C D) * 9<
pas=. #
F
" i urmeaz s gsim drumul care are lungimea 9<.
"vem succesiv.
Q(#
F
) * Q(#
=
) C v(#
=
,#
F
)
Q(#
=
) * Q(#
<
) C v(#
<
,#
=
)
Q(#
<
) * Q(#
>
) C v(#
>
,#
<
)
Q(#
>
) * Q(#
9
) C v(#
9
,#
>
)
deci drumul cutat este. #
9
#
>
#
<
#
=
#
F
Observaia 9. 'ac graful are un circuit atunci se poate demonstra uor c nu vom putea da
valoare nici unui nod al acestuia i dac e#ist vreun drum de la #
9
la #
n
care trece prin unul din
nodurile circuitului nu vom putea da valoare nici lui #
n
, cu toate c e#ist drum de la #
9
la #
n
.
Observaia ,. "lgoritmul necesit pentru memorare i manipulare doar cunoaterea, pentru
fiecare nod, a nodurilor spre care &pleac& arce din acesta i valorile acestor arce, fiind mult mai
uor de aplicat sau implementat pe calculator. $l are ns dezavanta1ul c se poate aplica doar n
grafuri fr circuite.
). Algoritmul For generali(at
"lgoritmul lui ;ord generalizat a fost creat cu scopul de a putea gsi drumul optim i n
grafurile care au circuite. 8u a1utorul lui se gsete drumul de valoare optim ntre dou noduri
fi#ate #
i
i #
1
. 7rintr-o eventual renumerotare a nodurilor putem presupune c nodul de la care
pornete drumul este #
9
, care va fi numit nod iniial, iar nodul la care se termin este #
n
, numit nod
final.
"lgoritmul este.
,a#ul 1. J se d vrfului iniial valoarea : (zero). Q(#
:
) * : i tuturor celelalte valoarea C (ntr-o
problem de minim) sau - (ntr-o problem de ma#im).
,a#ul 2. n ordinea cresctoare a indicilor nodurilor se calculeaz pentru fiecare nod, pe baz
fostelor valori, noile valori cu formula.
Q
H
(#
i
) *
( )
( )
( ) ( ) ( )

,
_

i 1 1
# , #
#
i
# , # v # Q min , # Q min
i 1
1
n problemele de minim
#au Q
H
(#
i
) *
( )
( )
( ) ( ) ( )

,
_

i 1 1
# , #
#
i
# , # v # Q ma# , # Q ma#
i 1
1
n problemele de ma#im
,a#ul &. (e compar noile valori Q
H
(#
i
) cu fostele valori Q(#
i
).
'ac Q
H
(#
i
) * Q(#
i
) pentru orice nod #
i
atunci.
dac Q(#
n
) R (la problema de minim) sau Q(#
n
) S - (la problema de ma#im),
valoarea nodului #
n
reprezint valoarea drumului de valoare minim(ma#im) de
la #
9
la #
n
. 7entru gsirea acestui drum se pornete napoi de la nodul final #
n
i
se gsesc nodurile
9
@
#
,
,
@
#
, ...,
r
@
#
care formeaz drumul cutat, unde
9
@
#
*
#
n
,
r
@
#
* #
9
i fiecare alt indice @
iC9
este cel pentru care.
Q(
9 i
@
#
+
) C v(
9 i
@
#
+
,
i
@
#
) * Q(
i
@
#
) (K!7
dac Q(#
n
) * C (-) atunci nu e#ist nici un drum de la #
9
la #
n
. (K!7
'ac e#ist cel puin un nod pentru care Q
H
(#
i
) R Q(#
i
) se reia algoritmul de la pasul
, pentru noile valori ale vrfurilor.
Observaie. "lgoritmul poate gsi drumul i n grafuri cu circuite dar este evident mult mai
lent dect cel simplificat. 7entru scurtarea duratei de e#ecuie se poate modifica algoritmul n sensul
c o valoare nou calculat a unui vrf va fi folosit imediat ca atare la calculul noilor valori ale
celorlalte, nu doar dup ce se calculeaz noile valori ale tuturor vrfurilor.
D. Algoritmul lui Di34#tra
n algoritmul ;ord simplificat, pentru a gsi valoarea nodului final, deci a drumului minim,
plecm de la nodul iniial n toate direciile posibile, pstrnd de fiecare dat toate nodurile
analizate. "cest fapt duce la un consum inutil de timp, deoarece foarte multe din aceste noduri nu
vor face parte din drumul optim. 7entru a elimina acest nea1uns, algoritmul lui 'i1@stra ncearc s
pstreze, la fiecare iteraie, mulimea minim de noduri care s le conin pe toate cele care vor
forma efectiv drumul optim. n plus, algoritmul se poate aplica i n drumuri cu circuite. 8a un
minus este faptul c se aplic doar la probleme de minim. "lgoritmul are urmtorii pai.
,a#ul 1. J se d vrfului iniial valoarea : (zero). Q(#
:
) * :
,a#ul 2. (e construiete mulimea " format din nodul iniial. " * /#
9
0
,a#ul &. (e analizeaz nodurile din afara mulimii ".
'ac e#ist noduri 'n care se !oate a)unge !rin arce #irecte #e a no#uri #in *
(nu #oar de la nodurile mulimii ", ca la algoritmul lui ;ord simplificat) se
calculeaz pentru toate acestea.
Q(#
i
) *
( )
( ) ( ) ( )
i 1 1
# , #
" #
# , # v # Q min
i 1
1
+

n problemele de minim
dar, spre deosebire de algoritmul lui ;ord simplificat, se adaug la mulimea A #oar
cel pentru care se obine valoarea minim, apoi se trece la pasul =.
'ac nu e#ist nici un nod de acest tip atunci nu e#ist nici un drum de la #
9
la #
n
.
(K!7
,a#ul -. (e analizeaz mulimea ".
'ac #
n
" atunci valoarea sa reprezint valoarea drumului de valoare optim de la
#
9
la #
n
. 7entru gsirea acestui drum se pornete napoi de la nodul final #
n
i se
gsesc nodurile
9
@
#
,
,
@
#
, ...,
r
@
#
care formeaz drumul cutat, unde
9
@
#
* #
n
,
r
@
#
* #
9
i fiecare alt indice @
iC9
este cel pentru care.
Q(
9 i
@
#
+
) C v(
9 i
@
#
+
,
i
@
#
) * Q(
i
@
#
) (K!7
'ac #
n
" se reia algoritmul de la pasul <.
(&e$!u Iom aplica algoritmul la acelai graf folosit la ceilali algoritmi, pentru a putea
face comparaii.
pas9. Q(#
9
) * :
pas,. " * /#
9
0
pas<. 2odurile n care se poate a1unge i din #
9
. /#
,
,

#
>
,

#
?
0
Q/#
,
) * min( Q(#
9
) C v(#
9
,#
,
)) * : C = * =
Q/#
>
) * min( Q(#
9
) C v(#
9
,#
>
)) * : C > * >
Q/#
?
) * min( Q(#
9
) C v(#
9
,#
?
)) * : C < * <
min(Q/#
,
),Q/#
>
),Q/#
?
)) * Q/#
?
) * <
pas=. #
F
"
pas<. " * /#
9
,#
?
0 i nodurile n care se poate a1unge prin arce directe din #
9
sau #
?
sunt.
/#
,
,#
>
,#
D
0
Q/#
,
) * min( Q(#
9
) C v(#
9
,#
,
), Q(#
?
) C v(#
?
,#
,
)) * min(: C = , < C E) * =
Q/#
>
) * min( Q(#
9
) C v(#
9
,#
>
)) * min(: C >) * >
Q/#
D
) * min( Q(#
?
) C v(#
?
,#
D
)) * min(< C >) * E
min(Q/#
,
),Q/#
>
),Q/#
D
)) * Q/#
,
) * =
pas=. #
F
"
pas<. " * /#
9
,#
,
,#
?
0 i nodurile n care se poate a1unge prin arce directe din #
9
, #
,
sau #
?
sunt.
/#
<
,#
=
,#
>
,#
D
0
Q/#
<
) * min( Q(#
,
) C v(#
,
,#
<
)) * min(= C D) * 99
Q/#
=
) * min( Q(#
,
) C v(#
,
,#
=
)) * min(, C F) * 99
Q/#
>
) * min( Q(#
9
) C v(#
9
,#
>
)) * min(: C >) * >
Q/#
D
) * min( Q(#
?
) C v(#
?
,#
D
)) * min(< C >) * :
min(Q/#
<
),Q/#
=
),Q/#
>
),Q/#
D
)) * Q/#
>
) * >
pas=. #
F
"
pas<. " * /#
9
,#
,
,#
>
,#
?
0 i nodurile n care se poate a1unge prin arce directe din #
9
, #
,
, #
>
, #
?
i #
D
sunt. /#
<
,#
=
,#
D
,#
E
0
Q/#
<
) * min( Q(#
,
) C v(#
,
,#
<
), Q(#
>
) C v(#
>
,#
<
)) * min(= C D,> C ,) * D
Q/#
=
) * min( Q(#
,
) C v(#
,
,#
=
), Q(#
>
) C v(#
>
,#
=
)) * min(= C F,> C D) * 9,
Q/#
D
) * min( Q(#
>
) C v(#
>
,#
D
), Q(#
?
) C v(#
?
,#
D
)) * min(> C ,,< C >) * D
Q/#
E
) * min( Q(#
>
) C v(#
>
,#
E
)) * min(> C F) * 9=
min(Q/#
<
),Q/#
=
),Q/#
D
),Q/#
E
)) * Q/#
<
) * Q/#
D
) * D
pas=. #
F
"
pas<. " * /#
9
,#
,
,#
<
,#
>
,#
?
,#
D
0 i nodurile n care se poate a1unge prin arce directe din #
9
, #
,
, #
<
, #
>
, #
?
,
i #
D
sunt. /#
=
,#
E
,#
F
0
Q/#
=
) * min( Q(#
,
) C v(#
,
,#
=
), Q(#
<
) C v(#
<
,#
=
),Q(#
>
) C v(#
>
,#
=
)) * min(= C F,D C <,> C D) *9:
Q/#
E
) * min( Q(#
>
) C v(#
>
,#
E
), Q(#
D
) C v(#
D
,#
E
)) * min(> C F,D C ?) * 9<
Q/#
F
) * min( Q(#
<
) C v(#
<
,#
F
), Q(#
D
) C v(#
D
,#
F
)) * min(D C F,D C E) * 9>
min(Q/#
=
),Q/#
E
),Q/#
F
)) * Q/#
=
) * 9:
pas=. #
F
"
pas<. " * /#
9
,#
,
,#
<
,#
=
,#
>
,#
?
,#
D
0 i nodurile n care se poate a1unge prin arce directe din #
9
, #
,
, #
<
, #
=
,
#
>
, #
?
, i #
D
sunt. /#
E
,#
F
0
Q/#
F
) * min( Q(#
<
) C v(#
<
,#
F
), Q(#
=
) C v(#
=
,#
F
), Q(#
D
) C v(#
D
,#
F
)) * min(D C F,9: C <,DCE)*9<
Q/#
E
) * min( Q(#
>
) C v(#
>
,#
E
), Q(#
D
) C v(#
D
,#
E
)) * min(> C F,D C ?) * 9<
min(Q/#
E
),Q/#
F
)) * Q/#
E
) * Q/#
F
) * 9<
pas=. #
F
" i urmeaz s gsim drumul care are lungimea 9<.
"vem succesiv.
Q(#
F
) * Q(#
=
) C v(#
=
,#
F
)
Q(#
=
) * Q(#
<
) C v(#
<
,#
=
)
Q(#
<
) * Q(#
>
) C v(#
>
,#
<
)
Q(#
>
) * Q(#
9
) C v(#
9
,#
>
)
deci drumul cutat este. #
9
#
>
#
<
#
=
#
F
AR1ORI.
,ro%lema ar%orelui e .aloare o$tim"
n acest subcapitol grafurile vor fi considerate neorientate.
0.1. Noiunea e ar%ore
3n ar%ore este un graf neorientat, finit, cone# i fr cicluri. )rafurile din fig. =.9. sunt
arbori.
(tudiul arborilor este 1ustificat de e#istena n practic a unui numr mare de probleme care
pot fi modelate prin arbori. 'intre acestea amintim.
9. construirea unor reele de aprovizionare cu ap potabil (sau cu energie electric sau
termic etc) a unor puncte de consum, de la un punct centralB
,. construirea unor ci de acces ntre mai multe puncte izolateB
<. desfurarea unui 1oc strategicB
=. luarea deciziilor n mai multe etape (arbori decizionali)B
>. evoluii posibile ale unui sistem pornind de la o stare iniialB
?. construirea unei reele telefonice radiale, a unei reele de relee electriceB
D. legarea ntr-o reea a unui numr mare de calculatoareB
E. organigramele ntreprinderilorB
F. studiul circuitelor electrice n electrotenic (grafe de fluen etc)B
9:. scemele bloc ale programelor pentru calculatoare etc.
n toate problemele de mai sus se dorete ca, dintre muciile unui graf neorientat, s se
e#trag arborele optim din mulimea tuturor arborilor care pot fi e#trai din graful dat.
'eoarece definiia arborelui este dificil de aplicat pentru deciderea faptului c un graf este
arbore sau nu (i n special sunt greu de verificat cone#itatea i mai ales e#istena ciclurilor) e#ist
mai multe caracterizri posibile ale unui arbore, acestea fiind date de teorema de mai 1os.
Teorem. 'ac T este un graf neorientat finit, atunci urmtoarele afirmaii sunt ecivalente.
9) T este arboreB
,) T nu conine cicluri i, dac se unesc printr-o mucie dou noduri neadiacente, se
formeaz un ciclu (i numai unul). "rborele este, deci, pentru o mulime de noduri dat,
graful cu numrul ma#im de arce astfel nct s se pstreze proprietatea c nu are cicluri)B
#
9
#
9
a)
#
9
#
9
#
9
#
9
#
9
b)
#
9
#
9
#
9
#
9
c)
;igura =.9
<) T este cone# i dac i se suprim o mucie se creeaz dou componente cone#e (arborele
este graful cone# cu numrul minim de arce)B
=) T este cone# i are n-9 muciiB
>) T este fr cicluri i are n-9 muciiB
?) !rice perece de noduri este legat printr-un lan i numai unul.
Demonstraie .
9) ,). ntre cele dou noduri adiacente noii mucii introduse e#ista de1a un drum n fostul graf.
"cest drum, mpreun cu noul arc va forma evident un ciclu i afirmaia ,) a fost
demonstrat.
,)<). 7entru oricare dou vrfuri neunite printr-o mucie, adugnd mucia dintre cele dou
vrfuri s-ar crea, conform ipotezei, un ciclu care conine aceast mucie, deci dou
drumuri ntre cele dou noduri, din care unul nu conine noua mucie, adic n graful
iniial e#ista un drum ntre cele dou noduri. 'ac nu e#ist cicluri nseamn c ntre
oricare dou noduri e#ist un singur drum. 7entru dou noduri unite printr-o mucie,
aceasta este ciar drumul corespunztor celor dou noduri. 'ac suprimm aceast mucie
ntre cele dou noduri nu va mai e#ista nici un drum, formndu-se dou componente
cone#e.
<)=). 'emonstraia se face prin inducie dup n * numrul de noduri ale grafului. 7entru n*, este
evident. 7resupunem afirmaia adevrat pentru toate grafurile cu cel mult n noduri. 'ac
graful are nC9 noduri, prin suprimarea unei mucii se formeaz dou componente cone#e
fiecare avnd cel mult n noduri (n
9
n, n
,
n i n
9
C n
,
* nC9) i deci au n
9
% 9 respectiv n
,
% 9 mucii. n concluzie graful iniial a avut (n
9
% 9) C (n
,
% 9) C9 * n
9
C n
,
% 9* (nC9)-9
mucii, ceea ce era de demonstrat.
=)>). 'ac ar avea un ciclu atunci prin suprimarea unui arc al acestuia ar rmne de asemenea
cone#. $liminm acest arc apoi repetm procedeul pentru graful parial rmas i tot aa
pn cnd nu mai rmne nici un ciclu. n acest moment graful rmas este cone# i nu are
cicluri deci este arbore i deci are n-9 arce, n contradicie cu faptul c el avea n-9 arce
nainte de a ncepe suprimarea arcelorB
>)?). 'ac ntre dou noduri ar e#ista dou drumuri atunci acestea ar forma la un loc un ciclu.
'eci ntre , noduri este cel mult un drum. 'ac ntre dou noduri nu ar e#ista nici un drum
ar fi cel puin dou componente cone#e n graf, fiecare fiind arbore (pentru c nu e#ist
cicluri) i deci fiecare ar avea un numr de arce cu 9 mai mic dect numrul de noduri.
;cnd adunarea, ar rezulta c n graf sunt strict mai puin de n-9 arce.
?)9). 'ac T ar avea un ciclu, ntre dou noduri ale acestuia ar e#ista dou lanuri, n
contradicie cu ipoteza.
7resupunem c avem un graf pentru care am verificat de1a dac este cone#. 'ac nu este
atunci acesta, evident, nu are nici un graf parial care s fie arbore.
7resupunem de asemenea c fiecrei mucii i este asociat o valoare real.
0.2. Algoritmi $entru g"#irea ar%orelui e .aloare o$tim"
Iom da mai 1os trei algoritmi pentru determinarea unui graf parial al grafului, care s fie
arbore i pentru care suma valorilor arcelor sale s fie minim (sau ma#im).
Koi algoritmii descrii n continuare e#trag arborele prin colectarea una cte una a muciilor
acestuia.
A. Algoritmul lui 2ru#4al
,a#ul 1. 'intre toate muciile grafului se alege mucia de valoare minim (ma#im). 'ac
minimul este multiplu se alege la ntmplare una din muciile respective. 'eoarece acest
&la ntmplare& trebuie cumva tradus n limba1ul calculatorului, n cazul implementrii unui
program bazat pe acest algoritm, vom perturba din start valorile muciilor, la @ mucii cu
aceiai valoare I adunnd respectiv valorile , ,, ... , @, unde este foarte mic (n orice
caz, @ mai mic dect diferena dintre valoarea acestor arce si valoarea imediat superioar a
unui arc), pozitiv.
,a#ul 2. 'intre toate muciile rmase, se alege cea de valoare minim (ma#im)B
,a#ul &. 'intre toate muciile rmase, se alege cea de valoare minim (ma#im), astfel nct s nu
se formeze cicluri cu cele de1a aleseB
,a#ul -. (e reia algoritmul de la pasul < pn se colecteaz n-9 mucii.
'ei s-a demonstrat c algoritmul gsete ntotdeauna arborele optim, el are dezavanta1ul c
este foarte laborios (de fiecare dat trebuie calculat minimul unei mulimi mari sau foarte mari %
e#ist situaii n practic n care graful are sute de mii de arce) i, n plus, trebuie aplicat un algoritm
special ca s respectm condiia de a nu se forma cicluri, la alegerea unui nou arc.
! metod posibil este ca, dup adugarea fiecrui arc, s se mpart graful n componente
cone#e i s alegem apoi un arc care nu are ambele e#tremitile n aceeai component cone#.
'e asemenea este clar c, n cazul e#istenei arcelor de valori egale, deoarece se alege la
ntmplare, e#ist mai multe variante de evoluie a alegerii arcelor. Kotui, cu toate c pot fi mai
multe grafuri la care se poate a1unge prin acest algoritm, ele vor avea toate aceeai valoare (minima
(sau ma#ima) posibil).
1. Algoritmul lui 5ollin
,a#ul 1. 7entru fiecare nod se alege mucia adiacent de valoare minim (ma#im).
,a#ul 2. (e evideniaz componentele cone#e, e#istente n graful parial format din arcele alese
pn n acest moment.
,a#ul &. 7entru fiecare component cone# se alege mucia adiacent de valoare minim
(ma#im). 7rin mucie adiacent unei componente cone#e nelegem o mucie care are o
singur e#tremitate printre nodurile componentei respective.
,a#ul -. (e reia algoritmul de la pasul , pn rmne o singur component cone#. "ceasta este
arborele optim cutat.
"cest algoritm asigur de asemenea gsirea arborelui optim, necesit mult mai puine
calcule (la fiecare alegere se calculeaz minimul doar pentru muciile adiacente unui singur nod),
evit automat formarea ciclurilor, dar, pentru grafuri foarte mari, la un moment dat pot e#ista att de
multe componente cone#e care trebuie memorate succesiv, nct calculul devine greoi sau, pe
calculator, depete posibilitile de memorare ale calculatorului.
). O .ariant" a algoritmului lui 2ru#4al
,a#ul 1. 'intre toate muciile grafului se alege cea de valoare minim (ma#im)B
,a#ul 2. 'intre toate muciile adiacente componentei cone#e format din arcele alese pn n acest
moment, se alege cea de valoare minim (ma#im)B
,a#ul &. (e reia pasul , pn se colecioneaz n-9 mucii.
"lgoritmul are toate avanta1ele algoritmului lui (ollin i, n plus, lucreaz cu o singur
component cone#, fiind mult mai uor de implementat pe calculator i mult mai rapid n e#ecuie.
(&e$!u6 "dministraia unei localiti montane a otrt construirea unor linii de teleferic
care s lege oraul de cele E puncte turistice importante din 1urul acestuia. n urma unui studiu au
fost puse n evidena toate posibilitile i costurile de conectare a obiectivele turistice ntre ele i cu
oraul, acestea fiind prezentate n figura =.,.
(e cere gsirea variantei de construcie de cost minim, care s asigure accesul din ora la
oricare din obiectivele turistice.
+ezovare
8ondiia de cost minim implic dou obiective.
9. ( se construiasc minimul de arce necesareB
,. ( se construiasc cele mai ieftine legturi.
Ueferitor la numrul de arce necesar, facem observaia c, dac din ora se va putea a1unge
la orice obiectiv turistic, atunci se va putea a1unge i de la orice staiune la oricare alta (trecnd prin
ora), deci trebuie ca arcele alese pentru construcie s formeze la un loc un graf cone#.
n concluzie, cutm un graf parial cone# cu un numr minim de arce, adic un arbore. n
plus, suma costurilor arcelor sale trebuie s fie minim. Iom aplica pe rnd cei trei algoritmi pentru
gsirea acestuia.
A. 2ru#4al
La primul pas poate fi ales unul din arcele !7
<
sau !7
D
, ele avnd valoarea minim ,. 7utem
alege oricum primul arc dintre cele dou pentru c la al doilea pas va fi ales cellalt.
La pasul trei poate fi ales unul din arcele !7
>
, !7
?
sau 7
9
7
?
care au valoarea minim <. 2ici
n acest caz nu are vre-o importan ordinea alegerii, deoarece pot fi alese succesiv toate trei fr a
se forma nici un ciclu.
"l aselea arc poate fi ales dintre arcele 7
=
7
>
i 7
9
7
,
, care au valoarea minim =. 2ici n
acest caz nu are vre-o importan ordinea alegerii, deoarece pot fi alese succesiv ambele, fr a se
forma nici un ciclu.
3rmtoarea valoare disponibil a unui arc este >, dar arcul opt nu poate fi ales dintre arcele
!7
9
, 7
?
7
D
, dei au valoarea minim >. "rcul !7
9
nu poate fi ales deoarece s-ar forma ciclul !7
9
7
?
,
iar 7
?
7
D
ar duce la ciclul !7
?
7
D
. 3rmtoarea valoare minim este ?, pentru arcul 7
>
7
D
dar nu poate fi
ales deoarece se formeaz ciclul !7
>
7
D
.
!
7
,
7
9
7
?
7
<
7
D
7
=
7
>
7
E
F
D
E
E
=
>
<
<
,
,
>
D
<
=
E
D
?
E
E
;igura =.,
F
Ialoarea urmtoare, D, o au arcele !7
=
, 7
,
7
<
i 7
>
7
E
. !7
=
nu poate fi ales deoarece s-ar
forma ciclul !7
>
7
=
. "rcul 7
,
7
<
nu poate fi ales deoarece s-ar forma ciclul !7
?
7
9
7
,
7
<
. "rcul 7
>
7
E
nu
formeaz nici un ciclu i el va fi al optulea arc ales. n acest caz, deoarece s-au adunat E arce ntr-un
graf cu F noduri, am obinut graful cutat.
"cest arbore este reprezentat n figura =.<.
1. 5ollin
Iom alege. pentru nodul !

arcul !7
<
pentru nodul 7
9 arcul 7
9
7
?
pentru nodul 7
,
arcul 7
9
7
,
pentru nodul 7
< arcul !7
<
pentru nodul 7
=
arcul 7
=
7
>
pentru nodul 7
> arcul !7
>
pentru nodul 7
?
arcul 7
9
7
?
pentru nodul 7
D arcul !7
D
pentru nodul 7
E
arcul 7
>
7
E
Uezult graful parial.
'up cum se vede, s-au format dou componente cone#e. 8
9
* /7
9
,7
,
,7
?
0
!
7
,
7
9
7
?
7
<
7
D
7
=
7
>
7
E
=
<
,
,
<
=
D
;igura =.=
!
7
,
7
9
7
?
7
<
7
D
7
=
7
>
7
E
=
<
<
,
,
<
=
;igura =.<
D
8
,
* /!,7
<
,7
=
,7
>
,7
D
,7
E
0.
Iom alege. pentru 8
9
arcul !7
?
pentru 8
,
arcul !7
?
i obinem o singur component cone#, care este arborele cutat.
). 7arianta algoritmului lui 2ru#4al
(uccesiunea alegerii arcelor va fi.
9

!7
<
, !7
D
<

!7
?
= !7
>
>

7
9
7
?
? 7
9
7
,
D

7
=
7
>
E 7
>
7
E
8. Drumuri 9i circuite 'amiltoniene
3na dintre cele mai cunoscute probleme economice este problema comis voia1orului. 8omis
voia1orul este un individ care trebuie s prezinte s-au s distribuie marfa comandat la o serie de
centre distribuite n general neliniar pe o anumit zon teritorial (localitile dintr-un 1ude,
magazinele dintr-un cartier, persoanele dintr-un sat etc). 'ac numrul de obiective care trebuie
vizitate este mare sau foarte mare iar timpul disponibil foarte limitat atunci devine vital o
asemenea organizare a trecerii pe la fiecare obiectiv nct s se efectueze n timpul minim posibil.
"cest timp minim se traduce prin drumul cel mai scurt, iar cel mai scurt drum este evident cel n
care se trece pe la fiecare obiectiv o singur dat. n plus, la sfrit trebuie s se afle n punctul
iniial, adic sediul firmei la care lucreaz.
! reprezentare a regiunii aprovizionate, n care centrele pe la care se trece sunt vizualizate
prin puncte iar cile de acces la acestea prin segmente de curbe, va fi evident un graf, problema
reducndu-se la a gsi circuitul amiltonian de lungime minim.
n timp, s-au evideniat o multitudine de probleme reductibile la gsirea unui drum (sau
circuit) amiltonian ntr-un graf, cum ar fi.
9. 7roblema potaului (gsirea traseului cel mai scurt care trece pe la toate locuinele ce
aparin de oficiul potal la care lucreaz acesta)B
,. 7roblema adunrii deeurilor (cel mai scurt drum care trece pe la toate punctele de
depozitate a deeurilor)B
<. 7roblema succesiunii operaiilor (e#ecutarea mai multor operaii pe o main n acea
ordine n care suma timpilor consumai cu pregtirea mainii pentru trecerea de la o
operaie la urmtoarea s fie minim)
=. !rdinea lipirii unor componente electronice pe o plac, etcB
Determinarea rumurilor 'amiltoniene
7roblema determinrii drumului (circuitului) amiltonian de valoare optim s-a dovedit
deosebit de dificil, nee#istnd nici acum un algoritm care s rezolve problema n timp polinomial
i nici mcar o metod simpl prin care s se decid dac ntr-un graf dat e#ist sau nu drumuri
amiltoniene.
$#ist ns mai muli algoritmi, unii e#aci alii euristici, care reuesc, ntr-un caz sau altul,
s rezolve problema satisfctor i n timp util.
A. Algoritmul lui Foul4e#
,a#ul 1. (e scrie matricea boolean " asociat grafului ).
,a#ul 2. (e determin matricea ' a drumurilor grafului ) prin procedeul e#pus la nceputul
capitolului i apoi matricea - * J C '.
,a#ul &. (e mparte mulimea nodurilor grafului n submulimi dis1uncte astfel.
9. (e consider n matricea - liniile pline (cu toate elementele 9). 2odurile ce corespund liniilor
pline cu 9 formeaz submulimea 8
9
.
,. (e elimin liniile i coloanele care corespund nodurilor din submulimea stabilit.
<. (e reia raionamentul de la punctul 9 pe matricea redus obinut la punctul , obinndu-se
urmtoarea submulime i n continuare toate celelalte pn se epuizeaz toate liniile matricei.
,a#ul -. (e construiete graful )G n care.
9. 2odurile care formeaz o submulime sunt reprezentate prin puncte n interiorul unui
dreptungi i ntre acestea se traseaz arcele e#istente n graful iniial ).
,. (e traseaz legturile dintre submulimi. $le sunt reprezentate prin arcele e#istente n
graful iniial ) ntre nodurile submulimii 8
9
i cele ale submulimii 8
,
, ntre nodurile
submulimii 8
,
i cele ale submulimii 8
<
etc.
,a#ul 0. (e gsesc drumurile amiltoniene
3n drum amiltonian se gsete plecnd de la un vrf din submulimea 8
9
, trecnd prin toate
vrfurile acesteia cu un drum amiltonian, din ultimul vrf la care se a1unge n 8
9
trecnd la un vrf
din 8
,
, parcurgnd n continuare un drum amiltonian n a doua submulime i tot aa, trecnd prin
toate submulimile i parcurgnd, deci, toate nodurile grafului iniial, o singur dat. "plicnd acest
procedeu n toate modurile posibile se obin toate drumurile amiltoniene din graful iniial ).
(Observaie. poate s nu e#iste nici un drum amiltonian n graful ), caz n care algoritmul se
oprete deoarece la un anumit pas nu mai e#ista nici o linie plina cu 9).
Observaie. "lgoritmul lui ;oul@es reduce gsirea drumurilor amiltoniene n graful iniial
) (care n problemele practice este foarte mare) la gsirea mai multor drumuri amiltoniene mai
mici n componente tare cone#e ale grafului. 'ac un graf are o singur component tare cone#,
algoritmul lui ;oul@es nu este eficient, n acest caz trebuind aplicai ali algoritmi cum ar fi cel bazat
pe nmulirea latin.
1. Algoritmul lui )'en $entru eterminarea rumurilor 'amiltoniene
*n grafuri f"r" circuite
;ie ) * (+,3) un graf orientat fr circuite, cu n noduri. + * /#
9
, #
,
, V , #
n
0. Iom considera
c am calculat matricea drumurilor ' i puterile de atingere ale tuturor nodurilor.
'ac n graful ) e#ist un drum de la nodul #
i
la nodul #
1
atunci evident p(#
i
) S p(#
1
),
deoarece n orice vrf n care se poate a1unge din #
1
se poate a1unge i din #
i
dar din #
1
nu se poate
a1unge n #
1
pentru c nu e#ist circuite.
,eore$a 2.3 (-"en) Un graf cu n noduri fr circuite conine un drum !amiltonian dac "i
numai dac exist relaia:
( )
( )
,
9
9

n n
x p
n
i
i
De$onstraie
WX ;ie # un drum amiltonian i presupunem c nodurile grafului au fost notate n
ordinea n care apar n acest drum. "tunci din orice nod #
i
se poate a1unge n toate nodurile cu
indice mai mare i numai n acestea (altfel ar e#ista circuite) i deci puterea unui nod #
i
este n % i, de
unde.
( )

n
i
i
x p
9
* (n % 9) C (n % ,) C V C 9 C : *
( )
,
9 n n
WX !rdonnd vrfurile n ordinea descresctoare a puterii lor de atingere (i S 1 p(#
i
) R
p(#
1
)) i cum graful nu are circuite, vom obine o matrice ' cu toate zerourile deasupra diagonalei
(evident pe o poziie (i,i) nu se afl nici un 9 iar dac ar fi un 9 pe poziia (i,1) cu i S 1 ar nsemna c
din #
i
se poate a1unge n #
1
, deci n toate nodurile n care se poate a1unge din #
1
, iar din #
1
nu se poate
a1unge n #
i
, deci p(#
i
) S p(#
1
) n contradicie cu ipoteza de ordonare a nodurilor). 8um deasupra
diagonalei sunt
( )
n
n n 9
poziii iar suma puterilor vrfurilor este ciar
( )
n
n n 9
rezult c toate
poziiile de deasupra diagonalei sunt 9. "ceasta nseamn c e#ist toate arcele de forma (#
i
,#
iC9
)
(altfel n-ar e#ista drum de la #
i
la #
iC9
, deoarece toate drumurile au indicii nodurilor n ordine
descresctoare) i deci drumul amiltonian (#
9
, #
,
, V , #
n
) Y.e.d.
,eore$a 2.. 'ac ntr-un graf orientat fr circuite e#ist un drum amiltonian atunci
acesta este unic.
De$onstraie 'eoarece un drum amiltonian se identific cu o permutare a nodurilor
grafului, e#istena a dou drumuri amiltoniene implic e#istena a dou permutri distincte a
nodurilor grafului i cum dou permutri distincte difer prin cel puin o inversiune vor e#ista dou
noduri #
i
i #
1
n ordinea #
i
#
1
pe un drum i invers pe cellalt, e#istnd deci un drum att de la #
i
la #
1
ct i de la #
1
la #
i
, cele dou formnd mpreun un circuit, n contradicie cu ipoteza.
7e aceste teoreme se bazeaz algoritmul lui )'en de determinare a drumului amiltonian
ntr-un graf orientat fr circuite.
,a#ul1. (e scrie matricea de adiacen "
,a#ul2. (e calculeaz matricea drumurilor '
,a#ul&. 'ac e#ist un indice i cu d
ii
* 9 atunci graful are circuite, nu se poate aplica algoritmul lui
8en i algoritmul se oprete. 'ac nu, se trece la pasul =.
,a#ul-. (e calculeaz puterile de atingere pentru fiecare nod.
,a#ul0. 'ac nu se verific relaia
( )
( )
,
9
9

n n
x p
n
i
i atunci graful nu are drumuri amiltoniene
i algoritmul se oprete, altfel se trece la pasul ?.
,a#ul:. (e ordoneaz nodurile n ordinea descresctoare a puterilor lor de atingere i obinem
drumul amiltonian cutat.
). Algoritmul lui 2aufmann
,a#ul 1. 8onstruim matricea latin L asociat grafului, unde.
l
i1
*
( )
( )

'

1 i
1 i 1 i
# , # arcul a e#ist nu a dac :
# , # arcul a e#ist a dac # #


,a#ul 2. 8onstruim matricea L
M
, definit prin.
i1
l
M
*
( )
( )

'

1 i
1 i 1
# , # arcul a e#ist nu a dac :
# , # arcul a e#ist a dac #


numit matricea latin" reu#".
,a#ul &. (e calculeaz succesiv matricile.
L
,
* L
L

L
M
, L
<
* L
,
L

L
M
, ..., L
@C9
* L
@
L

L
M
, ...
folosind operaiile de nmulire i adunare latin, alfabetul fiind mulimea nodurilor grafului, unde
operaia de nmulire este uor modificat, produsul dintre dou elemente ale matricilor fiind :, dac
unul dintre ele este : sau au un nod comun, i este produsul latin al lor, n caz contrar.
'in felul cum a fost construit, matricea L
@
va conine toate drumurile elementare de
lungime @. 8um un drum elementar poate avea cel mult n noduri (cte are graful cu totul) rezult
c.
primele n-9 puteri ale L conin toate drumurile elementare din grafB
puterile lui L mai mari sau egale cu n au toate elementele egale cu :B
matricea L
n-9
conine toate drumurile amiltoniene din graf.
,a#ul -. 'ac se doresc i circuitele atunci se verific pentru fiecare drum amiltonian dac poate
fi completat pn la un circuit (adic dac e#ist n graf arcul care unete nodul final cu cel
iniial)B
,a#ul 0. 'ac se dorete i drumul (sau circuitul) de valoare optim (ma#im sau minim) se
calculeaz suma valorilor pentru fiecare drum iAsau circuit i se alege cel cu valoarea
optim.
n concluzie, metoda nmulirii latine (". Paufmann % Z. -elgrange) determin toate
drumurile elementare din graf, prin calcularea matricelor -
(9)
, -
(,)
, -
(<)
, V, -
(n-9)
.
n matricea -
(n-9)
se citesc drumurile amiltoniene.
"ceast metod a nmulirii latine (algoritmul lui Paufmann) este util, mai ales, n cazul
grafurilor tare cone#e, unde algoritmul lui ;oul@es nu este eficient. Kotui, metoda este greu de
aplicat n grafuri cu un numr mare de noduri. n acest caz este preferabil s se construiasc graful
condensat, s se determine drumurile amiltoniene n fiecare n parte cu algoritmul lui Paufmann i
apoi, ca la algoritmul lui ;oul@es, s se caute drumurile amiltoniene n graful iniial.
D. Un algoritm %a(at $e algoritmul ungar
;ie ) * (+,3) un graf orientat cu n noduri + * /#
9
, #
,
, V , #
n
0.
,a#ul 1. (e construiete graful bipartit T * ("6,I) n care " * 6 * + i I * 3 (adic am folosit
pentru ) reprezentarea prin coresponden).
,a#ul 2. (e gsete pentru graful T cupla1ul ma#im de valoare minim.
,a#ul &. (e construiete graful parial al lui ) format doar cu arcele cupla1ului gsit. $ste uor de
demonstrat c, componentele tare cone#e ale acestuia sunt toate nite circuite. 'ac s-a
format un singur circuit acesta este circuitul amiltonian de valoare minim. 'ac s-au
format mai multe se trece la pasul =.
,a#ul -. 7entru fiecare arc aflat pe circuitul de lungime minim (dac sunt mai multe se iau n
considerare arcele tuturor) se reia algoritmul de la pasul 9 pentru graful parial rezultat din
) prin eliminarea acestui arc.
,a#ul 0. 7entru fiecare graf parial se continu procedeul pn se a1unge la unul din cazurile.
8azul9. 8upla1ului ma#im gsit i corespunde un singur circuit. 'ac acest circuit
este primul obinut atunci valoarea sa i se atribuie unei variabile [ i
circuitul este pstrat. 'ac nu este primul atunci valoarea sa se compar cu
[ i, dac este mai mic, ea devine noua valoare a lui [ i circuitul se
pstreaz, eliminndu-l pe cel corespunztor fostei valori a lui [. n caz
contrar se trece la alt graf parial neanalizat nc.
8azul,. 8upla1ul ma#im are o valoare mai mare dect [. 7entru acest graf parial se
abandoneaz ramificarea.
,a#ul :. (e continu analiza grafurilor pariale pn sunt analizate toate ramificaiile. Ialoarea [
final este valoarea circuitului de valoare minim iar circuitul corespunztor este cel
optim.
"naliza de mai sus poate fi scematizat printr-un arbore de tipul.
n care fiecare nod este un graf parial de analizat, iar pentru fiecare arc, nodul inferior este un graf
parial care provine din graful corespunztor nodului superior, prin suprimarea unui arc de pe
circuitele de lungime minim corespunztoare cupla1ului ma#im de valoare minim al acestuia.
Observaie. "lgoritmul asigur gsirea circuitului de valoare minim iar n cazul n care
algoritmul lui ;oul@es nu funcioneaz este o alternativ mai bun dect algoritmul lui Paufmann.
Kotui el nu lucreaz n timp polinomial i n unele cazuri (de e#emplu cazuri n care se formeaz
foarte multe cicluri cu lungime minim) necesit un numr imens de calcule.
n aceste cazuri se pot folosi metode euristice prin care se elimin din start o serie de arce,
considerate a avea valori prea mari pentru a se putea afla pe circuitul amiltonian de valoare
minim, apoi se aplic n graful parial rmas unul din algoritmii de mai sus.
;. Reele e tran#$ort
ntr-o mare varietate de situaii concrete din practica economic se pune problema deplasrii
unei cantiti de materie, energie, informaie etc, din anumite locuri, numite #ur#e, n alte locuri,
numite e#tinaii. 7entru realizarea acestui transport se folosesc o serie de trasee, numite rute e
leg"tur". 3nitile indivizibile ale cantitii \, care se deplaseaz de-a lungul rutelor ntre surse i
destinaii, se numesc unit"i e flu!< iar ansamblul rutelor, surselor, destinaiilor i, eventual, a
altor $uncte intermeiare se numete reea de transport.
(ituaia de mai sus poate fi reprezentat geometric printr-un graf finit, cone# i fr bucle.
7entru ca o astfel de problem s fie suficient de comple# pentru a necesita un studiu
matematic riguros, trebuie ca fiecare surs s poat aproviziona mai multe destinaii i orice
destinaie s poat fi aprovizionat de mai multe surse.
"provizionarea destinaiilor se poate face direct de la surse sau prin intermediul altor
puncte, numite puncte intermediare. n cazul cel mai general pot e#ista de asemenea legturi ntre
surse iAsau legturi ntre destinaii.
"a cum s-a vzut i la problema de transport, situaia de mai sus este un cadru e#trem de
larg, care permite e#istena unui numr foarte mare de tipuri de probleme posibile, diferite ntre ele
prin informaiile suplimentare pe care le avem despre reea i prin obiectivele urmrite.
3na dintre acestea este problema determinrii cantitii ma#ime (minime) care poate fi
transportat de la surse la destinaii, n situaia n care sursele dispun de cantiti limitate (inferior
sau superior), destinaiile au un necesar sau o putere de absorbie limitat inferior sau superior iar pe
fiecare rut se poate transporta doar o cantitate cuprins ntre anumite limite.
7entru studiul matematic al acestei situaii vom da definiiile matematice ale obiectelor
implicate n problem i ipotezele modelului.
Definiia 9. (e numete reea e tran#$ort #tanar un graf finit, simplu, cone#, fr bucle
) * (+,3) care are urmtoarele proprieti.
9. $#ist i este unic s + a..

+
s
3
,

s
3 (din care doar &ies& arce),
numit intrarea reelei de transportB
,. $#ist i este unic t + a..
+
t
3 * ,

t
3
(n care doar &intr& arce) numit
ie9irea reelei de transportB
<. (-a definit o funcie c. 3 $
C
care asociaz fiecrui arc u un numr strict
pozitiv c
u
numit ca$acitatea arcului.
/0servaie. $ste clar c e#emplele obinuite au doar rareori o singur surs i o singur destinaie.
Kotui, printr-o tenic foarte simpl, orice reea de transport se poate aduce la forma standard.
9. 'ac sunt mai multe surse se introduce un nod suplimentar din care &pleac& cte un
arc spre fiecare surs (i numai spre acestea), iar capacitile acestor arce vor fi
egale cu disponibilurile surselor corespunztoareB
,. 'ac sunt mai multe destinaii se introduce un nod suplimentar spre care &pleac&
cte un arc din fiecare destinaie (i numai din acestea), iar capacitile acestor arce
vor fi egale cu necesarurile destinaiilor corespunztoareB
Definiia ,. (e numete flu! *ntr+o reea e tran#$ort U * (+,3) o funcie . 3 $
C
care
are urmtoarele proprietile.
79. :
u
c
u
oricare ar fi u din 3B valoarea
u
se numete flu! al arcului u
7,.

+

i
i
3 u
u
3 u
u

oricare ar fi i s,t (suma flu#urilor arcelor care &intr& ntr-un nod
i este egal cu suma flu#urilor arcelor care &ies& din acest nod, cu e#cepia nodului
iniial i al celui final.
Definiia <. (e numete .aloare a flu!ului suma flu#urilor arcelor care &pleac& din nodul
iniial s i se noteaz cu .
/0servaie. (e poate demonstra uor c aceast valoare este egal i cu suma flu#urilor
arcelor care &intr& n nodul final t. n concluzie avem.
*

+

t s
3 u
u
3 u
u

Ialoarea flu#ului reprezint cantitatea care se transport efectiv pe reea de la surse la
destinaii.
Definiia =. (e numete flu! e .aloare ma!im" *ntr+o reea un flu# n aceast reea, cu
proprietatea c, pentru orice alt flu# G pe aceast reea, avem G.
Ialoarea flu#ului de valoare ma#im reprezint cea mai mare cantitate care se poate
transporta efectiv pe reea, de la surse la destinaii.
$conomic vorbind, ne intereseaz, referitor la o reea, rspunsurile la urmtoarele ntrebri.
9. 7utem transporta ntreaga cantitate necesar la destinaii]
,. 'ac da, cum transportm efectiv aceast cantitate de la surse la destinaii]
<. 'ac nu, din ce motiv nu putem realiza acest transport]
=. 8um putem nltura cu eforturi minime acest motiv]
Uspunsul la primele dou ntrebri se poate afla prin gsirea flu#ului de valoare ma#im i
compararea valorii lui cu suma necesarurilor destinaiilor. n plus, valoarea acestuia pe un arc
reprezint cantitatea care trebuie transportat pe ruta respectiv, pentru a obine aceast valoare a
flu#ului.
Uspunsul la ultimele dou ntrebri pornete de la observaia c cea mai mare cantitate care
poate traversa reeaua de la un cap la altul este egal cu dimensiunea celui mai ngust loc de trecere
prin reea. 'ac vrem, deci, s mrim flu#ul va trebui s lrgim tocmai acest cel mai ngust loc de
traversare al reelei.
7entru formalizarea consideraiilor de mai sus vom introduce noiunea de t"ietur" *ntr+o
reea.

Definiia >. 'at o reea de transport )(+,3) cu s * nodul iniial i t * nodul final, se
numete t"ietur" *n reea o partiie a mulimii vrfurilor reelei de transport, format din dou
submulimi I i ^ (I^ * , I^ * +) astfel nct s I i t ^.
! tietur poate fi privit, intuitiv, ca o seciune a reelei, care las nodul iniial cu o
submulime din noduri ntr-o parte, nodul final cu restul nodurilor n cealalt parte i reteaz toate
arcele care trec dintr-o parte n cealalt.
" cunoate o tietur este ecivalent cu a cunoate care sunt elementele celor dou mulimi,
I i ^, care formeaz partiia.
Iom nota o tietur prin K * (I,^), convenind ca mulimea scris pe prima poziie s
conin nodul iniial s al reelei iar cea scris pe a doua, nodul final t.
Definiia ?. (e numete ca$acitate a unei t"ieturi K * (I,^) ntr-o reea de transport
)(+,3), notat 8(K), suma capacitilor tuturor arcelor care au e#tremitatea iniial n I i cea
final n ^.
8(K) *
( )

^ #
I #
# , # u
u
1
i
1 i
c
7entru a nu e#ista nici o ambiguitate, insistm asupra faptului c se vor lua n considerare
doar arcele care trec de la mulimea ce conine nodul iniial spre mulimea care conine nodul final,
adic n sensul normal de transport (surse destinaie).
Definiia D. (e numete t"ietur" e .aloare minim" *ntr+o reea o tietur K n aceast
reea, cu proprietatea c, pentru orice alt tietur KG n aceast reea, avem 8(K) 8(KG).
3rmtoarele teoreme fac legtura matematic dintre flu#urile unei reele i tieturile sale.
,eore$a 1. 'at o tietur K * (I,^) i un flu# ntr-o reea de transport avem.
*
( )

^ #
I #
# , # u
u
1
i
1 i

%
( )

I #
^ #
# , # u
u
1
i
1 i

sau, altfel spus, valoarea unui flu# oarecare este egal cu suma flu#urilor arcelor care trec de la I la
^ din care se scade suma flu#urilor arcelor care trec invers, de la ^ la I, oricare ar fi tietura K *
(I,^).
De$onstraie. "vem succesiv.
* ( )

+ #
# s, u
u
1
1

* ( )

+ #
# s, u
u
1
1

,
_

+
s #
I #
3 u
u
3 u
u
i
i
i
#
i
#

*
*
( )
( )

I #
I #
# , # u
u u
1
i
1 i

C
( )

^ #
I #
# , # u
u
1
i
1 i

-
( )

I #
^ #
# , # u
u
1
i
1 i

*
( )

^ #
I #
# , # u
u
1
i
1 i

%
( )

I #
^ #
# , # u
u
1
i
1 i


-oroar6 ntr-o reea de transport valoarea oricrui flu# este mai mic sau egal dect valoa-
rea oricrei tieturi.
De$onstraie. ;ie K o tietur oarecare i un flu# oarecare. "vem succesiv.
*
( )

^ #
I #
# , # u
u
1
i
1 i

%
( )

I #
^ #
# , # u
u
1
i
1 i


( )

^ #
I #
# , # u
u
1
i
1 i


( )

^ #
I #
# , # u
u
1
i
1 i
c
* 8(K)
-oroar6 ntr-o reea de transport valoarea flu#ului ma#im este mai mic sau egal dect
valoarea tieturii minime.
'emonstraia e evident. n plus, din cele de mai sus se vede c egalitatea are loc numai
dac, pentru tietura minim, e#ist un flu# pentru care toate arcele de la I la ^ sunt folosite la
ma#im (flu#ul e egal cu capacitatea arcelor) iar pe toate arcele de la ^ la I nu se transport nimic.
,eore$a ui 1or#21u3erson 'ac flu#ul este ma#imal atunci e#ist o tietur de
capacitate egal cu valoarea flu#ului.
De$onstraie6 ;ie un flu# ma#imal. Jntroducem urmtorul procedeu de marcare a
vrfurilor.
,a#ul 1. (e marceaz nodul iniial s cu :(zero)B
,a#ul 2. 7entru fiecare vrf marcat #
i
se marceaz cu.
4C#
i
5 toate vrfurile nemarcate #
1
pentru care e#ist arcul (#
i
,#
1
) i (#
i
,#
1
) R c(#
i
,#
1
)
(adica nodurile spre care mai e loc pentru a se transporta ceva din #
i
)B
4%#
i
5 toate vrfurile nemarcate #
1
pentru care e#ist arcul (#
1
,#
i
) i (#
1
,#
i
) S :
(adic toate nodurile spre care pleac de1a ceva din #
i
)B
,a#ul &. (e repet pasul , pn nu mai poate fi marcat nici un vrf.
'ac vrful final t ar fi marcat, atunci ncepnd de la acesta, am putea construi lanul
9
@
#
,
,
@
#
, ...,
r
@
#
unde
9
@
#
* s,
r
@
#
* t i marca1ul oricrui vrf
9 i
@
#
+
este C
i
@
#
sau %
i
@
#
. "dugnd la
flu#ul fiecrui arc al lanului de tipul (
i
@
#
,
9 i
@
#
+
) valoarea.
* min(
( )
( ) ( ) ( )
9 i i 9 i i
9 i
@
i
@
@ @ @ @
# , #
# , # # , # c min
+ +
+

,
( )
( )
9 i i
i
@
9 i
@
@ @
# , #
# , # min
+
+

)
i scznd din flu#ul fiecrui arc de tipul (
9 i
@
#
+
,
i
@
#
) aceeai valoare , obinem un flu# de valoare
C , deci flu#ul nu ar fi ma#imal.
n concluzie vrful t nu va fi marcat. ;ie tietura K * (I,^), unde I este format din
mulimea nodurilor marcate iar ^ din cele nemarcate. n acest caz, pentru fiecare arc (#
i
,#
1
) care
&traverseaz& tietura avem.
dac #
i
I atunci (#
i
,#
1
) * c(#
i
,#
1
) deoarece nodul #
1
nu e marcat
dac #
i
^ atunci (#
i
,#
1
) * : deoarece nodul #
i
nu e marcat
n acest caz avem.
8(K) *
( )

^ #
I #
# , # u
u
1
i
1 i
c
*
( )

^ #
I #
# , # u
u
1
i
1 i

%
( )

I #
^ #
# , # u
u
1
i
1 i

*
i teorema e demonstrat.
Keorema lui ;ord-;ul@erson poate stabili doar valoarea flu#ului ma#im dar nu d o metod
de gsire a acestuia. 7entru a rezolva problema gsirii flu#ului de valoare ma#im se poate folosi
algoritmul lui ;ord-;ul@erson.
7entru e#punerea acestuia vom introduce i noiunile de.
arc #aturat * un arc pe care flu#ul este egal cu capacitateaB
rum com$let * un drum de la nodul iniial s la nodul final t care conine cel puin un arc saturatB
flu! com$let * un flu# pentru care orice drum de la nodul iniial s la nodul final t este complet.
Algoritmul lui For+Ful4er#on
ETA,A I (e determin un flu# complet.
,a#ul 1. (e numeroteaz nodurile reelei de transport astfel nct #
9
* s i #
n
* tB
,a#ul 2. (e asociaz grafului flu#ul nul (
u
* : pentru orice arc u din graf)B
,a#ul &. n ordine le#icografic, se ia pe rnd fiecare drum ' de la nodul iniial la cel final, se
calculeaz valoarea
'
*
( )
u u
' u
c min

i se adaug la flu#ul de pe fiecare arc al


drumului. "rcul(arcele) unui drum ' pentru care s-a obinut valoarea minim
'
va fi
dup aceast adugare, n mod evident, saturat i deci drumul ' va fi complet.
'up epuizarea tuturor drumurilor se obine un flu# complet, de valoare *

'
'
.
'eoarece alegerea drumurilor n ordine le#icografic nu ine cont de structura reelei, aa cum se
poate vedea pe un e#emplu, acest procedeu nu asigur ntotdeauna gsirea flu#ului ma#im. "cest
impediment poate fi depit fie prin gsirea unei ordini de parcurgere a tuturor drumurilor, care s
dea pentru fiecare reea flu#ul ma#im, n urma procedeului de mai sus, fie prin redistribuirea
1udicioas a flu#ului gsit la etapa J. " doua variant este cea care se aplic la etapa JJ.
ETA,A II (e determin flu#ul ma#im
,a#ul -. (e marceaz nodul iniial s cu :(zero)B
,a#ul 0. 7entru fiecare vrf marcat #
i
se marceaz cu.
4C#
i
5 toate vrfurile nemarcate #
1
pentru care e#ist arcul (#
i
,#
1
) i (#
i
,#
1
) R c(#
i
,#
1
)
(adica nodurile spre care mai e loc pentru a se transporta ceva din #
i
)B
4%#
i
5 toate vrfurile nemarcate #
1
pentru care e#ist arcul (#
1
,#
i
) i (#
1
,#
i
) S : (adic
toate nodurile spre care pleac de1a ceva din #
i
)B
,a#ul :. (e repet pasul > pn este marcat nodul final sau pn cnd nu mai poate fi marcat nici
un vrfB
,a#ul 8. 'ac nodul final a fost marcat atunci flu#ul este ma#im i algoritmul se oprete, n caz
contrar trecndu-se la pasul EB
,a#ul =. 8onstruim un lanul L *
9
@
#
,
,
@
#
, ...,
r
@
#
unde
9
@
#
* s,
r
@
#
* t i marca1ul oricrui vrf
9 i
@
#
+
este C
i
@
#
sau %
i
@
#
. (e calculeaz.

L
* min(
( )
( ) ( ) ( )
9 i i 9 i i
9 i
@
i
@
@ @ @ @
# , #
# , # # , # c min
+ +
+

,
( )
( )
9 i i
i
@
9 i
@
@ @
# , #
# , # min
+
+

)
care se adaug la flu#ul fiecrui arc al lanului de tipul (
i
@
#
,
9 i
@
#
+
) i se scade din
flu#ul fiecrui arc de tipul (
9 i
@
#
+
,
i
@
#
).
,a#ul ;. (e terge marca1ul i se reia algoritmul de la pasul =.
n final, tietura de valoare minim este cea n care I * mulimea nodurilor marcate iar ^ *
mulimea nodurilor nemarcate.
Observaia 9. "lgoritmul nu asigur ntotdeauna gsirea flu#ului ma#im, deoarece se poate
ca creterea flu#ului la fiecare iteraie s se fac cu cantiti din ce n ce mai mici astfel nct suma
lor s nu ating niciodat marginea superioar dat de valoarea tieturii minime, algoritmul avnd o
infinitate de pai. Keorema de mai 1os d o condiie suficient pentru ca algoritmul s se termine
ntr-un numr finit de pai.
,eore$ 'ac toate capacitile rutelor reelei sunt numere raionale atunci algoritmul lui
;ord-;ul@erson are un numr finit de pai.
De$onstraie 7rin nmulirea tuturor acestor capaciti cu cel mai mic multiplu comun al
numitorilor se obine o reea cu toate capacitile numere naturale. _innd cont de formula de
calcul, la fiecare iteraie cantitatea adugat va fi numr natural i cum valoarea flu#ului ma#im
este mrginit de capacitatea tieturii minime 8
min
, care este de asemenea numr natural, algoritmul
va avea nevoie de cel mult 8
min
pai pentru a o atinge.
Observaia ,. Keorema de mai sus asigur doar o limitare superioar a numrului de iteraii
ale algoritmului, fa de capacitatea tieturii minime. "ceast valoare poate fi ns, n anumite
cazuri, foarte mare i, dac nu se iau precauii suplimentare, algoritmul nu va da soluia n timp util.
'epirea acestei situaii este asigurat de urmtoarea teorem.
,eore$ 'ac la fiecare iteraie se alege drumul (lanul) de lungime minim atunci
algoritmul va avea cel mult
,
9
mn iteraii, unde n * numrul de noduri iar m * numrul de mucii.
Observaia <. $#ist probleme n care se dorete gsirea fu&uui $ini$ ntr-o reea, valorile
flu#ului pe arce fiind limitate inferior de capacitile acestora. n acest caz se aplic de asemenea
algoritmul lui ;ord-;ul@erson astfel.
,a#ul 1. (e calculeaz - * ma#imul capacitilor arcelor
,a#ul 2. (e construiete reeaua UG, care este fosta reea, n care au fost modificate doar
capacitile arcelor, acestea devenind
u
c
* - % c
u
,a#ul &. (e gsete cu algoritmul ;ord-;ul@erson flu#ul , de valoare ma#im, n aceast
reea
,a#ul -. ;lu#ul de valoare minim n reeaua iniial va avea valorile G * - %
Observaia =. $#ist i alte tipuri de probleme asemntoare celor de mai sus. "stfel, se
poate pune problema.
gsirii capacitilor minime ale arcelor cu care se poate asigura transportarea ntregii
cantiti de la surse la destinaii
flu#ului minim(ma#im) ntr-o reea n care capacitile rutelor sunt limitate att superior
ct i inferiorB
n cazul n care rutelor li se asociaz i costuri unitare de parcurgere, putem cuta flu#ul
ma#im de cost minimB

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