Sunteți pe pagina 1din 38

Bazele cercetrii operaionale

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, sc!ie, 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 c!iar scopul pentru care a
fost creat & claritatea i simplitatea reprezentrii, aceasta devenind neinteligibil) ct i din punct de
vedere al te!nicii 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/ # + 0a1
n acest caz mulimea prilor mulimii # are doar dou elemente/ mulimea vid i
ntreaga mulime # (ac unei perec!i orientate ($
i
, $
2
) din ,
-
i se asociaz prin funcia f mulimea
# atunci spunem ca e$ist arc de la nodul $
i
la nodul $
2
iar perec!ea ($
i
,$
2
) se va numi arcul ($
i
,$
2
)
3odul $
i
se numete no iniial sau e!tremitate iniial" a arcului ($
i
,$
2
) iar nodul $
2
se numete no
final sau e!tremitate final" a arcului ($
i
,$
2
) #rcul ($
i
,$
2
) este incient #$re interior vrfului $
2
i
incient #$re e!terior vrfului $
i
(ac pentru un arc nodul iniial coincide cu nodul final atunci
acesta se numete %ucl" 3odurile $
i
i $
2
se vor numi aiacente dac e$ist cel puin unul din
arcele ($
i
,$
2
) i ($
2
,$
i
)
(ac unei perec!i orientate ($
i
, $
2
) din ,
-
i se asociaz prin funcia f mulimea vid atunci
spunem c nu e$ist arc de la nodul $
i
la nodul $
2

%ste evident c a cunoate un graf orientat este ec!ivalent cu a cunoate vrfurile i arcele
sale (in acest motiv putem defini un graf orientat prin perec!ea (,,4), unde , este mulimea
vrfurilor sale iar 4 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 perec!e (,,) unde , este perec!ea nodurilor iar este o funcie definit pe , cu valori n
555
%lemente de teoria grafurilor
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/
f6($
i
,$
2
)7 + f6($
2
,$
i
)7 , oricare ar fi nodurile $
i
i $
2
din ,
n aceste condiii, dac f6($
i
,$
2
)7 + f6($
2
,$
i
)7 + # atunci perec!ea neorientat 0$
i
,$
2
1 este o
muc'ie iar dac f6($
i
,$
2
)7 + f6($
2
,$
i
)7 + spunem c nu e$ist muc!ie ntre vrfurile $
i
i $
2

(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
B 8utem reprezenta graful dnd pentru fiecare nod mulimea nodurilor cu care formeaz
arce n care el este pe prima poziie
9 8utem 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
( 8utem 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)
% 4n graf poate fi reprezentat printr-o matrice ptratic boolean, de dimensiune egal cu
numrul de noduri, n care o poziie a
i2
va fi 5 dac e$ist arcul ($
i
,$
2
) i : n caz contrar,
numit matricea adiacenelor directe
; 4n graf poate fi reprezentat printr-o matrice ptratic latin, de dimensiune egal cu
numrul de noduri, n care pe o poziie a
i2
va fi $
i
$
2
dac e$ist arcul ($
i
,$
2
) i : n caz
contrar
Exemplu/ (ac n reprezentarea # avem graful * + (,,4), unde , + 0$
5
, $
-
, $
<
, $
=
, $
>
, $
?
1 i
4 + 0($
5
,$
5
), ($
5
,$
-
), ($
5
,$
=
), ($
5
,$
>
), ($
-
,$
<
), ($
-
,$
=
), ($
-
,$
?
), ($
<
,$
5
), ($
<
,$
-
), ($
=
,$
>
), ($
>
,$
-
), ($
?
,$
=
)1,
atunci n celelalte reprezentri vom avea/
B $
5
0$
5
, $
-
, $
=
, $
>
1 9
$
-
0$
<
, $
=
, $
?
1
$
<
0$
5
, $
-
1
$
=
0$
>
1
$
>
0$
-
1
$
?
0$
=
1
( (reprezentarea prin coresponden)
$
5
$
-
$
<
$
=
$
>
$
?
$
5
$
-
$
<
$
=
$
>
$
?
55-
$
5
$
-
$
?
$
>
$
=
$
<
Bazele cercetrii operaionale
% ;
&. )once$te e %a(" *n teoria grafurilor
5 #emigraf interior al unui nod $
@
/ este mulimea arcelor

@
$
4 + 0($
2
,$
@
)A ($
2
,$
@
) 41 care
sunt incidente spre interior nodului $
@
B
- #emigraf e!terior al unui nod $
@
/ este mulimea arcelor
+
@
$
4 + 0($
@
,$
i
)A ($
@
,$
i
) 41 care
sunt incidente spre e$terior nodului $
@
B
< #emigraul interior al unui nod $
@
/ este numrul arcelor care sunt incidente spre interior
nodului $
@
+ cardinalul lui

@
$
4 i se noteaz cu

@
$
B
= #emigraul e!terior al unui nod $
@
/ este numrul arcelor care sunt incidente spre
e$terior nodului $
@
+ cardinalul lui
+
@
$
4 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 5B
E arce aiacente/ arce care au o e$tremitate comunB
F rum ntr-un graf/ o mulime ordonat de noduri ale grafului/ ($
5
, $
-
, , $
@
), cu
proprietatea c e$ist n graf toate arcele de forma ($
i
,$
iC5
) i + 5,,@-5B
5: lungimea unui rum/ este numrul arcelor care l formeazB
55 rum elementar/ un drum n care fiecare nod apare o singur datB
5- rum #im$lu/ un drum n care fiecare arc apare o singur datB
5< $utere e atingere a unui nod $
i
, n graful */ numrul de noduri la care se poate
a2unge din $
i
8uterea de atingere se noteaz cu p($
i
), 5 i n i evident p($
i
)
+
i
$

5= rum 'amiltonian/ un drum elementar care trece prin toate nodurile grafuluiB
5> rum eulerian/ un drum simplu care conine toate arcele grafuluiB
5? lan/ un drum n care arcele nu au neaprat acelai sens de parcurgereB
5D circuit/ un drum n care nodul iniial coincide cu cel finalB
5E circuit elementar/ un drum n care fiecare nod apare o singur dat, cu e$cepia celui
final, care coincide cu cel iniialB
5F circuit #im$lu/ un drum n care fiecare arc apare o singur datB
-: circuit 'amiltonian/ un circuit care trece prin toate nodurile grafuluiB
-5 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 ec!ivalente i de
asemenea cele de circuit i ciclu
-= graf $arial al unui graf * + (,,4)/ este un graf *G(,,4G) cu 4G 4B
-> #u%graf al unui graf * + (,,)/ este un graf *G(,G,G) unde ,G , i G($
i
) + ($
i
) ,G
pentru orice $
i
,GB
55<
$
5
$
-
$
<
$
=
$
>
$
?
$
5
5 5 : 5 5 :
$
-
: : 5 5 : 5
$
<
5 5 : : : :
$
=
: : : : 5 :
$
>
: 5 : : : :
$
?
: : : 5 : :
$
5
$
-
$
<
$
=
$
>
$
?
$
5
$5$5 $5$- : $5$= $5$> :
$
-
: : $-$< $-$= : $-$?
$
<
$<$5 $<$- : : : :
$
=
: : : : $=$> :
$
>
: $>$- : : : :
$
?
: : : $?$= : :
%lemente de teoria grafurilor
-? graf reu# al unui graf * + (,,4)/ este un graf *
H
(,
H
,4
H
) unde ,
H
este format din
mulimile unei partiii de mulimi nevide ale lui ,, iar (
H
i
, ,
H
2
,
) e$ist doar dac i 2
i e$ist cel puin un arc n 4, de la un nod din
H
i
, la un nod din
H
2
,

-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/ 8entru grafuri neorientat noiunile de tare cone$ i simplu cone$ sunt
ec!ivalente, graful numindu-se doar cone$B
-F com$onent" tare cone!" a unui graf * + (,,4)/ 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
,$
2
) este c, componenta $
i
influeneaz direct
componenta $
2
(ac nodurile au semnificaia de stri posibile ale unui sistem atunci un arc ($
i
,$
2
)
semnific faptul c sistemul poate trece direct din starea $
i
n starea $
2
n ambele cazuri se vede c
avem de-a face doar cu informaii despre legturi directeB totui, c!iar dac o component $
i
nu
influeneaz direct componenta $
2
ea o poate influena prin intermediul altor componente, e$istnd
un ir de componente intermediare/ $
5
$
-
,, $
@
, fiecare influennd-o direct pe urmtoarea i $
i
direct pe $
5
iar $
@
direct pe $
2
#stfel, dac dintr-o stare $
i
nu se poate trece direct ntr-o stare $
2
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 oc!i', 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 $
2
' sau 'din starea $
i
se poate trece n starea $
2
' este ec!ivalent cu
e$istena n graf a unui drum de la nodul $
i
la nodul $
2

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 5
%ste interesant de vzut ce legtur e$ist ntre aceast matrice i drumurile de lungime -
;ie dou noduri $
i
i $
2
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
,$
@
) 8entru 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 ec!ivalent 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 2 s fie
ambele egale cu 5 (ac folosim operaiile algebrei booleene de adunare i nmulire/
+

: 5 : 5
: : 5 : : :
5 5 5 5 : 5
atunci verificrile de mai sus sunt ec!ivalente cu a verifica dac elementul de pe poziia (i,2) din #
-
este egal cu 5 Ialoarea 5 spune doar c e$ist cel puin un drum de lungime - de la $
i
la $
2
(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 $
2
presupune
e$istena unui nod $
@
astfel nct s e$iste un drum de lungime - de la $
i
la $
@
i un arc de la $
@
la $
2
,
care este ec!ivalent cu a verifica dac e$ist vreun indice @ astfel nct elementul @ al liniei i din
55=
Bazele cercetrii operaionale
matricea #
-
i elementul @ al coloanei 2 din # sunt ambele egale cu 5 sau, mai simplu, dac
elementul (i,2) din #
<
este 5
(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-5
(ac ntre nodurile $
i
i $
2
e$ist un drum de lungime n atunci el va conine un numr de
noduri mai mare sau egal nu nC5 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 $
2
%liminnd toate nodurile dintre prima apariie a lui
$
@
i ultima apariie a sa vom obine un drum de la $
i
la $
2
, 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 $
2
, n care fiecare nod apare o singur dat (deci un drum elementar), care are evident cel mult
n-5 arce n concluzie, dac e$ist vreun drum de la $
i
la $
2
atunci e$ist i un drum elementar i,
deci, va e$ista o putere a lui #, ntre #
5
i #
n-5
, n care poziia (i,2) este diferit de : 8entru
deciderea e$istenei unui drum ntre oricare dou noduri este suficient, deci, calcularea doar a
primelor n-5 puteri ale lui #

-a#ul &. )e calculeaz matricea ( + # C #
-
C C #
n-5
(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
i2
+

'

2 i
2 i
$ la $ de drum un nici a e$ist nu a dac :
$ la $ de drum un putin cel a e$ist a dac 5


n acest caz, observnd c/
#(# C J)
n&-
+
:
- n
9

# C
5
- n
9

#
-
C
-
- n
9

#
<
C C
- n
- n
9

#
n&5
+ # C #
-
C #
<
C C #
n-5
+ (
rezult c e suficient s calculm doar puterea n-- a matricei # C J i apoi s-o nmulim cu #
#vanta2ul acestei metode, n ceea ce privete economia de timp, este susinut i de urmtoarea
observaie/ dac ( conine toate perec!ile de arce ntre care e$ist drum atunci/
( + (# C #
-
C C #
n-5
) C #
n
C #
nC5
C C #
nC@
+ ( oricare ar fi @ :
#(# C J)
n&-C@
+ (# C #
-
C C #
n-5
) C #
n
C #
nC5
C C #
nC@-5
+ ( + #(# C J)
n&-

#(# C J)
n&-C@
+ #(# C J)
n&-
oricare ar fi @ :
deci de la puterea @ + n-- toate matricile #
@
sunt egale 8utem, deci, calcula direct orice putere a lui
#CJ mai mare sau egal cu n-5 (de e$emplu calculnd (#CJ)
-
, (#CJ)
=
, (#CJ)
E
, ,
r
-
J) (#+ , r fiind
prima putere a lui - pentru care -
r
n--)
8rocedeul 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
55>
%lemente de teoria grafurilor
intereseaz, paii urmtori ai algoritmului vor fi dedicai gsirii lor 8entru gsirea acestora se
folosete reprezentarea grafului prin matricea latin de la cazul ;
-a#ul +. 9onstruim matricea latin L asociat grafului, unde/
l
i2
+
( )
( )

'

2 i
2 i 2 i
$ , $ arcul a e$ist nu a dac :
$ , $ arcul a e$ist a dac $ $


i matricea L
M
, definit prin/
i2
l
M
+
( )
( )

'

2 i
2 i 2
$ , $ 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 $
2
presupune gsirea unui nod cu proprietatea c
e$ist arcele ($
i
,$
@
) i ($
@
,$
2
) i memorarea vectorului ($
i
, $
@
, $
2
) #ceasta este ec!ivalent 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 2, din matricea L
M
, s fie $
2
Iom nmuli deci matricea L cu matricea L
M
,
folosind ns nite reguli de calcul speciale, numite nmulire i adunare latin
Definiia 5/ )e numete alfa%et o mulime de semne numite #im%oluri sau litere 0s
i
AiJ1
unde J este o mulime oarecare de indici, finit sau nu
Definiia -/ )e numete cu./nt un ir finit de simboluri notat
n - 5
i i i
s s s

Definiia </ )e numete *nmulire latin" o operaie definit pe mulimea cuvintelor unui
alfabet, notat '
L

', astfel/
n - 5
i i i
s s s
L

m - 5
2 2 2
s s s +
m - 5 n - 5
2 2 2 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 - 5
i i i
s s s
L
+
m - 5
2 2 2
s s s
+

'

m - 5
n - 5
2 2 2
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
@C5
+ 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
55?
Bazele cercetrii operaionale
(in felul cum a fost construit, matricea L
@
va conine toate drumurile elementare de
lungime @ 9um un drum elementar poate avea cel mult n noduri (cte are graful cu totul) rezult
c/
primele n-5 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-5
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 5:: de noduri, ridicarea unei matrici de
5::N5:: la puterea 5::) pentru obinerea acesteia se poate aplica i urmtorul algoritm/
Pas 1. )e construiete matricea de adiacen #B
Pas 2. 8entru fiecare linie i se adun boolean la aceasta toate liniile 2 pentru care a
i2
+ 5
Pas 3. )e reia pasul - pn cnd, dup o aplicare a acestuia, matricea rmne aceeai (nu
mai apare nici un 5)
4ltima 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
55D
%lemente de teoria grafurilor
0. AR1ORI. -ro%lema ar%orelui e .aloare o$tim"
n acest subcapitol grafurile vor fi considerate neorientate
0.1. Noiunea e ar%ore
4n ar%ore este un graf neorientat, finit, cone$ i fr cicluri *rafurile din fig =5 sunt
arbori
)tudiul arborilor este 2ustificat de e$istena n practic a unui numr mare de probleme care
pot fi modelate prin arbori (intre acestea amintim/
5 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 2oc 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 electrote!nic (grafe de fluen etc)B
5: sc!emele bloc ale programelor pentru calculatoare etc
n toate problemele de mai sus se dorete ca, dintre muc!iile 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 2os/
Teorem (ac O este un graf neorientat finit, atunci urmtoarele afirmaii sunt ec!ivalente/
5) O este arboreB
-) O nu conine cicluri i, dac se unesc printr-o muc!ie 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
<) O este cone$ i dac i se suprim o muc!ie se creeaz dou componente cone$e (arborele
este graful cone$ cu numrul minim de arce)B
55E
$
5
$
5
a)
$
5
$
5
$
5
$
5
$
5
b)
$
5
$
5
$
5
$
5
c)
;igura =5
Bazele cercetrii operaionale
=) O este cone$ i are n-5 muc!iiB
>) O este fr cicluri i are n-5 muc!iiB
?) "rice perec!e de noduri este legat printr-un lan i numai unul
Demonstraie /
5) -) ntre cele dou noduri adiacente noii muc!ii introduse e$ista de2a un drum n fostul graf
#cest drum, mpreun cu noul arc va forma evident un ciclu i afirmaia -) a fost
demonstrat
-)<) 8entru oricare dou vrfuri neunite printr-o muc!ie, adugnd muc!ia dintre cele dou
vrfuri s-ar crea, conform ipotezei, un ciclu care conine aceast muc!ie, deci dou
drumuri ntre cele dou noduri, din care unul nu conine noua muc!ie, 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 8entru dou noduri unite printr-o muc!ie,
aceasta este c!iar drumul corespunztor celor dou noduri (ac suprimm aceast muc!ie
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 8entru n+- este
evident 8resupunem afirmaia adevrat pentru toate grafurile cu cel mult n noduri (ac
graful are nC5 noduri, prin suprimarea unei muc!ii se formeaz dou componente cone$e
fiecare avnd cel mult n noduri (n
5
n, n
-
n i n
5
C n
-
+ nC5) i deci au n
5
& 5 respectiv n
-
& 5 muc!ii n concluzie graful iniial a avut (n
5
& 5) C (n
-
& 5) C5 + n
5
C n
-
& 5+ (nC5)-5
muc!ii, 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-5 arce, n contradicie cu faptul c el avea n-5 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 5 mai mic dect numrul de noduri
;cnd adunarea, ar rezulta c n graf sunt strict mai puin de n-5 arce
?)5) (ac O ar avea un ciclu, ntre dou noduri ale acestuia ar e$ista dou lanuri, n
contradicie cu ipoteza
8resupunem c avem un graf pentru care am verificat de2a dac este cone$ (ac nu este
atunci acesta, evident, nu are nici un graf parial care s fie arbore
8resupunem de asemenea c fiecrei muc!ii i este asociat o valoare real
0.2. Algoritmi $entru g"#irea ar%orelui e .aloare o$tim"
Iom da mai 2os 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 muc!iilor
acestuia
A. Algoritmul lui 2ru#3al
-a#ul 1. (intre toate muc!iile grafului se alege muc!ia de valoare minim (ma$im) (ac
minimul este multiplu se alege la ntmplare una din muc!iile respective (eoarece acest
55F
%lemente de teoria grafurilor
'la ntmplare' trebuie cumva tradus n limba2ul calculatorului, n cazul implementrii unui
program bazat pe acest algoritm, vom perturba din start valorile muc!iilor, la @ muc!ii 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 muc!iile rmase, se alege cea de valoare minim (ma$im)B
-a#ul &. (intre toate muc!iile rmase, se alege cea de valoare minim (ma$im), astfel nct s nu
se formeze cicluri cu cele de2a aleseB
-a#ul +. )e reia algoritmul de la pasul < pn se colecteaz n-5 muc!ii
(ei s-a demonstrat c algoritmul gsete ntotdeauna arborele optim, el are dezavanta2ul 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 a2unge prin acest algoritm, ele vor avea toate aceeai valoare (minima
(sau ma$ima) posibil)
1. Algoritmul lui 4ollin
-a#ul 1. 8entru fiecare nod se alege muc!ia 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 &. 8entru fiecare component cone$ se alege muc!ia adiacent de valoare minim
(ma$im) 8rin muc!ie adiacent unei componente cone$e nelegem o muc!ie 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 muc!iile 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#3al
-a#ul 1. (intre toate muc!iile grafului se alege cea de valoare minim (ma$im)B
-a#ul 2. (intre toate muc!iile 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-5 muc!ii
#lgoritmul are toate avanta2ele 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
5-:
Bazele cercetrii operaionale
Exemplu5 #dministraia unei localiti montane a !otrt construirea unor linii de teleferic
care s lege oraul de cele E puncte turistice importante din 2urul 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
Rezolvare
9ondiia de cost minim implic dou obiective/
5 ) se construiasc minimul de arce necesareB
- ) se construiasc cele mai ieftine legturi
Peferitor la numrul de arce necesar, facem observaia c, dac din ora se va putea a2unge
la orice obiectiv turistic, atunci se va putea a2unge 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#3al
La primul pas poate fi ales unul din arcele "8
<
sau "8
D
, ele avnd valoarea minim - 8utem
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 "8
>
, "8
?
sau 8
5
8
?
care au valoarea minim < 3ici
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 8
=
8
>
i 8
5
8
-
, care au valoarea minim = 3ici n
acest caz nu are vre-o importan ordinea alegerii, deoarece pot fi alese succesiv ambele, fr a se
forma nici un ciclu
4rmtoarea valoare disponibil a unui arc este >, dar arcul opt nu poate fi ales dintre arcele
"8
5
, 8
?
8
D
, dei au valoarea minim > #rcul "8
5
nu poate fi ales deoarece s-ar forma ciclul "8
5
8
?
,
iar 8
?
8
D
ar duce la ciclul "8
?
8
D
4rmtoarea valoare minim este ?, pentru arcul 8
>
8
D
dar nu poate fi
ales deoarece se formeaz ciclul "8
>
8
D

Ialoarea urmtoare, D, o au arcele "8


=
, 8
-
8
<
i 8
>
8
E
"8
=
nu poate fi ales deoarece s-ar
forma ciclul "8
>
8
=
#rcul 8
-
8
<
nu poate fi ales deoarece s-ar forma ciclul "8
?
8
5
8
-
8
<
#rcul 8
>
8
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
5-5
"
8
-
8
5
8
?
8
<
8
D
8
=
8
>
8
E
F
D
E
E
=
>
<
<
-
-
>
D
<
=
E
D
?
E
E
;igura =-
F
%lemente de teoria grafurilor
#cest arbore este reprezentat n figura =<
1. 4ollin
Iom alege/ pentru nodul "

arcul "8
<
pentru nodul 8
5 arcul 8
5
8
?
pentru nodul 8
-
arcul 8
5
8
-
pentru nodul 8
< arcul "8
<
pentru nodul 8
=
arcul 8
=
8
>
pentru nodul 8
> arcul "8
>
pentru nodul 8
?
arcul 8
5
8
?
pentru nodul 8
D arcul "8
D
pentru nodul 8
E
arcul 8
>
8
E
Pezult graful parial/
(up cum se vede, s-au format dou componente cone$e/ 9
5
+ 08
5
,8
-
,8
?
1
9
-
+ 0",8
<
,8
=
,8
>
,8
D
,8
E
1
Iom alege/ pentru 9
5
arcul "8
?
pentru 9
-
arcul "8
?
5--
"
8
-
8
5
8
?
8
<
8
D
8
=
8
>
8
E
=
<
-
-
<
=
D
;igura ==
"
8
-
8
5
8
?
8
<
8
D
8
=
8
>
8
E
=
<
<
-
-
<
=
;igura =<
D
Bazele cercetrii operaionale
i obinem o singur component cone$, care este arborele cutat
). 6arianta algoritmului lui 2ru#3al
)uccesiunea alegerii arcelor va fi/
5

"8
<
- "8
D
<

"8
?
= "8
>
>

8
5
8
?
? 8
5
8
-
D

8
=
8
>
E 8
>
8
E
5-<
%lemente de teoria grafurilor
7. )u$la8ul a ou" mulimi i#8uncte. -ro%leme e afectare 9e re$artiie:
n practica economic sunt foarte des ntlnite probleme n care se dorete asocierea optim
a elementelor unei mulimi , + 0$
5
, $
-
, , $
n
1 cu elementele unei alte mulimi Q + 0R
5
, R
-
, , R
m
1
n condiiile unor limitri e$istente (i cunoscute) ale posibilitilor de asociere
n general, fiecare asociere posibil $
i
R
2
aduce un anumit efect a
i2
(profit, cost etc) care
poate fi calculat i vom presupune c este cunoscut
Limitrile asupra asocierilor se traduc de obicei prin faptul c/
5 4n element $
i
poate fi asociat doar cu anumite elemente din Q i reciprocB
- La sfrit, fiecrui element din , i s-a asociat cel mult un element din Q i reciproc
#socierea optim presupune, de obicei, dou obiective/
5 ) se fac ma$imul de asocieriB
- )uma efectelor asocierilor s fie ma$im (sau minim, n funcie de semnificaia
acestora)
Peprezentarea geometric a situaiei de mai sus este un graf de forma/

numit graf %i$artit
Definiia 5/ )e numete graf %i$artit un graf * + (,, 4) n care mulimea nodurilor poate fi
mprit n dou mulimi dis2uncte # i B astfel nct orice arc are e$tremitatea iniial n # i cea
final n B
Definiia -/ )e numete cu$la8 al unui graf bipartit o submulime de arce S 4 cu
proprietatea c nu e$ist dou arce adiacente (sau altfel spus, pentru orice nod e$ist cel mult un arc
incident acestuia)
Definiia </ )e numete cu$la8 ma!im un cupla2 cu proprietatea c orice arc care nu face
parte din cupla2 este adiacent cu un arc din cupla2 ( orice arc am aduga, nu mai rmne cupla2
nu e$ist nici un cupla2 n care s se includ strict conine numrul ma$im de arce
neadiacente)
%ste evident c numrul de arce ale unui cupla2 este mai mic sau egal cu numrul de
elemente din fiecare din mulimile # i B ( min (|#|,|B|) %ste interesant de vzut ns ct de
mare este el efectiv i n ce condiii este egal c!iar cu min (|#|,|B|)
Peferitor la prima ntrebare, n 5F<5 TUnig a demonstrat o teorem care permite stabilirea
numrului de arce ale unui cupla2 ma$im/
5-=
$
5
$
-
$
n
R
5
R
-
R
m
Bazele cercetrii operaionale
Teorem/ 3umrul ma$im de arce ale unui cupla2 ntr-un graf bipartit * + (#B, ) este
egal cu
( ) ( ) 9 9 # min
# 9
+

n ceea ce privete a doua problem, observm mai nti c putem presupune c ntotdeauna
|#||B|, n caz contrar inversnd sensul tuturor arcelor grafului, problema rmnnd aceeai
n acest caz/
( ) ( ) 9 9 # min
# 9
+

+ |#|
( ) ( ) 9 9 # min
# 9
+

& |#| + :
( ) ( ) 9 9 min
# 9
+

+ :

( ) ( ) 9 9 ma$
# 9

+ :
( ) 9 9
oricare ar fi 9 #
sau altfel spus, pentru orice submulime 9 a lui #, mulimea nodurilor atinse de arce care pleac din
nodurile sale, adic (9), are cel puin attea elemente ct 9
(e e$emplu, la repartizarea anga2ailor pe posturi, fiecare anga2at poate obine un post dorit
dac i numai dac oricare ar fi mulimea de r anga2ai e$ist cel puin r posturi diferite din care pot
alege
8resupunem, n continuare, c s-a asociat fiecrui arc ($
i
,$
2
) o valoare v
i2

Definiia =/ )e numete valoare a unui cupla2 suma valorilor arcelor care l formeaz
n acest moment putem spune c determinarea unei asocieri optime a mulimilor , i Q de la
nceput este ec!ivalent matematic cu determinarea unui cupla2 ma$im de valoare optim (minim
sau ma$im) n graful bipartit asociat
(intre problemele ntlnite n practica economic, ce se reduc matematic la gsirea unui
cupla2 ma$im de valoare optim, amintim/
5 8roblema repartizrii muncitorilor unei secii la utila2ele acesteia n funcie de pregtirea
i preferinele muncitorilor, comple$itatea mainilor etcB
- transferarea unor informaii ntr-un grupB
< Pepartizarea anga2ailor pe posturiB
= ;ormarea grupelor de lucru dup afinitile dintre membrii colectivului
n 5F>>, bazndu-se pe teorema lui TUnig, OS Tu!n a elaborat un algoritm, cunoscut n
literatura de specialitate sub denumirea de algoritmul ungar, cu a2utorul cruia se poate determina
un cupla2 ma$im de valoare minim ntr-un graf bipartit pentru care |#|+|B|+ n
%l se bazeaz pe observaia c, dac se adun (sau scade) aceeai numr la toate valorile
arcelor, nu se modific ierar!ia cupla2elor ma$ime, n ceea ce privete valoarea lor
Iom prezenta algoritmul concomitent cu rezolvarea unui caz particular, pentru o mai bun
receptare a acestuia/
'ntr-o secie produsele finite se obin n urma efecturii succesive a ? operaii pe ? maini
n aceast secie sunt anga2ai ? muncitori, fiecare fiind calificat pentru efectuarea oricrei din cele ?
operaii 8entru a optimiza activitatea n secie cei ? muncitori au fost supui la un test n care
fiecare a prelucrat un numr de piese, pe toate cele ase maini n final, calculndu-se timpul mediu
n care muncitorul .
i
efectueaz operaia "
2
s-au obinut valorile (n ore) date n tabelul de mai 2os/
.5 .- .< .= .> .?
"5 = < ? - ? E
"- > = E < E F
"< > ? E - E D
"= = > D - D E
"> = ? ? < ? D
"? ? ? E < E F
5->
%lemente de teoria grafurilor
) se gseasc acea repartiie a muncitorilor la maini astfel nct timpul n care o pies se
prelucreaz succesiv pe cele ? maini s fie minim'

-a#ul 1. )e construiete matricea ptratic . care are elementele/
m
i2
+
( ) ( )
( )

'

2 i
2 i 2 i
$ , $ arcul e$ista nu daca
$ , $ arcul e$ista daca $ , $ arcului valoarea
8entru e$emplul ales vom avea/ . +

,
_

F E < E ? ?
D ? < ? ? =
E D - D > =
D E - E ? >
F E < E = >
E ? - ? < =
-a#ul 2. )e scade din fiecare linie minimul acesteia apoi, n matricea obinut, din fiecare coloan
minimul acesteia (se poate face i invers, rezultatul final va fi acelai) 8entru e$emplul
dat vom obine succesiv matricile/
.
5
+

,
_

? > : > < <


= < : < < 5
? > : > < -
> ? : ? = <
? > : > 5 -
? = : = 5 -
i apoi .
-
+

,
_

- - : - - -
: : : : - :
- - : - - 5
5 < : < < -
- - : - : 5
- 5 : 5 : 5
4ltima matrice este cea asupra creia se aplic urmtoarele calcule n acest moment pe
fiecare linie i pe fiecare coloan se afl cel puin un :, care corespunde celui mai mic timp )e
ncearc n continuare folosirea doar a acestor repartizri/
-a#ul &. n ordinea cresctoare a numrului de zerouri i de sus n 2os (n cazul e$istenei mai
multor linii cu acelai numr de zerouri ) se ncadreaz pentru fiecare linie zeroul a crui
coloan conine cele mai puine zerouri (primul de la stnga dintre acestea, n caz de
egaliate) i se bareaz celelalte zerouri de pe linia i coloana acestuia 8e parcursul
algoritmului sunt luate n considerare la numrare doar zerourile nencadrate i nebarate
nc n final, pe fiecare linie i pe fiecare coloan va fi cel mult un zero ncadrat (ac n
final sunt n (+ dimensiunea matricei) zerouri, atunci arcele corespunztoare formeaz
cupla2ul cutat (ac sunt mai puine se trece la pasul =
n e$emplul nostru avem trei linii cu cte un zero (a <-a, a =-a i a >-a) l ncadrm pe cel de
pe linia < (prima dintre ele) i barm restul zerourilor de pe linia < i coloana <, obinnd/

,
_

- - : - - -
: : : : - :
- - : - - 5
5 < : < < -
- - : - : 5
- 5 : 5 : 5
n acest moment pe liniile 5 i - se afl un zero )e ncadreaz cel de pe linia 5 i se
bareaz celelalte de pe linia 5 i coloana -, obinnd/
5-?
Bazele cercetrii operaionale

,
_

- - : - - -
: : : : - :
- - : - - 5
5 < : < < -
- - : - : 5
- 5 : 5 : 5
4ltima linie cu zerouri este linia > din care l ncadrm pe primul i le barm pe celelalte/

,
_

- - : - - -
: : : : - :
- - : - - 5
5 < : < < -
- - : - : 5
- 5 : 5 : 5
n total nu sunt ? zerouri ncadrate (sunt doar trei) i deci trecem la pasul =
-a#ul +. La acest pas se va stabili numrul minim posibil de linii i coloane care s conin toate
zerourile matricii n acest sens vom proceda astfel/
a) se marc!eaz liniile care nu au nici un zero ncadratB
b) se marc!eaz coloanele care au un zero barat pe o linie marcatB
c) se marc!eaz liniile care au un zero ncadrat pe o linie marcat (dac e$ist)B
)e repet operaiile b) i c) pn nu mai poate fi marcat nici o linie i nici o coloan
n cazul nostru vom avea/ a) se marc!eaz liniile -, = i ?B
b) se marc!eaz coloanele - i =B
c) se marc!eaz liniile 5 i <B
b) nu mai marcm nici o coloan deoarece nu mai e$ist
nici un zero barat pe liniile 5 i <, care s corespund unei
coloane nemarcateB
c) nu mai marcm nici o linie, deoarece nu a mai aprut
nici o coloan marcat
Pezult/

,
_

- - : - - -
: : : : - :
- - : - - 5
5 < : < < -
- - : - : 5
- 5 : 5 : 5
-a#ul 0. )e taie liniile nemarcate i coloanele marcate/
5-D
%lemente de teoria grafurilor

,
_

- - : - - -
: : : : - :
- - : - - 5
5 < : < < -
- - : - : 5
- 5 : 5 : 5
-a#ul 7. )e mpart elementele matricei n trei grupe/
*
5
+ elemente aflate la intersecii de linii netiate cu coloane netiateB
*
-
+ elemente situate la intersecii de linii tiate cu coloane netiate sau de linii netiate
cu coloane tiateB
*
<
+ elemente situate la intersecii de coloane tiate cu linii tiate
-a#ul ;. )e gsete minimul grupei *
5
, care se scade din fiecare element al lui *
5
i se adun la
fiecare element al grupei *
<
%lementele grupei *
-
rmn nesc!imbate
8entru e$emplul dat, minimul lui *
5
este 5 i obinem noua matrice/

,
_

5 5 : 5 - 5
: : 5 : < :
5 5 : 5 - :
: - : - < 5
5 5 : 5 : :
5 : : : : :
-a#ul <. )e reia algoritmul de la pasul <
Iom avea dup marcare/

,
_

5 5 : 5 - 5
: : 5 : < :
5 5 : 5 - :
: - : - < 5
5 5 : 5 : :
5 : : : : :
(eoarece avem ? zerouri ncadrate, am obinut cupla2ul ma$im de valoare minim cutat, cruia i
va corespunde repartizarea muncitorilor pe operaii de mai 2os/
care duce la o durat total a prelucrrii unei piese de ? C = C D C ? C < + -? ore
5-E
.
5
.
-
.
<
.
=
.
>
.
?
"
5
"
-
"
<
"
=
"
>
"
?
?
=
=
D
?
<
Bazele cercetrii operaionale
Observaie: (eoarece regula de a alege de sus n 2os la linii cu acelai numr de zerouri este
arbitrar i de asemenea alegerea primului zero de la stnga, putem a2unge i la alte
cupla2e ma$ime, dar toate vor avea aceeai valoare, cea minim (e e$emplu, un alt
cupla2 optim este/

,
_

5 5 : 5 - 5
: : 5 : < :
5 5 : 5 - :
: - : - < 5
5 5 : 5 : :
5 : : : : :
adic
care are de asemenea valoarea -?
Observaia 1. (ac dorim un cupla2 de valoare ma$im atunci vom calcula la pasul 5
matricea . astfel/
5 9onstruind matricea # de elemente/
a
i2
+
( ) ( )
( )

'


2 i
2 i 2 i
$ , $ arcul e$ista nu daca
$ , $ arcul e$ista daca $ , $ arcului valoarea
- .atricea . va avea componentele/ m
i2
+
( )
i2 i2
n 2 i, 5
a a ma$

apoi aplicm n continuare algoritmul
Observaia 2. (ac |#||B| atunci aplicm acelai algoritm cu singura diferen c ne
vom opri cnd vom obine un numr de zerouri egal cu min (|#|,|B|)
5-F
.
5
.
-
.
<
.
=
.
>
.
?
"
5
"
-
"
<
"
=
"
>
"
?
?
=
=
D
?
<
%lemente de teoria grafurilor
;. Drumuri =i circuite 'amiltoniene
4na dintre cele mai cunoscute probleme economice este problema comis voia2orului 9omis
voia2orul 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 2ude,
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/
5 8roblema potaului (gsirea traseului cel mai scurt care trece pe la toate locuinele ce
aparin de oficiul potal la care lucreaz acesta)B
- 8roblema adunrii deeurilor (cel mai scurt drum care trece pe la toate punctele de
depozitate a deeurilor)B
< 8roblema 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
8roblema 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 Foul3e#
-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 dis2uncte astfel/
5 )e consider n matricea . liniile pline (cu toate elementele 5) 3odurile ce corespund liniilor
pline cu 5 formeaz submulimea 9
5

- )e elimin liniile i coloanele care corespund nodurilor din submulimea stabilit


< )e reia raionamentul de la punctul 5 pe matricea redus obinut la punctul - obinndu-se
urmtoarea submulime i n continuare toate celelalte pn se epuizeaz toate liniile matricei
5<:
Bazele cercetrii operaionale
-a#ul +. )e construiete graful *G n care/
5 3odurile care formeaz o submulime sunt reprezentate prin puncte n interiorul unui
dreptung!i 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 9
5
i cele ale submulimii 9
-
, ntre nodurile
submulimii 9
-
i cele ale submulimii 9
<
etc
-a#ul 0. )e gsesc drumurile !amiltoniene
4n drum !amiltonian se gsete plecnd de la un vrf din submulimea 9
5
, trecnd prin toate
vrfurile acesteia cu un drum !amiltonian, din ultimul vrf la care se a2unge n 9
5
trecnd la un vrf
din 9
-
, 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 5)
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 * + (,,4) un graf orientat fr circuite, cu n noduri/ , + 0$
5
, $
-
, V , $
n
1 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 $
2
atunci evident p($
i
) W p($
2
),
deoarece n orice vrf n care se poate a2unge din $
2
se poate a2unge i din $
i
dar din $
2
nu se poate
a2unge n $
2
pentru c nu e$ist circuite
Teorema 2.3 (Chen Un graf cu n noduri, fr circuite conine un drum amiltonian dac !i
numai dac exist relaia:
( )
( )
-
5
5

n n
x p
n
i
i
Demons!raie
XY ;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 a2unge 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
5
+ (n & 5) C (n & -) C V C 5 C : +
( )
-
5 n n
XY "rdonnd vrfurile n ordinea descresctoare a puterii lor de atingere (i W 2 p($
i
) Z
p($
2
)) 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 5 iar dac ar fi un 5 pe poziia (i,2) cu i W 2 ar nsemna c
din $
i
se poate a2unge n $
2
, deci n toate nodurile n care se poate a2unge din $
2
, iar din $
2
nu se poate
5<5
%lemente de teoria grafurilor
a2unge n $
i
, deci p($
i
) W p($
2
) n contradicie cu ipoteza de ordonare a nodurilor) 9um deasupra
diagonalei sunt
( )
n
n n 5
poziii iar suma puterilor vrfurilor este c!iar
( )
n
n n 5
rezult c toate
poziiile de deasupra diagonalei sunt 5 #ceasta nseamn c e$ist toate arcele de forma ($
i
,$
iC5
)
(altfel n-ar e$ista drum de la $
i
la $
iC5
, deoarece toate drumurile au indicii nodurilor n ordine
descresctoare) i deci drumul !amiltonian ($
5
, $
-
, V , $
n
) [ed
Teorema 2." (ac ntr-un graf orientat fr circuite e$ist un drum !amiltonian atunci
acesta este unic
Demons!raie (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 $
2
n ordinea $
i
$
2
pe un drum i invers pe cellalt, e$istnd deci un drum att de la $
i
la $
2
ct i de la $
2
la $
i
, cele dou formnd mpreun un circuit, n contradicie cu ipoteza
8e 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
+ 5 atunci graful are circuite, nu se poate aplica algoritmul lui
9!en 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
( )
( )
-
5
5

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

'

2 i
2 i 2 i
$ , $ arcul a e$ist nu a dac :
$ , $ arcul a e$ist a dac $ $


-a#ul 2. 9onstruim matricea L
M
, definit prin/
i2
l
M
+
( )
( )

'

2 i
2 i 2
$ , $ arcul a e$ist nu a dac :
$ , $ arcul a e$ist a dac $


5<-
Bazele cercetrii operaionale
numit matricea latin" reu#"
-a#ul &. )e calculeaz succesiv matricile/
L
-
+ L
L

L
M
, L
<
+ L
-
L

L
M
, , L
@C5
+ 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 @ 9um un drum elementar poate avea cel mult n noduri (cte are graful cu totul) rezult
c/
primele n-5 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-5
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 (# Taufmann & \ .elgrange) determin toate
drumurile elementare din graf, prin calcularea matricelor .
(5)
, .
(-)
, .
(<)
, V, .
(n-5)

n matricea .
(n-5)
se citesc drumurile !amiltoniene
#ceast metod a nmulirii latine (algoritmul lui Taufmann) 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 Taufmann 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 * + (,,4) un graf orientat cu n noduri , + 0$
5
, $
-
, V , $
n
1
-a#ul 1. )e construiete graful bipartit O + (#B,I) n care # + B + , i I + 4 (adic am folosit
pentru * reprezentarea prin coresponden)
-a#ul 2. )e gsete pentru graful O cupla2ul ma$im de valoare minim
-a#ul &. )e construiete graful parial al lui * format doar cu arcele cupla2ului 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 +. 8entru fiecare arc aflat pe circuitul de lungime minim (dac sunt mai multe se iau n
considerare arcele tuturor) se reia algoritmul de la pasul 5 pentru graful parial rezultat din
* prin eliminarea acestui arc
-a#ul 0. 8entru fiecare graf parial se continu procedeul pn se a2unge la unul din cazurile/
9azul5 9upla2ului 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
5<<
%lemente de teoria grafurilor
pstreaz, eliminndu-l pe cel corespunztor fostei valori a lui ] n caz
contrar se trece la alt graf parial neanalizat nc
9azul- 9upla2ul ma$im are o valoare mai mare dect ] 8entru acest graf parial se
abandoneaz ramificarea
-a#ul 7. )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 sc!ematizat 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 cupla2ului 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 Taufmann
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
5<=
Bazele cercetrii operaionale
<. Drumuri o$time *ntr,un graf
n marea ma2oritate 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
puncta2 realizat etc
4na din problemele care poate aprea n aceste situaii este gsirea, pentru o anumit
perec!e de noduri (sau mai multe perec!i), a drumului optim ntre acestea
8entru 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
,$
2
) cu
v($
i
,$
2
) sau cu v
i2
n aceste condiii putem enuna problema drumului optim astfel/
'Da! un #raf $ % (&'( )i o fun*ie *are aso*iaz+ fie*+rui ar* o valoare real+' s+ se
#+seas*+' pen!ru o pere*he ,a!+ ,e no,uri' ,rumul (,rumurile ,e valoare op!im+ (minim+ sau-)i
maxim+ .n!re *ele ,ou+ no,uri )i valoarea a*es!uia (a*es!ora'
(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 (nc!is sau nu, mrginit sau nu) devenind foarte greu de
caracterizat cazurile cnd minimul dorit e$ist (eoarece totui ma2oritatea covritoare a
problemelor economice se modeleaz prin grafuri cu numr finit de noduri, ne vom limita n
continuare doar la acestea
4n 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 nn^

5 - n
5 @
@^
5
) (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 9um 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
5<>
%lemente de teoria grafurilor
corespunztor, deci drumul de valoare ma$im (dac e$ist) va fi un drum elementar 9um
mulimea drumurilor elementare este finit (i deci i mulimea valorilor lor), va avea ma2orant
Obs. 5 (ac n graf nu e$ist dect arce de valoare pozitiv atunci e$ist drum de valoare
minim
Obs. 5 (ac n graf nu e$ist dect arce de valoare negativ atunci e$ist drum de valoare
ma$im
Obs. 5 (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 'a2unge' 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/
5 #lgoritmi prin calcul matricial (Bellman-Talaba, J Komescu, Bellman-)c!imbell)B
- #lgoritmi prin a2ustri succesive/ (;ord)B
< #lgoritmi prin inducie ((antzig)B
= #lgoritmi prin ordonare prealabil a vrfurilor grafuluiB
> #lgoritmi prin e$tindere selectiv ((i2@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 * + 0$
5
, $
-
, ,$
n
1 un graf orientat finit 8resupunem (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/
5<?
Bazele cercetrii operaionale
mi2 +

'

) $ , ($ arcul e$ista nu daca


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

(m
2@
C L
i-5,@
)) ntr-o problem de minim
#au L
i2
+ ma$ (L
i-5,2
,
n 5, @
ma$

(m
2@
C L
i-5,@
)) ntr-o problem de ma$im
-a#ul &. (up calcularea fiecrei linii noi se compar elementele ei cu cele ale precedentei/
(ac L
i2
+ L
i-5,2
pentru orice 2 + 5,,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 2 cu L


i2
L
i-5,2
se trece la calcularea noii linii L
iC5
-a#ul +. 8entru gsirea drumului care d valoarea minim de la un nod $
2
la nodul $
n
se gsesc,
ncepnd napoi de la ultima linie, pe care s-au obinut valorile finale, notat L
f
, nodurile
5
@
$
,
-
@
$
, ,
r
@
$
care formeaz drumul cutat, unde
5
@
$
+ $
2
,
r
@
$
+ $
n
i fiecare alt
indice @
iC5
este cel pentru care s-a obinut minimul(ma$imul) de pe poziia @
i
al liniei L
i

Observaie/ 8entru grafuri foarte mari, algoritmul necesit un volum mare de memorie, prin
necesitatea memorrii matricei ., care este greu de manipulat 9!iar 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: 8resupunem dat graful orientat de mai 2os, n care se dorete gsirea drumului de valoare
minim de la nodul $
5
la nodul $
F

5<D
$
-
$
5
$
?
$
<
$
D
$
=
$
E
$
F
F
D
<
E
=
>
<
<
-
-
>
D
F
=
<
D
?
E
E
F
$
>
%lemente de teoria grafurilor
.atricea . va fi

,
_










:
D : =
E ? :
> : E
F - < : D - E
< :
F < :
F D :
> = :
iar dup calcularea liniilor L
i
obinem/
$
5
$
-
$
<
$
=
$
>
$
?
$
D
$
E
$
F
$
5 : = >
$
- : D F
$
< : < F
$
= : <
$
> E - D : < - F
$
? E : >
$
D : ? E
$
E = : D
$
F :
L
5
F <

E D :
L
- 5- ? < 5: 5< E D :
L
<
5> 5- ? < E 5< E D :
L
=
5< 5- ? < E 5< E D :
L
>
5< 5- ? < E 5< 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 ($
5
$
F
) are valoarea
dat de prima poziie a liniei >, fiind egal cu 5<
8entru a gsi acest drum, plecm napoi de la linia = i avem/
$5 $>

5< + E C > $<

E + ? C - $=

? + < C <

< $F
1. Algoritmul lui For #im$lificat
#lgoritmul lui ;ord simplificat se apli*+ ,oar .n #rafuri *are nu a,mi! *ir*ui!e 9u a2utorul
lui se gsete drumul de valoare optim ntre dou noduri fi$ate $
i
i $
2
8rintr-o eventual
renumerotare a nodurilor putem presupune c nodul de la care pornete drumul este $
5
, care va fi
numit nod iniial, iar nodul la care se termin este $
n
, numit nod final
5<E
Bazele cercetrii operaionale
#lgoritmul este/
-a#ul 1. J se d vrfului iniial valoarea : (zero)/ _($
:
) + :
-a#ul 2. )e construiete mulimea # format din nodul iniial/ # + 0$
5
1
-a#ul &. )e analizeaz nodurile din afara mulimii #
(ac e$ist noduri n care se poate a2unge prin arce directe doar de la nodurile
mulimii #, acestea se adaug la mulimea #, cu valoarea/
_($
i
) +
( )
( ) ( ) ( )
i 2 2
$ , $
$
$ , $ v $ _ min
i 2
2
+

, n problemele de minim
#au _($
i
) +
( )
( ) ( ) ( )
i 2 2
$ , $
$
$ , $ v $ _ ma$
i 2
2
+

, 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 $
5
la $
n

)K"8
-a#ul +. )e analizeaz mulimea #/
(ac $
n
# atunci valoarea sa reprezint valoarea drumului de valoare optim de la
$
5
la $
n
8entru gsirea acestui drum se pornete napoi de la nodul final $
n
i se
gsesc nodurile
5
@
$
,
-
@
$
, ,
r
@
$
care formeaz drumul cutat, unde
5
@
$
+ $
n
,
r
@
$
+ $
5
i fiecare alt indice @
iC5
este cel pentru care/
_(
5 i
@
$
+
) C v(
5 i
@
$
+
,
i
@
$
) + _(
i
@
$
) )K"8
(ac $
n
# se reia algoritmul de la pasul <
Exemplu/ 8entru acelai graf i aceeai perec!e de noduri din e$emplul rezolvat cu algoritmul lui
Bellman-Talaba vom avea succesiv/
pas5/ _($
5
) + :
pas-/ # + 0$
5
1
pas</ 3odurile n care se poate a2unge doar din $
5
/ 0$
>
1
_0$
>
) + min( _($
5
) C v($
5
,$
>
)) + : C > + >
pas=/ $
F
#
pas</ # + 0$
5
,$
>
1 i nodurile n care se poate a2unge prin arce directe doar din $
5
i $
>
sunt/ 0$
?
1
_0$
?
) + min( _($
5
) C v($
5
,$
?
), _($
>
) C v($
>
,$
?
)) + min(: C < , > C <) + <
pas=/ $
F
#
pas</ # + 0$
5
,$
>
,$
?
1 i nodurile n care se poate a2unge prin arce directe doar din $
5
, $
>
i $
?
sunt/
0$
-
,$
D
1
_0$
-
) + min( _($
5
) C v($
5
,$
-
), _($
>
) C v($
>
,$
-
), _($
?
) C v($
?
,$
-
)) + min(: C =,> C E,< C E) + =
_0$
D
) + min( _($
>
) C v($
>
,$
D
), _($
?
) C v($
?
,$
D
)) + min(> C -,< C >) + D
pas=/ $
F
#
pas</ # + 0$
5
,$
-
,$
>
,$
?
,$
D
1 i nodurile n care se poate a2unge prin arce directe doar din $
5
, $
-
, $
>
, $
?
i
$
D
sunt/ 0$
<
,$
E
1
_0$
<
) + min( _($
-
) C v($
-
,$
<
), _($
>
) C v($
>
,$
<
)) + min(= C D,> C -) + D
_0$
E
) + min( _($
>
) C v($
>
,$
E
), _($
D
) C v($
D
,$
E
)) + min(> C F,D C ?) + 5<
pas=/ $
F
#
pas</ # + 0$
5
,$
-
,$
<
,$
>
,$
?
,$
D
,$
E
1 i nodurile n care se poate a2unge prin arce directe doar din $
5
,
$
-
,$
<
,$
>
, $
?
, $
D
i $
E
sunt/ 0$
=
1
5<F
%lemente de teoria grafurilor
_0$
=
) + min( _($
-
) C v($
-
,$
=
), _($
<
) C v($
<
,$
=
),_($
>
) C v($
>
,$
=
), _($
E
) C v($
E
,$
=
)) + min(= C
F,D C <,> C D,5< C =) + 5:
pas=/ $
F
#
pas</ # + 0$
5
,$
-
,$
<
,$
=
,$
>
,$
?
,$
D
,$
E
1 i nodurile n care se poate a2unge prin arce directe doar din $
5
, $
-
,
$
<
, $
=
, $
>
, $
?
, $
D
i $
E
sunt/ 0$
F
1
_0$
F
) + min( _($
<
) C v($
<
,$
F
), _($
=
) C v($
=
,$
F
), _($
D
) C v($
D
,$
F
), _($
E
) C v($
E
,$
F
)) + min(D C
F, 5: C <, D C E, 5< C D) + 5<
pas=/ $
F
# i urmeaz s gsim drumul care are lungimea 5<
#vem succesiv/
_($
F
) + _($
=
) C v($
=
,$
F
)
_($
=
) + _($
<
) C v($
<
,$
=
)
_($
<
) + _($
>
) C v($
>
,$
<
)
_($
>
) + _($
5
) C v($
5
,$
>
)
deci drumul cutat este/ $
5
$
>
$
<
$
=
$
F
Observaia 5 (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 $
5
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 $
5
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 dezavanta2ul 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 9u a2utorul lui se gsete drumul de valoare optim ntre dou noduri
fi$ate $
i
i $
2
8rintr-o eventual renumerotare a nodurilor putem presupune c nodul de la care
pornete drumul este $
5
, 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)/ _($
:
) + : 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/
_
H
($
i
) +
( )
( )
( ) ( ) ( )

,
_

i 2 2
$ , $
$
i
$ , $ v $ _ min , $ _ min
i 2
2
n problemele de minim
#au _
H
($
i
) +
( )
( )
( ) ( ) ( )

,
_

i 2 2
$ , $
$
i
$ , $ v $ _ ma$ , $ _ ma$
i 2
2
n problemele de ma$im
-a#ul &. )e compar noile valori _
H
($
i
) cu fostele valori _($
i
)/
(ac _
H
($
i
) + _($
i
) pentru orice nod $
i
atunci/
dac _($
n
) Z (la problema de minim) sau _($
n
) W - (la problema de ma$im),
valoarea nodului $
n
reprezint valoarea drumului de valoare minim(ma$im) de
la $
5
la $
n
8entru gsirea acestui drum se pornete napoi de la nodul final $
n
i
se gsesc nodurile
5
@
$
,
-
@
$
, ,
r
@
$
care formeaz drumul cutat, unde
5
@
$
+
$
n
,
r
@
$
+ $
5
i fiecare alt indice @
iC5
este cel pentru care/
5=:
Bazele cercetrii operaionale
_(
5 i
@
$
+
) C v(
5 i
@
$
+
,
i
@
$
) + _(
i
@
$
) )K"8
dac _($
n
) + C (-) atunci nu e$ist nici un drum de la $
5
la $
n
)K"8
(ac e$ist cel puin un nod pentru care _
H
($
i
) Z _($
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 8entru 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 Di83#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 8entru a elimina acest nea2uns, algoritmul lui (i2@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 9a 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)/ _($
:
) + :
-a#ul 2. )e construiete mulimea # format din nodul iniial/ # + 0$
5
1
-a#ul &. )e analizeaz nodurile din afara mulimii #
(ac e$ist noduri .n *are se poa!e a/un#e prin ar*e ,ire*!e ,e la no,uri ,in 0
(nu ,oar de la nodurile mulimii #, ca la algoritmul lui ;ord simplificat) se
calculeaz pentru toate acestea/
_($
i
) +
( )
( ) ( ) ( )
i 2 2
$ , $
# $
$ , $ v $ _ min
i 2
2
+

n problemele de minim
dar, spre deosebire de algoritmul lui ;ord simplificat, se adaug la mulimea # ,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 $
5
la $
n

)K"8
-a#ul +. )e analizeaz mulimea #/
(ac $
n
# atunci valoarea sa reprezint valoarea drumului de valoare optim de la
$
5
la $
n
8entru gsirea acestui drum se pornete napoi de la nodul final $
n
i se
gsesc nodurile
5
@
$
,
-
@
$
, ,
r
@
$
care formeaz drumul cutat, unde
5
@
$
+ $
n
,
r
@
$
+ $
5
i fiecare alt indice @
iC5
este cel pentru care/
_(
5 i
@
$
+
) C v(
5 i
@
$
+
,
i
@
$
) + _(
i
@
$
) )K"8
(ac $
n
# se reia algoritmul de la pasul <
Exemplu Iom aplica algoritmul la acelai graf folosit la ceilali algoritmi, pentru a putea
face comparaii/
pas5/ _($
5
) + :
pas-/ # + 0$
5
1
pas</ 3odurile n care se poate a2unge i din $
5
/ 0$
-
,

$
>
,

$
?
1
5=5
%lemente de teoria grafurilor
_0$
-
) + min( _($
5
) C v($
5
,$
-
)) + : C = + =
_0$
>
) + min( _($
5
) C v($
5
,$
>
)) + : C > + >
_0$
?
) + min( _($
5
) C v($
5
,$
?
)) + : C < + <
min(_0$
-
),_0$
>
),_0$
?
)) + _0$
?
) + <
pas=/ $
F
#
pas</ # + 0$
5
,$
?
1 i nodurile n care se poate a2unge prin arce directe din $
5
sau $
?
sunt/
0$
-
,$
>
,$
D
1
_0$
-
) + min( _($
5
) C v($
5
,$
-
), _($
?
) C v($
?
,$
-
)) + min(: C = , < C E) + =
_0$
>
) + min( _($
5
) C v($
5
,$
>
)) + min(: C >) + >
_0$
D
) + min( _($
?
) C v($
?
,$
D
)) + min(< C >) + E
min(_0$
-
),_0$
>
),_0$
D
)) + _0$
-
) + =
pas=/ $
F
#
pas</ # + 0$
5
,$
-
,$
?
1 i nodurile n care se poate a2unge prin arce directe din $
5
, $
-
sau $
?
sunt/
0$
<
,$
=
,$
>
,$
D
1
_0$
<
) + min( _($
-
) C v($
-
,$
<
)) + min(= C D) + 55
_0$
=
) + min( _($
-
) C v($
-
,$
=
)) + min(- C F) + 55
_0$
>
) + min( _($
5
) C v($
5
,$
>
)) + min(: C >) + >
_0$
D
) + min( _($
?
) C v($
?
,$
D
)) + min(< C >) + :
min(_0$
<
),_0$
=
),_0$
>
),_0$
D
)) + _0$
>
) + >
pas=/ $
F
#
pas</ # + 0$
5
,$
-
,$
>
,$
?
1 i nodurile n care se poate a2unge prin arce directe din $
5
, $
-
, $
>
, $
?
i $
D
sunt/ 0$
<
,$
=
,$
D
,$
E
1
_0$
<
) + min( _($
-
) C v($
-
,$
<
), _($
>
) C v($
>
,$
<
)) + min(= C D,> C -) + D
_0$
=
) + min( _($
-
) C v($
-
,$
=
), _($
>
) C v($
>
,$
=
)) + min(= C F,> C D) + 5-
_0$
D
) + min( _($
>
) C v($
>
,$
D
), _($
?
) C v($
?
,$
D
)) + min(> C -,< C >) + D
_0$
E
) + min( _($
>
) C v($
>
,$
E
)) + min(> C F) + 5=
min(_0$
<
),_0$
=
),_0$
D
),_0$
E
)) + _0$
<
) + _0$
D
) + D
pas=/ $
F
#
pas</ # + 0$
5
,$
-
,$
<
,$
>
,$
?
,$
D
1 i nodurile n care se poate a2unge prin arce directe din $
5
, $
-
, $
<
, $
>
, $
?
,
i $
D
sunt/ 0$
=
,$
E
,$
F
1
_0$
=
) + min( _($
-
) C v($
-
,$
=
), _($
<
) C v($
<
,$
=
),_($
>
) C v($
>
,$
=
)) + min(= C F,D C <,> C D) +5:
_0$
E
) + min( _($
>
) C v($
>
,$
E
), _($
D
) C v($
D
,$
E
)) + min(> C F,D C ?) + 5<
_0$
F
) + min( _($
<
) C v($
<
,$
F
), _($
D
) C v($
D
,$
F
)) + min(D C F,D C E) + 5>
min(_0$
=
),_0$
E
),_0$
F
)) + _0$
=
) + 5:
pas=/ $
F
#
pas</ # + 0$
5
,$
-
,$
<
,$
=
,$
>
,$
?
,$
D
1 i nodurile n care se poate a2unge prin arce directe din $
5
, $
-
, $
<
, $
=
,
$
>
, $
?
, i $
D
sunt/ 0$
E
,$
F
1
_0$
F
) + min( _($
<
) C v($
<
,$
F
), _($
=
) C v($
=
,$
F
), _($
D
) C v($
D
,$
F
)) + min(D C F,5: C <,DCE)+5<
_0$
E
) + min( _($
>
) C v($
>
,$
E
), _($
D
) C v($
D
,$
E
)) + min(> C F,D C ?) + 5<
min(_0$
E
),_0$
F
)) + _0$
E
) + _0$
F
) + 5<
pas=/ $
F
# i urmeaz s gsim drumul care are lungimea 5<
#vem succesiv/
_($
F
) + _($
=
) C v($
=
,$
F
)
_($
=
) + _($
<
) C v($
<
,$
=
)
_($
<
) + _($
>
) C v($
>
,$
<
)
_($
>
) + _($
5
) C v($
5
,$
>
)
deci drumul cutat este/ $
5
$
>
$
<
$
=
$
F
5=-
Bazele cercetrii operaionale
>. 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. 8entru realizarea acestui transport se folosesc o serie de trasee, numite rute e
leg"tur". 4nitile 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
8entru 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
4na 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
8entru studiul matematic al acestei situaii vom da definiiile matematice ale obiectelor
implicate n problem i ipotezele modelului
Definiia 5/ )e numete reea e tran#$ort #tanar un graf finit, simplu, cone$, fr bucle
* + (,,4) care are urmtoarele proprieti/
5 %$ist i este unic s , a

+
s
4
,

s
4 (din care doar 'ies' arce),
numit intrarea reelei de transportB
- %$ist i este unic t , a
+
t
4 + ,

t
4
(n care doar 'intr' arce) numit
ie=irea reelei de transportB
< )-a definit o funcie c/ 4 $
C
care asociaz fiecrui arc u un numr strict
pozitiv c
u
numit ca$acitatea arcului
Observaie/ %ste clar c e$emplele obinuite au doar rareori o singur surs i o singur destinaie
Kotui, printr-o te!nic foarte simpl, orice reea de transport se poate aduce la forma standard/
5 (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 P + (,,4) o funcie / 4 $
C
care
are urmtoarele proprietile/
85 :
u
c
u
oricare ar fi u din 4B valoarea
u
se numete flu! al arcului u
8-

+

i
i
4 u
u
4 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
5=<
%lemente de teoria grafurilor
Definiia </ )e numete .aloare a flu!ului suma flu$urilor arcelor care 'pleac' din nodul
iniial s i se noteaz cu
Observaie/ )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
4 u
u
4 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/
5 8utem transporta ntreaga cantitate necesar la destinaiia
- (ac da, cum transportm efectiv aceast cantitate de la surse la destinaiia
< (ac nu, din ce motiv nu putem realiza acest transporta
= 9um putem nltura cu eforturi minime acest motiva
Pspunsul 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
Pspunsul 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
8entru formalizarea consideraiilor de mai sus vom introduce noiunea de t"ietur" *ntr,o
reea/

Definiia >/ (at o reea de transport *(,,4) 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 S (IS + , IS + ,) astfel nct s I i t S
" 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 ec!ivalent cu a cunoate care sunt elementele celor dou mulimi,
I i S, care formeaz partiia
Iom nota o tietur prin K + (I,S), 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,S) ntr-o reea de transport
*(,,4), notat 9(K), suma capacitilor tuturor arcelor care au e$tremitatea iniial n I i cea
final n S
5==
Bazele cercetrii operaionale
9(K) +
( )

S $
I $
$ , $ u
u
2
i
2 i
c
8entru 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 9(K) 9(KG)
4rmtoarele teoreme fac legtura matematic dintre flu$urile unei reele i tieturile sale/
Teorema 1. (at o tietur K + (I,S) i un flu$ ntr-o reea de transport avem/
+
( )

S $
I $
$ , $ u
u
2
i
2 i

&
( )

I $
S $
$ , $ u
u
2
i
2 i

sau, altfel spus, valoarea unui flu$ oarecare este egal cu suma flu$urilor arcelor care trec de la I la
S din care se scade suma flu$urilor arcelor care trec invers, de la S la I, oricare ar fi tietura K +
(I,S)
Demons!raie/ #vem succesiv/
+ ( )

, $
$ s, u
u
2
2

+ ( )

, $
$ s, u
u
2
2

,
_

+
s $
I $
4 u
u
4 u
u
i
i
i
$
i
$

+
+
( )
( )

I $
I $
$ , $ u
u u
2
i
2 i

C
( )

S $
I $
$ , $ u
u
2
i
2 i

-
( )

I $
S $
$ , $ u
u
2
i
2 i

+
( )

S $
I $
$ , $ u
u
2
i
2 i

&
( )

I $
S $
$ , $ u
u
2
i
2 i


Corolar5 ntr-o reea de transport valoarea oricrui flu$ este mai mic sau egal dect valoa-
rea oricrei tieturi
Demons!raie/ ;ie K o tietur oarecare i un flu$ oarecare #vem succesiv/
+
( )

S $
I $
$ , $ u
u
2
i
2 i

&
( )

I $
S $
$ , $ u
u
2
i
2 i


( )

S $
I $
$ , $ u
u
2
i
2 i


( )

S $
I $
$ , $ u
u
2
i
2 i
c
+ 9(K)
Corolar5 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 S sunt folosite la
ma$im (flu$ul e egal cu capacitatea arcelor) iar pe toate arcele de la S la I nu se transport nimic
Teorema lui 1or,21ul3erson (ac flu$ul este ma$imal atunci e$ist o tietur de
capacitate egal cu valoarea flu$ului
5=>
%lemente de teoria grafurilor
Demons!raie5 ;ie un flu$ ma$imal Jntroducem urmtorul procedeu de marcare a
vrfurilor/
-a#ul 1. )e marc!eaz nodul iniial s cu :(zero)B
-a#ul 2. 8entru fiecare vrf marcat $
i
se marc!eaz cu/
6C$
i
7 toate vrfurile nemarcate $
2
pentru care e$ist arcul ($
i
,$
2
) i ($
i
,$
2
) Z c($
i
,$
2
)
(adica nodurile spre care mai e loc pentru a se transporta ceva din $
i
)B
6&$
i
7 toate vrfurile nemarcate $
2
pentru care e$ist arcul ($
2
,$
i
) i ($
2
,$
i
) W :
(adic toate nodurile spre care pleac de2a 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
5
@
$
,
-
@
$
, ,
r
@
$
unde
5
@
$
+ s,
r
@
$
+ t i marca2ul oricrui vrf
5 i
@
$
+
este C
i
@
$
sau &
i
@
$
#dugnd la
flu$ul fiecrui arc al lanului de tipul (
i
@
$
,
5 i
@
$
+
) valoarea/
+ min(
( )
( ) ( ) ( )
5 i i 5 i i
5 i
@
i
@
@ @ @ @
$ , $
$ , $ $ , $ c min
+ +
+

,
( )
( )
5 i i
i
@
5 i
@
@ @
$ , $
$ , $ min
+
+

)
i scznd din flu$ul fiecrui arc de tipul (
5 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,S), unde I este format din
mulimea nodurilor marcate iar S din cele nemarcate n acest caz, pentru fiecare arc ($
i
,$
2
) care
'traverseaz' tietura avem/
dac $
i
I atunci ($
i
,$
2
) + c($
i
,$
2
) deoarece nodul $
2
nu e marcat
dac $
i
S atunci ($
i
,$
2
) + : deoarece nodul $
i
nu e marcat
n acest caz avem/
9(K) +
( )

S $
I $
$ , $ u
u
2
i
2 i
c
+
( )

S $
I $
$ , $ u
u
2
i
2 i

&
( )

I $
S $
$ , $ u
u
2
i
2 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 8entru a rezolva problema gsirii flu$ului de valoare ma$im se poate folosi
algoritmul lui ;ord-;ul@erson
8entru 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,Ful3er#on
ETA-A I )e determin un flu$ complet
-a#ul 1. )e numeroteaz nodurile reelei de transport astfel nct $
5
+ 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


5=?
Bazele cercetrii operaionale
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
2udicioas 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 marc!eaz nodul iniial s cu :(zero)B
-a#ul 0. 8entru fiecare vrf marcat $
i
se marc!eaz cu/
6C$
i
7 toate vrfurile nemarcate $
2
pentru care e$ist arcul ($
i
,$
2
) i ($
i
,$
2
) Z c($
i
,$
2
)
(adica nodurile spre care mai e loc pentru a se transporta ceva din $
i
)B
6&$
i
7 toate vrfurile nemarcate $
2
pentru care e$ist arcul ($
2
,$
i
) i ($
2
,$
i
) W : (adic
toate nodurile spre care pleac de2a ceva din $
i
)B
-a#ul 7. )e repet pasul > pn este marcat nodul final sau pn cnd nu mai poate fi marcat nici
un vrfB
-a#ul ;. (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 <. 9onstruim un lanul L +
5
@
$
,
-
@
$
, ,
r
@
$
unde
5
@
$
+ s,
r
@
$
+ t i marca2ul oricrui vrf
5 i
@
$
+
este C
i
@
$
sau &
i
@
$
)e calculeaz/

L
+ min(
( )
( ) ( ) ( )
5 i i 5 i i
5 i
@
i
@
@ @ @ @
$ , $
$ , $ $ , $ c min
+ +
+

,
( )
( )
5 i i
i
@
5 i
@
@ @
$ , $
$ , $ min
+
+

)
care se adaug la flu$ul fiecrui arc al lanului de tipul (
i
@
$
,
5 i
@
$
+
) i se scade din
flu$ul fiecrui arc de tipul (
5 i
@
$
+
,
i
@
$
)
-a#ul >. )e terge marca2ul i se reia algoritmul de la pasul =
n final, tietura de valoare minim este cea n care I + mulimea nodurilor marcate iar S +
mulimea nodurilor nemarcate
Observaia 5 #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 2os d o condiie suficient pentru ca algoritmul s se termine
ntr-un numr finit de pai/
Teorem+ (ac toate capacitile rutelor reelei sunt numere raionale atunci algoritmul lui
;ord-;ul@erson are un numr finit de pai
Demons!raie 8rin nmulirea tuturor acestor capaciti cu cel mai mic multiplu comun al
numitorilor se obine o reea cu toate capacitile numere naturale binnd 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 9
min
, care este de asemenea numr natural, algoritmul
va avea nevoie de cel mult 9
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
5=D
%lemente de teoria grafurilor
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/
Teorem+ (ac la fiecare iteraie se alege drumul (lanul) de lungime minim atunci
algoritmul va avea cel mult
-
5
mn iteraii, unde n + numrul de noduri iar m + numrul de muc!ii
Observaia < %$ist probleme n care se dorete gsirea fluxului minim 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 PG, 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
5=E