COORDINAMENTO E GESTIONE DI PROGETTI COMPLESSI



Похожие документы
IL PROBLEMA DELLO SHORTEST SPANNING TREE

Esercizi di Programmazione del progetto

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

APPUNTI SUI METODI PERT-C.P.M.

Dimensione di uno Spazio vettoriale


Appunti sulla Macchina di Turing. Macchina di Turing

Le tecniche di scheduling (1)

E naturale chiedersi alcune cose sulla media campionaria x n

Schedulazione delle attività di un progetto in presenza di multi-calendari e di vincoli sulle risorse

4 3 4 = 4 x x x 10 0 aaa

Schedulazione delle attività di un progetto in presenza di multi-calendari

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Relazioni statistiche: regressione e correlazione

PERT e CPM Cenni storici

Statistica. Lezione 6

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Prova di autovalutazione Prof. Roberta Siciliano

Massimo Paolucci DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Statistiche campionarie

Soluzione dell esercizio del 2 Febbraio 2004

Il concetto di valore medio in generale

Metodi statistici per l economia (Prof. Capitanio) Slide n. 9. Materiale di supporto per le lezioni. Non sostituisce il libro di testo

Esercitazione #5 di Statistica. Test ed Intervalli di Confidenza (per una popolazione)

SISTEMI DI NUMERAZIONE E CODICI

Analisi di Protocolli

LEZIONE n. 5 (a cura di Antonio Di Marco)

1) Si consideri un esperimento che consiste nel lancio di 5 dadi. Lo spazio campionario:

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Viene lanciata una moneta. Se esce testa vinco 100 euro, se esce croce non vinco niente. Quale è il valore della mia vincita?

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Esercitazione 1 del corso di Statistica 2 Prof. Domenico Vistocco

Gestione della memoria centrale

RETI DI TELECOMUNICAZIONE

Ingegneria del Software MINR. Giuseppe Santucci. 04 B - Esercitazione sui diagrammi Pert e Gantt. Gradi di libertà

Statistica Matematica A - Ing. Meccanica, Aerospaziale I prova in itinere - 19 novembre 2004

Cluster. Vicino alla temperatura critica gli spin formano grandi gruppi (cluster)

Verranno descritti di seguito brevemente gli algoritmi di calcolo utilizzati per l interpretazione nei tre metodi inseriti all interno del programma.

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

IL PROBLEMA DELLE SCORTE

Metodi statistici per le ricerche di mercato

Probabilità discreta

Statistica. Esercitazione 15. Alfonso Iodice D Enza iodicede@unicas.it. Università degli studi di Cassino. Statistica. A. Iodice

Il significato della MEDIA e della MEDIANA in una raccolta di dati numerici

Prof. Silvio Reato Valcavasia Ricerche. Il piano cartesiano

1. Distribuzioni campionarie

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

IL PROCESSO TECNICO DI SCHEDULAZIONE: TEMPI E COSTI DI UN PROJECT LABORATORIO INTEGRATO DI COSTRUZIONE E PRODUZIONE LEZIONE 4

La distribuzione Gaussiana

Programmazione dinamica

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

9. Urti e conservazione della quantità di moto.

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Algoritmi e strutture dati. Codici di Huffman

13. Campi vettoriali

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

ESEMPIO 1: eseguire il complemento a 10 di 765

LA STATISTICA si interessa del rilevamento, dell elaborazione e dello studio dei dati; studia ciò che accade o come è fatto un gruppo numeroso di

GRANDEZZE SINUSOIDALI

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

REALTÀ E MODELLI SCHEDA DI LAVORO

Testo alla base del Pitgame redatto dal prof. Yvan Lengwiler, Università di Basilea

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

Energia potenziale elettrica

Sistemi di Servizio e Simulazione

Esercizi di Ricerca Operativa II

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Work Breakdown Structure Diagramma di Gantt PERT/CPM

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

I SISTEMI TRIFASI B B A N B B

Alessandro Pellegrini

Trasformazioni Geometriche 1 Roberto Petroni, 2011

Parte 3. Rango e teorema di Rouché-Capelli

4. Operazioni aritmetiche con i numeri binari

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Inferenza statistica. Statistica medica 1

Forze come grandezze vettoriali

2. Leggi finanziarie di capitalizzazione

ELEMENTI DI DEMOGRAFIA

Traccia di soluzione dell esercizio del 25/1/2005

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Onestà di un dado. Relazione sperimentale

Tecniche Reticolari. Problema: determinare l istante di inizio di ogni attività in modo che la durata complessiva del progetto sia minima

Capitolo 13: L offerta dell impresa e il surplus del produttore

Esercizi su lineare indipendenza e generatori

La distribuzione Normale. La distribuzione Normale

Microeconomia, Esercitazione 3 Effetto reddito, sostituzione, variazione compensativa, domanda di mercato, surplus del consumatore.

Ottimizzazione Multi Obiettivo

Informatica. Rappresentazione dei numeri Numerazione binaria

GEOMETRIA DELLE MASSE

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Транскрипт:

COORDINAMENTO E GESTIONE DI PROGETTI COMPLESSI 1. - Formulazione del problema Supponiamo di dover organizzare e gestire un progetto complesso, quale puó essere la costruzione di un edificio, oppure la progettazione, produzione e lancio sul mercato di un nuovo prodotto, la realizzazione di un nuovo servizio, di un nuovo farmaco o di una nuova arma. La realizzazione del progetto puó essere scomposta nella esecuzione di un numero finito di attivitá relativamente indipendenti, nel senso che la responsabilitá della loro esecuzione puó essere affidata ad una unitá decisionale autonoma all interno dell organizzazione, o addirittura data in subappalto ad un impresa esterna all organizzazione, e l esecuzione stessa viene affidata a maestranze specializzate in quella particolare attivitá. Tra le diverse attivitá esistono delle relazioni di precedenza, nel senso che una qualunque di esse puó iniziare solo dopo che sono state terminate altre attivitá che la precedono. Ad esempio, se vogliamo costruire un edificio, non possiamo realizzare l impianto elettrico se non sono state scavate le fondamenta, non é stato realizzato il rustico, non sono stati costruiti i muri divisori interni, ecc. Inoltre supponiamo che di ogni attivitá si possa conoscere o si possa stimare la durata, cioé il tempo necessario per la sua esecuzione. Se il progetto é stato sufficientemente sperimentato in passato, la durata delle attivitá puó essere conosciuta con sufficiente attendibilitá, al punto da essere considerata certa. Se invece il progetto viene sperimentato per la prima volta o é stato sperimentato poche volte, allora la durata delle attivitá é una variabile aleatoria di cui si puó solo immaginare una distribuzione di probabilitá. Consideriamo dapprima il caso in cui tali tempi sono certi; vedremo piú avanti come trattare il caso in cui le durate sono aleatorie. Ci si pone allora i seguenti problemi. (1 Organizzare e coordinare le diverse attivitá in modo che, (nel rispetto dei vincoli di precedenza tra le diverse attivitá e dei vincoli sulla loro durata, l intero progetto venga completato nel minimo tempo possibile. (2 Schedulare le attivitá del progetto, cioé determinare per ogni attivitá il minimo inizio, (cioé l istante prima del quale l attivitá non puó iniziare senza violare qualche vincolo di precedenza o qualche vincolo sulla durata delle attivitá precedenti, e il massimo inizio, cioé l istante dopo il quale l attivitá non puó iniziare se vogliamo che il progetto si concluda nel tempo minimo. (3 Individuare i colli di bottiglia, cioé le attivitá in cui il minimo ritardo comporta un ritardo a cascata in tutte le attivitá successive, e quindi un ritardo nella conclusione del progetto. Queste attivitá sono dette le attivitá critiche del progetto; le altre attivitá sono invece dette non critiche, poiché, entro certi margini, un ritardo nella loro conclusione non comporta un ritardo nella conclusione del progetto. Evidentemente, conoscere le attivitá critiche e non critiche é estremamente importante, perché é possibile eventualmente distogliere risorse (umane, di capitali, macchine, ecc. dalle attivitá non critiche alle attivitá critiche, in modo da essere sicuri che non si verifichino ritardi nelle attivitá critiche. (4 Individuare un cammino critico, cioé una sequenza ordinata di attivitá critiche consecutive, ciascuna delle quali inizia non appena é terminata quella precedente, sicché la somma delle loro durate rappresenta la durata minima dell intero progetto. Per affrontare i suddetti problemi si utilizza una metodologia detta CPM, (che é un acronimo per Critical Path Method, consistente nel rappresentare il progetto come un grafo. Solitamente le attivitá rappresentano gli archi del grafo, le durate delle attivitá sono le lunghezze degli archi, e i nodi sono gli istanti in cui sono terminate tutte le attivitá precedenti e possono iniziare quelle successive. Negli ultimi anni ha preso piede un approccio alternativo, in cui le attivitá sono rappresentate dai nodi del grafo, le durate delle attivitá sono i pesi dei nodi e gli archi sono le relazioni di precedenza tra le attivitá. Seguiremo questo secondo approccio detto AON, (Activities On Nodes, piuttosto che il tradizionale approccio AOA, (Activities On Arcs. 1

2 n. 2. - Il Critical Path Method Consideriamo dunque un progetto complesso e alle attivitá proprie del progetto aggiungiamo due attivitá fittizie, che diremo inizio del progetto e conclusione del progetto; alle relazioni di precedenza tra le attivitá effettive del progetto, aggiungiamo le relazioni: - l inizio del progetto precede tutte le attivitá senza predecessori, - la conclusione del progetto segue tutte le attivitá senza successori. Siano dunque a 0, a 1, a 2,..., a n le attivitá del progetto e supponiamo di averle numerate in modo che - a 0 é l attivitá fittizia inizio del progetto, a n é l attivitá fittizia conclusione del progetto, - se l attivitá a i precede l attivitá a j, allora risulta i < j. Consideriamo il grafo G = (N, A, dove l insieme dei nodi é N = {a 0, a 1, a 2,..., a n } e l insieme degli archi é A = {(a i, a j N N a i precede a j }. Per ogni i = 1, 2,... n 1 sia T (i la durata dell attivitá a i ; l attivitá fittizie a 0 ed a n avranno ovviamente durata 0, e dunque T (0 = T (n = 0. Evidentemente G é un grafo orientato pesato, con pesi sui nodi; il grafo é senza cicli, ed in esso a 0 é l unica sorgente ed a n é l unica destinazione. Per ogni i = 0, 1, 2,..., n poniamo: F B(i = minimo inizio dell attivitá a i, F E(i = minima fine dell attivitá a i, LB(i = massimo inizio dell attivitá a i senza pregiudicare la conclusione del progetto nel tempo minimo, LE(i = massima fine dell attivitá a i senza pregiudicare la conclusione del progetto nel tempo minimo. La durata minima del progetto é dunque F E(n e ad essa si giunge facilmente attraverso un procedimento ricorsivo. Infatti, dal momento che nessuna attivitá puó iniziare prima che siano terminate tutte le attivitá precedenti, per ogni j = 1, 2,... n deve aversi (1 F B(j = max{f E(i : a i precede a j }, F E(j = F B(j + T (j. Ebbene, avendo supposto che i < j se a i precede a j, é evidente che ponendo F B(0 = LE(0 = 0 ed applicando la (1 in maniera ricorsiva si ricavano nell ordine: F B(1 ed F E(1, F B(2 ed F E(2,......, F B(n = F E(n = durata minima del progetto. D altra parte, nessuna attivitá puó finire dopo l inizio di quelle successive; perció, se vogliamo che la conclusione del progetto non venga ritardata, allora, per ogni i = 0, 1, 2,... n 1, deve aversi (2 LE(i = min{lb(j : a i precede a j }, LB(i = LE(i T (i. Ebbene, se vogliamo che il progetto non sia ritardato, occorre che sia LB(n = LE(n = F B(n = F E(n; di qui, applicando la (2 in maniera ricorsiva retrograda, si calcolano LE(n 1 ed LB(n 1, LE(n 2 ed LB(n 2,...... LE(0 ed LB(0. A questo punto, si puó calcolare, per ogni i = 0, 1,... n, lo scorrimento dell attivitá a i : SCORR(i = LB(i F B(i = LE(i LB(i, cioé il massimo ritardo che si puó avere nell inizio dell attivitá a i senza che la conclusione del progetto venga ritardata. Le attivitá che hanno uno scorrimento nullo sono attivitá critiche, perché devono necessariamente iniziare nell istante F B(i, altrimenti il progetto verrebbe ritardato. Le attivitá che hanno uno scorrimento maggiore di 0 sono non critiche, perché potrebbero iniziare in un qualunque istante compreso tra F B(i e LB(i senza che l intero progetto venga ritardato.

Per trovare un cammino critico, cioé una sequenza ordinata di attivitá critiche consecutive, ciascuna delle quali inizia non appena é terminata quella precedente, per ogni j = 1, 2,..., n sia h j l indice di un attivitá immediatamente precedente l attivitá a j, cioé tale che 3 F E(h j = max{f E(i : a i precede a j } = F B(j. Ebbene, se l attivitá a j é critica, anche l attivitá a hj é critica. Infatti, in caso contrario, si avrebbe LB(h j > F B(h j e quindi LE(h j > F E(h j = F B(j; ne seguirebbe che l attivitá a j potrebbe iniziare all istante LE(h j > F B(j senza ritardare la conclusione del progetto, e quindi sarebbe non critica. Pertanto se, nella fase in cui si calcola iterativamente il minimo inizio e la minima fine di ogni attivitá, si memorizza anche in un vettore P RED l attivitá a hj che precede la generica attivitá a j, allora da tale vettore potremo alla fine ricavare il cammino critico. Infatti, ovviamente l attivitá a n é un attivitá critica, e quindi é l ultima attivitá del cammino critico; ne segue che P RED(n sará la penultima attivitá del cammino critico, e il suo predecessore sará la terzultima attivitá del cammino critico, e cosí via fino a giungere all attivitá a 0 che sará la prima attivitá del cammino critico. Possiamo formalizzare quanto detto sotto forma di algoritmo: Algoritmo CPM (0 (Inizializzazione - Si memorizzano le attivitá a 0, a 1,..., a n ordinate in modo che i < j se a i precede a j. Si memorizzano le relazioni di precedenza mediante la matrice P tale che : { 1 se ai precede a j P (i, j = 0 altrimenti per ogni i, j. Si memorizzano le durate delle attivitá attraverso un vettore T IME tale che T IME(i = durata dell attivitá a i per ogni i = 0, 1,..., n. Si pone F B(i = 0, F E(i = 0, P RED(i = 0 per ogni i = 0, 1,..., n. (1 (Fase dell avanzamento - Si pone j = 0 e si esegue il ciclo: finché j < n si pone j = j + 1 e si esegue il ciclo: per i = 0, 1,..., j 1 si esegue: se P (i, j = 1 ed F E(i > F B(j, allora si pone F B(j = F E(i, P RED(j = i; alla fine del ciclo si pone F E(j = F B(j + T IME(j. (2 (Fase dell arretramento - Si pone LB(n = F B(n, LE(n == F E(n, SCORR(n = 0, i = n e si esegue il ciclo: finché i > 0 si pone i = i 1 e si esegue il ciclo: per j = i + 1, i + 2,..., n si esegue: se P (i, j = 1 ed LB(j < LE(i, allora si pone LE(i = LB(j; alla fine del ciclo si pone LB(i = LE(i T IME(i, SCORR(i = LB(i F B(i. (3 (Ricerca del cammino critico - Per ogni i = 0, 1, 2,..., n si pone LABEL(i = 0. Si pone LAST = n, LABEL(LAST = 1 e si esegue il ciclo: finché LAST 0 si pone LAST = P RED(LAST, LABEL(LAST = 1. Alla fine dell esecuzione dell algoritmo, tutti i dati raccolti possono essere organizzati in una tabella; la prima colonna contiene le diverse attivitá, le altre colonne sono nell ordine i vettori T IM E, F B, F E, P RED, LB, LE, SCORR, LABEL.

4 Da essa si ricava per ogni attivitá a i : (1 il minimo inizio e la minima fine; (2 massimo inizio e la massima fine compatibile con la conclusione del progetto in tempo minimo, (3 se l attivitá é critica o meno, (a seconda che risulti SCORR(i = 0 oppure SCORR(i > 0, (4 se fa parte del cammino critico o meno, (a seconda che risulti LABEL(i = 1 oppure LABEL(i = 0. Se il precedente algoritmo viene modificato ponendo F B(0 = F E(0 = data (o istante di inizio effettivo del progetto, (invece che F B(0 = F E(0 = 0, allora l algoritmo fornirá di ogni attivitá a i le date (o gli istanti F B(i e F E(i prima del quale l attivitá non puó iniziare e finire, e le date (o gli istanti LB(i e LE(i entro cui l attivitá deve iniziare e terminare, altrimenti l intero progetto verrebbe ritardato. In questo caso la durata minima del progetto sará data da F B(n F B(0. Questi dati possono anche essere rappresentati graficamente mediante i cosidetti diagrammi di Gantt. Tali diagrammi si ottengono fissando un riferimento cartesiano su una retta, su cui si rappresenta il tempo. Su tale retta si rappresenta il cammino critico, mediante una sequenza di segmenti adiacenti, aventi per estremi i punti di ascissa uguale all inizio e alla fine di ciascuna attivitá del cammino critico. Tale retta viene replicata piú volte per rappresentarvi le altre attivitá che si svolgono contemporaneamente a quelle del cammino critico. Le attivitá critiche vengono rappresentate da segmenti aventi per estremi i punti di ascissa uguale all inizio e alla fine dell attivitá. Invece un attivitá non critica a i viene rappresentata da un segmento di lunghezza T IME(i che puó scorrere tra i punti di ascissa F B(i e LE(i e questo viene ottenuto segnando con tratto continuo il segmento i cui estremi hanno ascissa F B(i e F E(i e con tratto discontinuo il segmento i cui estremi hanno ascissa F E(i e LE(i. 3. - Il PERT Consideriamo ora il caso in cui il progetto non é sufficientemente sperimentato, sicché non si puó conoscere con sufficiente attendibilitá la durata di ciascuna attivitá; tale durata é pertanto una variabile aleatoria, poiché le cause dei ritardi nella sua esecuzione sono non prevedibili e quindi casuali. In questo caso l incertezza viene controllata nel modo seguente: (1 per ogni attivitá a i si chiede al responsabile di quell attivitá (o a un team di esperti di indicare: un tempo ottimistico T O(i che rappresenta la durata prevista se tutto va per il verso giusto, un tempo pessimistico T P (i che rappresenta la durata prevista se tutto va storto, un tempo piú probabile T M(i che rappresenta la durata giudicata piú probabile; (2 sulla base di questi dati si assume che la durata T (i dell attivitá a i sia una variabile aleatoria il cui valore atteso sia T O(i + T P (i + 4T M(i E(T (i = = 1 ( T O(i + T P (i 6 3 + 2 2 3 T M(i, (il che significa che alla stima del tempo piú probabile si dá peso doppio rispetto alla media aritmetica tra tempo ottimistico e tempo pessimistico, e la cui varianza sia ( T P (i T O(i 2. σ 2 (T (i = 6 Si calcola dunque il valore atteso e la varianza delle durate di tutte le attivitá del progetto, dopo di che ci si comporta come se, per ogni attivitá a i, la durata attesa dell attivitá a i fosse una durata certa. Di conseguenza, con il procedimento descritto nell algoritmo CPM, si calcolano, di ogni attivitá a i, - il minimo inizio atteso F B(i e la minima fine attesa F E(i, - il massimo inizio atteso LB(i e la massima fine attesa LE(i compatibilmente con la conclusione del progetto in tempo minimo, - lo scorrimento atteso SCORR(i = LE(i F E(i.

5 Si trovano cosí le attivitá che molto probabilmente saranno attivitá critiche o non critiche e dunque le attivitá a i1, a i2,..., a ik che molto probabilmente faranno parte del cammino critico. Ció fatto, si osserva che il progetto sará terminato solo quando sono state completate tutte le attivitá del cammino critico; ne segue che la variabile aleatoria T = durata minima del progetto sará data da T = T (i 1 + T (i 2 +... + T (i k = somma delle durate delle attivitá critiche. A questo punto si suppone che le durate delle varie attivitá siano variabili aleatorie statisticamente indipendenti, cioé si suppone che le cause di possibili ritardi nella conclusione di un attivitá siano indipendenti da quelle che possono ritardare la conclusione delle altre attivitá. Se ne deduce che il valore atteso e la varianza della variabile aleatoria T coincide con la somma dei valori attesi e delle varianze delle durate delle attivitá del cammino critico: E(T = E(T (i 1 + E(T (i 2 +... + E(T (i k, σ 2 (T = σ 2 (T (i 1 + σ 2 (T (i 2 +... + σ 2 (T (i k. Si ottiene cosí il valore atteso e la varianza della variabile aleatoria T =durata minima del progetto. Infine si fa ricorso al teorema del limite centrale per approssimare la variabile aleatoria T = T (i 1 + T (i 2 +... + T (i k con una variabile aleatoria con distribuzione normale. Naturalmente l errore dell approssimazione é tanto piú piccolo quanto piú grande é il numero k degli addendi, e quindi quanto piú grande é il numero totale n delle attivitá del progetto, cioé quanto piú complesso é il progetto. La conclusione é dunque che la durata del progetto é approssimativamente la variabile aleatoria con distribuzione normale, di valore atteso E(T e varianza σ 2 (T. Dalle tavole della distribuzione normale standardizzata Z, (cioé con valore atteso 0 e varianza 1, si puó allora ottenere una stima della probabilitá che il progetto sia concluso entro un tempo τ > 0: ( T E(T P (T τ = P τ E(T ( = P Z τ E(T, o nell intervallo temporale [τ 1, τ 2 ]: ( τ1 E(T P (τ 1 T τ 2 = P T E(T τ 2 E(T ( τ1 E(T = P Z τ 2 E(T. Naturalmente se il cammino critico non é unico, allora la lunghezza attesa dei cammini critici é la stessa, perché coincide in ogni caso con F B(n = F E(n. Peró, due diversi cammini critici possono avere diversa varianza; in tal caso, (per motivi di prudenza, si deve prendere in considerazione il cammino critico che presenta la massima varianza complessiva, cioé la massima incertezza.