salve a tutti.devo creare qst programmino che il prof di poo ha dato da fare! ma sincermanete nn ho capito nulla di qll che mi chiede. potete aiutarmi? gfrazie
Prj#2 – Critical Path Method (CPM)
(Nota: Ciascun progetto deve essere dotato di una adeguata interfaccia utente grafica (GUI)
basata su Java AWT/swing. )
Prerequisito: Rappresentazione di un grafo orientato (ed eventualmente pesato),
con visite di vario tipo (a ventaglio o a scandaglio), e finalizzazione diversa come
spiegato di seguito. I programmi devono consentire la memorizzazione (persistenza)
dei dati su memoria di massa (file).
È utile per effettuare calcoli temporali sulle attività in cui è decomposto un progetto
(es. software), in presenza di vincoli. I nodi del grafo sono associati ad istanti
temporali e corrispondono ad eventi significativi del progetto come l’inizio di una
attività o la fine di una attività, allorquando ad es. un certo deliverable (risultato)
deve essere rilasciato. Gli archi del grafo, invece, corrispondono alle attività, in
particolare il peso (intero non negativo) dell’arco esprime la durata dell’attività. Se
esiste un’attività che inizia con l’evento i e termina con l’evento j, allora i<j, ossia
l’evento i precede l’evento j; l’attività Aij è relativa all’arco <i,j>, e dij è il peso
dell’arco <i,j>, ossia la durata di Aij.
Ad ogni evento (nodo) sono associate due informazioni temporali: T-Early e T-Late.
T-Early(i) esprime il minimo tempo entro il quale possono terminare tutte le attività
incidenti sul nodo i. Il nodo di partenza del grafo (evento iniziale del progetto) ha T-
Early pari a 0. Ogni altro nodo j ha un valore di T-Early determinato da:
T-Early(j) = max{ T-Early(i) + dij, i<j }
Il valore T-Late(i) esprime il tempo massimo entro cui tutte le attività incidenti sul
nodo i devono essere terminate. Il nodo finale (evento finale del progetto) ha T-
Late=T-Early. Ogni altro nodo i ha un valore di T-Late pari a:
T-Late(i)=min{ T-Late(j)-dij, i<j }
Esempio di grafo di attività, con 6 nodi numerati da 0 a 5. Il corrispondente grafo
orientato verrà annotato con le coppie T-Early e T-Late come mostrato in figura:
La differenza T-Late(i)-T-Early(i) esprime lo slack time del nodo i, ossia di quanto
esso può ritardare senza ritardare il progetto complessivo. In rosso è indicato il
“cammino critico” i cui eventi (nodi) hanno tutti:
T-Early=T-Late
e dunque non possono ritardare. Se un qualunque evento del cammino critico
ritardasse di t, lo stesso ritardo si avrebbe sull’intero progetto.