CPM: casi particolari ed algoritmo per il suo completamento

Date al più presto ES e propagazione in avanti

se più frecce puntano a una stessa attività la data di inizio (o di fine) al più presto di quest’ultima è pari alla massima tra le date di inizio (o di fine) a essa propagate in avanti dalle attività precedenti.

Ad esempio:

 

Date “al più tardi” e propagazione all’indietro

se più frecce partono da una stessa attività la data di inizio (o di fine)
al più tardi di quest’ultima è pari alla minima tra le date di inizio (o di fine)
a essa propagate all’indietro dalle attività successive.

Se invece devo fissare la data di fine essa sarà la minima tra le date di fine che seguino quella che devo fissare.

ALGORITMO IN AVANTI

Per la determinazione del cammino in avanti seguire l’algoritmo mostrato in figura 8
a pagina seguente.
1. compilazione del box iniziale: si determina EF dell’attività iniziale sommando a ES
tanti giorni di calendario quanti ne indica la durata, e sottraendo uno. Nel seguito si dirà
compilato (in avanti) un box nel quale siano state calcolate ES e EF;
2. propagazione diretta in avanti: ciascuna delle attività compilate propaga la sua data in
avanti verso tutti i box preceduti esclusivamente da essa;
3. compilazione degli altri box: nei box nei quali è stato assegnato un ES si assegna
EF = ES + DUR – 1; nei box nei quali è stato assegnato un EF si assegna ES = EF –
DUR + 1;
4. risoluzione dei vincoli concorrenti in avanti: se tutti i predecessori di un box sono
compilati in avanti, si scrive su quest’ultimo la maggiore tra le ES (o tra le EF) propagate
e si assegna EF = ES + DUR – 1 (o ES = EF – DUR + 1);
5. si ripetono i passi 2, 3 e 4 finché non siano state determinate le date “al più presto” di
tutte le attività.

Esso è esattamente quello fatto nel post CPM primo esempio

ALGORITMO ALL'INDIETRO

Per determinare il cammino all’indietro va eseguito l’algoritmo mostrato in figura 9.
1. compilazione del box finale: si impone nell’attività finale LF = EF e, di conseguenza,
LS = ES. Nel seguito si dirà compilato (all’indietro) un box nel quale siano state calcolate
LS e LF;
2. propagazione diretta all’indietro: utilizzando la regola (21), ciascuna delle attività
compilate propaga la sua data all’indietro verso tutti i box seguiti esclusivamente da
essa;
3. compilazione degli altri box: nei box nei quali è stato assegnato un LS si assegna
LF = LS + DUR – 1; nei box nei quali è stato assegnato un LF si assegna LS = LF – DUR
+ 1;
4. risoluzione dei vincoli concorrenti all’indietro: se tutti i predecessori di un box sono
compilati in avanti, si scrive su quest’ultimo la minore tra le LS (o tra le LF) propagate
e si assegna LF = LS + DUR – 1 (o LS = LF – DUR + 1);
5. si ripetono i passi 2, 3 e 4 finché non siano state determinate le date “al più tardi” di
tutte le attività.

E' il caso che ho dovuto applicare in maniera molto semplificata nell'attività 3 dell'esempio CPM primo esempio.

Informazioni su Francesco Bragadin

Insegno informatica e telecomunicazioni al liceo scienze applicate ed all'indirizzo informatica e telecomunicazioni. Ho terminato gli studi in ingegneria elettronica e telecomunicazioni lavorando per molti anni come libero professionista nell'ambito della gestione storage e disaster recovery su mainframe.
Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *