CPM - PERT CPM - PERT CPM e PERT sono metodologie per la gestione di progetti composti da più attività in cui esistano relazioni di precedenza. Critical Path Method Project Evaluation and Review Technique 15/11/99 17.29 Sviluppate indipendentemente sono ormai considerati equivalenti anche se il CPM originariamente era strettamente deterministico; il PERT nasce per gestire attività di durata stocastica. 1 2 Gestione di un Rappresentazione di un Passi fondamentali nella gestione di un : definizione del definizione delle attività (elementari) determinazione delle relazioni tra le attività schedulazione delle attività controllo dell evoluzione delle attività Un è rappresentabile come una rete G=(N,) dove: ogni arco (i,j) = e corrisponde ad una delle attività, l etichetta dell arco indica la durata dell attività; ogni nodo i N rappresenta un evento, i.e., inizio, fine, 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 3 4
Esempio elementare attività iniziale senza predecessori, 2 gg; attività preceduta da, 5 gg; attività C preceduta da, 3 gg; attività preceduta da, 7 gg, nessun successore; attività E preceduta da C, 4 gg, nessun successore; il è terminato quando sono terminate tutte le sue attività. inizio 0/0 2gg Esempio elementare nome durata task 2/2 estremi intervallo occorrenza evento 5gg C 3gg 7/7 5/10 E 4gg 7gg 14/14 fine 5 6 Regole di costruzione (archi) Non vi possono essere attività con entrambi i nodi in comune. ue attività con entrambe gli estremi in comune sarebbero precedute e seguite dalle stesse attività. al punto di vista gestionale corrisponderebbero ad un unica attività con durata uguale alla massima delle due attività. Per evitare parallelismi ed esprimere precedenze complesse può essere necessario introdurre attività dummy di durata nulla. Esempio: C è preceduta da e ; è preceduta solo da. Esempio: è preceduta solo da ; E è preceduta da e ; F è preceduta solo da. Esempi C dummy F E 7 8
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 con l estremo inferiore ottenuto dai calcoli; Regole di costruzione (nodi) l estremo inferiore dell evento generico i corrisponde all earliest starting time*, ES i, delle attività seguenti e quindi al massimo degli earliest completation time, EC k =ES k +p ki, delle attività precedenti: ES i =max k {ES k +p ki } l estremo superiore dell evento generico i corrisponde al latest completion time*, LC i, delle attività precedenti e quindi al minimo degli latest starting time, LS j =LC j -p ij, delle attività seguenti: LC i =min j {LC j -p ij } 9 * notare parallelismo tra ES i e r ij e tra LC i e d ij. 10 Regole di costruzione (nodi) La rete costruita è orientata e aciclica, si possono quindi ricavare i valori delle etichette di tutti i nodi col seguente algoritmo: ES evento_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; LC evento_finale =ES evento_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 LC evento_iniziale = 0); Esempio 3 2(12) 4(10) 0(14) 5(8) 1(13) 6(9) 3(11) possibile sequenza visita nodi in avanti (all indietro) 7 11 12
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. Percorso critico 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. Slack: sl ij = ( LC j -ES i ) - p ij massimo ritardo che può subire un task senza ritardare il completamento di tutto il (se i rimanenti task sui percorsi di appartenenza non subiscono ulteriori ritardi). 13 14 inizio 0/0 nome durata task 2gg 2/2 estremi intervallo occorrenza evento Esempio 5gg C 3gg 7/7 5/10 attività critiche E 4gg 7gg 14/14 fine Commenti le attività dei percorsi critici vanno tenute maggiormente sotto controllo; se si deve investire per ridurre i tempi di esecuzione del, 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. 15 16
PERT d ogni arco/attività sono associate: durata media attesa deviazione della durata Media e deviazione standard sono di solito calcolate empiricamente nell ipotesi di distribuzioni gamma: µ = (a + 4m + b)/6 σ = (b - a)/6 dove m è il valore più probabile, a è la durata ritenuta praticamente minima, b la durata ritenuta praticamente massima. PERT Il tempo atteso di completamento del è calcolato come somma dei tempi medi delle attività sui percorsi critici; la varianza del tempo di completamento del è calcolato come somma delle varianze delle attività sui percorsi critici (questo è sensato solo nell ipotesi di indipendenza delle realizzazioni delle variabili aleatorie). 17 18 Gestione risorse La gestione di un 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. Esempio elementare attività iniziale senza predecessori, 2 gg, 5 risorse; attività preceduta da, 5 gg, 7 risorse; attività C preceduta da, 3 gg, 2 risorse; attività preceduta da, 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. 19 20
Esempio Esempio C E C E risorse 5 9 11 6 2 risorse 5 7 4 6 21 22 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, mimimum latest finishing time, greatest resource demand, greatest resource utilization. 23