CPM - PERT CPM - PERT Gestione di un progetto

Transcript

CPM - PERT CPM - PERT Gestione di un progetto
CPM - PERT
CPM e PERT sono metodologie per la gestione di progetti
composti da più attività in cui esistano relazioni di precedenza.
CPM - PERT
Sviluppate indipendentemente sono ormai considerati
equivalenti anche se
– il CPM originariamente era strettamente deterministico;
– il PERT nasce per gestire attività di durata stocastica.
Critical Path Method
Project Evaluation and Review Technique
15/11/99 17.29
Raffaele Pesenti
1
Gestione di un progetto
Raffaele Pesenti
2
Rappresentazione di un progetto
Passi fondamentali nella gestione di un progetto:
• definizione del progetto
• definizione delle attività (elementari)
• determinazione delle relazioni tra le attività
• schedulazione delle attività
• controllo dell’evoluzione delle attività
Un progetto è rappresentabile come una rete G=(N,A) dove:
– ogni arco (i,j) = e∈ A corrisponde ad una delle attività,
l’etichetta dell’arco indica la durata dell’attività;
– ogni nodo i∈ N rappresenta un evento, i.e., inizio progetto,
fine progetto, completamento di un insieme delle attività, le
etichette del nodo delimitano l’intervallo temporale in cui
esso può realizzarsi.
CPM e PERT aiutano a eseguire almeno i primi quattro passi
Raffaele Pesenti
3
Raffaele Pesenti
4
Esempio elementare
Esempio elementare
7/7
nome durata task
• progetto
– attività A iniziale senza predecessori, 2 gg;
– attività B preceduta da A, 5 gg;
– attività C preceduta da A, 3 gg;
– attività D preceduta da B, 7 gg, nessun successore;
– attività E preceduta da C , 4 gg, nessun successore;
il progetto è terminato quando sono terminate tutte le sue
attività.
Raffaele Pesenti
inizio
progetto
A 2gg
14/14
2/2
C 3gg
E 4gg
0/0
fine
progetto
estremi intervallo
occorrenza evento
5
5/10
Raffaele Pesenti
Regole di costruzione (archi)
6
Esempi
• Esempio:
– C è preceduta da A e B;
– D è preceduta solo da A.
Non vi possono essere attività con entrambi i nodi in comune.
Due attività con entrambe gli estremi in comune sarebbero
precedute e seguite dalle stesse attività. Dal punto di vista
gestionale corrisponderebbero ad un’unica attività con durata
uguale alla massima delle due attività.
• Esempio:
– D è preceduta solo da A;
– E è preceduta da A e B;
– F è preceduta solo da B.
Per evitare parallelismi ed esprimere precedenze ‘complesse’
può essere necessario introdurre attività dummy di durata nulla.
Raffaele Pesenti
D 7gg
B 5gg
7
Raffaele Pesenti
B
C
A
dummy
D
B
F
E
A
D
8
Regole di costruzione (nodi)
Regole di costruzione (nodi)
• L’estremo inferiore dell’intervallo di occorrenza dell’evento
iniziale è 0 per definizione (e, se i calcoli sono eseguiti
correttamente, anche l’estremo superiore deve risultare 0);
• l’estremo superiore dell’intervallo di occorrenza dell’evento
finale coincide al fine di minimizzare il tempo di completamento
del progetto con l’estremo inferiore ottenuto dai calcoli;
• l’estremo inferiore dell’evento generico i corrisponde
all’earliest starting time*, ESi, delle attività seguenti e quindi al
massimo degli earliest completation time, ECk = ESk + pki, delle
attività precedenti:
ESi = maxk {ESk + pki}
• l’estremo superiore dell’evento generico i corrisponde al latest
completion time*, LCi, delle attività precedenti e quindi al
minimo degli latest starting time, LSj = LCj - pij, delle attività
seguenti:
LCi = minj {LCj - pij}
*
Raffaele Pesenti
9
notare parallelismo tra ESi e rij e tra LCi e dij.
Raffaele Pesenti
10
Regole di costruzione (nodi)
Esempio 3
2(12)
La rete costruita è orientata e aciclica,
si possono quindi ricavare i valori delle etichette di tutti i nodi
col seguente algoritmo:
4(10)
0(14)
– ESevento_iniziale = 0
– procedendo in avanti ricorsivamente, considerando di volta in volta solo
un nodo di cui si conoscano tutti i valori ES dei nodi precedenti, si
determina no gli ES di tutti i nodi fino a quello finale;
– LCevento_finale = ESevento_finale
– procedendo all’indietro ricorsivamente, considerando di volta in volta
solo un nodo di cui si conoscano tutti i valori LC dei nodi seguenti, si
determina no gli LC di tutti i nodi fino a quello iniziale (per tale nodo
deve risultare LCevento_iniziale = 0);
Raffaele Pesenti
5(8)
11
7
1(13)
3(11)
6(9)
possibile sequenza visita nodi in avanti (all’indietro)
Raffaele Pesenti
12
Percorso critico
Percorso critico
Teorema:
esiste almeno un percorso (critico) tra il nodo iniziale e finale in
cui tutti gli eventi sono caratterizzati da estremi di occorrenza
inferiore e superiore identici e in cui la durata di tutte le attività
sono uguali alla differenza tra gli istanti di occorrenza degli
eventi estremi che le definiscono.
Prova:
per assurdo, se ciò non fosse vero non sarebbe minimizzato il
tempo di completamento del progetto.
Interpretazione economica:
le attività che appartengono a percorsi critici non possono essere
ritardate senza che ciò implichi il ritardo complessivo nel
completamento di tutto il progetto.
Raffaele Pesenti
Raffaele Pesenti
13
Esempio
D 7gg
14/14
2/2
C 3gg
E 4gg
0/0
fine
progetto
estremi intervallo
occorrenza evento
Raffaele Pesenti
Commenti
attività critiche
B 5gg
A 2gg
14
7/7
nome durata task
inizio
progetto
Slack:
slij = ( LCj - ESi ) - pij
massimo ritardo che può subire un task senza ritardare il
completamento di tutto il progetto (se i rimanenti task sui
percorsi di appartenenza non subiscono ulteriori ritardi).
5/10
15
• le attività dei percorsi critici vanno tenute maggiormente sotto
controllo;
• se si deve investire per ridurre i tempi di esecuzione del
progetto, si deve incidere sulle attività dei percorsi critici,
eventualmente in modo dinamico, poiché la riduzione dei tempi
di esecuzione può modificare la criticità dei percorsi;
• il problema può essere formulato anche in termini di
programmazione lineare e quindi eventualmente aggiungere
vincoli ulteriori o esprimere obiettivi non includenti solo la
minimizzazione del tempo di completamento.
Raffaele Pesenti
16
PERT
PERT
Ad ogni arco/attività sono associate:
– durata media attesa
– deviazione della durata
• Il tempo atteso di completamento del progetto è calcolato come
somma dei tempi medi delle attività sui percorsi critici;
Media e deviazione standard sono di solito calcolate
empiricamente nell’ipotesi di distribuzioni gamma:
µ = (a + 4m + b)/6
• la varianza del tempo di completamento del progetto è calcolato
come somma delle varianze delle attività sui percorsi critici
(questo è sensato solo nell’ipotesi di indipendenza delle
realizzazioni delle variabili aleatorie).
σ = (b - a)/6
dove m è il valore più probabile, a è la durata ritenuta
praticamente minima, b la durata ritenuta praticamente massima.
Raffaele Pesenti
17
Raffaele Pesenti
Gestione risorse
Esempio elementare
• La gestione di un progetto richiede non solo la schedulazione
delle attività che lo compongono, ma anche l’assegnazione delle
risorse alle attività.
• Mentre la schedulazione è un problema facile, l’assegnazione
delle risorse in generale risulta difficile.
Raffaele Pesenti
18
19
• progetto
– attività A iniziale senza predecessori, 2 gg, 5 risorse;
– attività B preceduta da A, 5 gg, 7 risorse;
– attività C preceduta da A, 3 gg, 2 risorse;
– attività D preceduta da B, 7 gg, nessun successore, 2 risorse;
– attività E preceduta da C , 4 gg, nessun successore, 4 risorse;
Si vuole minimizzare il massimo numero di risorse utilizzate
contemporaneamente.
Raffaele Pesenti
20
Esempio
A
B
C
D
E
risorse
Esempio
A
B
C
D
E
slack
slack
5
9
11
6
risorse
2
Raffaele Pesenti
21
Gestione risorse
Poiché la gestione delle risorse è un problema difficile i SW
forniscono di solito soluzioni euristiche che quindi devono
essere sempre analizzate criticamente prima di essere applicate.
Criteri di priorità assegnate ai task per la distribuzione delle
risorse in caso di conflitti tra task o gruppi di task:
–
–
–
–
–
FCFS,
minimum task slack,
mimimum latest finishing time,
greatest resource demand,
greatest resource utilization.
Raffaele Pesenti
23
Raffaele Pesenti
slack
slack
5
7
4
6
22