Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
A1
A2
A3
An
tempi
fig. 1
I diagrammi di Gantt risultarono subito preziosi per il lavoro di programmazione ed
ancora oggi vengono utilizzati per i progetti più semplici in virtù della chiarezza della
loro rappresentazione.
Nondimeno per essi risultano evidenti alcuni limiti:
1) Non riescono ad evidenziare le interdipendenze tra le molte attività in cui é
decomponibile un progetto di spiccata complessità e dimensione.
2) Richiedono sempre la rappresentazione in scala.
3) Non si prestano a prevedere attendibilmente l'esito di un lavoro complesso a
seguito di modifiche parziali introdotte in corso di attuazione.
4) Non riescono a suggerire efficacemente possibili varianti per migliorare il piano e
l'utilizzazione delle risorse da esso chiamate in causa.
Per ovviare a questi limiti nell'ultimo decennio sono stati estesamente applicati i sistemi
di programmazione reticolare (SPR) dei quali il Pert è uno dei più noti ed affermati.
Capitolo 7 - Tecniche di programmazione reticolari pag. 141
i (i,j)
fig. 2
4) Gli eventi, disposti in progressione logica sul reticolo, devono essere contrassegnati
da numeri crescenti da sinistra a destra e in senso verticale ascendente o discendente.
Un numero, impegnato per individuare un evento, non può essere utilizzato altrove.
Non è necessario che i numeri siano consecutivi e che l'evento iniziale sia
contrassegnato dalla cifra (1).
Il rispetto delle regole precedenti assicurano che ogni attività sia identificata da una ben
definita coppia di numeri e che il numero associato all'evento terminale j di una
qualsiasi attività sia maggiore di quello associato all'evento iniziale i della medesima.
N.B. Accade spesso che in un nodo concorrono più frecce.
11 16 19
13
fig. 3
Nella fig. 3 si vede ad esempio che nel nodo s = 16 hanno termine le attività (9-16),
(11-16) e (13-16).
Il nodo 16 è in tal caso l'immagine del momento terminale di ciascuna delle tre attività
indicate, ma l'evento 16 non può dirsi compiuto (e cioè non può avere inizio l'attività
(16-19)) fino a che non sono state completate tutte le tre attività di cui sopra.
Regola fondamentale:
Un evento non può dirsi verificato se non risultano ultimate tutte le attività che
conducono ad esso.
Il temine di una attività è condizione necessaria ma non sufficiente per l'inizio di una
attività successiva.
Capitolo 7 - Tecniche di programmazione reticolari pag. 144
AA
AA te AAAAA
AAAAA
t0 tm M tp
fig. 4
Distribuzione di probabilità Beta
Capitolo 7 - Tecniche di programmazione reticolari pag. 145
M=
(t 0 + tp ) (1)
2
ed il valore più probabile te è la media ponderata del tempo verosimile tm e del valore
medio M con rapporto di pesi 2 : 1; risulta cioè:
2t m + M
te = (2)
3
t 0 + 4t m + t p
te = (3)
6
Il tempo più probabile te si ottiene dunque introducendo nella (2) le tre stime di durata
a suo tempo definite.
Nella distribuzione considerata, il valore te si incontra sulle ascisse ad un terzo
dell'intervallo (tm, M) e rappresenta il tempo a cui corrisponde probabilità 0,50 (50%)
(l'area della superficie sottesa dalla curva risulta da esso divisa in due parti uguali).
Tuttavia te non è, da solo, adatto ad illustrare completamente una previsione di durata.
Si può ad esempio osservare che per entrambe le terne di valori
{(t '
0 = 1; t m
'
= 5; t p' = 33 )} e {(t '
0 = 3; t m
'
= 8; t p' = 19 )}
la (2) conduce a calcolare te = 9, mentre è evidente che l'intervallo di incertezza (tp -
to) è ben diverso nei due casi.
Per consentire dunque un miglior giudizio sulla previsione, al valore te si affianca
quello della varianza:
tp − t0
2
σ =2
te (4)
6
Capitolo 7 - Tecniche di programmazione reticolari pag. 146
(16)
4
8 2
(6) (8)
6 2
1 2 3 6 (18)
4 5
5
(12)
fig. 5
Attività te
(1,2) 6
(2,3) 2
(3,4) 8
(3,5) 4
(4,6) 2
(5,6) 5
Capitolo 7 - Tecniche di programmazione reticolari pag. 147
Se all'evento (1) si fa corrispondere il tempo zero (T1 = 0), si ha per gli eventi
successivi:
T 2 = T1 + 6 = 6
T 3 = T2 + 2 = 8
T4 = T3 + 8 = 16
T5 = T3 + 4 = 12
occorre qui osservare che il nodo 6 è il punto di confluenza di due distinti cammini: (1 -
2 - 3 - 4 - 6) e (1 - 2 - 3 - 5 - 6) e che l'evento a tale nodo corrispondente potrà dirsi
verificato quando tutte le attività a monte siano ultimate.
Pertanto a T6 dovrà attribuirsi il valore fornito dal percorso lungo il quale si misura il
maggior tempo cumulato (1 - 2 - 3 - 4 - 6);
T6 = T4 + te (4,6) = 18
Regola generale: la data tk associabile all'evento k è fornita dal massimo dei tempi fino
a k cumulati percorrendo tutti i cammini che nel reticolato Pert conducono a k a
partire dall'evento iniziale.
Nel semplice reticolo sopra esaminato, per il solo evento 6 si presenta la necessità di
istituire un confronto di tempo, essendo unico il cammino che conduce ad ogni altro
nodo a partire dall'evento iniziale.
Percorso Critico:
si consideri ora il reticolo di figura 6.
1 2
T1 = 0
3 3 T5 = 6
1 3 5
L5 = 6
1 1
fig. 6
Capitolo 7 - Tecniche di programmazione reticolari pag. 148
per quanto detto sarà T5 = 6 il tempo che prevedibilmente dovrà trascorrere affinché si
verifichi l'evento 5.
Indicando d'ora in poi con L i il tempo limite entro il quale, a partire dall'inizio del
progetto, si richiede che il generico evento i risulti verificato, posto L5 = T5 = 6; si vede
che
L2 = 4; L3 = 3; L4 = 5.
I tempi limite L i associati ai nodi del reticolo Pert si calcolano con procedura inversa
rispetto a quella utilizzata per il calcolo di Ti.
Difatti si fisserà la scadenza imposta per l'evento finale f del progetto e si percorrerà a
ritroso ogni cammino fino all'evento iniziale, sottraendo ogni volta dalla data limite Lj,
trovata per l'evento j, la durata te (i,j) prevista per l'attività compresa per i nodi i e j.
Si è visto che per stimare la data T i occorre istituire un confronto di tempi quando nel
nodo i confluiscono più attività e che in tal caso T i è il maggiore dei tempi cumulati
lungo i vari percorsi che conducono ad i; parimenti, quando i è origine di più attività,
nel calcolo di Li, percorrendo a ritroso il reticolo si perverrebbe a più di un valore per la
data limite associata all'evento i.
Si consideri infatti il reticolo di figura 7.
(4)
2
4
2
1 T4 = 11
1
4
L 4 = 11
3
6
(5)
fig. 7
Capitolo 7 - Tecniche di programmazione reticolari pag. 149
In caso si è posto L4 = T4 = 11; per l'evento 2 seguendo il cammino (4-2) si trova L'2
= L4 - t(2,4) = 9 mentre seguendo il cammino (4 - 3 - 2) si trova L"2=L4 - t(3,4) -
t(2,3) = L3 - t(2,3) = 4.
E' immediato comprendere che dei due valori L'2, L"2 andrà scelto il minore trattandosi
di una scadenza.
Regola generale: la data limite Li esprime il tempo massimo entro il quale, a partire
dall'inizio del progetto deve verificarsi l'evento i affinché, nel rispetto delle previsioni
di durata delle attività, possa anche rispettarsi la data limite imposta all'evento finale
F del progetto.
Il limite L i è il valore minimo tra le date calcolabili per i percorrendo a ritroso tutti i
cammini che conducono ad i a partire dall'evento finale del reticolo Pert.
La differenza
si = L i - T i (5)
2
2 5
5 3
2 9 L6 = 13
1 3 6
(0) (13)
6 7
(6)
fig. 8
Capitolo 7 - Tecniche di programmazione reticolari pag. 150
i Ti Li si
1 0 0 0
2 5 8 3
3 2 4 2
4 6 6 0
5 7 10 3
6 13 13 0
Per giungere all'evento finale 6 a partire dal nodo 1 esistono tre cammini:
2
4 13
2
7
5 1
3
6
1 5 8
2 T8 = 24
2 1 9
L8 = 21
4
3 9
6
fig. 9
i Ti Li si
1 0 3 -3
2 5 2 -3
3 2 7 5
4 7 5 -2
5 11 8 -3
6 20 17 -3
7 22 20 -2
8 24 21 -3
Il percorso critico risulta individuato dai nodi: (1 - 2 - 5 - 6 - 8), dotati in questo caso da
scorrimento negativo.
Il percorso critico non è necessariamente unico: in un reticolo Pert possono risultare
critici anche tutti i cammini che dall'evento iniziale portano a quello finale.
2 1
1 2 5
4
(0)
3 2 6
1
6 L6 = 15
4
3 4
fig. 10
i Ti Li si
1 0 0 0
2 2 2 0
3 5 5 0
4 9 9 0
5 10 11 1
6 15 15 0
Se esaminiamo l'attività (2,5) vediamo che essa può avere inizio alla data T2 = 2 e
riuscire completata al tempo T2 + t(2,5) = 3. Poiché tuttavia risulta L5 = 11, l'attività
(2,5) avendo inizio t2 = 2, può anche compiersi in un tempo t* = 9. Si ha cioè per la
(2,5) uno scorrimento (margine di tolleranza) s(2,5) = 8.
In generale per l'attività (i,j) lo scorrimento si calcola con la formula:
s( i, j) = L j − [ Ti + t e (i, j) ] (6)
E' facile verificare che le attività disposte sul percorso critico presentino slittamenti
eguali a quelli degli eventi critici.
In altri termini può accadere che un evento j non possa compiersi se immediatamente a
monte non risulti compiuto un evento i, pur in assenza di una ben definita attività (i,j).
Esempio:
Attività fondamentali per il progetto "Fornitura in opera di una Macchina Speciale":
- Stesura contratto
- Progettazione e disegno
- Costruzione gruppo A
- Costruzione gruppo B
- Costruzione gruppo C
- Montaggio (A+ B + C)
- Collaudo
- Imballaggio
- Trasporto
- Installazione.
Nel reticolo (fig. 11) compare inoltre l'attività (3,8) di preparazione, imballaggio, che
può iniziarsi subito dopo il completamento dei disegni.
4 8
1 2 3 5 7 9 10 11
Fig.11
Capitolo 7 - Tecniche di programmazione reticolari pag. 154
Indicando con la freccia (5,7) l'attività "montaggio gruppi" verremmo a significare che
al termine dell'attività (3,5) "costruzione gruppo C" potrebbe avere luogo il suddetto
montaggio.
Il nodo 5 invece, visto come evento iniziale dell'attività (5,7) richiede anche l'avvenuto
completamento dell'attività (3,4) e (3,6), rispettivamente di "costruzione gruppo A" e
"costruzione gruppo B".
Per evidenziare questa propedeuticità si introducono le frecce a tratto discontinuo (4,5)
e (6,5) cui corrispondono le attività fittizie "avere gruppo A" e "avere gruppo B", attività
che per loro natura non richiedono impegno di mezzi e di tempi.
Un'attività fittizia evidenzia dunque l'esistenza di una dipendenza logica fra due eventi.
Conviene al riguardo osservare che, un tal tipo di attività, pur non prevedendo una
durata concorre a definire la data associabile all'evento che da essa è logicamente
condizionato.
Si consideri ad esempio il reticolo di fig. 12:
3 2
(0) 1
1
0
4
2 L4 = 5
2
fig. 12
Al nodo 3 si perviene mediante l'attività effettiva (1,3) per cui dovrebbe essere T3 = T1
+ te (1,3) = 2; tuttavia l'esistenza dell'attività fittizia (2,3) conduce a considerare il
cammino (1 - 2 - 3) in luogo di quello diretto
(1 - 3), sicché dovrà assumersi in pratica :
T 3 = T 1 + t e ( 1, 2 ) + t e ( 2, 3 ) = 3
Capitolo 7 - Tecniche di programmazione reticolari pag. 155
Parimenti posto che nella stessa maglia risulti L4 = 5, per l'evento 2 si dovrà
considerare:
L 2 = L 4 − t e ( 3, 4 ) − t e ( 2, 3 ) = 3
L'attività fittizia influenza quindi anche la data limite dell'evento. da cui trae virtualmente
origine.
Poiché inoltre risulta s i = (L i - Ti), l'introduzione di attività fittizie può in definitiva
influenzare lo stesso percorso critico.
zi =
(Li − Ti ) (7)
∑ σ 2te
che è il rapporto fra la scorrimento s i e la radice quadrata della somma delle varianze
sulle durate di tutte le attività coinvolte nel calcolo di Ti.
Sulla tavola di probabilità sopra richiamata, in corrispondenza di z i si legge la
probabilità che l'evento si compia nel rispetto della scadenza Li.
La procedura è fondata sul teorema del limite centrale di Lapunov; senza fermarci sui
fondamenti teorici di questa ci limiteremo semplicemente a far notare che la probabilità
di rispettare Li è chiaramente una funzione crescente dello scorrimento.
La tavola mostra in quale misura nel campo dei valori positivi di z i (cioé L i > Ti) la
probabiltà si accresce con tale parametro; mentre per z i < 0 (Li < Ti) la stessa
probabiltà è tanto più bassa quanto più alto è il valore assoluto di zi.
Capitolo 7 - Tecniche di programmazione reticolari pag. 156
(0) 7
6
13
1 4 5 L5 = 28
3 7
fig. 13
(i,j) t0 tm tp te σ 2te i Ti Li si zi
(1,2) 2 5 14 6 4,0 1 0 -1 -1
(1,3) 4 8 18 9 5,4 2 6 8 2
(2,4) 5 7 9 7 0,4 3 9 8 -1
(3,4) 3 6 15 7 4,0 4 16 15 -1 0,325
(4,5) 6 13 20 13 5,4 5 29 28 -1
Si calcola:
1
z4 = − ≅ −0, 325
5, 4 + 4, 0
e sulla tavola di probabilità si può leggere 0,374, cioè una probabilità circa pari al 37,4
% di rispettare il vincolo L4 = 15.
6
2 5
10 9 7
3
5 11
1 4 6 L6 = 26
4 2
14
3
fig. 14
(i,j) te t0 tm tp σ 2te i Ti Li si zi
(1,2) 10 5 9 19 5,4 1 0 -3 -3
(1,4) 5 2 5 8 1,0 2 10 7 -3
(1,3) 4 1 3 11 2,7 3 4 8 4
(2,4) 3 1 2 9 1,8 4 13 10 -3
(2,5) 6 2 6 10 1,8 5 22 19 -3
(3,4) 2 1 2 3 0,1 6 29 26 -3 - 0,91
(3,6) 14 7 13 25 9,0
(4,5) 9 2 10 12 2,7
(4,6) 11 8 10 18 2,7
(5,6) 7 4 7 10 1,0
3 3
z6 = − ≅− = −0, 91
5, 4 + 1, 8 + 2,7 + 1, 0 3, 3
2
2 4
1 1 4 6
T1 = 0 L5 = 15
6 5
1 3 5
fig 15
s( 1, 2 ) = L 2 − T 1 − t ( 1, 2 ) = 4 − 0 − 1 = 3
s( 2, 3 ) = L 3 − T 2 − t ( 2, 3 ) = 5 − 1 − 1 = 3
s( 2, 4 ) = L 4 − T 2 − t ( 2, 4 ) = 9 − 1 − 2 = 6
s( 3, 5 ) = L 5 − T 3 − t ( 3, 5 ) = 15 − 6 − 5 = 4
T2 = 2,5 T4 = 7
L2 = 6 L4 = 10
4
2 4
2,5 1,5 2 5
T1 = 0
L1 = 2,5
5 7,5 T5 = 12,5
1 3 5 L5 = 15
T3 = 5
L3 = 7,5
fig 16
- L5 = 15
- L4 = 10
- L3 = 7,5
- L2 = 6,0
- L1 = 2,5
L
CL C = C(t)
CN N
tL tN tA t
fig. 17
in tn il costo, per definizione, risulterà minimo (a sinistra di tn esso si incrementa per il
maggiore impiego di risorse, a destra di tn per impegno inefficiente delle stesse).
Tra le eccezioni alla relazione C = C(t) vanno ricordate:
Capitolo 7 - Tecniche di programmazione reticolari pag. 165
- Relazione orizzontale, cioè costo fisso delle risorse, indipendentemente dal tempo
(attività svolte da persone di concetto cui non è riconosciuta indennità per ore
straordinarie).
- Relazione discontinua, caso tipico di attività per le quali si conoscono soltanto valori
discreti di durata e costo (es. trasporti via terra, mare, aerea).
- Attività fittizia, ossia, come per il Pert, attività considerate al solo fine di istituire
determinate priorità, per le quali non sussiste l'impegno di tempo e di risorse.
Prescindendo da tali eccezioni, nel CPM si suppone per semplicità procedurale una
relazione lineare durata-costo, sostituendo una poligonale alla curva di fig. 17 o anche
approssimando l'arco di curva LN con la sua corda.
Tale approssimazione è giustificata dall'evidente snellimento dei calcoli e dalla finalità
del metodo, che si propone di individuare scelte ottimali e non di misurare con
esattezza il costo connesso con la singola scelta operata.
In base alla linearizzazione della legge C = C(t), il costo di accelerazione di una data
attività (ossia il costo che occorre sostenere per ridurre di una unità di tempo la durata
dell'attività in oggetto) risulta espressa da:
cL − cN
ca = (8)
tn − tL
Il criterio che si seguirà per ottimizzare la durata del progetto sarà quindi quello di
individuare le attività critiche (come nel Pert) e di accelerare, tra queste, le attività cui
competono i più bassi costi di accelerazione.
Fasi logiche della procedura CPM
1) Individuazione delle varie attività concorrenti nel progetto
2) Definizione dell'ordinamento sequenziale delle attività
3) Analisi della relazione costo-durata di ogni attività e linearizzazione.
4) Impostazione reticolare del programma (come nel Pert).
5) Attribuzione della durata normale tn ad ogni attività.
6) Identificazione del percorso critico (e quindi delle attività che determinano la
durata del progetto), calcolo della durata normale e del costo normale dell'intero
programma.
7) Progressiva riduzione della durata totale mediante riduzione di durata delle attività
critiche (col criterio del minimo costo di accelerazione).
Capitolo 7 - Tecniche di programmazione reticolari pag. 166
8) Calcolo del costo totale al variare della durata totale (portando in conto anche i
costi indiretti ed esterni).
9) Individuazione della durata del progetto cui compete il minimo costo totale.
10) Impiego dei risultati ottenuti nelle fasi 8 e 9 per effettuare le scelte più
convenienti in relazione agli obbiettivi perseguiti.