Sunteți pe pagina 1din 8

Seminar 7 BCO

Managementul proiectelor complexe. Alocarea resurselor

Ex. Considerăm proiectul dat de activitățile din tabelul următor.

Activități Condiționări Durata Necesar Necesar EST EFT LST LFT Rezerva
(luni) din R1 din R2
A - 2 4 4 0 2 0 2 0
B - 4 2 4 0 4 5 9 5
C A 1 4 3 2 3 6 7 4
D A 4 3 4 2 6 2 6 0
E B, D 2 3 3 6 8 10 12 4
F B, D 3 2 2 6 9 9 12 3
G E, F 3 4 4 9 12 12 15 3
H D 4 2 2 6 10 6 10 0
I C 3 2 4 3 6 7 10 4
J H, I 5 2 2 10 15 10 15 0

Să se determine durata minimă de execuție a proiectului dat în cazul în care sunt utilizate
resursele R1 și R2 fără depășirea cantităților disponibile b1=6 și b2=8.

Rezolvare

Alocarea resurselor presupune parcurgerea următoarelor 2 etape:

Etapa 1: Determinăm durata minimă de realizare a proiectului fără a ține cont de consumul de resurse.

Vom trasa rețeaua coordonatoare a acestui proiect utilizînd reprezentarea pe noduri a activităților (AoN)
Durata minima de realizare: 15 luni.

Activități critice: A, D, H, J

Drum critic: Start>A>D>H>J>Finish

Etapa 2: Stabilim dacă ne încadrăm în cantitatea disponibilă din fiecare tip de resursă în cazul în care
toate activitățile sunt programate la termenul minim de începere (EST). Sunt suficiente cantitățile
disponibile din cele două resurse pentru a finaliza proiectul în cele 15 luni? Dacă resursele sunt
insuficiente în raport cu nevoile, atunci se vor reprograma activitățile proiectului astfel încât necesarul
de resurse să se încadreze în disponibilul dat.

Pentru verificare, desenăm histogramele consumurilor de resurse cu activitățile programate a începe la


termenele lor minime de începere (EST).

Histograma resursei R1 cu activitățile programate la termenele minime de începere (EST)

Pentru R1 observăm următoarele:

• în intervalul (2, 3) avem nevoie de încă 3 unități din R1;


• în intervalul (3, 4) avem nevoie de încă 1 unitate din R1;
• în intervalul (6, 8) avem nevoie de încă 1 unitate din R1.

Prin urmare concluzionăm că avem un conflict de resursă pentru R1.


Histograma resursei R2 cu activitățile programate la termenele minime de începere (EST)

Pentru R2 observăm următoarele:

• în intervalul (2, 3) avem nevoie de încă 3 unități din R2;


• în intervalul (3, 4) avem nevoie de încă 4 unități din R2.

Prin urmare concluzionăm că avem un conflict de resursă și pentru R2.

Rezolvarea unui conflict de resursă presupune identificarea unei modalități de reprogramare (amânare)
a unora dintre activitățile proiectului pe baza unui criteriu de amânare astfel încât să ne încadrăm în
disponibilul din fiecare resursă la orice moment pe întreaga durată de desfășurare a proiectului.

Criteriul de prioritate la amânare folosit la acest exercițiu este cel referitor la rezerva cea mai mare (are
prioritate la amânare activitatea cu rezerva cea mai mare).

Notații:

A= multimea activităților în curs de desfășurare sau candidate la programare

β= mulțimea activităților amânate conform criteriului de amânare utilizat

A’= A - β
Inițializare:

- Pentru fiecare activitate TPI= EST


- Momentul curent de programare t=0
- Toate activitățile se declară neprogramate

Iterația 1: t=0;

P1: A ={A;B};

P2: Calculăm indicatorii de amânare

- pentru R1: ∆1= 6-(4+2) = 0


- pentru R2: ∆2= 8-(4+4) =0

=> nu este nevoie să amânăm activități=> β = Æ ; A’={A;B};

P3: Deoarece nu avem conflict de resursă nu aplicăm criteriul de prioritate la amânare;

P4: Programăm A și B să înceapă la t=0

P5: Deoarece nu avem activități amânate => nu se calculează TPI pentru activitățile neprogramate și
pentru că suntem la t=0 => TPI=EST

Iterația 2: t=2 (min TPI pentru activitățile încă neprogramate la it. 1);

P1: A ={B; C; D};

P2: Calculăm indicatorii de amânare=

- pentru R1: ∆1= 6-(2+3+4) < 0


- pentru R2: ∆2= 8-(4+3+4) < 0

=> nu putem programa și C și D (avem conflict de resurse);

P3: Aplicăm criteriul de prioritate la amânare referitor la rezerva de timp (activitatea cu rezerva de timp
mai mare va fi cea amânată);

RezC= LSTC-t= 6-2= 4

RezD= LSTD-t= 2-2 =0

=> programăm D și amânăm C => β ={C} si A’={B; D}

P4: Programăm D să înceapă la t=2

P5: Activității amânate C i se fixează un nou TPI egal cu minimul termenelor de finalizare a activităților
din A’ => TPIC=min{TDTB, TDTD}=min {4, 6}= 4.
Din analiza rețelei coordonatoare observăm următoarele:

- activitatea neprogramată I este condiționată de activitatea amânată C și prin urmare nu poate


începe mai devreme de termenul potențial de terminare al lui C. Prin urmare
TPII=TPTC=TPIc+dC=4+1=5;
- activitățile neprogramate H, E, F și G nu sunt condiționate de activitatea amânată C și prin
urmare își mențin TPI din iterația anterioară;
- pentru activitatea neprogramată J, TPIJ=max{TPII+dI; TPIH+dH}=max{5+3; 6+4}=10.

Iterația 3: t=4 (min TPI pentru activitățile încă neprogramate la it. 2);

P1: A ={D; C};

P2: Calculăm indicatorii de amânare=

- pentru R1: ∆1= 6-(3+4) < 0


- pentru R2: ∆2= 8-(4+3) = 1

=> nu putem programa C (activitatea D este deja începută);

P3: Deoarece nu avem de ales între mai multe activități candidate, nu aplicăm criteriul de prioritate la
amânare;

P4: Deoarece activitatea D este deja programată, nu setăm termene definitive de începere/terminare.

P5: Activității amânate C i se fixează un nou TPI egal cu minimul termenelor de finalizare a activităților
din A’ => TPIC=min{ TDTD}= 6.

Din analiza rețelei coordonatoare observăm următoarele:

- activitatea neprogramată I este condiționată de activitatea amânată C și prin urmare nu poate


începe mai devreme de termenul potențial de terminare al lui C. Prin urmare
TPII=TPTC=TPIc+dC=6+1=7;
- activitățile neprogramate H, E, F și G nu sunt condiționate de activitatea amânată C și prin
urmare își mențin TPI din iterația anterioară;
- pentru activitatea neprogramată J, TPIJ=max{TPII+dI; TPIH+dH}=max{7+3; 6+4}=10.

Iterația 4: t=6 (min TPI pentru activitățile încă neprogramate la it. 3);

P1: A ={C; E; F; H};

P2: Calculăm indicatorii de amânare=

- pentru R1: ∆1= 6-(4+3+2+2) < 0


- pentru R2: ∆2= 8-(3+3+2+2) < 0

=> nu putem programa toate activitățile (avem conflict de resurse);


P3: Aplicăm criteriul de prioritate la amânare referitor la rezerva de timp (activitatea cu rezerva de timp
mai mare va fi cea amânată);

RezC= LSTC-t= 6-6= 0

RezE= LSTE-t= 10-6 =4

RezF= LSTF-t= 9-6= 3

RezH= LSTH-t= 6-6 =0.

=> programăm C și H și amânăm E și F => β ={E; F} si A’={C; H} (verificăm că C și H pot fi programate


simultan dpdv al încadrării în disponibilul de resurse)

P4: Programăm C și H să înceapă la t=6;

P5: Activităților amânate E și F li se fixează un nou TPI egal cu minimul termenelor de finalizare a
activităților din A’ => TPIE=TPIF=min{TDTC, TDTH}=min {7, 10}= 7.

Din analiza rețelei coordonatoare observăm următoarele:

- activitatea neprogramată G este condiționată de activitățile amânate E și F și prin urmare nu


poate începe mai devreme de termenele potențiale de terminare ale acestora. Prin urmare
TPIG= max{TPIE+dE; TPIF+dF}= max{7+2; 7+3}= 10;
- activitatea neprogramată I nu este condiționată de activitățile amânate E și F C și prin urmare își
menține TPI din iterația anterioară;
- pentru activitatea neprogramată J, TPIJ=max{TPII+dI; TDIH+dH}=max{7+3; 6+4}=10.

Iterația 5: t=7 (min TPI pentru activitățile încă neprogramate la it. 4);

P1: A ={H; E; F; I};

P2: Calculăm indicatorii de amânare=

- pentru R1: ∆1= 6-(2+3+2+2) < 0


- pentru R2: ∆2= 8-(2+3+4+2) < 0

=> nu putem programa E, I și F (avem conflict de resurse);

P3: Aplicăm criteriul de prioritate la amânare referitor la rezerva de timp (activitatea cu rezerva de timp
mai mare va fi cea amânată);

RezE= LSTE-t= 10-7=3

RezI= LSTI-t= 7-7= 0

RezF= LSTF-t= 9-7 =0.

=> programăm I și F și amânăm E => β ={E} si A’={H; I; F} (verificăm că H, I și F pot fi programate simultan
dpdv al încadrării în disponibilul de resurse)
P4: Programăm I și F să înceapă la t=7;

P5: Activității amânate E i se fixează un nou TPI egal cu minimul termenelor de finalizare a activităților
din A’ => TPIE= min{TDTH; TDTI,; TDTF,}= 10.

Din analiza rețelei coordonatoare observăm următoarele:

- activitatea neprogramată G este condiționată de activitatea amânată E și activitatea în curs de


desfășurare F și prin urmare nu poate începe mai devreme de termenele definitive/potențiale
de terminare ale acestora. Prin urmare TPIG= max{TPIE+dE; TDIF+dF}= max{10+2; 7+3}= 12;
- pentru activitatea neprogramată J, TPIJ=max{TDII+dI; TDIH+dH}=max{7+3; 6+4}=10.

Iterația 6: t=10 (min TPI pentru activitățile încă neprogramate la it. 5);

P1: A ={E; J};

P2: Calculăm indicatorii de amânare

- pentru R1: ∆1= 6-(2+3) > 0


- pentru R2: ∆2= 8-(2+3) > 0

=> nu este nevoie să amânăm activități=> β = Æ ; A’={E; J};

P3: Deoarece nu avem conflict de resursă nu aplicăm criteriul de prioritate la amânare;

P4: Programăm E și J să înceapă la t=10

P5: Deoarece nu avem activități amânate, pentru activitățile neprogramate se preiau TPI din iterația
anterioară.

Iterația 7: t=12 (min TPI pentru activitățile încă neprogramate la it. 6);

P1: A ={J; G};

P2: Calculăm indicatorii de amânare

- pentru R1: ∆1= 6-(2+4) > 0


- pentru R2: ∆2= 8-(2+4) > 0

=> nu este nevoie să amânăm activități=> β = Æ ; A’={J; G};

P3: Deoarece nu avem conflict de resursă nu aplicăm criteriul de prioritate la amânare;

P4: Programăm G să înceapă la t=12

P5: Deoarece nu mai avem activități amânate neprogramate, STOP.


Obs. Proiectul se finalizează tot în 15 luni.

Pentru a verifica faptul că am aplicat corect euristica și nu mai avem conflict de resursă, trasăm
histogramele pentru R1, respectiv R2 cu activitățile programate la termenele definitive de începere (TDI)
preluate din tabelul de mai sus.

Histograma pentru R1 cu activitățile programate la termenele definitive de începere (TDI)

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