36
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 (x i ,x j ) cu v(x i ,x j ) sau cu v ij . În aceste condiţii putem enunţa problema drumului optim astfel:

Tema 9 - Drumul Optim, Drumul Critic - Metode

  • Upload
    fresh9d

  • View
    923

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema 9 - Drumul Optim, Drumul Critic - Metode

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.

Page 2: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

Un număr finit de noduri n atrage după sine existenţa unui număr finit de arce

(cel mult n2) şi a unui număr finit de drumuri elementare ( cel mult nn!∑k=1

n-11

k! ). 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

Page 3: Tema 9 - Drumul Optim, Drumul Critic - Metode

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:

mij =

{valoarea arcului ( x i , x j ) daca exista arcul ( x i , x j ) si i ≠ j

0 daca i= j+∞( într-o problema de minim )−∞( într-o problema de maxim )} daca nu exista arcul ( x i , 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)

2. Lij = min (Li-1,j , mink=1,n (mjk + Li-1,k)) într-o problemă de minim

sau Lij = max (Li-1,j , maxk=1,n (mjk + Li-1,k)) într-o problemă de maxim

3

Page 4: Tema 9 - Drumul Optim, Drumul Critic - Metode

x2

x1

x6

x3

x7

x4

x9

97

38

4

53

3

2

25

7

9

43

768

8

9x5

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 Lij 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

finale, notată Lf, nodurile xk1 ,

xk 2 , ... , xk r care formează drumul căutat,

unde xk1 = xj,

xk 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.

4

Page 5: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

Matricea M va fi

(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

)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 9x4 0 3x5 8 2 7 0 3 2 9 x6 8 0 5 x7 0 6 8x8 4 0 7x9 0L1 9 3 8 7 0L2 12 6 3 10 13 8 7 0L3 15 12 6 3 8 13 8 7 0L4 13 12 6 3 8 13 8 7 0L5 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

3 x9

5

Page 6: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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:

w(xi) = min

x j

∃ ( x j ,x i)

(w ( x j )+v ( x j , x i )), în probleme de minim sau

w(xi) = min

x j

∃ ( x j ,x i)

(w ( x j )+v ( x j , x i )), în probleme de maxim

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 xk1, xk2

,…, xk r care formează drumul căutat, unde xk1

= xn, xk r

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

w ( xk i)=w ( xk i+1 )+v ( xk i+1, xk i ) STOP

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

6

Page 7: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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

pas1: w(x1) = 0

pas2: A = {x1}

pas3: Nodurile în care se poate ajunge doar din x1: {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 x1, 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) = 13pas4: 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)

7

Page 8: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

w(x3) = w(x5) + v(x5,x3)

w(x5) = w(x1) + v(x1,x5)

deci drumul căutat este: x1 → x5 → x3 → x4 → x9Observaţ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 xn, 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

x j

∃ ( x j , x i)

(w ( x j )+v ( x j , xi ) )) in probleme de minim

sau w ¿ ( x i )=min

❑ (w ( x i ) , minx j

∃ ( x j , x i)

(w ( x j )+v ( x j , xi ) )) 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(xn) > -∞

(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 porneşte înapoi de

8

Page 9: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

la nodul final xn şi se găsesc nodurile xk1 ,

xk 2 , ... , xk r

care formează drumul căutat, unde xk1= xn, xk r

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

w ( xk i)=w ( xk i+1 )+v ( xk i+1, xk i )STOP − dacă w(xn) = +∞ (-∞) atunci nu există nici un drum de la

x1 la xn. STOP

− 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:

w(xi) = minx j∈ A

∃ ( x j ,x i)

(w ( x j )+v ( x j , x i )), in problemele de minim

9

Page 10: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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 nodul final xn şi se găsesc

nodurile xk1 ,

xk 2 , ... , xk r care formează drumul căutat, unde

xk1= xn, xk r

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

w ( xk i)=w ( xk i+1 )+v ( xk i+1, xk i )STOP

− 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 x1 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 x1, 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

10

Page 11: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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 x1, 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 x1,

x2, x3, x5, x6, şi x7 sunt: {x4,x8,x9} ≠ ∅

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 → x92. 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

11

Page 12: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

î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

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

Nr.crt.

Activităţile proiectului

Activităţile direct precedente

(condiţionări)Durate

1 A - 32 B - 23 C A 2

12

Page 13: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

4 D B 65 E B 46 F C,D,E 47 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).

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

13

Page 14: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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 tAB

> 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; 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= {Ak }k=1, n

14

Page 15: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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ă:

• termenul minim de începere - tmi ( Ak ) reprezintă termenul cel mai devreme posibil

de terminare a tuturor activităţilor incidente în nodul i:

tmi ( Ak )={ 0daca i este nod de inceput

max ( tmi ( Aq )+dqi ) , unde (q ,i )∈Γ i

−1

• termenul minim de terminare - tmt ( Ak )

tmt ( Ak )=tm

i ( Ak )+d ( A k )• termenul maxim de terminare - - tM

i ( Ak )reprezintă termenul cel mai târziu posibil

de începere a tuturor activităţilor incidente Γ j dinspre nodul j spre nodurile:

tMi ( Ak )={ tn , daca j este nod de inceput

min( tMt ( Ap )−d jp ) , unde ( j , p )∈Γ j

• termenul maxim de incepere tMi ( Ak )

tMi ( Ak )=tM

t ( Ak )−d ( Ak )

• Rezerva totală – Rt ( Ak ) reprezintă intervalul maxim cu care poate fi amânată o anumită activitate fără a afecta termenul final al proiectului:

Rt ( Ak )=t Mt ( Ak )−tm

i ( Ak )−d ( Ak )

Dacă Rt ( Ak ) = 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 )=tmt ( Ak )−tm

i ( Ak )−d ( Ak )

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:

15

Page 16: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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

i ( Ak )=tmi ( Ak )

tMt ( Ak )=tm

t ( Ak )

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.

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).

16

Page 17: Tema 9 - Drumul Optim, Drumul Critic - Metode

Design broşură

Selectare voluntari

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

Redactare conţinut

32

4

3

1312

4 6

2

3

15

7 8 9

Activitate fictivă Activitate fictivă

Nita Razvan - IMSA

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)

- 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.

17

Page 18: Tema 9 - Drumul Optim, Drumul Critic - Metode

Design broşura

Selectare voluntari

Tipărire broşuri

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

Redactare conţinut

32

4

3

1312

10/ 0 / 0

69/ 0 / 9

46/ 0 / 6

55/ 1 / 6

32/ 6 / 8

22/ 0 / 2

913/ 0 / 13

812/ 0 / 12

79/ 0 / 9

Nita Razvan - IMSA

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 - 2B - 2C - 4D - 3E - 3F C 4G B, F 1H E 3I E 2J G 1

18

Page 19: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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

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 ( Ak )=d0 ( A k )+4 dm ( Ak )+d p ( Ak )

6–dispersia σ 2 ( Ak )

σ 2 ( Ak )=( dp ( Ak )−d0 ( Ak )6 )

2

19

Page 20: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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= ∑Ak ϵ Dc

d ( Ak )

– dispersia σ n2 : σ n

2= ∑Ak ϵ Dc

σ 2 ( Ak )

Probabilitatea de realizare a duratei planificate a proiectului T p> tnse determină astfel:

– se determină factorul de probabilitate z:

z=T p−t n

√σn2

– 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.

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

20

Page 21: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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.

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

21

Page 22: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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 precedentă

Durata

(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 sintetizate

3.1 20

3.3 Testare 3.2 10

4.1 Realizare programe de verificare recepţie date la sediu

3.3 5

4.2 Realizare programe pentru generare răspuns la recepţie date

4.1 12

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 5.3

1

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 specialiate

2.3 4.3 5.3

8

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

22

Page 23: Tema 9 - Drumul Optim, Drumul Critic - Metode

Nita Razvan - IMSA

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

Cod WBS Descriere Marja totală (zile)

Marja 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 sintetizate

33 0

3.3 Testare 33 0

4.1 Realizare programe de verificare recepţie date la sediu

33 0

4.2 Realizare programe pentru generare răspuns la recepţie date

33 0

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 specialiate

21 1

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:

23

Page 24: Tema 9 - Drumul Optim, Drumul Critic - Metode

0

30

1

LSD

= momemtul celmai târziu de

începere a activităţii

ESD

= momentul cel maidevreme de

începere a activităţii

1.1. Determinare flux lucru

15

1545

2

evenimentulde

start a

activităţii

evenimentulde

finalizarea

activităţii

EFD

= momemtul celmai devreme

definalizare a activităţii

LFD

= momemtul cel maitârziu de

finalizare aactivităţii

Nita Razvan - IMSA

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.

24

Page 25: Tema 9 - Drumul Optim, Drumul Critic - Metode

0

30

1

LSD

= momemtul celmai târziu de

începere a activităţii

ESD

= momentul cel maidevreme de

începere a activităţii

1.1. Determinare flux lucru

15

1545

2

evenimentulde

start a

activităţii

evenimentulde

finalizarea

activităţii

EFD

= momemtul celmai devreme

definalizare a activităţii

LFD

= momemtul cel maitârziu de

finalizare aactivităţii

Drum critic

Legenda

0

301 25

553

40

736

60

937

70

1038

75

1089

87

12010

100

13013

15

452

50

804

65

955

40

7011

90

12012

101

13114

106

13615

109

13916

119

14917

120

15018

1.1. Determinare flux lucru1.2 Colectare informaţii necesare raportări

2.1 Proiectare structură bază de date2.2 Scripturi de interfaţare cu alte softuri din filiale

2.3 Testare

3.1 Proiectare structuri de sintetizare date3.2 Realizare scripturi pentru încărcare în structuri sintetizate

3.3 Testare

4.1 Realizare programe de verificare recepţie date la sediu4.2 Realizare programe pentru generare răspuns la recepţie date

4.3 Testare

5.3 Scriere documentaţie5.1 Proiectare modalitate codificare date5.2 Unificare nomenclatoare existente

6.1 Integrare

6.2 Definire criterii de acceptanţă

6.3 Testare

7.1 Programare grupe de utilizatori în funcţie de specialiate

7.2 Şcolarizare

7.3 Evaluare şcolarizare

15 10

25 15 30

15

15

20 10 5 12 10

50 10

1 5 3 10 1

8

Nita Razvan - IMSA

25

Figura 6 - Diagrama de reţea a proiectului

Page 26: Tema 9 - Drumul Optim, Drumul Critic - Metode

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 arborescente4. I. Tomescu – Probleme de combinatorica si teoria grafurilor, Editura Didactica si

Pedagogica, Bucuresti, 19815. T. H. Cormen, C. E Leiserson, R. Rivest – Introducere in algoritmi, Editura Libris,

Bucuresti, 20006. L. Livoschi, H. Georgescu – Sinteza si analiza algoritmilor, Editura Stiintifica,

Bucuresti, 1986