.. Pianificazione di progetti Un progetto è costituito da un insieme di attività i, con i =,..., m, ciascuna di durata d i. stima Tra alcune coppie di attività esistono relazioni di precedenza del tipo i p j che indicano che j può iniziare solo dopo il completamento di i. sempio ttività:,,,, Precedenze: p, p, p, p, p. maldi Fondamenti di R.O. Politecnico di Milano
Un progetto può essere rappresentato mediante un grafo G = (N, ) orientato: arco attività costo di un arco = durata dell attività Per tenere conto delle relazioni di precedenza, gli archi devono essere disposti in modo tale che: i p j esiste un cammino orientato che contiene i due archi associati ad i e j in cui l arco associato a i precede quello associato a j i j. maldi Fondamenti di R.O. Politecnico di Milano
sempio ttività:,,,, Precedenze: p, p, p, p, p attività fittizie ( durata = ) N..: Il grafo è senza circuiti altrimenti esisterebbe un inconsistenza logica del tipo i p,... jk p ki (nodi numerati in ordine topologico : i < j (i, j) ).. maldi Fondamenti di R.O. Politecnico di Milano
! Semplificando il grafo non bisogna introdurre relazioni inesistenti mantenendo solo quest altra attività fittizia si impone anche p oltre a p, p, p, p, p Nodo v evento che corrisponde al termine di tutte le attività (i, v) δ - (v) e quindi al possibile inizio di quelle (v, j) δ + (v) δ - (v) v δ + (v). maldi Fondamenti di R.O. Politecnico di Milano
Introducendo nodi e/o archi fittizi si ottiene un grafo G che contiene un unico nodo iniziale s che corrisponde all evento inizio del progetto, contiene un unico nodo finale t che corrisponde all evento fine del progetto, non contiene archi multipli (con gli stessi estremi). s t oppure s t. maldi Fondamenti di R.O. Politecnico di Milano 5
Pianificare un progetto equivale a sincronizzarne le attività in modo da minimizzare la durata complessiva ( istante di completamento dell ultima attività ). Poiché ogni cammino da s a t rappresenta una sequenza di attività che devono essere svolte nell ordine specificato, il suo costo fornisce un limite inferiore alla durata minima complessiva del progetto. Quindi la durata complessiva minima = costo di un cammino massimo dal nodo iniziale s a quello finale t. maldi Fondamenti di R.O. Politecnico di Milano
lgoritmo PM ( ritical Path Method ) Per ogni nodo h N si determina: l istante al più presto Tmin[h] prima del quale l evento associato al nodo h non può accadere ( Tmin[n] corrisponde alla durata complessiva minima del progetto ) l istante al più tardi Tmax[h] in cui l evento può accadere senza compromettere la durata complessiva minima Lo slittamento dell attività (i, j) : Tmax[ j] Tmin[i] - d ij. maldi Fondamenti di R.O. Politecnico di Milano 7
sempio dato il seguente progetto: ttività F G H I urata Predecessori -,, F relazioni di precedenza: p, p, p, p, p, p F, p G, p G, p H, F p I eterminare la durata complessiva minima del progetto e lo slittamento di ogni attività. maldi Fondamenti di R.O. Politecnico di Milano
ttività:,,,,, F, G, H, I Relazioni di precedenza: p, p, p, p, p, p F, p G, p G, p H, F p I Modello: 5 F 7 attività fittizie I G H. maldi Fondamenti di R.O. Politecnico di Milano 9 ( durata )
sempio 5 F 7 H G I attività fittizie ( durata ) [, ] 5 [, ] [ 5, ] 7 [, ] [, ] [, ] [ Tmin[i], Tmax[i] ] [, ] [, ]. maldi Fondamenti di R.O. Politecnico di Milano
[, ] [, ] [ 5, ] 5 7 [, 9 ] [[, ]] [[, ]] [ Tmin[i], Tmax[i] ] [, ] [, ]] [, ] 5 [, ] [ 5, ] [, ] [, 9 ] 7 [, ] [, ]. maldi Fondamenti di R.O. Politecnico di Milano [, ] [ Tmin[i], Tmax[i] ] cammino di costo massimo
lgoritmo PM ( ritical Path Method ) input output G = (N, ) con n = N, durata d ij associata ad ogni arco (i, j) Tmin[i] e Tmax[i] per i =,, n GIN ordinare topologicamente i nodi; Tmin[] := ; FOR h:= TO n O Tmin[h] := MX{ Tmin[i] + d ih : (i,h) δ - (h) }; N-FOR Tmax[n] := Tmin[n]; // durata minima del progetto FOR h:=n OWNTO O Tmax[h] := MIN{ Tmax[j] d hj : (h,j) δ + (h) }; N-FOR N. maldi Fondamenti di R.O. Politecnico di Milano
Un attività (i, j) con slittamento nullo è detta critica N..: Tmin[i] = Tmax[i] e Tmin[j] = Tmax[j] non bastano affinché Tmax[j] - Tmin[i] - d ij =! [, ] 5 [, ] [ 5, ] [, ] (, ) non è critica perché - - = [, 9 ] 7 [, ] [, ]. maldi Fondamenti di R.O. Politecnico di Milano [, ] [ Tmin[i], Tmax[i] ] Le attività in rosso sono critiche Slittamento di (, 7) = 9-5 - = Slittamento di (, ) = - - =
Un cammino da a è critico se tutti gli archi che lo compongono sono critici (ne esiste sempre almeno uno). [, ] 5 [, ] [ 5, ] [, 9 ] 7 [, ] [, ] [ Tmin[i], Tmax[i] ] [, ] [, ] cammino critico con durata minima progetto =. maldi Fondamenti di R.O. Politecnico di Milano
iagrammi di Gantt Forniscono una rappresentazione temporale del progetto iagramma al più presto : ogni attività (i, j) inizia all istante Tmin[i] (i,j) d ij Tmin[i] Tmax[j] H F I G F G 5 9 5 7 9 5 H I. maldi Fondamenti di R.O. Politecnico di Milano 5
iagramma al più tardi : ogni attività (i, j) termina all istante Tmax[j] (i,j) d ij Tmin[i] Tmax[j] H F I G F G 5 9 5 7 9 5 H I. maldi Fondamenti di R.O. Politecnico di Milano