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