Lucidi sulla Gestione dei Progetti

Transcript

Lucidi sulla Gestione dei Progetti
La Gestione dei Progetti
Paolo Detti
Dipartimento di Ingegneria dell’Informazione e Scienze
Matematiche
Università di Siena
Gestione di Progetti complessi
Il termine progetto fa riferimento ad un vasto insieme di
applicazioni nell'ambito dei sistemi di produzione e di servizio.
Un progetto è un’iniziativa temporanea intrapresa per
creare un prodotto o un servizio con caratteristiche di
unicità*
Un progetto è costituito da un insieme di attività elementari
correlate.
*
PMI (Project Management Institute), un’associazione che riunisce oggi
circa 200.000 professionisti del project management.
Gestione di Progetti complessi
Modelli di organizzazione aziendale
Organizzazione funzionale
•  L’organizzazione aziendale classica è di tipo funzionale,
con precise gerarchie ed esplicite relazioni di
subordinazione tra i dipendenti e divisione in reparti:
progettazione, produzione, ricerca e sviluppo, marketing etc.
•  La forte strutturazione delle funzioni dà luogo a un ambiente
estremamente “stabile”.
•  Un’organizzazione funzionale è efficace in un mercato
relativamente stazionario, sia per tipologia che per volume
di prodotti.
•  La rigidità dell’organizzazione è compensata dall’efficienza
con cui i processi aziendali possono essere condotti.
Gestione di Progetti complessi
I principi che hanno ispirato l’organizzazione funzionale sono
oggi messi in discussione:
•  Sfide poste dal rapidissimo tasso di innovazione delle
tecnologie con processi continui di ri-segmentazione dei
mercati su scala regionale e globale.
•  Esigenza crescente dei clienti che richiedono sempre più
soluzioni personalizzate e “su misura”.
Nasce quindi la necessità di garantire rapide risposte alle
richieste del cliente e di continui cambiamenti/aggiornamenti
nella natura del servizio fornito
Gestione di Progetti complessi
Organizzazione orientata ai progetti
Una risposta delle aziende è stato quella di proporre strutture
organizzative (i project team) che nascono con lo scopo di
compiere una missione specifica, che includono diversi soggetti,
con competenze e funzioni diverse.
Gestione di Progetti complessi
Organizzazione orientata ai progetti
•  In una organizzazione orientata ai progetti gran parte delle
risorse dell’organizzazione sono impegnate su progetti
•  I project manager (non necessariamente appartenenti
all’azienda) hanno ampia autonomia e autorità sui membri del
proprio team.
•  Anche in queste organizzazioni esistono le funzioni, ma i suoi
componenti in genere dipendono dai rispettivi project
manager, o svolgono funzioni di supporto comuni ai vari
progetti.
Gestione di Progetti complessi
I processi di coordinamento che hanno luogo durante tutto lo
svolgimento del progetto, e che costituiscono i compiti del team
di progetto sono di tre tipi:
•  Processi Pianificazione
•  Processi Esecuzione
•  Processi Controllo
Gestione di Progetti complessi
Pianificazione: vengono definiti i maggiori obiettivi del progetto,
le attività elementari, le risorse richieste, il tipo di
organizzazione da attuare e le persone che controlleranno e
realizzeranno il progetto. (gestione rischi, costi, pianificazione
temporale delle attività).
Esecuzione: riguardano propriamente l’esecuzione delle attività
previste dal progetto. Fanno parte dei processi esecutivi anche i
processi per il supporto che il team dà all’esecuzione materiale
del progetto:
•  valutazione della qualità dell’output del progetto;
•  adozione di tecniche per migliorare lo ”spirito di gruppo”;
•  circolazione delle informazioni all’interno del team.
Gestione di Progetti complessi
Controllo: monitoraggio di ogni attività al procedere del lavoro.
Questo monitoraggio riguarda il tempo, la qualità ed il costo in
accordo con il piano di realizzazione del progetto.
Gestione di Progetti complessi
Pianificazione
La pianificazione dell’ambito del progetto:
•  definizione in dettaglio di tutto ciò che deve far parte della
missione del progetto
•  suddivisione del progetto in un numero di attività elementari.
Per individuare le attività si utilizza un procedimento top down il
cui risultato è la Work Breakdown Structure (WBS ):
Si parte dal livello più alto suddividendo il task complessivo in
alcune macro-attività;
ciascuna macro-attività viene esplosa in un certo numero di task
componenti, componenti sono esplosi in rispettivi sottocomponenti... e così via fino al livello di dettaglio desiderato.
Gestione di Progetti complessi
Pianificazione
Pianificazione della gestione dei rischi
•  Il rischio è qualsiasi evento imprevisto che può avere un
impatto sullo svolgimento del progetto.
•  Il termine risk management indica tutto quello che riguarda
le azioni intraprese per far fronte a possibili imprevisti
nell’andamento del progetto.
Gestione di Progetti complessi
Pianificazione
Pianificazione della gestione dei rischi
•  Rischi tecnici: cambiamento rispetto a standard consolidati in
corso d’opera, prefissarsi obiettivi irrealistici.
•  Rischi gestionali: adozione di procedure di management non
ottimizzate. Ad es., adozione di schedule troppo vincolati o costosi,
che non tengono in conto la limitatezza delle risorse disponibili.
•  Rischi organizzativi: rischi che derivano dall’ambiente
organizzativo. Ad es., la possibilità di improvvise interruzioni nel
finanziamento del progetto, conflitti con altri progetti aventi
componenti del project team in comune.
•  Rischi esterni: legati a fattori che non sono sotto il controllo del
project team. Ad es., cambiamenti nella legislazione.
Gestione di Progetti complessi
Pianificazione
Pianificazione temporale delle attività
Ad ogni attività di un progetto sono associati di norma:
1. la durata (deterministica o aleatoria);
2. le risorse necessarie alla sua esecuzione;
3. il costo;
4. le precedenze rispetto ad altre attività;
5. I vincoli temporali sulla data d’inizio e di fine dell’attività.
Gestione di Progetti complessi
Pianificazione temporale delle attività
Riuscire a prevedere in modo accurato la durata di ogni attività
di un progetto è un compito, in generale, difficile, a causa delle
incertezze e degli imprevisti che si avranno durante
l’esecuzione del progetto.
Gestione di Progetti complessi
Pianificazione
Pianificazione dei costi
Un aspetto cruciale del ruolo del project manager è quello di
pianificare e tenere sotto controllo i costi del progetto
•  Costi di realizzazione associati alle singole attività
•  Costi iniziali: connessi all’analisi delle richieste del
committente e alla preparazione del piano preliminare
•  Costi di gestione e controllo: relativi a definire il piano
esecutivo, rivedere i requisiti, organizzare riunioni, scrivere
report…
•  Costi di coordinamento: tempo dedicato alle varie attività di
coordinamento (e.g. riunioni periodiche, missioni etc).
Gestione di Progetti complessi
Nella Gestione di Progetti possono essere impiegate le
cosiddette tecniche reticolari, che prevedono una
rappresentazione del progetto su grafo orientato secondo due
distinte modalità: attività sui nodi o attività sugli archi.
Le tecniche reticolari si sono sviluppate a partire dal 1958
risultando particolarmente efficienti. Le più rilevanti sono:
Program Evaluation and Review Technique (PERT) e Critical
Path Method (CPM).
Gestione di Progetti complessi
Il PERT (Project Evaluation and Review Technique) si utilizza
quando l’aleatorietà nella durata delle attività è elevata: si
assume che le durate delle attività siano variabili aleatorie tra
loro indipendenti (con varianze e valori attesi facilmente
calcolabili).
Il Critical Path Method (CPM) può invece essere impiegato
quando l’aleatorietà nella durata delle attività non è elevata.
Gestione di Progetti complessi il modello del
Critical Path Method (CPM)
Consideriamo il caso più semplice in cui:
•  l’aleatorietà nella durata delle attività non è elevata
•  non esiste alcun vincolo legato alla disponibilità di risorse, e i
vincoli di precedenza tra attività sono di tipo finish-start (cioè,
un attività può iniziare se sono terminate le attività che la
precedono).
•  l’obiettivo è minimizzare il tempo di completamento del
progetto (noto come makespan).
Gestione di Progetti complessi
Tecniche reticolari di modellazione:
•  Activity-on-Arc (AoA): gli archi rappresentano le attività
mentre i nodi esprimono i vincoli di precedenza. In
particolare, i nodi corrispondono a eventi, quali il
completamento di alcune attività (quelle corrispondenti ad
archi entranti nel nodo) e l’inizio di altre (quelle uscenti):
l’attività (i, j) non potrà iniziare prima che siano terminate le
attività entranti nel nodo i, mentre nessuna attività uscente
dal nodo j può iniziare prima che sia terminata (i ,j) (e le altre
attività entranti in j).
•  Activity-on-Node (AoN): i nodi rappresentano le attività, gli
archi rappresentano le precedenze. Un arco da i a j indica
che l’attività j non può iniziare prima che i sia terminata.
Gestione di Progetti complessi:
il modello del CPM con attività sugli archi
Per modellare il problema di gestione di un progetto come un
problema su grafo con attività sugli archi (AoA) è necessario:
•  (identificare tutte le attività del progetto;)
• 
associare ad ogni attività un arco, i cui nodi estremi
rappresentano l’inizio ed il termine dell’attività in questione;
•  per ogni attività occorre conoscere le precedenze ossia quali
attività devono essere completate prima di poter iniziare
l’attività in esame;
•  modellare le precedenze attraverso archi (fittizi);
(segue)
•  inserire un nodo fittizio (contrassegnato con 0,1 o s) che
rappresenti l’inizio del progetto;
•  numerare tutti gli altri nodi in modo tale che se esiste un arco
diretto dal nodo i al nodo j risulti i < j (numerazione topologica);
•  inserire un nodo che rappresenti la fine del progetto;
•  contrarre archi fittizi se ciò non crea precedenze inesistenti.
Gestione di Progetti complessi:
il modello del CPM con attività sui nodi
Rappresentazione con la tecnica attività sui nodi (AoN):
•  i nodi modellano le attività del progetto;
•  gli archi rappresentano le relazioni di precedenza tra le
attività;
•  gli unici nodi fittizi che può essere necessario aggiungere
sono quelli di inizio e fine progetto.
Concettualmente la rappresentazione AoN è in generale più semplice di quella AoA,
soprattutto perché non c’è bisogno di introdurre attività fittizie.
La rappresentazione AoA è spesso più compatta, e questo può essere utile
soprattutto ai fini della comunicazione interna del project team.
Un problema di Gestione di un progetto
Descrizione del problema
Un’azienda vuole lanciare un nuovo prodotto sul mercato. Per il lancio del
prodotto sono necessarie una serie di attività preliminari di preparazione, ed
un’attività di produzione che consiste nell’assemblaggio di due diversi
componenti.
Dati
In tabella sono riportate le attività che devono essere eseguite per lanciare il
nuovo prodotto sul mercato.
Attività
Predecessori Durata (giorni)
A (Formazione Operai)
-
6
B (Acquisizione Materie Prime)
-
9
C (Produzione componente 1)
A, B
8
D (Produzione componente 2)
A, B
7
D
10
C, E
12
E (Controllo componente 2)
F (Produzione prodotto finito)
Obiettivo
Determinare uno schedule delle attività in modo tale che il progetto abbia
durata minima.
Grafo delle attività (attività sugli archi)
1
A, 6
3
0
2
B, 9
4
Attività fittizie di durata nulla
Attività
Predecessori Durata (giorni)
A (Formazione Operai)
-
6
B (Acquisizione Materie Prime)
-
9
C (Produzione componente 1)
A, B
8
D (Produzione componente 2)
A, B
7
D
10
C, E
12
E (Controllo componente 2)
F (Produzione prodotto finito)
Grafo delle attività (attività sugli archi)
1
A, 6
3
5
C, 8
6
0
2
B, 9
4
7
D, 7
8
A (Formazione Operai)
-
6
B (Acquisizione Materie Prime)
-
9
C (Produzione componente 1)
A, B
8
D (Produzione componente 2)
A, B
7
D
10
C, E
12
E (Controllo componente 2)
F (Produzione prodotto finito)
Grafo delle attività (attività sugli archi)
1
A, 6
3
5
C, 8
6
0
2
B, 9
4
7
D, 7
8
Attività fittizie di durata nulla
A (Formazione Operai)
-
6
B (Acquisizione Materie Prime)
-
9
C (Produzione componente 1)
A, B
8
D (Produzione componente 2)
A, B
7
D
10
C, E
12
E (Controllo componente 2)
F (Produzione prodotto finito)
Grafo delle attività (attività sugli archi)
1
A, 6
C, 8
3
0
2
B, 9
D, 7
5
Contrazione delle attività
fittizie
4
A (Formazione Operai)
-
6
B (Acquisizione Materie Prime)
-
9
C (Produzione componente 1)
A, B
8
D (Produzione componente 2)
A, B
7
D
10
C, E
12
E (Controllo componente 2)
F (Produzione prodotto finito)
Grafo delle attività (attività sugli archi)
1
A, 6
C, 8
3
0
2
B, 9
D, 7
5
7
4
E, 10
F, 12
6
Attività fittizie di durata nulla
A (Formazione Operai)
-
6
B (Acquisizione Materie Prime)
-
9
C (Produzione componente 1)
A, B
8
D (Produzione componente 2)
A, B
7
D
10
C, E
12
E (Controllo componente 2)
F (Produzione prodotto finito)
8
Grafo delle attività (attività sugli archi)
1
A, 6
C, 8
3
0
2
B, 9
D, 7
5
F, 12
6
Contrazione
delle attività
fittizie
E, 10
4
A (Formazione Operai)
-
6
B (Acquisizione Materie Prime)
-
9
C (Produzione componente 1)
A, B
8
D (Produzione componente 2)
A, B
7
D
10
C, E
12
E (Controllo componente 2)
F (Produzione prodotto finito)
Grafo delle attività (attività sugli archi)
1
A, 6
C, 8
3
0
2
B, 9
D, 7
5
F, 12
E, 10
4
I nodi sono numerati in modo topologico.
6
Grafo delle attività (attività sugli archi)
1
A, 6
C, 8
3
0
2
B, 9
D, 7
5
F, 12
6
E, 10
4
Un’attività è detta critica se l’aumento della durata dell’attività
crea un aumento della durata complessiva del progetto
Un cammino critico è un cammino dal nodo iniziale al nodo finale
composto solo da attività critiche.
Le attività critiche rappresentano il collo di bottiglia del progetto.
Calcolo del tempo di completamento minimo del progetto
1
A, 6
C, 8
3
0
2
B, 9
D, 7
5
F, 12
6
E, 10
4
Il tempo di completamento minimo del progetto (makespan) è
pari al minimo valore della differenza tra l’istante (di fine)
associato al nodo finale che rappresenta la conclusione del
progetto e l’istante (di inizio) associato al nodo iniziale
E’ possibile mostrare che il tempo minimo di esecuzione di un
progetto corrisponde al cammino di lunghezza massima dal
nodo iniziale al nodo finale
Un cammino di lunghezza massima è ovviamente un cammino
critico
Grafo delle attività (attività sui nodi)
A, 6
1
0
2
B, 9
precedenze
Nodi Attività
A (Formazione Operai)
1
Predecessori Durata (giorni)
-
6
-
9
2
B (Acquisizione Materie Prime)
3
C (Produzione componente 1)
A, B
8
4
D (Produzione componente 2)
A, B
7
5
E (Controllo componente 2)
D
10
6
F (Produzione prodotto finito)
C, E
12
Grafo delle attività (attività sui nodi)
A, 6
1
C, 8
3
0
2
B, 9
precedenze
Nodi Attività
A (Formazione Operai)
1
2
B (Acquisizione Materie Prime)
3
C (Produzione componente 1)
D (Produzione componente 2)
E (Controllo componente 2)
F (Produzione prodotto finito)
4
5
6
Predecessori Durata (giorni)
6
9
A, B
A, B
D
C, E
8
7
10
12
Grafo delle attività (attività sui nodi)
A, 6
1
C, 8
3
0
2
B, 9
D, 7
4
Nodi Attività
A (Formazione Operai)
1
2
B (Acquisizione Materie Prime)
3
C (Produzione componente 1)
D (Produzione componente 2)
E (Controllo componente 2)
F (Produzione prodotto finito)
4
5
6
Predecessori Durata (giorni)
6
9
A, B
A, B
D
C, E
8
7
10
12
Grafo delle attività (attività sui nodi)
A, 6
1
C, 8
3
0
2
B, 9
D, 7
4
E, 10
5
Nodi Attività
A (Formazione Operai)
1
2
B (Acquisizione Materie Prime)
3
C (Produzione componente 1)
D (Produzione componente 2)
E (Controllo componente 2)
F (Produzione prodotto finito)
4
5
6
Predecessori Durata (giorni)
6
9
A, B
A, B
D
C, E
8
7
10
12
Grafo delle attività (attività sui nodi)
A, 6
1
C, 8
F, 12
3
0
6
2
B, 9
D, 7
4
E, 10
5
Nodi Attività
A (Formazione Operai)
1
2
B (Acquisizione Materie Prime)
3
C (Produzione componente 1)
D (Produzione componente 2)
E (Controllo componente 2)
F (Produzione prodotto finito)
4
5
6
Predecessori Durata (giorni)
6
9
A, B
A, B
D
C, E
8
7
10
12
Grafo delle attività (attività sui nodi)
A, 6
1
C, 8
F, 12
3
0
6
2
B, 9
D, 7
4
E, 10
5
I nodi sono numerati in modo topologico.
Grafo delle attività (attività sui nodi)
A, 6
1
C, 8
F, 12
3
0
6
2
B, 9
D, 7
4
E, 10
5
•  Il tempo di completamento minimo del progetto (makespan) è pari
al minimo valore della differenza tra l’istante di inizio dell’attività
conclusiva, più la durata di tale attività, e l’istante di inizio
dell’attività iniziale (siano tali attività fittizie o reali)
•  Un’attività è detta critica se l’aumento della durata dell’attività crea
un aumento della durata complessiva del progetto
•  E’ possibile mostrare che il tempo minimo di esecuzione di un
progetto corrisponde al cammino di lunghezza massima (o critico)
dal nodo iniziale al nodo finale
Calcolo del cammino critico e delle attività critiche:
Una formulazione di PL
Grafo delle attività sugli archi (AoA)
Definizione delle variabili:
hi istante di tempo associato al nodo i del grafo delle attività
(pari al tempo in cui tutte le attività con nodo di fine i possono
terminare, o, equivalentemente, pari al tempo in cui tutte le
attività con nodo di inizio i possono iniziare)
Vincoli sulla durata delle attività:
Dati l’attività a, l’arco (i,j) ad essa associato e la relativa durata cij si ha:
h j ≥ hi + c ij
Funzione obiettivo:
minhf − h0
Lower bound sulle variabili:
hi ≥ 0
Calcolo del cammino critico e delle attività critiche:
Una formulazione di PL
minh6 − h0
(attività sugli archi)
h1 ≥ h0
h2 ≥ h0
h3 ≥ h1 + 6
h3 ≥ h2 + 9
h5 ≥ h3 + 8
h4 ≥ h3 + 7
h5 ≥ h4 +10
h6 ≥ h5 +12
hi ≥ 0
i = 0,...,6
1
A, 6
C, 8
3
0
2
B, 9
D, 7
5
F, 12
E, 10
4
6
Calcolo del cammino critico e delle attività critiche:
Una formulazione di PL
Grafo delle attività sui nodi (AoN)
Definizione delle variabili:
si istante di inizio dell’attività associata al nodo i del grafo delle
attività
Vincoli sulla durata delle attività:
Per ogni arco (precedenza) (i,j) sul grafo delle attività si ha:
si + d i ≤ s j
Funzione obiettivo:
minsf (+df ) − s0
Lower bound sulle variabili:
si ≥ 0
Calcolo del cammino critico e delle attività critiche:
Una formulazione di PL
Grafo delle attività sui nodi (AoN)
mins6 (+12) − s0
A, 6
1
s0 + 0 ≤ s1
C, 8
F, 12
3
0
2
B, 9
6
D, 7
4
E, 10
5
s0 + 0 ≤ s2
s1 + 6 ≤ s3
s1 + 6 ≤ s4
s2 + 9 ≤ s3
s2 + 9 ≤ s 4
s3 + 8 ≤ s6
s4 + 7 ≤ s5
s5 +10 ≤ s6
si ≥ 0
i = 1,...,6
Calcolo del cammino critico e delle attività critiche:
Il problema duale della formulazione di PL per il grafo con
attività sui nodi
Formulazione di PL per il grafo G=(V,A), |V|=n, con attività sui
nodi, nodo iniziale 1 e nodo finale f=n:
minsf − s1 = sn − s1
s j − si ≥ d i
∀(i, j) ∈ A
si ≥ 0 ∀i ∈ V
Osservazione: I vincoli di non negatività possono essere eliminati. Se infatti esiste
una soluzione ottima s* in cui – K è il valore della variabile più negativa si può
sempre considerare una nuova soluzione ottima: s’=s*+K , con si’ =s*i+K per ogni
attività i.
Infatti, si ha:
si’ ≥ 0
e
sn’ – s1’ =s*n-s1*
La formulazione quindi diventa:
minsn − s1
s j − si ≥ d i
∀(i, j) ∈ A
Calcolo del cammino critico e delle attività critiche:
Il problema duale della formulazione di PL per il grafo con
attività sui nodi
Formulazione di PL per il grafo con attività sui nodi:
minsn − s1
s j − si ≥ d i
∀(i, j) ∈ A
Problema duale:
Osservazione:
•  Il problema duale ha tante variabili (non negative) quanti sono i vincoli (gli archi).
•  I vincoli del duale sono tutti di uguaglianza perché le variabili del primale non sono
vincolate in segno, e pari alle variabili del primale (i nodi).
•  I termini noti dei vincoli del duale sono i coefficienti di costo delle variabili del
primale.
Calcolo del cammino critico e delle attività critiche:
Il problema duale della formulazione di PL per il grafo con
attività sui nodi
Formulazione di PL per il grafo con attività sui nodi:
minsn − s1
s j − si ≥ d i
∀(i, j) ∈ A
x ij
Problema duale:
Osservazione:
•  Il problema duale ha tante variabili (non negative) quanti sono i vincoli (gli archi).
•  I vincoli del duale sono tutti di uguaglianza perché le variabili del primale non sono
vincolate in segno, e pari alle variabili del primale (i nodi).
•  I termini noti dei vincoli del duale sono i coefficienti di costo delle variabili del
primale.
Calcolo del cammino critico e delle attività critiche:
Il problema duale della formulazione di PL per il grafo con
attività sui nodi
Formulazione di PL per il grafo con attività sui nodi:
minsn − s1
s j − si ≥ d i
∀(i, j) ∈ A
Il problema duale è quindi:
max
∑
d i x ij
(i, j )∈A
∑
x hi −
(h,i )∈δ − (i )
∑
∑
(i,h)∈δ + (i )
x1j = 1
(1, j )∈δ + (1)
∑
(h,n)∈δ − (n)
x hn = 1
x ih = 0
i ∈ V \ {1,n}
Calcolo del cammino critico e delle attività critiche:
Il problema duale della formulazione di PL per il grafo con
attività sui nodi
Formulazione di PL per il grafo con attività sui nodi:
minsn − s1
s j − si ≥ d i
∀(i, j) ∈ A
Il problema duale è quindi:
max
∑
d i x ij =
(i, j )∈A
∑
∑
∑
(i,h)∈δ + (i )
x1j = 1
(1, j )∈δ + (1)
∑
(h,n)∈δ − (n)
l ij x ij
(i, j )∈A
x hi −
(h,i )∈δ − (i )
∑
x hn = 1
x ih = 0
i ∈ V \ {1,n}
Calcolo del cammino critico e delle attività critiche:
Il problema duale della formulazione di PL per il grafo con
attività sui nodi
Il problema duale è quindi:
max
∑
l ij x ij
(i, j )∈A
∑
x hi −
(h,i )∈δ − (i )
∑
∑
x ih = 0
i ∈ V \ {1,n}
(i,h)∈δ + (i )
x1j = 1
(1, j )∈δ + (1)
∑
x hn = 1
(h,n)∈δ − (n)
Osservazione: Il problema duale corrisponde al problema di trovare il cammino di
lunghezza massina dal nodo 1 al nodo finale f=n sul grafo delle attività G=(V,A)
Il tempo di completamento minimo del progetto (makespan)
è dato quindi dalla lunghezza del cammino massimo (cioè
critico) dal nodo 1 al nodo n su G
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Dato il grafo delle attività sui nodi G=(V,E), sia:
ESTi (Earliest Start Time) il tempo minimo prima del quale
l’attività associata al nodo i non può iniziare (tempo minimo
entro cui possono essere completate tutte le attività precedenti il
nodo i).
EFTi (Earliest Finish Time) il tempo minimo di fine dell’attività
associata al nodo i
Si ha:
ESTi + di = EFTi
Il tempo minimo di esecuzione di un progetto tmin coincide col
tempo minimo di raggiungimento del nodo finale f; risulta perciò
che ESTf +df =EFTf = tmin.
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Procediamo ora al calcolo dei tempi ESTi per un dato nodo i.
Siano noti i tempi ESTk di tutti i predecessori k di i.
k
i
La generica attività i può iniziare al più presto al tempo EFTk =
ESTk + dk. Poiché per definizione ESTi è il tempo minimo entro
cui tutte le attività k che precedono i devono terminare, allora:
ESTi = max(k, i) ∈δ-(i) {ESTk + dk}= max(k, i) ∈δ-(i) {EFTk}
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Dato il grafo delle attività sui nodi G=(V,E), sia:
LSTi (Latest Start Time) tempo massimo di inizio dell’attività
associata al nodo i oltre il quale si ha un ritardo rispetto alla
durata minima del progetto
LFTi (Latest Finish Time) tempo massimo di fine dell’attività
associata al nodo i oltre il quale si ha un ritardo rispetto alla
durata minima del progetto
Si ha:
LSTi + di = LFTi
Il tempo minimo di esecuzione di un progetto tmin coincide col
tempo minimo di raggiungimento del nodo finale f; risulta
perciò che LFTf = tmin.
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Supponiamo di conoscere i tempi LSTk dei successori del nodo i
i
k
Affinché l’attività associata al nodo k inizi entro LSTk è
necessario in particolare che l’attività i non termini dopo l’istante
LSTk pertanto LSTi + di = LFTi ≤ LSTk . Perché questa
condizione sia valida per tutti i successori di i deve essere:
LFTi = min(i, k) ∈δ+(i){ LSTk }
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
•  Sia i una generica attività, siano ESTi , LSTi e di il tempo
minimo e massimo di inizio e la durata di i, rispettivamente.
•  Il tempo di cui può essere ritardata l’attività i rispetto a ESTi ,
senza alterare il tempo di completamento del progetto è:
TFi = LSTi - ESTi =
= LSTi + di - (ESTi + di)= LFTi – EFTi
detto Total Flow o Tempo di Slittamento.
•  Tutte le attività per cui risulta TFi = 0 sono ovviamente critiche,
dato che un aumento del loro tempo di esecuzione porta ad un
aumento complessivo del progetto.
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Il tempo di slittamento è realmente calcolabile solo se nello
schedule nessuno dei predecessori di i terminano dopo ESTi , e
nessuno dei successori di i inizia prima di LFTi .
Il Free Float FFi dell’attività i è la quantità di tempo di cui può
essere ritardata la fine dell’attività i indipendentemente dalla
schedulazione dei successori:
FFi = min(i, k) ∈δ+(i){ ESTk } - EFTi
Tutte le attività per cui risulta FFi = 0 sono critiche.
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
In alternativa, il Safety Float SFi dell’attività i misura di
quanto l’inizio dell’attività i può essere ritardato
indipendentemente dalla schedulazione dei predecessori:
SFi = LSTi - max(k, i) ∈δ-(i){ LFTk }
Tutte le attività per cui risulta SFi = 0 sono critiche.
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Le precedenti definizioni consentono di formalizzare subito un
algoritmo per il calcolo di EST/EFT e LST/LFT su un grafo
delle attività con i nodi numerati in modo topologico:
Fase di calcolo in avanti
1. i = 0; ESTi = 0.
2. i = i + 1.
3. Calcola ESTi = max(k,i) ∈δ-(i) {ESTk + dk}.
4. preci=arg max(k,i) ∈δ-(i) {ESTk + dk}
5. Poni EFTi = ESTi +di .
5. Se i < f torna al passo 2.
7. Se i = f l’algoritmo termina.
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Le precedenti definizioni consentono di formalizzare subito un
algoritmo per il calcolo di EST/EFT e LST/LFT su un grafo
delle attività con i nodi numerati in modo topologico:
Fase di calcolo all’indietro
8. i = f; LSTf = ESTf
9. i = i - 1.
10. Calcola LFTi = min(i,k) ∈δ+(i){LSTk }.
11. succi= arg min(i,k) ∈δ+(i){LSTk }.
12. LSTi = LFTi - di .
13. Se i > 0 torna al passo 9.
14. Se i = 0 l’algoritmo termina.
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Le precedenti definizioni consentono di formalizzare subito un
algoritmo per il calcolo di EST/EFT e LST/LFT su un grafo
delle attività con i nodi numerati in modo topologico:
Fase di calcolo in avanti
1. i = 0; ESTi = 0.
2. i = i + 1.
3. Calcola ESTi = max(k,i) ∈δ-(i) {ESTk + dk}.
4. preci=arg max(k,i) ∈δ-(i) {ESTk + dk}
5. Poni EFTi = ESTi +di .
Fase di calcolo all’indietro
5. Se i < f torna al passo 2.
7. Se i = f l’algoritmo termina. 8. i = f; LSTf = ESTf
9. i = i - 1.
10. Calcola LFTi = min(i,k) ∈δ+(i){LSTk }.
11. succi= arg min(i,k) ∈δ+(i){LSTk }.
12. LSTi = LFTi - di .
13. Se i > 0 torna al passo 8.
14. Se i = 0 l’algoritmo termina.
0
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
A, 6
1
C, 8
3
F, 12
2
B, 9
6
D, 7
4
E, 10
5
Fase in avanti:
EST0=0
EST1=0, EFT1=6,prec1=0
EST2=0, EFT2=9, prec2=0
EST3=max{EST1+6, EST2+9}=9, EFT3=9+8=17, prec3=2
EST4= max{EST1+6, EST2+9}=9, EFT4=9+7=16, prec4=2
EST5= EST4+7=16, EFT5=16+10= 26, prec5=4
EST6= max{EST3+8, EST5+10}=EST5+10=26, EFT6=26+12=38,
prec6=5
0
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
A, 6
1
C, 8
3
F, 12
2
B, 9
6
D, 7
4
E, 10
5
Fase all’indietro:
LFT6= EFT6= 38
LFT5=LFT6 -12=38-12=26, LST5=LFT5 -10=16, succ5=6
LFT4=LFT5 -10=26-10=16, LST4=LFT4 -7=9, succ4=5
LFT3=LFT6 -12=38-12=26, LST3=LFT3 -8=18, succ3=6
LFT2= min{LFT3 -8, LFT4 -7}=LFT4 -7=9, LST2=LFT2 -9=0, succ2=4
LFT1= min{LFT3 -8, LFT4 -7}=LFT4 -7=9, LST1=LFT1 -6=3, succ1=4
LFT0= min{LFT1 -6, LFT2 -9}=LFT2 -9=0, LST1=0, succ0=2
0
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
A, 6
1
C, 8
3
F, 12
2
B, 9
6
D, 7
4
E, 10
5
Fase in avanti:
Fase all’indietro:
EST0= 0, EFT0=0
EST1= 0, EFT1=6
EST2= 0, EFT2=9
EST3= 9, EFT3=17
EST4= 9, EFT4=16
EST5= 16, EFT5=26
EST6= 26, EFT6=38
LFT6= EFT6= 38, LST6= 26
LFT5= 26, LST5= 16
LFT4= 16, LST4= 9
LFT3= 26, LST3= 18
LFT2= 9, LST2= 0
LFT1= 9, LST1= 3
LFT0= 0, LST0= 0
0
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
A, 6
1
C, 8
3
F, 12
2
B, 9
6
D, 7
4
E, 10
5
Fase in avanti:
Fase all’indietro:
Attività critiche:
EST0= 0, EFT0=0
EST1= 0, EFT1=6
EST2= 0, EFT2=9
EST3= 9, EFT3=17
EST4= 9, EFT4=16
EST5= 16, EFT5=26
EST6= 26, EFT6=38
LFT6= EFT6= 38, LST6= 26
LFT5= 26, LST5= 16
LFT4= 16, LST4= 9
LFT3= 26, LST3= 18
LFT2= 9, LST2= 0
LFT1= 9, LST1= 3
LFT0= 0, LST0= 0
LST0 - EST0= 0
LST1 - EST1= 3
LST2 - EST2= 0
LST3 - EST3= 9
LST4 - EST4= 0
LST5 - EST5= 0
LST6 - EST6= 0
0
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
A, 6
1
C, 8
3
F, 12
2
B, 9
6
D, 7
4
E, 10
5
Fase in avanti:
Fase all’indietro:
Attività critiche:
EST0= 0, EFT0=0
EST1= 0, EFT1=6
EST2= 0, EFT2=9
EST3= 9, EFT3=17
EST4= 9, EFT4=16
EST5= 16, EFT5=26
EST6= 26, EFT6=38
LFT6= EFT6= 38, LST6= 26
LFT5= 26, LST5= 16
LFT4= 16, LST4= 9
LFT3= 26, LST3= 18
LFT2= 9, LST2= 0
LFT1= 9, LST1= 3
LFT0= 0, LST0= 0
LFT0 - EFT0= 0
LFT1 - EFT1= 3
LFT2 - EFT2= 0
LFT3 - EFT3= 9
LFT4 - EFT4= 0
LFT5 - EFT5= 0
LFT6 - EFT6= 0
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Gantt dell’Earliest Start Schedule:
EST0= 0, EFT0=0 ; EST1= 0, EFT1=6 ; EST2= 0, EFT2=9
EST3= 9, EFT3=17 ; EST4= 9, EFT4=16 ; EST5= 16, EFT5=26
EST6= 26, EFT6=38
6
5
4
3
2
1
0
10
20
30
40
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Gantt del Latest Start Schedule:
LFT6= EFT6= 38, LST6= 26; LFT5= 26, LST5= 16; LFT4= 16,
LST4= 9; LFT3= 26, LST3= 18; LFT2= 9, LST2= 0
LFT1= 9, LST1= 3; LFT0= 0, LST0= 0
6
5
4
3
2
1
0
10
20
30
40
Calcolo del cammino critico e delle attività critiche:
Un algoritmo combinatorio
Cammino critico sul grafo delle attività sugli archi:
1
A, 6
C, 8
3
0
2
B, 9
D, 7
5
F, 12
6
E, 10
4
Attività critiche