TEORIA ORDONANȚĂRII

 

O problemă de ordonanțare constă în stabilirea unei ordini de efectuare a operațiilor (activităților) unui proiect, astfel ca interdependențele dintre ele să fie respectate în cadrul resurselor disponibile și durata totală de execuție a acestuia să fie minimă.

Pentru a putea concretiza definiția de mai sus, trebuie clarificate noțiunile de proiect, operații (activități) ale acestuia, interdependențe între operații și resursă a proiectului.

 

1.  Prin proiect vom înțelege o acțiune de mare amploare sau un proces complex destinat atingerii unui scop bine precizat. La un proiect deosebim următoarele caracteristici:

 

-       un obiectiv, care poate fi un produs, o cantitate de informații sau un rezultat de natură organizatorică;

-       un ansamblu de activități (subacțiuni, subprocese, operații), corelate logic și tehnologic, a căror realizare permite atingerea scopului propus;

-       un proces tehnologic prin care se precizează intercondiționărilor între activități, interesând în special ordinea de execuție a acestora.

 

Proiectele pot fi clasificate după natura lor în:

 

-       proiecte industriale și proiecte de investiții, prin care se obține un produs material (de exemplu construcția unei clădiri, pod, tunel, etc);

-       proiecte organizatorice al căror scop este de a obține un rezultat de natură informațională sau organizatorică (de exemplu un proiect de cercetare științifică).

 

Pentru a permite o analiză amănunțită a desfășurării lui, o alegere a variantelor optime de execuție și un control continuu al evoluției sale, trebuie să descompunem proiectul în părți componente la un nivel care să permită tratarea unitară a fiecărei părți și stabilirea conexiunilor între acestea. Aceste componente se numesc operații sau activități.

O activitate este o parte distinctă dintr-un proiect, un subproces precis determinat, care consumă timp și resurse. Vom presupune în continuare că activitățile au următoarele proprietăți:

 

-       fiecare activitate este indivizibilă (nu se mai descompune în subactivități);

-       fiecare activitate are o durată cunoscută;

-       o activitate, odată începută, nu mai poate fi întreruptă.

 

Dintre intercondiționările (interdependențele) dintre activități, ne interesează, în special, cele temporale, numite relații de precedență, care pot fi de trei tipuri:

 

1.      de tip "terminare – început". Acest tip este cel mai frecvent întâlnit și spunem că o activitate A precede activitatea B printr-o interdependență de tip "terminare – început" dacă activitatea B nu poate începe decât după un interval de timp tAB de la terminarea activității A. Acest interval poate fi egal și cu zero, caz în care spunem că activitatea A precede direct activitatea B;

2.      de tip "început – început". Acest tip este frecvent întâlnit și spunem că o activitate A precede activitatea B printr-o interdependență de tip "început – început" dacă activitatea B nu poate începe decât după un interval de timp tAB de la începerea activității A. Acest interval poate fi chiar mai mare decât durata activității A, caz în care avem de fapt o dependență de tipul "terminare – început", putând chiar privi primul tip ca un caz particular al celui de-al doilea;

3.      de tip "terminare – terminare". Spunem că o activitate A precede activitatea B printr-o interdependență de tip "terminare – terminare" dacă activitatea B nu se poate termina decât după un interval de timp tAB de la terminarea activității A sau că activitatea A trebuie terminată cu cel puțin tAB unități de timp înaintea terminării activității B.

 

Prin durată totală de execuție a unui proiect înțelegem intervalul de timp în care se efectuează toate activitățile acestuia, respectând toate interdependențele dintre activități.

A programa un proiect înseamnă a stabili termenele de începere pentru fiecare activitate în parte, ținând seama de restricțiile impuse de procesul tehnologic, duratele activităților și resursele disponibile. Pentru un proiect dat, există un număr enorm de programări admisibile. Un interes deosebit prezintă programul optim, adică acel program care, pe de o parte, satisface restricțiile impuse iar, pe de altă parte, optimizează un anumit criteriu de eficiență economică.

Criteriul de optimizare nu este același pentru toate proiectele, el este stabilit pentru fiecare caz în parte și definește obiectivele majore ale conducerii proiectului. În funcție de aceste obiective, criteriul poate fi durata totală minimă, costul total minim, folosirea cât mai uniformă a resurselor sau o sinteză a acestora. Deci, programul optim este acea desfășurare a proiectului, precizată prin termenele de începere ale activităților, care conduce la o eficiență maximă.

Deoarece, așa cum se vede și din cele spuse mai sus, situațiile din practică ce necesită rezolvarea unei probleme de ordonanțare sunt foarte variate, s-au propus numeroase modele pentru rezolvarea lor. În continuare vor fi prezentate câteva dintre modelele cele mai frecvent utilizate în practică.

 

 

 

1.     Modele de analiză a drumului critic (ADC)

 

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 acțiunii complexe.

La definirea listei de activități specialistul sau specialiștii care participă la această operație folosesc experiența lor 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.

Un astfel de tabel trebuie să conțină cel puțin următoarele elemente:

 

-       activități: în această coloană se enumeră activitățile proiectului, fiind puse în evidență printr-o denumire sau printr-un simbol (codul activității);

-       condiționări: se precizează, pentru fiecare activitate, activitățile imediat precedente, prin simbolurile lor; activitățile de start nu au activități precedente, în căsuță fiind trecută o liniuță;

-       durata: pentru fiecare activitate se precizează durata de execuție, într-o anumită unitate de măsură. Durata unei activități este o constantă.

 

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

-

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

 

 

Există mai multe moduri de a reprezenta un proiect printr-un graf, cele mai cunoscute fiind prezentate mai jos:

 

 

A.  Metoda CPM (Critical Path Method)

 

 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). Se obține o relație model-obiect, care pune în evidență particularitățile de o mare însemnătate practică, în special, proprietățile de succesiune temporală.

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:

 


                              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.

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

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

Dacă se presupune că o activitate A este precedentă activității B, în funcție de tipul de interdependență, în graficul rețea arcele corespunzătoare activităților A și B vor avea următoarea reprezentare:

 

                                                                         

  sau (pentru tAB = 0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.      în graf nu sunt admise circuite (existența unuia ar însemna că orice activitate a acestuia ar fi precedentă ei însuși). Deoarece, pentru un proiect foarte mare graful va avea foarte multe arce, se poate întâmpla să creăm un circuit fără să ne dăm seama. Pentru a evita acest lucru, vom introduce o regulă mai ușor de respectat, care o implică pe cea dinainte:

8.      nodurile vor fi numerotate, numerotarea făcându-se în așa fel încât, pentru fiecare activitate, numărul nodului de început să fie mai mic decât numărul nodului de final al activității.

9.      graful are un singur nod inițial (semnificând evenimentul "începerea proiectului") și un singur nod final (semnificând evenimentul "sfârșitul proiectului");

10.  orice activitate trebuie să aibă cel puțin o activitate precedentă și cel puțin una care îi succede, exceptând bineînțeles activitățile care încep din nodul inițial al proiectului și pe cele care se termină în nodul final al proiectului;

11.   deși există activități care se execută în paralel, care pot începe în același moment și se pot termina în același moment, este interzis ca cele două arce corespunzătoare să aibă ambele extremități comune, altfel desenul care rezultă nu mai e graf. În desenul de mai jos se arată care este reprezentarea corectă, F fiind o activitate fictivă:

 

 

 

 

 

 

 

 

 


12.  nu trebuie introduse dependențe nereale (neprevăzute în tabelul de condiționări). Astfel, dacă în tabelul de condiționări vom avea situația:

Tabelul 2

Activitate

Activitate direct precedentă (condiționări)

A

-

B

-

C

A,B

D

A

 

atunci reprezentarea:

 

 

 

 

 

 

 

 

 

 


este incorectă, deoarece introduce condiționarea, inexistentă în tabel, a activității D de activitatea B. Reprezentarea corectă este:

 

 

 

 

 

 

 

 

 

13.  să se folosească, pe cât posibil, numărul minim de activități fictive, pentru a nu complica excesiv desenul. De exemplu același efect ca în figura 4 putea fi obținut și prin reprezentarea:

 

 

 

 

 

 

 

 


dar am fi folosit o activitate fictivă în plus, inutilă.

 

Dacă două sau mai multe activități  au aceeași activitate direct precedentă, de exemplu  A precede B și A precede C, reprezentarea în graful-rețea va avea forma din figura 5 (a). Arcele B și C simbolizează două activități care nu pot începe decât după ce s-a terminat activitatea A. Activitățile B și C pot fi executate simultan. De asemenea execuția unei activități poate depinde de terminarea mai multor activități direct precedente, de exemplu A precede C și B precede C ca în figura 5 (b). În această situație, activitatea C nu poate începe, logic, decât după ce s-au terminat activitățile A și B.

 

 

 

 

 

 

 

 

 

 

 

 


Proiectul dat prin tabelul 1, poate fi modelat, în reprezentarea activităților pe arce, prin graful-rețea din figura 6, numerotat secvențial.

 

 

 

 

 

 

 

 

 

 

 

 

 


Numerotarea nodurilor permite să identificăm fiecare activitate prin perechea de noduri (de început și sfârșit). De exemplu, activitatea D se identifică prin perechea (3,5), activitatea E prin (3,4) etc.

 

 

Analiza proiectului

 

Analiza proiectului constă în determinarea duratei minime a proiectului, determinarea intervalelor de timp în care poate avea loc fiecare din evenimentele reprezentate prin noduri și determinarea intervalelor de timp în care pot fi plasate activitățile, astfel încât să se respecte toate condiționările și să obținem timpul minim de execuție al proiectului.

Este evident că durata minimă de execuție a proiectului este cel mai mic interval de timp în care pot fi efectuate toate succesiunile de activități din proiect. O succesiune de activități corespunde unui drum în graf și deci, durata minimă de execuție a proiectului este cel mai mic minorant al lungimilor tuturor drumurilor din graf. Cum există un număr finit de drumuri, mulțimea lungimilor acestora este finită și cel mai mic minorant al ei este maximul acesteia, adică durata drumului de lungime maximă. Deoarece graful nu are circuite și are un singur punct inițial și unul singur final, este evident că cele mai lungi drumuri vor fi cele dintre nodul inițial și cel final. Avem deci de găsit drumul de lungime maximă dintr-un graf fără circuite, caz în care se poate aplica algoritmul lui Ford simplificat.

 Conform acestui algoritm, se calculează pentru fiecare nod al grafului:

 

A.  Termenul cel mai devreme de realizare a evenimentului j. Acest termen reprezintă momentul cel mai devreme posibil de terminare a tuturor activităților care converg în nodul j și este egal cu valoarea maximă a drumurilor dintre evenimentul inițial 1 și evenimentul j, pe care îl vom  nota cu = dmax(1,j). Termenul cel mai devreme (numit și termenul minimal) a evenimentului j, conform algoritmului lui Ford în grafuri G = (X,G) fără circuite, se calculează astfel:

 

 =

 

Vom presupune, fără a restrânge generalitatea, că t1 = 0, pentru evenimentul inițial 1 și, în acest caz, termenul de realizare cel mai devreme al unui eveniment oarecare j va fi dat de formula:

 

 =

 

Această formulă permite calculul termenelor pentru evenimente, prin parcurgerea grafului-rețea în sens-înainte (parcursul înainte) și durata minimă de execuție a proiectului va fi termenul cel mai devreme de realizare al nodului final al grafului.

Acest termen devine termenul impus de realizare al proiectului și el nu mai poate fi depășit, depășirea lui însemnând doar o proastă organizare a lucrului.

 

B. Termenul cel mai târziu de realizare a evenimentului i. Acest termen (numit și termen maximal) reprezintă momentul cel mai târziu posibil de începere a activităților care pleacă din nodul i astfel încât toate succesiunile de activități dintre acest nod și nodul final să mai poată fi efectuate până la termenul final de realizare al proiectului și este egal cu diferența între durata minimă de realizare a proiectului și durata drumului de lungime maximă dintre evenimentul i și n. Acest termen se notează cu  = dmax(1,n) – dmax(i,n).

Pentru calcularea acestor momente trebuie calculate duratele drumurilor de la nodul final spre nodul inițial și apoi scăzute din durata minimă a proiectului, calcul care va fi făcut aplicând, de asemenea, algoritmul lui Ford simplificat.

Conform celor de mai sus, termenul cel mai târziu de realizare a unui eveniment, cu respectarea duratei minime a proiectului (notată T= dmax(1,n) = ), este dată de formula:

 

 =

 

Intervalul [ ,] se numește intervalul de fluctuație al evenimentului j. Evenimentul j se poate plasa în orice moment al acestui interval de fluctuație, fără a periclita durata totală a întregului proiect. Acest interval îl putem defini ca pe o rezervă de timp R(j) a evenimentului j:

 

R(j) = –                        

 

Dacă R(j) = 0  evenimentul j trebuie să aibă loc la termenul fixat = , pentru că orice întârziere va duce la prelungirea duratei întregului proiect.

 

Exemplu: Vom arăta în continuare modul cum se calculează aceste termene, pentru proiectul dat de tabelul 1. Pentru o bună organizare a datelor vom reprezenta fiecare eveniment al proiectului printr-un cerc divizat în trei părți (vezi figura 7), în care vom trece în partea de sus numărul evenimentului i, în partea inferioară-stânga termenul cel mai devreme de realizare  și în partea inferioară-dreapta termenul cel mai târziu de realizare .

 

 

 

 

 

 

 

 

 

 

 


În figura 8 a fost desenat graful asociat proiectului.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Primul eveniment se consideră a avea loc la momentul t1 = 0. Calculul termenelor minimale pornește de la primul eveniment, având în vedere că se poate calcula termenul cel mai devreme al unui eveniment numai dacă acesta a fost calculat pentru toate evenimentele precedente:

 

 = 0

 = max ( + d 12) = max (0 + 3) = 3

 = max ( + d13) = max (0,2) = 2

 = max ( + d34) = max (2 + 4) = 6

 = max ( + d25,  + d35,  + d45) = max (3 + 2, 2 + 6, 6 + 0) = 8

 = max ( + d46,  + d56) = max (6 + 1, 8 + 4) = 12

 

Calculul termenelor maximale se face considerând durata minimă a proiectului T = 12, începând de la ultimul nod, având în vedere că se poate calcula termenul cel mai târziu al unui eveniment numai dacă acesta a fost calculat pentru toate evenimentele succesoare.  Pentru aceasta se ia  = 12 și se calculează:

 

 = min ( – d56) = min (12 – 4) = 8

 = min ( – d46,  - d45) = min (12 –  1, 8 – 0) = 8

 = min ( – d35,  – d34) = min (8 – 6, 8 – 4) = 2

 = min (– d25) = min (8 – 2) = 6

 = min (– d12,  – d13) = min (6 – 3, 2 – 2) = 0

 

Următoarea etapă în analiza proiectului constă în aflarea termenelor între care trebuie să se efectueze activitățile, calculându-se în acest sens, pentru fiecare activitate (i,j), momentul minim de începere: (i,j), momentul minim de terminare: (i,j) , momentul maxim de începere: (i,j) și momentul maxim de terminare: (i,j).

 

1.      Momentul (termenul minim) de începere cel mai devreme a activității ( i.j). Deoarece o activitate nu poate începe decât după ce se termină toate cele precedente, momentul minim de începere este evident termenul cel mai devreme de realizare al evenimentului i:

 

(i,j) =

 

2.      Momentul (termenul minim) de terminare cel mai devreme a activității (i.j) este egal cu suma dintre termenul cel mai devreme de începere și durata activității:

 

(i,j) = (i,j) + dij

 

3.      Momentul (termenul maxim) de terminare cel mai târziu a activității (i,j) este definit de termenul cel mai târziu de realizare a evenimentului j:

 

(i,j) =

 

4.      Momentul (termenul maxim) de începere cel mai târziu a activității (i,j) este egal cu diferența dintre termenul cel mai târziu de terminare și durata activității:

 

(i,j) = (i,j) - dij

 

 

Aceste momente spun doar în ce interval poate fi situată o activitate, dar nu spun care este diferența între o plasare posibilă sau alta. În acest scop vom calcula, pentru fiecare activitate (i,j), următoarele repere de timp:

 

a)      Rezerva totală de timp (Rt) a unei activități (i,j), ca fiind diferența dintre termenul cel mai târziu de terminare și termenul cel mai devreme de terminare:

 

Rt(i,j) = – = – – dij =  –  – dij

 

Rezerva totală de timp a unei activități (i,j) reprezintă timpul maxim cu care se poate amâna sau se poate mări durata activității, fără depășirea termenului final de execuție al proiectului.

b)     Rezerva liberă de timp (Rl) a unei activități (i,j):

 

Rl(i,j) =  –  – dij

 

Diferența între rezerva totală și rezerva liberă:

 

Rt(i,j) - Rl(i,j) =  –

 

pentru o activitate (i,j), este egală cu fluctuația evenimentului final j al activității. De aici rezultă că rezerva liberă a unei activități (i,j) reprezintă intervalul de timp ca parte a rezervei totale de timp, cu care o activitate se poate amâna (sau se poate mări durata activității) fără a perturba termenul cel mai devreme de realizare al termenului final j (adică fără a consuma din rezervele de timp ale activităților care o succed).

c)      Rezerva independentă de timp (Rs) a unei activități (i,j):

 

Ri(i,j) =  –  – dij

 

Rezerva independentă de timp a unei activități (i,j) există dacă Ri(i,j) > 0 și dacă există, ea reprezintă timpul maxim cu care se poate amâna (sau se poate mări durata activității) astfel încât să nu perturbe fluctuația evenimentelor de la extremităților activității. Dacă Ri(i,j) £ 0 atunci activitatea (i,j) nu are rezervă independentă de timp. Rezerva inde­pendentă de timp arată intervalul în care poate fi plasată o activitate fără a consuma nici din rezervele de timp ale activităților ce o preced, nici din cele ale celor ce o succed.

Diferența între rezerva liberă și rezerva independentă:

 

Rl(i,j) – Ri(i,j) =  –

 

este egală cu fluctuația evenimentului i (cu care începe activitatea).

 

Intervalele de fluctuație pentru evenimente și rezervele libere de timp pentru activități caracterizează elasticitatea unui program de ordonanțare. Cu cât acestea sunt mai mici cu atât programul este mai rigid.

Drumul (drumurile) a cărui lungime este egală cu durata minimă de execuție a proiectului se numește drum critic. Este clar că orice amânare a unei activități a acestuia duce la lungirea duratei de execuție a proiectului, deci nici una din aceste activități nu dispune de rezervă de timp. Activitățile de pe drumul critic și prin extensie, orice activitate care nu dispune de rezervă de timp, se numește activitate critică.

O activitate critică (i,j) este caracterizată prin:

 

 =  ,   =  ,   –  = dij

 

De aici rezultă că, pentru o activitate critică, avem:

 

Rt(i,j) = Rl(i,j) = Ri(i,j) = 0

 

Termenele calculate pentru evenimente sunt utile în primul rând pentru calculul termenelor pentru activități, dar ele servesc și pentru evaluarea stadiului de realizare al proiectului, verificând dacă termenele de realizare pentru fiecare eveniment se află în intervalul de fluctuație.

În practică este nevoie de mai multe ori să ne interesăm de activități, în ceea ce privește stadiul realizării acestora, decât  de evenimente. În primul rând interesează activitățile critice (cele situate de-a lungul drumului critic), ele trebuind să fie realizate la datele calculate. Aceste activități nu dispun de rezervă de timp, deci trebuie să înceapă și să se termine exact la termenele calculate, pentru a nu depăși termenul de finalizare al proiectului. Celelalte activități pot fi amânate cu rezervele lor de timp, dar consumarea acestora face ca proiectul să devină rigid.

Pentru activitățile proiectului analizat mai sus, termenele activităților și rezervele de timp sunt date în tabelul de mai jos:

Tabelul 3

Activități

Cond.

Durate

Rt

Rl

Ri

A = (1,2)

-

3

0

3

3

6

3

0

0

B = (1,3)

-

2

0

2

0

2

0

0

0

C = (2,4)

A

2

3

5

6

8

3

3

0

D = (3,4)

B

6

2

8

2

8

0

0

0

E = (3,5)

B

4

2

6

4

8

2

0

0

F = (4,6)

C,D,E

4

8

12

8

12

0

0

0

G = (5,6)

E

1

6

7

11

12

5

5

0

 

Conform tabelului 3 proiectul este foarte rigid, nici o activitate nedispunând de rezervă independentă de timp.

Examinarea reperelor de timp permite cunoașterea posibilităților pe care le are un management de program de a interveni la timp pentru executarea la termenele calculate a tuturor activităților unui proiect dat. Durata proiectului calculată prin această metodă nu poate fi redusă prin micșorarea rezervelor.

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.

 

B.  Metoda MPM (Metro Potențial Method)

 

 

Metoda potențialelor sau MPM este un procedeu de analiză a drumului critic care încearcă să depășească neajunsurile metodei CPM, în care, ca și în metoda CPM, se analizează parametrul timp, diferența constând în felul în care se construiește graful rețea:

-       fiecărei activități A i se asociază un nod A;

-       fiecărui nod i se asociază o valoare dată de durata activității pe care o reprezintă;

-       condiționarea (succesiunea) a două activități se reprezintă printr-un arc, orientat de la o activitate la alta;

-       fiecărui arc dintre două activități A și B i se asociază un număr reprezentând valoarea tAB.

 

Reprezentarea activitate – nod permite ca între activitățile unui proiect să avem mai multe tipuri de legături de precedență. Cele trei tipuri de precedență se vor reprezenta astfel:

 

1)      Legătura "terminare - început" se reprezintă grafic în fig. 10.

 

 

 

 

 

 

 


Activitatea B începe după ce s-a terminat activitatea A. Putem considera că arcul (A,B) are el însuși o durată tAB ³ 0, ceea ce înseamnă că activitatea B poate începe după ce s-au scurs tAB unități de timp de la terminarea activității A. În general, nu toate legăturile "terminare - început" au durată, cele mai multe având durata tAB = 0.

 

2)      Legătura "început-început" poate fi utilizată pentru a arăta simultaneitatea executării a două activități prin puncte de început. Aceasta este reprezentată în fig. 11.

 

 

 

 

 

 

 

 

 


Activitatea B poate începe cu cel puțin tAB unități de timp după începerea activității A. Dacă tAB = 0 activitățile pot începe în același timp.

 

3)     

Legătura "terminare – terminare" poate fi, de asemenea, utilizată pentru a indica simultaneitatea executării a două activități prin punctul de terminare (fig. 12). Această legătură arată că activitatea A este terminată cu cel puțin tAB unități de timp înaintea terminării activității B.

Vom numi activitate de bază orice activitate folosită ca bază de referință, față de care este format timpul de așteptare. În figura 11 activitatea de bază este A iar în figura 12 activitatea de bază este B. Durata de așteptare tAB se raportează la activitatea de bază.

Proiectului dat prin tabelul 2 îi corespunde în reprezentarea activitate nod graful-rețea din figura 13.

 


    Tabelul 4

Activități

Dependențe

A

-

B

-

C

A

D

B

E

C

F

C

G

F,D

H

E,F

 

 

Graficul rețea în reprezentarea activitate – nod nu conține activități fictive, eventual cu excepția unei activități de începere și/sau a unei activități de terminare a proiectului, necesare în cazul în care există mai multe activități care nu sunt condiționate de nici o activitate a proiectului (acestea devenind toate noduri inițiale ale proiectului, deși trebuie să fie un singur nod inițial) sau, analog, în cazul în care sunt mai multe activități care nu au nici o activitate succesoare.

Între un graf rețea în reprezentarea activitate – nod și un graf rețea în reprezentarea activitate – arc se pot defini următoarele corespondențe (vezi figura 14):

 

MPM

 

 

CPM

tAB = 0

 

 

 

 

Û

 

tAB > 0

 

 

 

 

Û

 

tAB

 

 

 

 

 

Û

 

 

 

 

 

Û

 

Figura 14

 
 

 

 

 

Calculul termenelor și rezervelor

 

Calcularea termenelor în reprezentarea activitate – nod este asemănătoare cu cea din  reprezentarea activitate – arc. În această reprezentare un nod al grafului se reprezintă printr-un dreptunghi compartimentat în șase părți, care vor fi completate astfel:

 

-       centru – sus: numărul sau simbolul activității: i, A, …

-       centru – jos: durata activității: d(i), d(A), …

-       stânga – sus: termenul cel mai devreme al începerii activității: , , …

-       dreapta – sus: termenul cel mai devreme al terminării activității: , , …

-       stânga – jos: termenul cel mai târziu al începerii activității: , , …

-       dreapta – jos: termenul cel mai târziu al terminării activității: , , …

 

Aceste elemente pot fi urmărite în figura 15.

 

 

 

 

 

 

 

 


Ne vom referi în continuare la cazul a două activități A și B, considerând cele trei tipuri de relații între activități. Pentru ușurința calculului vom urmări figurile 16 și 17.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


1. Termenul cel mai devreme al începerii activității B, conform figurii 16  va fi dat de formula:

 

 

unde activitatea A este precedentă activității B și tAB este o durată de așteptare ³ 0.

2. Termenul cel mai devreme al terminării  activității B este egal cu suma dintre termenul cel mai devreme al începerii activității B și durata sa:

 

 =  + d(B)

 

3. Termenul cel mai târziu de terminare a activității A, conform figurii 17 va fi dat de formula:

 

unde activitatea A este direct precedentă activității B și tAB este o durată de așteptare ³ 0.

 

4. Termenul cel mai târziu de începere al activității A este egal cu diferența dintre termenul cel mai târziu de terminare al activității A și durata sa:

 

 =  – d(A)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Pentru fiecare activitate vom defini următoarele rezerve de timp:

 

a)      Rezerva totală de timp (Rt) a unei activități A:

 

Rt(A) =  –  =  –  – d(A)

 

b)      Rezerva liberă de timp (Rl) a unei activități A:

 

Rl(A) =

 

unde activitatea A este direct precedentă activității B.

Modul cum se calculează termenele și rezervele de timp pentru activitățile unui proiect prin metoda MPM este pus în evidență de exemplul dat prin tabelul 1 și reprezentat în figura 18.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Din acest graf rețea se formează tabelul 5 cu termenele și rezervele de timp pentru activitățile proiectului:

Tabelul 5

Activități

Cond.

Durate

Rt

Rl

A

-

3

0

3

3

6

3

0

B

-

2

0

2

0

2

0

0

C

A

2

3

5

6

8

3

3

D

B

6

2

8

2

8

0

0

E

B

4

2

6

4

8

2

0

F

C,D,E

4

8

12

8

12

0

0

G

E

1

6

7

11

12

5

5

 

 

 

2.      Grafuri ADC integrate și condensate

 

 

În practica managementului acțiunilor economice complexe prim metodele ADC, nivelul de detaliere în activități a proiectelor depinde de scopul urmărit (coordonare de ansamblu sau conducere de detaliu), de timpul avut la dispoziție pentru elaborarea grafurilor, de specialiștii disponibili etc.

Dacă graful sumar care se întocmește pentru orientarea generală a echipei de conducere a acțiunii (să‑l numim graf director) este totdeauna necesar, când se face trecerea la conducerea de amănunt, sunt tot atât de necesare grafurilor detaliate.

În general grafurile detaliate se fac pe părți din acțiunea complexă, numite obiective sau obiecte. Astfel, dacă ne referim de exemplul la un proiect de construcții, graful corespunzător întregului proiect poate fi divizat în grafuri pe obiect, cum ar fi:

 

-       graful proiectării;

-       graful organizării șantierului;

-       unul sau mai multe grafuri pentru lucrări de drumuri;

-       mai multe grafuri pentru lucrări de rețele (apă, canal abur, electrice etc.);

-       mai multe grafuri pentru lucrări de construcții‑montaj (câte unul pentru fiecare hală sau clădire) etc.

 

Grafurile pe obiect au individualitatea lor și se tratează ca entități de programare distincte; în același timp însă, trebuie gândită coordonarea lor în cadrul acțiunii complexe din care fac parte. În acest scop, după întocmirea separată a grafurilor pe obiect apare necesitatea asamblării lor într‑un tot, care constituie graful integrat.

În continuare vom arăta cum se obține graful integrat al mai multor grafuri pe obiect.

Fie P1, P2,...,Pn mai multe grafuri ADC pe obiect și presupunem că între activitățile diferitelor grafe există condiționări logice și tehnologice. Presupunem de asemenea că fiecare din grafuri are o numărătoare proprie a evenimentelor, cunoscută.

 

Pasul 1.     se desenează cele n grafuri alăturat;

Pasul 2.     se reprezintă prin activități fictive (în reprezentarea activitate-arc) sau săgeți (în reprezentarea activitate-nod) toate condiționările logice și tehnologice existente între activități din proiecte diferite;

Pasul 3.     se introduce un nod suplimentar fictiv I (activitate fictivă) care va fi legat la toate nodurile (activitățile) inițiale ale grafurilor P1, P2, ..., Pn prin activități fictive (săgeți), acesta fiind nodul (activitatea) inițial al grafului integrat;

Pasul 4.     se introduce un alt nod suplimentar fictiv F (activitate fictivă), de care se vor lega toate nodurile (activitățile) finale ale grafelor specificate, prin activități fictive (săgeți), acesta fiind nodul (activitatea) final al grafului integrat.

Pasul 5.     se găsește drumul critic în graful integrat și se recalculează termenele activităților întregului graf.

 

De exemplu, dacă grafurilele din figurile 13 și 18 ar fi grafurile obiect ale unui proiect complex, atunci integrarea acestora ar avea reprezentarea din figura de mai jos:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Am reprezentat cu linii groase drumurile critice din cele două grafuri și cu linii dublate condiționările dintre activități din grafuri diferite.

Dacă la nivelul conducerii operative interesează construirea și urmărirea grafurilor pe obiecte, deci determinarea drumului critic pentru fiecare graf  în parte, la nivelul coordonării întregii acțiuni va fi necesară cunoașterea drumului critic pentru graful integrat. Acesta, de regulă, diferă de fiecare din drumurile critice ale grafelor componente și de aceea trebuie calculat separat.

Graful integrat trebuie să respecte toate condițiile de construcție enumerate (de exemplu, prin legăturile integrate să nu apară circuite).

În foarte multe cazuri din practică, numărul activităților care rezultă prin integrarea mai multor grafuri pe obiect este considerabil, putând ajunge la zeci de mii, ceea ce depășește de multe ori posibilitatea de a le calcula și urmări, chiar cu ajutorul calculatoarelor puternice.

Cu atât mai puțin ar fi posibilă cuprinderea sintetică a unui asemenea graf la nivelul conducerii întregii acțiuni.

Pentru aceste motive a fost necesară găsirea unui mijloc de a reduce graful integrat, păstrându‑i în același timp principalele caracteristici. Această operație poartă numele de condensare iar rezultatul aplicării acesteia asupra unui graf se numește graf condensat. Condensarea se face după următoarele reguli:

 

a)      graful condensat va conține în mod obligatoriu nodurile de început și de sfârșit ale grafului și ale fiecăruia din grafurile pe obiect componente;

b)     el va cuprinde de asemenea toate activitățile și nodurile de pe drumul critic al grafului integrat;

c)      în graful condensat se vor reprezenta toate activitățile considerate deosebit de importante și care trebuie explicitate;

d)     din restul activităților nu se reprezintă decât activități sau grupe de activități strict necesare pentru a nu lăsa activități sau noduri "în aer", adică nelegate de alte activități precedente sau succesoare.

 

În cazul grafurilor mari și foarte mari, condensarea poate face ca numărul activităților păstrate să reprezinte 10‑20% din totalul celor din graful integrat, ceea ce reprezintă, evident, o simplificare considerabilă.

Legătura dintre diferitele grafuri care alcătuiesc graful integrat se poate evidenția cu ajutorul așa-numitelor noduri de conexiune. Acestea au, în primul rând, rolul de a permite desenarea grafurilor cu foarte multe activități, care nu încap pe a singură foaie de hârtie, prin împărțirea unui astfel de graf în mai multe componente, ce se reprezintă pe câte o foaie, legătura dintre ele făcându-se prin nodurile de conexiune. Un exemplu este dat în desenul de mai jos, în care nodurile de conexiune au fost desenate prin puncte negre

 

 

 

 

 

 

 

 

 

 

 

 


 

Fiecare graf se poate calcula independent, ținând seama, atât la calculul termenelor minime cât și la cel al termenelor maxime, de influența termenelor din celălalt graf, cu ajutorul arcelor care intră în nodurile de conexiune.

 

 

 

 

 

3.  Actualizarea grafurilor ADC

 

În practica realizării acțiunilor complexe, sunt numeroase cazurile când estimările inițiale de durată ale activităților nu pot fi respectate. Apare astfel necesitatea ca, periodic, să se examineze modul cum se realizează termenele calculate, în scopul punerii în evidență a eventualelor întârzieri și a luării măsurilor de recuperare a acestora.

Această activitate poartă numele de actualizare a grafurilor iar noul graf se numește graf actualizat.

Tehnica de actualizare a grafurilor poate fi descrisă succint astfel:

 

-       la data actualizării se examinează care activități sunt terminate, care sunt în curs de execuție și care sunt încă neîncepute. Cu această ocazie se reestimează duratele acțiunilor în curs de execuție precum și cele neîncepute;

-       se trece la recalcularea noilor termene considerând duratele activităților executate ca având durate nule, iar pentru restul activităților duratele reestimate;

-       se calculează noul drum critic; fie durata sa Dca. Dacă momentul în care se face actualizarea este Ta, noua estimare a duratei proiectului va fi Da = Ta + Dca. Dacă această nouă durată este egală sau mai mică decât cea inițială (D), nu sunt necesare măsuri speciale, deoarece lucrarea se va încadra în termenul stabilit. Dacă, dimpotrivă, Da > D se vor lua măsuri de scurtare a lui Dca, prin suplimentări sau redistribuiri de resurse.

 

Tehnica de actualizare descrisă mai sus este, evident, valabilă când la momentul Ta al actualizării, succesiunile și condiționările dintre activitățile neexecutate nu se modifică. Când apar astfel de modificări, odată cu reevaluarea datelor, se stabilesc noile condiționări, operând modificările respective în graful refăcut. Întrucât, însă, astfel de situații sunt relativ rare, procedeul de actualizare a grafelor rămâne foarte operativ, incomparabil mai simplu decât reactualizarea grafelor tip Gantt, care necesită de fiecare dată refacerea integrală a graficului.

 

 

4.  Optimizări cost‑durată

 

Estimarea duratelor acțiunilor complexe (problema ADC/TIMP) prin metodele expuse mai înainte, deși reprezintă o problemă deosebit de importantă din punct de vedere economic, nu este nici pe departe singurul aspect care poate fi urmărit cu ajutorul acestor metode.

O altă problemă în care pot fi utilizate instrumentele ADC sunt cele de analiză a costului execuției acțiunilor complexe, în funcție de durata de execuție a acesteia.

Este evident că, în funcție de pregătirea celor care efectuează lucrarea, de tehnologia folosită, de oportunitățile momentului etc, durata de execuție a unei acțiuni complexe poate varia, existând totuși o durată minimă posibilă Tmin și una maximă Tmax acceptabilă.

Evident, durata lucrării are numeroase implicații asupra costului, drept pentru care prezintă un deosebit interes determinarea acelei durate de execuție, intermediare lui Tmin și Tmax, căreia îi corespunde costul minim. În cele ce urmează vom prezenta succint această problemă.

 

 

Costurile unei activități

 

Vom considera că o activitate oarecare A, din cadrul unei acțiuni complexe, se poate efectua cu o durată dA care, din punct de vedere tehnologic, se situează între o limită inferioară dmin și una superioară dmax (dmin £ dA £ dmax).

De asemenea, este evident că mărimea costului activității (cA) depinde de durata de execuție a acesteia: cA = f(dA). Vom numi durată normală de execuție a activității durata care corespunde costului minim de execuție. O durată de execuție mai mare decât durata normală este dezavantajoasă atât din punct de vedere al timpului cât și al costului, astfel încât durata normală va fi și durata maximă acceptabilă de execuție dmax. O durată mai scurtă de execuție va costa mai mult din cauza eforturilor de urgentare (efectuarea de ore suplimentare care sunt plătite mai scump, aplicarea unor tehnologii mai costisitoare, folosirea unor substanțe mai scumpe etc), dar activitatea se va termina mai repede, cu beneficiile corespunzătoare. Dependența funcțională între cA și dA poate fi foarte complexă (pătratică, neliniară, concavă sau chiar discretă), însă ea poate fi aproximată cu o funcție liniară. S-a observat de asemenea că, în general, costul este descrescător în funcție de durată pe intervalul (dmin, dmax). Ținând cont de toate acestea, rezultă că graficul lui cA = f(dA) este o dreaptă, ca în figura de mai jos:

 

 

 

 

 

 

 

 

 

 


Din ipoteza liniarității costului rezultă că, costul urgentării cu o zi al proiectului este același, indiferent de a câta zi este vorba; acest cost este costul unitar al urgentării. El se calculează cu formula evidentă: cu =  și cu ajutorul lui se poate calcula foarte ușor costul oricărei durate intermediare lui dmin și dmax, cu una din formulele:

 

 

c(dA) = cmin + cuŚ (dA – dmin)                 sau                   c(dA) = cmax – cuŚ (dmax – dA)

 

 

 

Costul total al acțiunilor complexe

 

În general, costul total al unei acțiuni complexe are o structură identică cu acela al unei investiții, fiind format din:

 

-       costuri directe (CD) ‑ legate nemijlocit de realizarea activităților (costul resurselor, manoperei etc.);

-       costuri indirecte (CI) - cheltuieli generale, salariile personalului tehnic‑administrativ, alte cheltuieli de regie;

-       costul imobilizării fondurilor CIF ‑ pe perioada când investiția nu intră în funcțiune.

 

Dintre aceste costuri, costurile directe se calculează pentru fiecare activitate în parte, depind de durata de execuție a fiecărei activități și vor face obiectul analizei cost-durată, iar ultimele două reprezintă cheltuieli globale ale proiectului și depind doar de durata totală a proiectului.

Toate aceste costuri sunt evident, funcție de durata de execuție a investiției. În figura de mai jos se reprezintă forma generală a graficului funcțiilor CD, CI, CIF,          în care t reprezintă durata totală a investiției.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Curba CT reprezintă graficul funcției – sumă a celor trei funcții luate în considerare iar pe grafic se poate citi timpul optim de execuție al proiectului (topt) corespun­zător costului total minim (min CT).

În practică, CI și CIF se calculează la nivel contabil și nu pun probleme deosebite de calcul, iar CD se găsește în urma unei analize cost-durată. CD(t) reprezintă costul direct minim cu care se poate obține o durată t Î [tmin, tmax] de execuție a întregului proiect. Aflarea funcției CD(t) presupune aflarea valorilor costului direct pentru orice durată de efectuare a proiectului, ceea ce în cazul discret presupune un volum de calcule imens iar în cazul continuu este imposibil. De aceea se calculează de fapt doar un număr suficient de valori, celelalte obținându-se prin interpolarea acestora. Cum se vede din desen, graficul lui CT are forma aproximativă a unei parabole, deci numărul minim de valori pentru găsirea acesteia este 3, din care două sunt calculate pentru tmin și tmax, acestea fiind cele mai importante.

În cele ce urmează vom prezenta un algoritm pentru determinarea aproximativă a lui topt folosind 3 puncte ca suport al interpolării.

 

 

Algoritm pentru determinarea aproximativă a duratei optime

de execuție a unei acțiuni complexe

 

Etapa 1

 

Se construiește graful asociat proiectului conform condiționărilor dintre activități.

 

Etapa 2

 

Se găsește durata minimă de execuție și drumul critic pentru cazul în care toate activitățile ar fi efectuate la durata lor maximă (normală). Acesta este durata maximă acceptabilă de execuție a proiectului (tmax)și îi corespunde costul direct minim (CD(tmax) = CDmin) de execuție a proiectului, care se calculează adunând costurile minime ale tuturor activităților.

 

Etapa 3

 

Se găsește durata minimă de execuție și drumul critic pentru cazul în care toate activitățile ar fi efectuate la durata lor minimă. Aceasta este durata minimă posibilă de realizare a proiectului (tmin). Totuși, costul aferent acestei durate nu este suma costurilor maxime ale activităților, deoarece este evident că nu are sens să fie urgentate la maxim activitățile necritice (cele care dispun de rezervă de timp), aceasta neaducâd decât o scumpire inutilă a proiectului.

 

Etapa 3

 

Se relaxează activitățile necritice, în limita rezervei disponibile de timp a fiecăreia, alegându-se acea variantă de relaxare care duce la cea mai mare scădere a costului total, apoi se calculează costul proiectului pentru această variantă. Acesta este CD(tmin) = CDmax.

 
Etapa 4

 

În acest moment avem deja două puncte ale graficului. Pentru al găsi pe al treilea  alegem o durată intermediară t între tmin și tmax, relaxăm activitățile drumului critic obținut la etapa 2 cu un total de t – tmin zile și apoi și celelalte activități în limita rezervelor de timp disponibile ale lor, alegând acea variantă de relaxare care duce la cea mai mare scădere a costului total, în final  calculându-se costul proiectului pentru această variantă. Rezultă al treilea punct al graficului, de coordonate (t, CD(t)).

 

Etapa 5

           

Se găsește ecuația parabolei care trece prin cele trei puncte, se adună expresiile funcțiilor corespunzătoare celor trei tipuri de costuri obținându-se funcția costului total și se găsește cu ajutorul derivatei întâi valoarea topt în care se obține minimul acesteia.

 

Etapa 6

 

Se găsește, ca la etapa 4, costul direct minim cu care se poate executa proiectul în timpul topt care se adună la valorile celorlalte două costuri în topt și rezultă CTmin.

 

 

 

5. Graficul Gantt

 

Un instrument de mare utilitate în analiza drumului critic îl constituie graficul calendaristic tip Gantt, apărut la începutul secolului. Graficul (diagramă) Gantt exprimă la scara timpului, prin linii orizontale, durata activităților, și prin linii întrerupte (de exemplu) rezervele de timp. Graficul Gantt presupune divizarea acțiunii complexe pe care o reprezintă proiectul, în părți componente (activități) și eșalonarea acestora în timp, ținând seama de succesiunea tehnologică, termene impuse, resurse etc.

Dacă este întocmit în urma unei analize temeinice, graficul Gantt oferă informații bogate și extrem de sugestiv prezentate, privind desfășurarea lucrărilor, precum și o serie de informații derivate, privind eșalonarea resurselor (forță de muncă, materii prime, materiale, fonduri bănești). Aceste avantaje scad dacă, datorită fie amplorii acțiunii considerate, fie nivelului de detaliere dorit, numărul activităților ce compun graficul Gantt crește mult, ajungând la câteva sute sau mii.

Graficul Gantt exprimă la scara timpului un program de ordonanțare. Astfel, avem graficul Gantt la termenele cele mai devreme sau graficul Gantt la termenele cele mai târzii.

Pentru trasarea graficului Gantt se procedează astfel:

 

Pasul 1.     Se ordonează activitățile proiectului crescător conform unui program de ordonanțare.

Pasul 2.     Se reprezintă  activitățile prin bare orizontale de lungimi egale cu duratele activităților (axa orizontală fiind axa timpului), fiecare bară începând de la momentul de începere al activității corespunzătoare;

Pasul 3.     Se marchează fiecare activitate prin simbolul asociat sau prin numerele de ordine ale evenimentelor de la extremități deasupra barei corespunzătoare.

Pasul 4.     Rezerva totală de timp se figurează cu linie întreruptă, adiacent cu durata activității, după sau înainte (după tipul programului).

Pasul 5.     Pe fiecare linie orizontală se obișnuiește să se figureze o singură activitate, iar aceasta să fie imprimată de sus în jos și de la stânga la dreapta.

 

Pentru proiectul dat prin tabelul 1 și calculat prin grafurile din fig. 9 sau fig. 18 se desenează graficul Gantt din fig. 19, corespunzător programului de ordonanțare minorant (activitățile încep la termenele cele mai devreme) și din fig. 20, corespunzător programului de ordonanțare majorant (activitățile încep la termenele cele mai târzii).   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



6. Analiza resurselor

 

Dacă din punct de vedere al condiționărilor de tip precedență (temporale) existența activităților paralele este corectă din punct de vedere logic, putând exista oricâte activități care se desfășoară în același timp, dacă nu se intercondiționează între ele, neexistând nici o diferență între zilele proiectului, din punct de vedere practic, este clar că o zi în care se desfășoară în același timp 10 activități este mult mai intensă din punct de vedere al organizării și aprovizionării cu resurse decât o zi în care se desfășoară o singură activitate. Deci, dacă se ține cont doar de condiționările temporale pot apărea dezechilibre foarte mari în desfășurarea proiectului și/sau pot apărea zile în care necesarul de resurse ar fi mai mare decât disponibilul acestora.

Din cele spuse mai sus, se desprinde faptul că există cel puțin două probleme importante legate de resursele unui proiect:

 

-       problema alocării resurselor, în care se încearcă programarea activităților în așa fel încât în nici o zi să nu se depășească disponibilul din nici o resursă;

-       problema nivelării resurselor, în care se încearcă programarea activităților în așa fel încât în toate zilele să se folosească cam aceiași cantitate de resurse (sau, altfel spus, suma variațiilor de la o zi la alta să fie minimă).

 

Trebuie făcută și observația că analiza în cele două probleme de mai sus se face în general pentru resurse refolosibile, care nu se consumă în timp, adică cele care, după terminarea activității la care au fost alocate, se pot folosi la altă activitate. Resursele de acest tip sunt în principal forța de muncă și mașinile și utilajele.

Pentru expunerea celor două probleme este necesară și introducerea noțiunilor de intensitate a unei resurse și de profil a unei resurse.

 

1.      Intensitatea unei resurse este cantitatea necesară sau disponibilă din acea resursa, la un moment dat;

2.      Profilul unei resurse este diagrama în care se figurează variația intensității unei resurse în timp.

 

 

A.  Problema alocării resurselor

 

Soluția acestei probleme se poate obține, în cazurile foarte simple (puține activități și puține resurse), prin glisarea activităților în limitele termenelor lor maxime de începere și de terminare, aceasta făcându-se cel mai ușor pe baza graficului Gantt.

Dar, în practică, problemele au de cele mai multe ori sute sau chiar mii de activități și este necesară luarea în considerare a zeci de resurse importante, ceea ce face imposibilă rezolvarea problemei prin mijloace empirice, de tipul încercărilor de a glisa activitățile "după ochi" și obligă la căutarea unor metode riguroase, programabile pe calculator.

Formularea riguros‑matematică a problemei alocării resurselor conduce la modele de dimensiuni și complexități foarte mari, imposibil de rezolvat chiar cu calculatoarele cele mai puternice.

Din aceste motive se utilizează procedee heuristice, care, fără a da întotdeauna soluția optimă, oferă soluții cel puțin satisfăcătoare.

În cele ce urmează vom examina unele aspecte ale folosirii procedeelor heuristice de rezolvare a problemelor de alocare a resurselor.

Mersul operațiilor este, în general următorul*:

 

a)     se rezolvă problema ADC ‑ timp, construindu‑se graful corespunzător acțiunii complexe considerate și se calculează termenele activităților, rezervele și drumul critic;

b)     se încearcă plasarea tuturor activităților la momentul cel mai devreme de începere și se trasează profilul disponibilului resurselor considerate;

c)     începând cu activitățile care încep la termenul minim de începere zero și apoi în ordinea crescătoare a termenelor minime de începere, se examinează posibilitatea de a programa aceste activități, astfel ca să nu apară depășiri ale necesarului fața de disponibil, pentru nici a resursă;

d)     când se ajunge în situația ca, la un anumit moment să apară o astfel de depășire, se încearcă rezolvarea ei prin operații de "amânare" a unora din activități (evident, nu întotdeauna acest procedeu dă rezultate: este posibil ca necesarul dintr‑o resursă, pentru o anumită activitate, să depășească el singur disponibilul, caz în care, evident, problema alocării nu are soluții;

e)     când, la un anumit moment, apar necesități de amânare și operația de amânare poate fi aplicată la două sau mai multe activități care încep la același termen, se introduce o regulă de prioritate, care permite să se stabilească, care anume dintre activități se programează și care se amână: teoria și practica drumului critic menționează următoarele criterii de amânare folosite de diverși autori:

-      Prioritatea după rezerva totală cea mai mică (se amână activitatea cu rezerva cea mai mare de timp);

-      Prioritatea după durata cea mai mică;

-      Prioritatea după termenul minim de începere (se preferă activitatea cu termenul cel mai devreme de începere cel  mai mic);

-      Prioritatea după termenul maxim de începere (se preferă activitatea cu termenul cel mai târziu de începere cel mai mic);

-      Prioritatea după termenul maxim de terminare (se preferă activitate cu termenul cel mai târziu de terminare cel mai mic);

-      Prioritatea după intervalul corespunzător activității (se preferă activitatea cu termenul cel mai devreme de terminare minim).

-      Prioritate după cantitatea din resurse consumată (se preferă activitatea care consumă cel mai mult din resurse), etc

Nu se poate vorbi despre a concluzie generală privind valabilitatea unora sau altora dintre criteriile de amânare deoarece, în anumite cazuri, apare eficientă folosirea unuia dintre ele, în alte cazuri a altuia etc.

f)       pentru fiecare activitate care s-a decis să fie amânată se încearcă plasarea ei la primul moment posibil, acesta fiind primul moment când se disponibilizează din resurse, adică primul moment când se termină una din resursele în curs de desfășurare;

g)      pentru fiecare activitate amânată se analizează toate activitățile care o succed și, dacă este nevoie, se amână și acestea, încât să se respecte toate intercondiționările existente (în fapt, se face reactualizarea grafului);

h)      Se reia procedeul, de la primul moment la care ar putea să înceapă o activitate neplanificată încă, până când toate activitățile sunt programate și toate resurse1e a1ocate nu depășesc disponibilul; în multe cazuri sunt necesare amânări care conduc chiar la depășirea termenului final al proiectului calculat în faza ADC‑timp; ca urmare, în aceste cazuri, noțiunea de drum critic suferă o modificare, devenind echivalentul duratei minime în care poate fi executată o acțiune complexă în limita resurselor disponibile.

 

În general, procedeele heuristice de rezolvare a problemei alocării resurselor iau în considerare durate fixe pentru activități și nu admit întreruperea acestora. Există însă și procedee care recomandă scurtarea (lungirea) duratelor după nevoie, prin alocare suplimentară, sau retragere de resurse, precum și posibilitatea de a întrerupe anumite activități.

B.  Problema nivelării resurselor

 

După cum am arătat, această problemă constă în planificarea activităților cu limitarea termenului final de execuție a acțiunii complexe, astfel încât profilul necesarului resurselor să fie cât mai uniform.

Există mai multe moduri de a exprima obiectivul uniformi­zării profilului necesarului, putându‑se urmări:

 

-       minimizarea sumei variațiilor absolute ale profilului;

-       minimizarea sumei creșterilor;

-       minimizarea deviațiilor absolute de la medie;

-       minimizarea valorii maxime;

-       minimizarea variației maxime;

-       minimizarea sumei pătratelor diferențelor între profi­lul necesarului și un profil ideal (de obicei o linie paralelă cu axa timpului) etc.­

 

Utilizând criteriul minimizării sumei pătratelor diferențelor, Burgens și Killebrew au elaborat un algoritm de nivelare pentru o singură resursă, ale cărui operații sunt următoarele:

 

a)     Se întocmește graficul‑rețea și se calculează drumul critic;

b)     Se programează activitățile la termenul minim de începere, se întocmește profilul necesarului și se calculează suma pătratelor diferențelor (pe fiecare unitate de timp) între profilul necesarului și profilul disponibilului;

c)     Începând de la sfârșitul graficului‑rețea se ia prima activitate care dispune de rezervă și se găsește poziția cea mai avantajoasă posibilă a ei, din punct de vedere al criteriului enunțat; când sunt mai multe poziții egal avantajoase se alege cea mai din dreapta;

d)     Se trece la următoarea activitate, spre început, care dispune de rezervă și se procedează la fel și tot așa, pentru toate activitățile;

e)     Se calculează valoarea criteriului corespunzător noii planificări obținute, apoi se aplică din nou algoritmul de la pasul c, până nu mai sunt posibile îmbunătățiri.

 

În cazul problemelor de nivelare după mai multe resurse este posibilă adaptarea algoritmului Burgess‑Killebraw după cum urmează:

 

-       se ierarhizează importanța relativă a resurselor stabilindu‑se niște coeficienți de pondere;

-       se începe aplicarea algoritmului, urmărindu‑se simultan pentru toate rezervele efectul deplasării unei activități în limita intervalului ei aferent; se pot ivi următoarele cazuri:

1.      deplasarea unei activități îmbunătățește valoarea criteriului pentru toate resursele considerate; în acest caz nu se face nici un calcul, deplasarea efectuându-se cât mai avantajos;

2.      deplasarea unei activități îmbunătățește valoarea criteriului pentru o parte din resurse și o înrăutățește pentru altele din ele; în acest caz se urmărește acea poziție a activităților care face ca suma sumei pătratelor diferențelor pentru fiecare resursă, ponderată cu coeficienții de pondere stabiliți, să fie minimă.

 

 


7.  Metoda PERT

 

Metodele CPM și MPM analizate anterior furnizează, așa cum s-a văzut, informații care sunt utile în procesul de conducere, însă ele nu țin seama de posibilele variații ale duratelor de execuție ale activităților.

Metoda PERT încearcă să corecteze acest lucru. În acest scop metoda permite calcularea timpului mediu de terminare a unui proiect, identificarea activităților critice, precum și estimarea probabilităților de realizare a termenelor planificate. Pentru că în practică, în foarte multe programe din domeniul cercetării și dezvoltării, duratele activităților sunt insuficient cunoscute sau chiar incerte prin considerarea conceptelor statistice, duratele activităților sunt considerate variabile aleatoare caracterizate prin media și dispersia lor.

Metoda PERT pornește de la următoarele considerente:

 

a)      Pentru fiecare activitate (i,j) se estimează trei durate:

-      durata optimistă (aij), care este considerată durata minimă de execuție pentru activitate, în condiții generale normale de execuție;

-      durata cea mai probabilă (mij) ca fiind estimația cu cea mai mare șansă de realizare în condiții normale;

-      durata pesimistă (bij) ca fiind durata maximă de realizare a activității, atunci când există împrejurările cele mai defavorabile de execuție.

Un graf rețea înzestrat cu cele trei tipuri de durate pentru activitățile sale este numit rețea PERT.

b)     Durata fiecărei activități a proiectului are o distribuție b. Se propune distribuția beta pentru că aceasta satisface condiții care au un suport practic:

-      intersectează axa abciselor în două puncte aij și bij, care corespund duratei minime și duratei maxime;

-      este unimodală, adică are o singură valoare maximă, care corespunde duratei cele mai probabile m­ij.

-      valoarea bij – aij este intervalul de variație a distribuției și poate indica gradul de împrăștiere a duratelor posibile.

c)      Durata medie de execuție () a unei activități (i,j) este dată de formula:

 

 =

 

d)     Dispersia duratei de execuție () a activității (i,j) se calculează cu formula:

 

 =

 

Dispersia  este o măsură a gradului de nesiguranță în estimarea duratei activității (i,j); o valoare mare a dispersiei înseamnă o mare nesiguranță în privința duratei sale de execuție.

e)      Durata totală a proiectului este o variabilă aleatoare cu distribuție normală având media și dispersia:

 

       

 

unde Dcrit reprezintă mulțimea tuturor arcelor grafului care sunt pe drumul critic.

f)       Probabilitatea de realizare a duratei planificate Tplan a unui proiect se determină calculând, mai întâi, factorul de probabilitate z, după relația:

 

z =

 

și apoi se deduce din tabelul valorilor funcției Laplace probabilitatea p(£ Tplan).

g)      Graful trebuie să conțină un număr suficient de mare de activități pentru a se întruni toate condițiile aplicării teoremei limită centrală iar duratele activităților să fie variabile aleatoare independente. Se recomandă, de asemenea, să nu existe mai multe drumuri critice.

 

Metoda PERT se utilizează, în general, pentru descrierea unui proiect atât pe rețele CPM cât și MPM.

Algoritmul pentru calcularea unui program PERT este următorul:

 

Pasul 1.       Se calculează durata medie a fiecărei activități din rețeaua PERT, utilizând relațiile de la punctul c);

Pasul 2.       Se calculează termenele activităților rețelei PERT, considerând duratele activităților deterministe și egale cu mediile lor, utilizând una din metodele CPM sau MPM;

Pasul 3.       Se calculează dispersia duratei fiecărei activități cu formula de la punctul d);

Pasul 4.       Se calculează durata totală de execuție a întregului proiect () și dispersia () cu formulele de la punctul e);

Pasul 5.       Se determină probabilitatea de realizare a duratei planificate a proiectului după relația de la punctul f) folosind tabelul funcției Laplace;

Pasul 6.       Se face analiza proiectului, conform probabilităților de realizare a duratei a proiectului:

-        dacă p(£ Tplan) este mai mică decât 0,25 există un mare risc ca proiectul să nu se realizeze la termenul planificat și este necesară revizuirea duratelor de execuție ale activităților în sensul urgentării acestora;

-        dacă p(£ Tplan) ³ 0,5 programarea este justă;

-        dacă p(£ Tplan) este mai mare decât 0,6, programarea utilizează excesiv de multe resurse

Pasul 7.         Dacă se dorește să se urmărească anumite activități (i,j) pentru care sunt date termenele planificate de execuție Tij, atunci se calculează probabilitățile ca fiecare activitate să fie executată la termenul planificat utilizând relația:

 

ij =

și tabelul valorilor funcției lui Laplace.

-        dacă pij(tî £ Tij) < 0,6 atunci trebuie luate măsuri de urgentare a executării activității (i,j) în vederea realizării ei în termenul planificat;

-        dacă pij(tî £ Tij) ³ 0,6 activitatea (i,j) se execută în termenul planificat.

 

Exemplu: Fie G un graf rețea definit de elementele din tabelul 8.7 în care, pentru fiecare activitate, sunt definite trei estimări ale duratei (în săptămâni) corespunzătoare duratelor aij, mij, bij. Se rezolvă rețeaua PERT știind că Tplanificat = 24 săptămâni:

 

 

tabelul 8.7

 

Activități

 

Condiționări

Durate

 

Durata medie

 

 

 

s

 

 

a

m

b

 

 

 

 

A

­–

2

5

8

5

0

7

 

B

–

2

5

8

5

0

5

1,00

C

B

1

2

3

2

5

7

0,11

D

A

2

3

4

3

5

13,16

 

E

A

1

3

5

3

5

11,33

 

F

A,C

3

6

10

6,16

7

14,50

 

G

A,C

4

6

7

5,83

7

12,83

0,25

H

A,C

3

4

6

4,16

7

16,66

 

I

D

1

2

3

2

8

15,16

 

J

I

3

5

6

4,83

10

19,99

 

K

F

2

4

5

3,83

13,16

18,33

 

L

G

2

4

5

3,83

12,83

16,66

0,25

M

E

4

6

11

6,50

8

17,83

 

N

M

4

5

7

5,16

14,50

22,99

 

Q

K

2

5

6

4,66

15,99

22,99

 

R

L,H

5

6

9

6,33

16,66

22,99

0,44

S

J

2

3

4

3

14,83

22,99

 

 

Rezolvarea este dată în același tabel, din care se observă că activitățile critice (fără rezervă de timp) sunt B, C, G, L și R iar după efectuarea calculelor obținem:

 

tn = 22,99 săptămâni

 = 1,00 + 0,11 + 0,25 + 0,25 + 0,44 = 2,05

Z =  = 0,70

 

Din tabelul cu valorile funcției Laplace găsim, corespunzător valorii 0,70, probabilitatea 0,758. Avem, astfel, o situație în care se face risipă de resurse, deci este necesar să se redefinească duratele în vederea obținerii unei planificări juste.

 



* În prezentarea noastră ne referim la rezolvarea mintală a problemelor, evident însă că toate operațiile se transferă corespunzător sistemelor de calcul (de altfel mintal nu se pot rezolva decât probleme foarte mici, cu caracter de exemplu).