Sunteți pe pagina 1din 25

Nita Razvan - IMSA

Drumul optim si drumul critic. Metode de determinare


a drumului critic

1. Drumul optim

În marea majoritate a problemelor care pot fi modelate prin grafuri nu ne


interesează numai dacă există sau nu legături între componentele reprezentate prin
nodurile grafului ci şi intensitatea acestora. Această intensitate are semnificaţia unei
valori numerice (pozitive sau negative) asociate arcului corespunzător legăturii a cărei
intensitate o măsoară.
În aplicaţiile economice această valoare poate fi:

 lungimea drumului dintre două localităţi;


 costul parcurgerii rutei reprezentate prin arcul corespunzător;
 durata parcurgerii rutei respective;
 cantitatea transportată pe ruta respectivă;
 capacitatea maximă a rutei respective;
 câştigul realizat prin trecerea de la o stare la alta a sistemului;
 consum de energie pentru efectuarea trecerii respective;
 punctaj realizat etc.

Una din problemele care poate apărea în aceste situaţii este găsirea, pentru o
anumită pereche de noduri (sau mai multe perechi), a drumului optim între acestea.
Pentru formalizarea problemei vom introduce noţiunea de valoare a unui
drum, care este egală cu suma valorilor arcelor care îl compun. Vom nota în
continuare valoarea unui arc (xi,xj) cu v(xi,xj) sau cu vij. În aceste condiţii putem enunţa
problema drumului optim astfel:
"Dat un graf G = (X,U) şi o funcţie care asociază fiecărui arc o valoare reală,
să se găsească, pentru o pereche dată de noduri, drumul (drumurile) de valoare
optimă (minimă sau/şi maximă) între cele două noduri şi valoarea acestuia
(acestora)"
Deoarece este vorba de găsirea minimului unei mulţimi de numere reale, prima
întrebare care se pune este dacă aceasta admite minim. Dacă mulţimea nodurilor
grafului este infinită atunci pot exista o infinitate de drumuri elementare distincte între
cele două noduri şi mulţimea valorilor acestora poate avea orice formă (închisă sau nu,
mărginită sau nu) devenind foarte greu de caracterizat cazurile când minimul dorit
există. Deoarece totuşi majoritatea covârşitoare a problemelor economice se modelează
prin grafuri cu număr finit de noduri, ne vom limita în continuare doar la acestea.
Nita Razvan - IMSA

Un număr finit de noduri n atrage după sine existenţa unui număr finit de arce
n-1
∑ k!1
(cel mult n2) şi a unui număr finit de drumuri elementare ( cel mult nn! k=1 ).
Deoarece oricărui drum d îi corespunde un drum elementar de (obţinut prin eliminarea
tuturor subcircuitelor lui d) putem calcula valoarea oricărui drum ca sumă între
valoarea drumului elementar corespunzător şi valorile unor subcircuite ale sale, fiecare
înmulţită cu numărul de parcurgeri ale circuitului respectiv.
În concluzie, dacă există un circuit de valoare negativă înseamnă că există
drumuri de valoare oricât de mică (cele care conţin acest circuit), obţinută prin
parcurgerea acestuia de oricâte ori dorim) şi, deci, mulţimea valorilor drumurilor este
nemărginită inferior, neexistând drum de valoare minimă. Dacă există un circuit de
valoare pozitivă atunci există drumuri de valoare oricât de mare şi mulţimea valorilor
drumurilor este nemărginită superior, neexistând drum de valoare maximă.
Dacă nu există circuite de valoare negativă atunci valoarea oricărui drum este
mai mare sau egală cu a drumului elementar corespunzător, deci drumul de valoare
minimă (dacă există) va fi un drum elementar. Cum mulţimea drumurilor elementare
este finită (şi deci şi mulţimea valorilor lor) va avea minorant şi am lămurit problema
compatibilităţii problemei. Analog, dacă nu există circuite de valoare pozitivă atunci
valoarea oricărui drum este mai mică sau egală cu a drumului elementar corespunzător,
deci drumul de valoare maximă (dacă există) va fi un drum elementar. Cum mulţimea
drumurilor elementare este finită (şi deci şi mulţimea valorilor lor), va avea majorant.
Obs. 1. Dacă în graf nu există decât arce de valoare pozitivă atunci există drum
de valoare minimă.
Obs. 1. Dacă în graf nu există decât arce de valoare negativă atunci există drum
de valoare maximă.
Obs. 1. Dacă în graf nu există circuite atunci există şi drum de valoare minimă
şi drum de valoare maximă.
Deoarece din cele de mai sus se sesizează importanţa existenţei circuitelor într-
un graf vom da în continuare un algoritm de depistare a existenţei circuitelor într-
un graf:

Pasul 1. Se construieşte mulţimea A 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).
Pasul 2. Se găsesc toate nodurile care nu sunt din A pentru care toate arcele incidente
au cealaltă extremitate în A (noduri din care se poate "ajunge" doar in A).
Dacă nu există nici un astfel de arc se trece la pasul 4.
Pasul 3. Se adaugă arcele găsite la pasul 2 la mulţimea A apoi se reia algoritmul de la
pasul 2, pentru noua mulţime A.
Pasul 4. Dacă A conţine mulţimea tuturor nodurilor atunci graful nu conţine circuite.
Dacă au rămas noduri în afara lui A atunci graful conţine circuite.

2
Nita Razvan - IMSA

Algoritmi de găsire a drumului optim


Din cauza varietăţii nelimitate a grafurilor posibile, nu există un algoritm care
să rezolve orice problemă în timp util, dar s-au elaborat o mulţime de algoritmi, fiecare
fiind cel mai eficace în anumite cazuri. Aceşti algoritmi pot fi grupaţi în cinci categorii:

1. Algoritmi prin calcul matricial (Bellman-Kalaba, I. Tomescu, Bellman-


Schimbell);
2. Algoritmi prin ajustări succesive: (Ford);
3. Algoritmi prin inducţie (Dantzig);
4. Algoritmi prin ordonare prealabilă a vârfurilor grafului;
5. Algoritmi prin extindere selectivă (Dijkstra).

A. Algoritmul lui Bellman - Kalaba

Algoritmul 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 maxim) şi găseşte drumurile de valoare minimă (maximă) de la toate
nodurile grafului la un nod oarecare, fixat. Dacă dorim să cunoaştem drumurile de
valoare minimă (maximă) între oricare două noduri vom aplica algoritmul, pe rând,
pentru fiecare nod al grafului.
Fie G = {x1, x2, ... ,xn} un graf orientat finit. Presupunem (fără a restrânge
generalitatea, că am numerotat nodurile astfel încât nodul spre care căutăm drumurile
de valoare minimă (maximă) de la celelalte noduri să fie xn.

Pasul 1. Se construieşte matricea pătratică M cu dimensiunea egală cu numărul de


noduri ale grafului ale cărei elemente sunt:
valoarea arcului ( x i , x j ) daca exista arcul ( xi , x j ) si i ≠ j

mij =
{ 0
+∞( într-o problema de minim )
−∞( într-o problema de maxim )
daca i= j

}
daca nu exista arcul ( xi , x j )

Pasul 2. Se adaugă succesiv liniile Li la matricea M, elementele acestora calculându-se


prin relaţiile de recurenţă:
1. L1j = mjn j = 1,...,n (prima linie este ultima coloană, transpusă, a
matricii M)
min
2. Lij = min (Li-1,j , k=1,n (mjk + Li-1,k)) într-o problemă de minim
max
sau Lij = max (Li-1,j , k=1,n (mjk + Li-1,k)) într-o problemă de maxim

3
Nita Razvan - IMSA

Pasul 3. După calcularea fiecărei linii noi se compară elementele ei cu cele ale
precedentei:
 Dacă Lij = Li-1,j pentru orice j = 1,...,n atunci se opreşte recurenţa şi
ultima linie calculată conţine valorile minime ale drumurilor de la
celelalte noduri la nodul xn.
 Dacă există cel puţin un indice j cu L ij  Li-1,j se trece la calcularea
noii linii Li+1

Pasul 4. Pentru găsirea drumului care dă valoarea minimă de la un nod x j la nodul xn


se găsesc, începând înapoi de la ultima linie, pe care s-au obţinut valorile
xk x xk
finale, notată Lf, nodurile 1 , k2 , ... , r care formează drumul
xk xk
căutat, unde 1 = xj , r = xn şi fiecare alt indice ki+1 este cel pentru care
s-a obţinut minimul(maximul) de pe poziţia ki al liniei Li.

Observaţie: Pentru grafuri foarte mari, algoritmul necesită un volum mare de memorie,
prin necesitatea memorării matricei M, care este greu de manipulat. Chiar dacă din cele
n2 arce posibile graful ar avea doar un procent foarte mic matricea grafului va avea tot
n2 poziţii de memorat şi analizat.
Exemplu: Presupunem dat graful orientat de mai jos, în care se doreşte găsirea
drumului de valoare minimă de la nodul x1 la nodul x9.
x2

4 9
7
x1 8 8 x3
3 x4
2
5 7
3 9 4
x5 3
3 9
x6 2 7
5 6
8 x9
x7

4
Nita Razvan - IMSA

0 4 ∞ ∞ 5 3 ∞ ∞ ∞
0 7 9

( )
∞ ∞ ∞ ∞ ∞ ∞
∞ ∞ 0 3 ∞ ∞ ∞ ∞ 9
∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 3
∞ 8 2 7 0 3 2 9 ∞
∞ 8 ∞ ∞ ∞ 0 5 ∞ ∞
∞ ∞ ∞ ∞ ∞ ∞ 0 6 8
∞ ∞ ∞ 4 ∞ ∞ ∞ 0 7
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Matricea M va fi

iar după calcularea liniilor Li obţinem:

x1 x2 x3 x4 x5 x6 x7 x8 x9
x1 0 4   5 3   
x2  0 7 9     
x3   0 3     9
x4    0     3
x5  8 2 7 0 3 2 9 
x6  8    0 5  
x7       0 6 8
x8    4    0 7
x9         0
L1   9 3   8 7 0
L2  12 6 3 10 13 8 7 0
L3 15 12 6 3 8 13 8 7 0
L4 13 12 6 3 8 13 8 7 0
L5 13 12 6 3 8 13 8 7 0

Deoarece L4 = L5 oprim calcularea liniilor după calcularea liniei 5. În această


linie se află valorile celor mai scurte de la toate nodurile la nodul x 9. Drumul dorit de
noi (x1  x9) are valoarea dată de prima poziţie a liniei 5, fiind egal cu 13.
Pentru a găsi acest drum, plecăm înapoi de la linia 4 şi avem:
x1 x5
 
13 = 8 + 5 x3
 
8 = 6 + 2 x4
 
6 = 3 + 3

5
Nita Razvan - IMSA

3  x9

B. Algoritmul lui Ford simplificat

Algoritmul lui Ford simplificat se aplică doar în grafuri care nu admit circuite.
Cu ajutorul lui se găseşte drumul de valoare optimă între două noduri fixate xi şi xj. Printr-
o eventuală renumerotare a nodurilor putem presupune că nodul de la care porneşte drumul
este x1, care va fi numit nod iniţial, iar nodul la care se termină este xn, numit nod final.
Algoritmul este:
Pasul 1. I se dă vârfului iniţial valoarea 0 (zero): w(x0) = 0
Pasul 2. Se construieşte mulţimea A formată din nodul iniţial: A = {x1}
Pasul 3. Se analizează nodurile din afara mulţimii A.

− Dacă există noduri în care se poate ajunge prin arce directe doar de la
nodurile mulţimii A, acestea se adaugă la mlţimea A, cu valoarea:
min w ( x j ) + v ( x j , x i) )
w(xi) = x ( j
, în probleme de minim sau
∃ ( x j, x i)

min ( w ( x j ) + v ( x j , x i) )
w(xi) = x j
, în probleme de maxim
∃ ( x j, x i)

apoi se trece la pasul 4

− Dacă nu există nici un nod de acest tip atunci nu există nici un drum de la
x1 la xn. STOP

Pasul 4. Se analizează mulţimea A:

− Dacă xn ∈ A atunci valoarea sa reprezintă valoarea drumului de valoare


optimă de la x1 la xn. Pentru găsirea acestui drum se porneşte înapoi de la
nodul final xn şi se găsesc nodurile x k , x k , … , x k care formează drumul
1 2 r

căutat, unde x k = x n, x k = x 1 şi fiecare alt indice ki+1 este cel pentru care:
1 r

w ( x k ) =w ( x k ) + v ( x k +1 , x k ) STOP
i i+ 1 i i

− Dacă xn ∉ A se reia algoritmul de la pasul 3.

Exemplu: Pentru acelaşi graf şi aceeaşi pereche de noduri din exemplul rezolvat cu
algoritmul lui Bellman-Kalaba vom avea succesiv:
6
Nita Razvan - IMSA

pas1: w(x1) = 0
pas2: A = {x1}
pas3: Nodurile în care se poate ajunge doar din x 1: {x5} ≠ ∅
w{x5) = min( w(x1) + v(x1,x5)) = 0 + 5 = 5
pas4: x9 ∉ A
pas3: A = {x1,x5} şi nodurile în care se poate ajunge prin arce directe doar din x1 şi x5
sunt: {x6}≠ ∅

w{x6) = min( w(x1) + v(x1,x6), w(x5) + v(x5,x6)) = min(0 + 3 , 5 + 3) = 3


pas4: x9 ∉ A
pas3: A = {x1,x5,x6} şi nodurile în care se poate ajunge prin arce directe doar din x 1, x5 şi
x6 sunt: {x2,x7} ≠ ∅
w{x2) = min( w(x1) + v(x1,x2), w(x5) + v(x5,x2), w(x6) + v(x6,x2)) = min(0 + 4,5
+ 8,3 + 8) = 4
w{x7) = min( w(x5) + v(x5,x7), w(x6) + v(x6,x7)) = min(5 + 2,3 + 5) = 7
pas4: x9 ∉ A
pas3: A = {x1,x2,x5,x6,x7} şi nodurile în care se poate ajunge prin arce directe doar din
x1, x2, x5, x6 şi x7 sunt: {x3,x8} ≠ ∅
w{x3) = min( w(x2) + v(x2,x3), w(x5) + v(x5,x3)) = min(4 + 7,5 + 2) = 7
w{x8) = min( w(x5) + v(x5,x8), w(x7) + v(x7,x8)) = min(5 + 9,7 + 6) = 13
pas4: x9 ∉ A
pas3: A = {x1,x2,x3,x5,x6,x7,x8} şi nodurile în care se poate ajunge prin arce directe doar
din x1, x2,x3,x5, x6, x7 şi x8 sunt: {x4} ≠ ∅
w{x4) = min( w(x2) + v(x2,x4), w(x3) + v(x3,x4),w(x5) + v(x5,x4), w(x8) +
v(x8,x4)) = min(4 + 9,7 + 3,5 + 7,13 + 4) = 10
pas4: x9 ∉ A
pas3: A = {x1,x2,x3,x4,x5,x6,x7,x8} şi nodurile în care se poate ajunge prin arce directe
doar din x1, x2, x3, x4, x5, x6, x7 şi x8 sunt: {x9} ≠ ∅
w{x9) = min( w(x3) + v(x3,x9), w(x4) + v(x4,x9), w(x7) + v(x7,x9), w(x8) + v(x8,x9)) =
min(7 + 9, 10 + 3, 7 + 8, 13 + 7) = 13
pas4: x9 ∈ A şi urmează să găsim drumul care are lungimea 13.
Avem succesiv:
w(x9) = w(x4) + v(x4,x9)
w(x4) = w(x3) + v(x3,x4)
w(x3) = w(x5) + v(x5,x3)
w(x5) = w(x1) + v(x1,x5)
7
Nita Razvan - IMSA

deci drumul căutat este: x1 → x5 → x3 → x4 → x9


Observaţia 1. Dacă graful are un circuit atunci se poate demonstra uşor că nu vom
putea da valoare nici unui nod al acestuia şi dacă există vreun drum de la x1 la xn care
trece prin unul din nodurile circuitului nu vom putea da valoare nici lui x n, cu toate că
există drum de la x1 la xn.
Observaţia 2: Algoritmul necesită pentru memorare şi manipulare doar cunoaşterea,
pentru fiecare nod, a nodurilor spre care "pleacă" arce din acesta şi valorile acestor arce,
fiind mult mai uşor de aplicat sau implementat pe calculator. El are însă dezavantajul că se
poate aplica doar în grafuri fără circuite.

C. Algoritmul Ford generalizat

Algoritmul lui Ford generalizat a fost creat cu scopul de a putea găsi drumul optim
şi în grafurile care au circuite. Cu ajutorul lui se găseşte drumul de valoare optimă între
două noduri fixate xi şi xj. Printr-o eventuală renumerotare a nodurilor putem presupune că
nodul de la care porneşte drumul este x1, care va fi numit nod iniţial, iar nodul la care se
termină este xn, numit nod final.
Algoritmul este:
Pasul 1. I se dă vârfului iniţial valoarea 0 (zero): w(x0) = 0 şi tuturor celelalte valoarea +∞
(într-o problemă de minim) sau -∞ (într-o problemă de maxim).
Pasul 2. În ordinea crescătoare a indicilor nodurilor se calculează pentru fiecare nod, pe
bază fostelor valori, noile valori cu formula:
w ¿ ( x i )=min w ( x i ) , min ( w ( x j ) + v ( x j , x i ) )

( x j
∃ ( x j , x i)
)
in probleme de minim

w ¿ ( x i )=min w ( x i ) , min ( w ( x j ) + v ( x j , x i ) )
sau ❑
( xj
∃ ( x j , x i)
) in probleme de maxim

*
Pasul 3. Se compară noile valori w (xi) cu fostele valori w(xi):
*
− Dacă w (xi) = w(xi) pentru orice nod xi atunci:
− dacă w(xn) < ∞ (la problema de minim) sau w(x n) > -∞ (la problema de
maxim), valoarea nodului xn reprezintă valoarea drumului de valoare
minimă(maximă) de la x1 la xn. Pentru găsirea acestui drum se
k1 x
porneşte înapoi de la nodul final xn şi se găsesc nodurile ,
xk xk
2 , ... , r care formează drumul căutat, unde x k = x n, x k = x 1 1 r

şi fiecare alt indice ki+1 este cel pentru care:


w ( x k ) =w ( x k ) + v ( x k +1 , x k )STOP
i i+ 1 i i

− dacă w(xn) = +∞ (-∞) atunci nu există nici un drum de la x1 la xn. STOP


8
Nita Razvan - IMSA

*
− Dacă există cel puţin un nod pentru care w (xi) < w(xi) se reia algoritmul de
la pasul 2 pentru noile valori ale vârfurilor.

Observaţie: Algoritmul poate găsi drumul şi în grafuri cu circuite dar este evident
mult mai lent decât cel simplificat. Pentru scurtarea duratei de execuţie se poate modifica
algoritmul în sensul că o valoare nou calculată a unui vârf va fi folosită imediat ca atare la
calculul noilor valori ale celorlalte, nu doar după ce se calculează noile valori ale tuturor
vârfurilor.
D. Algoritmul lui Dijkstra

În algoritmul Ford simplificat, pentru a găsi valoarea nodului final, deci a drumului
minim, plecăm de la nodul iniţial în toate direcţiile posibile, păstrând de fiecare dată toate
nodurile analizate. Acest fapt duce la un consum inutil de timp, deoarece foarte multe din
aceste noduri nu vor face parte din drumul optim. Pentru a elimina acest neajuns,
algoritmul lui Dijkstra încearcă să păstreze, la fiecare iteraţie, mulţimea minimă de noduri
care să le conţină pe toate cele care vor forma efectiv drumul optim. În plus, algoritmul se
poate aplica şi în drumuri cu circuite. Ca un minus este faptul că se aplică doar la probleme
de minim. Algoritmul are următorii paşi:

Pasul 1. I se dă vârfului iniţial valoarea 0 (zero): w(x0) = 0


Pasul 2. Se construieşte mulţimea A formată din nodul iniţial: A = {x1}
Pasul 3. Se analizează nodurile din afara mulţimii A.

− Dacă există noduri în care se poate ajunge prin arce directe de la


noduri din A (nu doar de la nodurile mulţimii A, ca la algoritmul lui
Ford simplificat) se calculează pentru toate acestea:

min ( w ( x j ) + v ( x j , x i) )
w(xi) = x ∈A
j
, in problemele de minim
∃ ( x j, x i)
dar, spre deosebire de algoritmul lui Ford simplificat, se adaugă la mulţimea
A doar cel pentru care se obţine valoarea minimă, apoi se trece la pasul 4.
− Dacă nu există nici un nod de acest tip atunci nu există nici un drum de la
x1 la xn. STOP

Pasul 4. Se analizează mulţimea A:

− Dacă xn ∈ A atunci valoarea sa reprezintă valoarea drumului de valoare


optimă de la x1 la xn. Pentru găsirea acestui drum se porneşte înapoi de la
x k1 x x
nodul final xn şi se găsesc nodurile , k2 , ... , kr
care
formează drumul căutat, unde x k = x n, x k = x 1, şi fiecare alt indice ki+1
1 r

este cel pentru care:


w ( x k ) =w ( x k ) + v ( x k +1 , x k )STOP
i i+ 1 i i

9
Nita Razvan - IMSA

− Dacă xn ∉ A se reia algoritmul de la pasul 3.

Exemplu Vom aplica algoritmul la acelaşi graf folosit la ceilalţi algoritmi, pentru a
putea face comparaţii:
pas1: w(x1) = 0
pas2: A = {x1}
pas3: Nodurile în care se poate ajunge şi din x1: {x2, x5, x6} ≠ ∅
w{x2) = min( w(x1) + v(x1,x2)) = 0 + 4 = 4
w{x5) = min( w(x1) + v(x1,x5)) = 0 + 5 = 5
w{x6) = min( w(x1) + v(x1,x6)) = 0 + 3 = 3
min(w{x2),w{x5),w{x6)) = w{x6) = 3
pas4: x9 ∉ A
pas3: A = {x1,x6} şi nodurile în care se poate ajunge prin arce directe din x 1 sau x6 sunt:
{x2,x5,x7}≠∅
w{x2) = min( w(x1) + v(x1,x2), w(x6) + v(x6,x2)) = min(0 + 4 , 3 + 8) = 4
w{x5) = min( w(x1) + v(x1,x5)) = min(0 + 5) = 5
w{x7) = min( w(x6) + v(x6,x7)) = min(3 + 5) = 8
min(w{x2),w{x5),w{x7)) = w{x2) = 4
pas4: x9 ∉ A
pas3: A = {x1,x2,x6} şi nodurile în care se poate ajunge prin arce directe din x 1, x2 sau x6
sunt: {x3,x4,x5,x7} ≠ ∅
w{x3) = min( w(x2) + v(x2,x3)) = min(4 + 7) = 11
w{x4) = min( w(x2) + v(x2,x4)) = min(2 + 9) = 11
w{x5) = min( w(x1) + v(x1,x5)) = min(0 + 5) = 5
w{x7) = min( w(x6) + v(x6,x7)) = min(3 + 5) = 0
min(w{x3),w{x4),w{x5),w{x7)) = w{x5) = 5
pas4: x9 ∉ A
pas3: A = {x1,x2,x5,x6} şi nodurile în care se poate ajunge prin arce directe din x 1, x2, x5,
x6 şi x7 sunt: {x3,x4,x7,x8} ≠ ∅
w{x3) = min( w(x2) + v(x2,x3), w(x5) + v(x5,x3)) = min(4 + 7,5 + 2) = 7
w{x4) = min( w(x2) + v(x2,x4), w(x5) + v(x5,x4)) = min(4 + 9,5 + 7) = 12
w{x7) = min( w(x5) + v(x5,x7), w(x6) + v(x6,x7)) = min(5 + 2,3 + 5) = 7
w{x8) = min( w(x5) + v(x5,x8)) = min(5 + 9) = 14
min(w{x3),w{x4),w{x7),w{x8)) = w{x3) = w{x7) = 7
pas4: x9 ∉ A
pas3: A = {x1,x2,x3,x5,x6,x7} şi nodurile în care se poate ajunge prin arce directe din x 1,
x2, x3, x5, x6, şi x7 sunt: {x4,x8,x9} ≠ ∅

10
Nita Razvan - IMSA

w{x4) = min( w(x2) + v(x2,x4), w(x3) + v(x3,x4),w(x5) + v(x5,x4)) = min(4 + 9,7 +


3,5 + 7) =10
w{x8) = min( w(x5) + v(x5,x8), w(x7) + v(x7,x8)) = min(5 + 9,7 + 6) = 13
w{x9) = min( w(x3) + v(x3,x9), w(x7) + v(x7,x9)) = min(7 + 9,7 + 8) = 15
min(w{x4),w{x8),w{x9)) = w{x4) = 10
pas4: x9 ∉ A
pas3: A = {x1,x2,x3,x4,x5,x6,x7} şi nodurile în care se poate ajunge prin arce directe din
x1, x2, x3, x4, x5, x6, şi x7 sunt: {x8,x9} ≠ ∅
w{x9) = min( w(x3) + v(x3,x9), w(x4) + v(x4,x9), w(x7) + v(x7,x9)) = min(7 + 9,10
+ 3,7+8)=13
w{x8) = min( w(x5) + v(x5,x8), w(x7) + v(x7,x8)) = min(5 + 9,7 + 6) = 13
min(w{x8),w{x9)) = w{x8) = w{x9) = 13
pas4: x9 ∈ A şi urmează să găsim drumul care are lungimea 13.
Avem succesiv:
w(x9) = w(x4) + v(x4,x9)
w(x4) = w(x3) + v(x3,x4)
w(x3) = w(x5) + v(x5,x3)
w(x5) = w(x1) + v(x1,x5)
deci drumul căutat este: x1 → x5 → x3 → x4 → x9
2. Drumul critic

Drumul critic = acel drum de la începutul la sfârşitul reţelei, a cărui activitate


însumează un total de timp mai mare decât orice alt drum din reţea.
Drumul critic este o bază pentru stabilirea calendarului unui proiect, deoarece
durata totală a unui proiect nu poate să fie mai mică decât timpul total al drumului critic.
Totodată întârzierile în activităţile componente ale drumului critic pot pune în pericol
întregul proiect. De aceea este necesar ca acestor activităţi să li se acorde o atenţie mult
mai mare.
Principalele metode utilizate în managementul proiectelor (Project Management)
folosite la planificarea în timp, folosite pentru a urmari modul în care sunt consumate
diferitele tipuri de resurse într-o structură complexă, descrisă printr-un model de tip graf
orientat, sunt:
–metoda CPM (Critical Path Method)
–metoda MPM (Metra Poential Method)
–metoda PERT (Program Evaluation and Review Tehnique).
Se urmăreşte prin aplicarea acestor metode de management al proiectelor dirijarea
unor activităţi noi (care compun într-o structură complex proiectul şi care prezintă o serie
de restricţii privind resursele) şi asigurarea unui nivel de competenţă în ceea ce priveşte
performanţele.
Aceste metode permitidentificarea drumului critic şi a activităţilor care îl compun
dintre evenimentul începerii proiectului şi evenimentul finalizării lui.

A. Metoda CPM
11
Nita Razvan - IMSA

Principiul analizei drumului critic constă în divizarea unui proiect (acţiuni


complexe) în părţi componente, la un nivel care să permită corelarea logică şi tehnologică
a acestora, adică să facă posibilă stabilirea interacţiunilor între părţile componente. Aceste
părţi componente sunt activităţile unor acţiuni complexe.
La definirea listei de activităţi specialistul care participă la această operaţie foloseşte
experienţa sa pentru a răspunde, pentru fiecare activitate la întrebările:
”ce alte activităţi succed sau preced în mod necesar această activitate ?”;
”care este durata activităţii ?”.
Ia naştere în acest fel un tabel care conţine activităţile proiectului, intercondiţionările între
activităţi şi duratele acestora.
Modelele de analiză a drumului critic se bazează pe reprezentarea proiectului
printr-un graf, elementele tabelului asociat acestuia fiind suficiente pentru a construi graful
corespunzător.
În tabelul 1 este prezentat un proiect, activităţile fiind notate prin litere mari A, B,
C, …. Activităţile A şi B sunt activităţile de început ale proiectului. Activitatea A este
direct precedentă activităţii C. De asemenea, activitatea C este direct precedentă
activităţilor E şi F.

Tabelul.1
Activităţile
Nr. Activităţile
direct precedente Durate
crt. proiectului
(condiţionări)
1 A - 3
2 B - 2
3 C A 2
4 D B 6
5 E B 4
6 F C,D,E 4
7 G E 1

Metoda CPM este un procedeu de analiză a drumului critic în care singurul


parametru analizat este timpul şi în reprezentarea graficului reţea se ţine seama de
următoarele convenţii:
 fiecărei activităţi i se asociază un segment orientat numit arc, definit prin
capetele sale, astfel fiecare activitate identificându-se printr-un arc;
 fiecărui arc i se asociază o valoare egală cu durata activităţii pe care o
reprezintă;
 condiţionarea a două activităţi se reprezintă prin succesiunea a două arce
adiacente.
Nodurile grafului vor reprezenta momentele caracteristice ale proiectului,
reprezentând stadii de realizare a activităţilor (adică terminarea uneia sau mai multor
activităţi şi/sau începerea uneia sau mai multor activităţi).
12
Nita Razvan - IMSA

Procedeul CPM se bazează pe existenţa unei corespondenţe bipartide între


elementele unui proiect (activităţi, evenimente) şi elementele unui graf (arce şi noduri).
Pentru reprezentarea corectă a proiectului (respectarea interdependenţelor,
claritatea desenului etc.), cât şi pentru o standardizare a reprezentării (pentru a putea fi
înţeles şi de altcineva decât cel care l-a desenat) în desenarea grafului se respectă
următoarele reguli:
1. fiecare activitate se reprezintă printr-un arc a cărui orientare indică, pentru
activitate, desfăşurarea ei în timp;
2. un arc este limitat prin două noduri (reprezentate prin cerculeţe) care
simbolizează momentele de început şi de sfârşit ale executării activităţii
corespunzătoare;
3. lungimea fiecărui arc, în general, nu este proporţională cu lungimea activităţii;
4. activităţile vor fi reprezentate prin arce de forma:
5.

sau sau sau

sau sau sau

esenţială fiind porţiunea orizontală, pe care se vor trece informaţiile despre


activitate, porţiunile oblice fiind la 45°.
Lungimea şi înclinarea arcului au în vedere numai considerente grafice, pentru
urmărirea uşoară a întregului graf.
6. deoarece respectarea tuturor regulilor nu se poate face doar cu arce care
corespund doar activităţilor proiectului, vor exista şi arce care nu corespund
nici unei activităţi, care vor fi reprezentate punctat şi care, pentru unitatea
prezentării, vor fi numite activităţi fictive, ele neconsumând resurse şi având
durata 0.
7. pentru reprezentarea unor dependenţe de tipul "terminare – început" în care t AB
> 0, vom introduce nişte arce reprezentate prin linii duble, care corespund
intervalului tAB, având semnificaţia unor aşteptări (în acest interval se
"consumă" doar timp, nu şi resurse) şi care vor fi numite activităţi de
aşteptare.

Printre avantajele metodei CPM (şi în general ale analizei drumului critic)
evidenţiem:
 determinarea cu anticipaţie a duratei de execuţie a proiectelor complexe;
13
Nita Razvan - IMSA

 pe timpul desfăşurării proiectului permite un control permanent al execuţiei


acestuia;
 explicitarea legăturilor logice şi tehnologice dintre activităţi;
 evidenţierea activităţilor critice;
 evidenţierea activităţilor necritice, care dispun de rezerve de timp;
 permite efectuarea de actualizări periodice fără a reface graful;
 oferă posibilitatea de a efectua calcule de optimizare a duratei unui proiect,
după criteriul costului;
 reprezintă o metodă operativă şi raţională care permite programarea în timp a
activităţilor ţinând seama de resurse.

Dezavantajele acestei metode sunt în principal:

 greutatea desenării grafului, fiind foarte greu de reprezentat exact toate


condiţionările din proiect, în condiţiile în care acestea sunt foarte complicate iar
desenul trebuie să fie destul de simplu şi clar încât să fie inteligibil şi deci util;
 chiar dacă se respectă toate regulile de construire a grafului, rămân încă destule
variante de desenare astfel încât două reprezentări ale aceluiaşi proiect făcute
de doi indivizi pot să nu semene aproape deloc.
 din cele de mai sus se vede că reprezentarea este greoaie chiar dacă toate
condiţionările ar fi de tipul "terminare – început" cu precedenţă directă,
încercarea de a forma graful în condiţiile existenţei şi a celorlalte tipuri de
interdependenţe ducând foarte repede la un desen extrem de încărcat şi greu de
folosit.

Fie un proiect (proces) P compus din n activităţi:


P= { A k } k =1,´ n
O activitate Ak de durată dij=d(Ak) este reprezentată prin perechea (i,j)unde:
–i reprezintă evenimentul începerii activităţii;
–j reprezintă evenimentul terminării activităţii;
Grafic, activitatea Ak se reprezintă astfel:

Fiecărei activităţi Ak i se asociază:


i
• termenul minim de începere - t m ( A k ) reprezintă termenul cel mai devreme posibil
de terminare a tuturor activităţilor incidente în nodul i:
0 daca ieste nod de inceput
{
t im ( A k )=
max ( t im ( A q ) +d qi ) , unde ( q , i ) ∈ Γ −1
t
i

• termenul minim de terminare - t m ( A k )


t tm ( A k )=t im ( A k ) + d ( A k )
i
• termenul maxim de terminare - - t M ( Ak )reprezintă termenul cel mai târziu posibil
de începere a tuturor activităţilor incidente Γ j dinspre nodul j spre nodurile:
14
Nita Razvan - IMSA

t n , daca j este nod de inceput


t iM ( Ak ) =
{
min ( t tM ( A p ) −d jp ) , unde ( j , p ) ∈ Γ ❑j

i
• termenul maxim de incepere t M ( Ak )
t iM ( Ak ) =t tM ( A k ) −d ( A k )

• Rezerva totală – Rt ( A k ) reprezintă intervalul maxim cu care poate fi amânată o


anumită activitate fără a afecta termenul final al proiectului:
Rt ( A k )=t tM ( A k )−t im ( A k )−d ( A k )

Dacă Rt ( A k ) = 0 activitatea se numeşte critică.

• Rezerva liberă – Rl ( Ak )reprezintă intrvalul maxim cu care poate fi amânată o


anumită activitate fără a consuma din rezerva activităţilor care o succed
Rl ( Ak ) =t tm ( A k )−t im ( Ak ) −d ( A k )

B. Metoda MPM

Fie un proiect (proces) P compus din n activităţi:


P= { A k } k =1,´ n

Fiecărei activitaţi Ak i se asociază un tabel de forma:

Activităţile critice sunt activităţile cu rezerva totală egală cu 0:


t iM ( Ak ) =t im ( A k )

t tM ( Ak ) =t tm ( A k )

Totalitatea activităţilor critice alcătuiesc drumul criticîn proiectul P.

C. Metoda PERT

Metoda PERT permite planificarea activităţilor şi determinarea probabilităţii de


realizare a duratei planificate pentru un anumit proiect atunci când duratele activităţilor nu
se cunosc cu certitudine.
15
Nita Razvan - IMSA

Se aplică în cazul producţiei de unicate complexe şi de mare importanţă, la care


operaţiile succesive trebuie realizate prin respectarea restricţiilor de prioritate şi de
termene.
Diagrama PERT conţine informaţii despre sarcinile dintr-un proiect, perioadele de
timp pe care se întind, şi dependenţele dintre ele. Forma grafică este o reţea de noduri
conectate de linii direcţionale (numită şi “reţeaua activităţilor”). Nodurile sunt cercuri sau
patrulatere şi reprezintă evenimente sau borne (“milestones”) din proiect. Fiecare nod este
identificat de un număr. Liniile direcţionale, sau vectorii care leagă nodurile reprezintă
sarcinile proiectului, iar direcţia vectorului arată ordinea de desfăşurare a sarcinilor.
Fiecare sarcină este identificată printr-un nume sau printr-un indice, are reprezentată durata
necesară pentru finalizare, şi, în unele cazuri, chiar numărul de persoane responsabile şi
numele lor (figura1).

Redactare conţinut
3
4 6
4
Activitate fictivă Activitate fictivă
2
3
2
5
1 Design broşură
2
1 3 1
3 7 8 9

Selectare voluntari
Instruire echipe Împărţire broşuri Evaluare

Figura1 – Diagrama PERT a unei campanii de informare prin broşuri (faza primară)

Etapele în analiza PERT:

Analiza PERT poate fi împărţită în trei etape:


1. Planificarea:
- identificarea sarcinilor şi estimarea necesarului de timp pentru acestea
- aranjarea sarcinilor şi a evenimentelor într-o secvenţă fezabilă
- desenarea diagramei
2. Încadrarea în timp:
- stabilirea, acolo unde este posibil, a datelor de început şi de sfârşit
3. Analiza:
- calcularea datelor minime posibile, a datelor maxime permise şi a
marjelor de timp pentru fiecare eveniment. Acest lucru se face lucrând
de la stânga la dreapta şi apoi de la dreapta la stânga diagramei (vezi
regulile 7 şi 8)

16
Nita Razvan - IMSA

- evaluarea oportunităţii planificării propuse şi, dacă este necesar,


revizuirea ei

După cum se observă, drumul critic este 1 – 2 – 4 – 6/7 – 8 – 9, deoarece timpul


cumulat al acestui drum este cel mai mare, respectiv 13 zile. Există două evenimente care
nu se află pe drumul critic: 3 şi 5. În cazul evenimentului 3, există o marjă mare de timp
între data minimă posibilă şi data maximă permisă (8 – 2 = 6). Asta înseamnă că pentru
activitatea 1 – 3, în funcţie de planificarea ei în timp, este acceptabilă o întârziere de până
la 6 zile, însă nefinalizarea ei mai devreme de ziua a 8-a a proiectului ar pune serios în
pericol desfăşurarea activităţilor ulterioare.

Tipărire broşuri
Redactare conţinut
4 3 6
6/ 0 / 6 9/ 0 / 9
4
2
2/ 0 / 2 3
2
5
1 Design broşura 5/ 1 /6
0/ 0 / 0 2
3 1 7 3 8 1 9
2/ 6 / 8 9/ 0 / 9 12/ 0 / 12 13/ 0 / 13
Selectare voluntari
Instruire echipe Împărţire broşuri Evaluare

Figura 2 arată cum a evoluat analiza din diagrama iniţială.


Analiza reţelei activităţilor permite calcularea spaţiului în care pot “pluti”
activităţile, respectiv marja de timp cu care poate fi întârziată o activitate fără ca acest
lucru să ducă la întârzieri ale proiectului în ansamblu.

Cum se realizează în mod concret analiza PERT? Există posibilitatea să se


utilizeze un soft specializat de management al proiectului, care pune la dispoziţie mult mai
multe facilităţi în privinţa informaţiilor incluse în analiză. Pentru început se listează
activităţile, durata lor şi dependenţele. (tabelul 2)

Tabelul 2
Sarcini Locul de desfăşurare Depinde de… Durata

A - 2
B - 2

17
Nita Razvan - IMSA

C - 4
D - 3
E - 3
F C 4
G B, F 1
H E 3
I E 2
J G 1

Regulile care trebuie respectate în efectuarea analizei PERT

1. Există un singur eveniment de start şi un singur eveniment de sfârşit,


2. Reţeaua nu are întreruperi, şi ea trebuie desenată luând în calcul dependenţele
identificate,
3. Evoluţia în timp a sarcinilor este reprezentată de la stânga la dreapta,
4. Nu pot să existe două sarcini care leagă aceleaşi două evenimente,
5. Evenimentele au un număr de identificare unic (în consecinţă şi sarcinilor le va
corespunde câte o identificare unică, respectiv numerele celor două evenimente
pe care le leagă),
6. Un eveniment de pe drumul critic are data minimă posibilă, data maximă
permisă şi marja de timp 0
7. Stabiliţi data minimă posibilă şi data maximă permisă a evenimentului de start
la 0. Lucrând de la evenimentul de start înspre dreapta, se calculează datele
minime posibile pentru evenimentele imediat următoare. Adăugaţi la datele
minime posibile ale evenimentelor anterioare, timpul necesar pentru sarcinile
intermediare, pentru a ajunge la datele minime posibile ale evenimentelor
posterioare. Acolo unde evenimentele posterioare au mai multe sarcini
dependente, se face calculul pe fiecare ramură şi este pus rezultatul cel mai
mare.
8. Stabiliţi data minimă posibilă şi data maximă permisă a evenimentului final la
suma timpului pe drumul critic. Lucrând de la evenimentul final înspre stânga
se calculează datele maxime permise. Scădeţi timpul necesar activităţilor
intermediare din datele maxime permise ale evenimentelor posterioare pentru a
obţine datele maxime permise pentru evenimentele anterioare. Acolo unde
evenimentele anterioare au mai multe activităţi care pornesc de la ele, se face
calculul pe fiecare ramura şi este pus rezultatul cel mai mic.
9. Marja de timp este calculată făcând diferenţa dintre data maximă permisă şi
data minimă posibilă .
10. Pentru a face calculul mai uşor puteţi scrie în dreptul activităţilor fictive cifra 0
(nu e nevoie de resurse pentru a ajunge de la un eveniment la altul).

Fie un proiect (proces) P compus din n activităţi:


P= { A k } k =1,´ n

18
Nita Razvan - IMSA

Atât durata fiecărei activitaţi d(Ak) cât si durata totală a proiectului sunt considerate
variabile aleatoare. Dutata unei activităţi Ak este o variabilă aleatoare de distribuţia BETA
cu:
–durata mediie de execuţie a acivităţii d(Ak),
d 0 ( A k ) +4 d m ( A k ) +d p ( Ak )
d ( Ak ) =
6
2
–dispersia σ ( A k )
d p ( A k )−d 0 ( Ak ) 2
2
σ ( A k) = ( 6 )
Dutata totală de execuţie a proiectului P este variabilă aleatoare cu distribuţie
normală. Dacă este mulţimea actvităţilor neparalele de pe drumul c ritic atunci avem:
– durata totală medie a proiectului : t n= ∑ d ( A k )
Ak ϵDc

σ = ∑ σ2( Ak )
2
– dispersia σ 2n : n
A k ϵ Dc
Probabilitatea de realizare a duratei planificate a proiectului T p> t n se determină
astfel:
– se determină factorul de probabilitate z:
T −t
z= p 2 n
√ σn
– se deduce, utilizând tabelul funcţiei Laplace probabilitatea p ( t n ≤ T p )

Valorile probabilităţii de realizare a duratei planificate a proiectului au următoarele


semnificaţii:
– p ( t n ≤ T p ) ≤ 0,25 risc foarte mare de nerealizare în termen a proiectului;
– p ( t n ≤ T p ) ∈ ( 0,25; 0,5 ) există şanse de realizare a proiectului în termenul
stabilit;
– p ( t n ≤ T p ) ∈ [ 0,5 ; 0,8¿ programarea activităţilor proiectului este justă;
– p ( t n ≤ T p ) ≥ 0,8 sunt şanse foarte mari de realizare în timp a proiectului.

Observaţii finale legate de diagrama PERT

Din diagramă nu trebuie omise evenimente ca: evaluările intermediare, diversele


aprobări, testarea de către utilizatori etc. Timpul necesar pentru a finaliza astfel de activitati
nu trebuie subestimat atunci când se planifică un proiect. O evaluare poate dura uneori 1 –
2 săptămâni. Pentru a obţine aprobări din partea managementului sau a utilizatorilor poate
dura chiar şi mai mult.
Atunci când realizaţi un plan, asiguraţi-vă că includeţi activitatea pentru scrierea şi
editarea documentaţiei, pentru scrierea şi editarea rapoartelor de proiect, pentru
multiplicarea rapoartelor etc. Aceste sarcini sunt în general consumatoare de timp, aşa că
nu trebuie sa fie subestimat timpul necesar pentru a le finaliza.

19
Nita Razvan - IMSA

Multe diagrame PERT se termină la evenimentele majore legate de evaluare. Sunt


organizaţii care includ în ciclul de viaţă al unui proiect şi evaluări ale finanţării. În acest
caz, fiecare diagrama trebuie să se termine în nodul de evaluare. Evaluările finanţării pot
afecta un proiect prin aceea că pot duce la o creştere a finanţării, caz în care trebuie să fie
implicaţi mai mulţi oameni în proiect sau la o scădere a finanţării, caz în care vor fi
disponibili mai puţini oameni. În mod logic, un număr mai mare sau mai mic de oameni va
afecta timpul necesar pentru finalizarea proiectului.

EXEMPLU

Proiectul prezentat este Constituirea unei baze de date centralizată pentru


raportări manageriale.
Proiectul constă în dezvoltarea şi implementarea unui sistem de centralizare a
informaţiilor (date în format electronic) existente în filialele companiei Swit S.A.
Dezvoltarea unei baze de date centralizată pentru raportare înseamnă pe de o parte
construcţia unei baze de date unică pe companie având o structură concepută astfel încât să
poată fi inserate informaţii aparţinând oricărui domeniu de activitate din cadrul companiei,
pe de altă parte construcţia de programe care să realizeze transferul de informaţii din
bazele de date locale din filiale în această bază unică şi realizarea unui sistem de extragere
a raportelor pentru conducerea companiei din această bază de date unică.
Proiectul este real şi în curs de desfăşurare. El reprezintă o componentă a
proiectului de informatizare a companiei Swit SA. Denumirea firmei este fictivă, la fel şi
cifrele care vor apărea în această lucrare. Durata de derulare a proiectului este de 4 luni. În
cadrul proiectului sunt membru al echipei. Echipa este constituită din patru persoane şi
pentru acest proiect există un buget alocat de 60.000 Euro.
Principalele obiective ale proiectului sunt următoarele:
Ob1: Sistemul să ofere o viziune de ansamblu asupra întregii activităţi din cadrul
companiei Swit SA prin prisma unor raportări financiar-contabile, de producţie şi
marketing.
Ob2: Sistemul să automatizeze fluxul de informaţii de la filiale către sediul central.
Ob3: Sistemul să reprezinte un instrument flexibil care să poata fi uşor adaptat la
modificările de natura organizaţională care pot apărea în cadrul companiei.
Furnizorul: Furnizorul este NOVENSYS Corporation, companie care are drept
misiune dezvoltarea şi implementarea de software de aplicaţie în domeniul economic.
Clientul: Swit SA reprezintă cea mai mare companie autohtonă de producţie şi
distribuţie de dulciuri. Pe lângă producţia proprie, compania distribuie şi alte produse de
larg consum. Ca şi structură organizaţională Swit SA este constituită din filiale. Filialele
sunt impărţite după fucţionalitate: filiale de producţie, filiale de distribuţie, filiale de
transport şi sucursale de prestări servicii. Numărul total de filiale este 27, iar acoperirea
este la nivel naţional.
Proiectul a început la dorinţa clientului de a dispune de un mecanism real de
sincronizare a datelor din filiale în realizarea raportărilor către sediu, eliminându-se astfel
transmiterea datelor pe mail sau fax, calculele manuale şi erorile umane.

20
Nita Razvan - IMSA

Ideea de a realiza o bază de date unică pentru raportare pe toată compania având ca
sursă primară informaţiile în format electronic din teritoriu, cu reflectare în cel mult 24 ore
a rezultatelor la sediul central, a fost a furnizorului care a analizat fluxul de raportări
existent la momentul respectiv în companie şi a propus această soluţie.
Diagrama de reţea a proiectului este prezentată în Figura 3.

Descrierea diagramei – comentarii:

Prin contractul încheiat cu beneficiarul a fost stabilită durata totală posibilă


(termenul de realizare) la 150 de zile.
Drumul critic este drumul determinat de activităţile cu cea mai mică marjă totală
(vezi Figura 3 - Marjele totale şi libere ale activităţilor). Se observă că diagrama conţine
un singur drum critic (traseul marcat cu linie roşie) care este format din traseul ce trece
prin activităţile 1.1 – 1.2 – 5.1 – 5.2 – 5.3 – 6.1 – 6.2 – 6.3 – 7.2 – 7.3, sau, utilizând
numere de identificare a nodurilor, 1 – 2 – 3 – 11 – 12 – 13 – 14 – 15 – 16 – 17 – 18.
Acesta este traseul a cărui realizare va influenţa în mod decisiv momentul cel mai devreme
la care evenimentul 18 (finalizarea proiectului) poate avea loc.

Cod WBS Descriere Activitate Durata


precedentă (zile)
1.1 Determinare flux lucru - 15
1.2 Colectare informaţii necesare raportări 1.1 10

2.1 Proiectare structură bază de date 1.2 25


2.2 Scripturi de interfaţare cu alte softuri din filiale 2.1 15
2.3 Testare 2.2 30

3.1 Proiectare structuri de sintetizare date 1.2 15


3.2 Realizare scripturi pentru încărcare în structuri 3.1 20
sintetizate
3.3 Testare 3.2 10

4.1 Realizare programe de verificare recepţie date 3.3 5


la sediu
4.2 Realizare programe pentru generare răspuns la 4.1 12
recepţie date
4.3 Testare 4.2 10

5.1 Proiectare modalitate codificare date 1.2 15


5.2 Unificare nomenclatoare existente 5.1 50
5.3 Scriere documentaţie 5.2 10

6.1 Integrare 2.3 4.3 1


5.3
6.2 Definire criterii de acceptanţă 6.1 5
6.3 Testare 6.2 3

7.1 Programare grupe de utilizatori în funcţie de 2.3 4.3 8


21
Nita Razvan - IMSA

specialiate 5.3
7.2 Şcolarizare 6.3 7.1 10
7.3 Evaluare şcolarizare 7.2 1
Figura 3 – Lista activităţilor, duratele şi precedenţa acestora

Marja totală şi marja liberă a fiecărei activităţi sunt prezentate în tabelul de mai jos:

Cod WBS Descriere Marja totală Marja


(zile) liberă
(zile)
1.1 Determinare flux lucru 30 0
1.2 Colectare informaţii necesare raportări 30 0

2.1 Proiectare structură bază de date 30 0


2.2 Scripturi de interfaţare cu alte softuri din filiale 30 0
2.3 Testare 35 5

3.1 Proiectare structuri de sintetizare date 33 0


3.2 Realizare scripturi pentru încărcare în structuri 33 0
sintetizate
3.3 Testare 33 0

4.1 Realizare programe de verificare recepţie date 33 0


la sediu
4.2 Realizare programe pentru generare răspuns la 33 0
recepţie date
4.3 Testare 33 3

5.1 Proiectare modalitate codificare date 30 0


5.2 Unificare nomenclatoare existente 30 0
5.3 Scriere documentaţie 30 0

6.1 Integrare 30 0
6.2 Definire criterii de acceptanţă 30 0
6.3 Testare 30 0

7.1 Programare grupe de utilizatori în funcţie de 21 1


22
Nita Razvan - IMSA

specialiate
7.2 Şcolarizare 30 0
7.3 Evaluare şcolarizare 30 0
Figura 4 – Marjele totale şi libere ale activităţilor

Marjele totale şi marjele libere au fost calculate folosind momentele cel mai
devreme şi cel mai târziu ale evenimentelor de start şi de final ale unei activităţi (Marja
liberă = EFD –ESD – durată, Marja totală = LFD – ESD – durată ), notate conform figurii
următoare:

ESD = momentul cel mai EFD = momemtul cel


devreme de începere mai devreme de
a activităţii finalizare a activităţii

0 1.1. Determinare flux lucru 15


1 2
30 15 45

LSD = momemtul cel LFD= momemtul cel mai


mai târziu de începere a târziu de finalizare a
activităţii evenimentul evenimentul activităţii
de start de finalizare
a activităţii a activităţii

Figura 5– Reperele de calcul a marjelor unei activitati

Cel mai devreme posibil moment de finalizare a proiectului este a-120 zi de la


începerea proiectului.

23
Nita Razvan - IMSA

2.2 Scripturi de interfaţare cu alte softuri din filiale


2.1 Proiectare structură bază de date
2.3 Testare
50 65
4 5
80 95 30
25 15

1.2 Colectare informaţii necesare raportări 4.2 Realizare


4.1 Realizare programe de verificare programe
recepţie date la pentru
sediu generare răspuns la recepţie date 6.2 Definire criterii de acceptanţă
1.1. Determinare flux lucru
3.2 Realizare
3.1 Proiectare structuri scripturi
de sintetizare datepentru încărcare în structuri sintetizate 7.3 Evaluare şcolarizare
4.3 Testare 6.1 Integrare 6.3 Testare 7.2 Şcolarizare
3.3 Testare
0 15 25
1 2 40 60 70 75 87 100 101 106 109 119 120
30 3 6 7 8 9 10 13 14 15 16 17 18
45 10 55 73 93 103
15 15 20 10 5 108 12 120 10 130 131 5 136 139 10 149 1 150
1 3

5.1 Proiectare modalitate codificare 5.2


date
Unificare nomenclatoare existente 8
5.3 Scriere documentaţie
7.1 Programare grupe de utilizatori în funcţie de specialiate
40 90
11 12
70 120 10
15 50

Legenda

ESD = momentul cel mai EFD = momemtul cel


devreme de începere a mai devreme de
activităţii finalizare a activităţii

1.1. Determinare flux


0 lucru 15
1 2
30 15 45

LSD = momemtul cel LFD = momemtul cel mai


mai târziu de începere a târziu de finalizare a
activităţii evenimentul evenimentul activităţii
de start de finalizare
a activităţii a activităţii

Drum critic

Figura 6 - Diagrama de reţea a proiectului


24
Bibliografie

1. T. Ionescu – Grafuri. Aplicatii, vol I si II, Editura Didactica si Pedagogica,


Bucuresti, 1973
2. T. M. Karnyanszky – Algoritmica grafurilor, editia a II-a, Editura Mirton,
Timisoara, 2004
3. P. Popovici – Structuri de date liniare si arborescente
4. I. Tomescu – Probleme de combinatorica si teoria grafurilor, Editura Didactica si
Pedagogica, Bucuresti, 1981
5. T. H. Cormen, C. E Leiserson, R. Rivest – Introducere in algoritmi, Editura Libris,
Bucuresti, 2000
6. L. Livoschi, H. Georgescu – Sinteza si analiza algoritmilor, Editura Stiintifica,
Bucuresti, 1986

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