1. Classificazione delle risorse



Documenti analoghi
1. Considerazioni generali

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

Schedulazione di attività in presenza di attività interrompibili

Ottimizzazione Multi Obiettivo

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

Parte 3: Gestione dei progetti, Shop scheduling

Approcci esatti per il job shop

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

1) Descrivere dettagliatamente a quale problema di scheduling corrisponde il problema.

Esercizi di Programmazione del progetto

Organizzazione della produzione

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

1. PRIME PROPRIETÀ 2

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

Sistemi Organizzativi

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

SVM. Veronica Piccialli. Roma 11 gennaio Università degli Studi di Roma Tor Vergata 1 / 14

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso

Principi di Schedulazione in tempo reale

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

b i 1,1,1 1,1,1 0,1,2 0,3,4

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

risulta (x) = 1 se x < 0.

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

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

Le tecniche di scheduling (1)

Traccia di soluzione dell esercizio del 25/1/2005

Il Metodo Branch and Bound

Problema del trasporto

APPLICAZIONI DELLA RICERCA OPERATIVA

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

execute reject delay

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

VC-dimension: Esempio

2. Leggi finanziarie di capitalizzazione

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

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

Luigi Piroddi

TSP con eliminazione di sottocicli

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job.

TSP con eliminazione di sottocicli

Produzione e forza lavoro

Dimensionamento dei lotti di produzione: il caso con variabilità nota

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007

STRUTTURE NON LINEARI

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

1. Considerazioni preliminari

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Pro e contro delle RNA

Dimensione di uno Spazio vettoriale

Ottimizazione vincolata

4 3 4 = 4 x x x 10 0 aaa

CAPITOLO 6 La programmazione operativa (operations scheduling)

Alcuni Preliminari. Prodotto Cartesiano

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Modelli di Programmazione Lineare e Programmazione Lineare Intera

1 Giochi a due, con informazione perfetta e somma zero

Introduzione alla teoria dello scheduling

Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali. Sistemi informativi aziendali

Lezione 8. La macchina universale

10. Insiemi non misurabili secondo Lebesgue.

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.

Modelli per la gestione delle scorte

Capitolo 2. Operazione di limite

Il concetto di valore medio in generale

2) Codici univocamente decifrabili e codici a prefisso.

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

1 Applicazioni Lineari tra Spazi Vettoriali

Algoritmi e strutture dati. Codici di Huffman

Esercizi per il corso di Algoritmi e Strutture Dati

Intelligenza Artificiale

COORDINAMENTO E GESTIONE DI PROGETTI COMPLESSI

Ricerca Operativa (Compito A) Appello del 18/06/2013 Andrea Scozzari

ELEMENTI DI DEMOGRAFIA

Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10. Lecture 22: 1 Giugno Meccanismi Randomizzati

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

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

mese richiesta

Fondamenti e didattica di Matematica Finanziaria

Analisi e diagramma di Pareto

Corrispondenze e funzioni

LE FUNZIONI A DUE VARIABILI

Ottimizzazione nella gestione dei progetti

Esercizi e complementi di Ottimizzazione nella Gestione dei Progetti

2 Formulazione dello shortest path come problema di flusso

Scheduling. Scheduling 14/12/2003 1/7

Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole -

Progettaz. e sviluppo Data Base

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

SCHEDULING SCHEDULING

Corso di Matematica per la Chimica

e-dva - eni-depth Velocity Analysis

Reti sequenziali sincrone

Corso di Informatica

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

3 GRAFICI DI FUNZIONI

Transcript:

1. Classificazione delle risorse Classificazione delle risorse in base alla disponibilità. - Risorse rinnovabili Sono risorse utilizzate per l esecuzione di una attività per tutta la sua durata, ma sono rese nuovamente disponibili non appena l attività è terminata. Sono pertanto risorse per le quali si hanno vincoli sull uso complessivo ad ogni istante della durata del progetto. Esempi: personale, macchine, flusso di denaro, potenza, flusso di carburante. - Risorse non rinnovabili Sono risorse per le quali il vincolo sulla disponibilità coinvolge solo il consumo totale per l intera durata del progetto. Si tratta quindi di risorse disponibili e consumate sulla base dell intero progetto. Esempi: denaro limitato nel budget, energia, carburante. - Risorse doppiamente vincolate Sono risorse simultaneamente vincolate sia in termini di uso complessivo ad ogni istante che in termini di consumo totale per l intero progetto. 1

2. Considerazioni preliminari il CPM e il PERT sono tecniche basate sull ipotesi che le risorse addizionali non esistono (o sono illimitate) pertanto non sono tecniche idonee a risolvere problemi di project scheduling con vincoli sulle risorse. In generale, quando si ha a che fare con vincoli sulle risorse i problemi di project scheduling sono NP-hard in senso forte. Sono una generalizzazione dei problemi di job-shop. Pertanto il primo passo da fare nell analisi di tali problemi è quello di sviluppare un efficiente modello teorico che ne rappresenti le caratteristiche di base attraverso opportune strutture matematiche relativamente semplici che permettano di poter effettuare delle analisi teoriche (come: rappresentazione della spazio delle soluzioni, rilassamenti, criteri di dominanza, ecc.) e che siano adatte al disegno di algoritmi di risoluzione sia euristici che esatti. Ciò può essere ottenuto attraverso modelli basati su grafi non orientati nel caso di attività indipendenti (cioè senza vincoli di precedenza), o su grafi orientati rappresentanti insiemi parzialmente ordinati nel caso di attività con vincoli di precendenza. 2

3. Definizioni parametri Faremo riferimento da ora in poi a problemi di project scheduling con solo risorse rinnovabili (limitate). Siano: Parametri o T = {T 1,, T n } l insieme di n attività (task) che devono essere eseguite senza interruzione o p = (p 1,, p n ) il vettore delle durate dei task o R 0 T T un ordinamento parziale definito su T che descrive le relazioni (vincoli) di precedenza (diretta e indiretta) sui task di tipo finish-to-start; o R = {R 1,, R s } un insieme di s risorse rinnovabili con: r ih rappresentante le unità di risorsa R h utilizzate dal task T i durante ogni istante in cui è in esecuzione; Q h rappresentante la quantità massima (in unità di risorsa) di risorsa R h disponibile in ogni istante o D limite sulla durata del progetto Variabili o (s 1,, s n ) vettore degli istanti di inizio delle attività. Tale vettore è completamente specificato dalla schedula S = (s 1 (S),, s n (S)) delle attività del progetto. 3

4. Considerazioni introduttive Due task T i, T j che possono essere eseguiti contemporaneamente (perchè non vincolati da relazione di precedenza) richiedono complessivamente r ih + r jh unità di risorsa R h se vengono eseguiti simultaneamente. Pertanto il vincolo sulle risorse limitate potrebbe imporre di sequenziare (cioè aggiungere relazioni di precedenza) attività che utilizzano la stessa risorsa, provocando quindi un incremento del tempo di completamento di qualche attività che può comportare un aumento della durata del progetto. Viceversa, eseguendo contemporaneamente delle attività per ridurre la durata del progetto si può produrre un incremento dell uso delle risorse. Siccome i task devono essere eseguiti senza interruzione, ogni possibile misura di prestazione di una determinata scelta sull esecuzione delle attività di un progetto (soluzione) dipende dalla schedula S = (s 1 (S),, s n (S)) delle attività, cioè solo dagli istanti di partenza s i. 4

4. Considerazioni introduttive (continua) La prestazione di una schedula S è di solito espressa attraverso due differenti tipi di misure che esprimono rispettivamente gli aspetti temporali e gli aspetti legati alle risorse. Aspetti temporali Si fa riferimento al tempo di completamento C i (S) della generica attività T i per la schedula S. C i (S) = s i (S) + p i Volendo ancora rappresentare la prestazione di una schedula S secondo un unico indice di prestazione temporale si ricorre di solito ad una funzione regolare τ(c 1 (S),, C n (S)). Cioè una funzione non decrescente τ : tempi di completamento C i n 1 dei τ(c 1 (S),, C n (S)) rappresenta il costo di esecuzione della schedula S. Ad esempio. τ(c 1 (S),, C n (S)) = max [C i (S)] = C max (S) è la durata del progetto (o makespan della schedula). 5

4. Considerazioni introduttive (continua) Aspetti legati all uso delle risorse Data una schedula S si fa riferimento all ammontare massimo r h max (S) di risorsa R h (per h = 1,, s) utilizzata durante i vari istanti in cui il progetto è in corso r h max (S) = max {Σ {i: si (S) < θ s i (S) + p i } r ih θ = 1, 2,, T}. Analogamente, volendo rappresentare la prestazione di una schedula S, secondo un unico indice di prestazione sull uso delle risorse utilizzate, si fa ricorso ad una funzione non decrescente κ : s 1 κ(r 1 max (S),, r s max (S)), rappresentante il costo delle risorse di S. Ad esempio: κ(r 1 max (S),, r s max (S)) = Σ s h=1 K h r h max (S) dove K h è il costo per unità di risorsa R h. 6

4. Due principali problemi Resource Constrained Proj. Sched. Problem (RCPSP) (o problema delle risorse limitate) Dato un ordinamento parziale R 0 sulle attività T e un limite Q h sulla disponibiltà della risorsa R h, determinare la schedula di progetto S * che minimizza il costo di esecuzione τ(c 1 (S),, C n (S)) tra tutte le schedule ammissibili S S, cioè per le quali r max h (S) Q h, h=1,, s, e che rispetta l ordinamento parziale R 0. Resource Availability Cost Problem (RACP) (o problema del tempo limitato) Dato un ordinamento parziale R 0 sulle attività T e un limite Q h sulla disponibiltà della risorsa R h, determinare la schedula di progetto S * che minimizza il costo di delle risorse κ(r max 1 (S),, r max s (S)) tra tutte le schedule ammissibili S S, cioè per le quali C max (S) D e che rispetta l ordinamento parziale R 0. 7

5.1. RCPSP(C max ): Formulazione Consideriamo RCPSP con l obiettivo di minimizzare il tempo di completamento del progetto RCPSP(C max ). Senza perdita di generalità supponiamo che T 1 sia l unico task (eventualmente fittizio) a non avere predecessori e T n sia l unico task (eventualmente fittizio) a non avere successori, e sia G 0 = (T, R 0 ) il grafo di progetto con attività sui nodi. Formulazione concettuale s.t. C n * = p n + min s n s j s i p j, (T i, T j ) R 0 s 1 = 0 Ti S t r ih Q h, h = 1,, s; t = 1,, T dove S t = {T i T: s i < t s i + p i } è l insieme delle attività in esecuzione nel periodo unitario t (cioè nell intervallo [t 1, t]) e T è un UB di C * n. Non è una formulazione agevole perché S t dipende dalla soluzione stessa. 8

5.1. RCPSP(C max ): Formulazione (continua) Formulazione di Pritsker et al. (1969) Consideriamo la variabile binaria x it, con x it = 1 se T i inizia al tempo t e x it = 0 altrimenti. Ovviamente t può essere ristretto ai tempi ammissibili di inizio per T i, cioè t {ES i, LS i }, determinabili con le ricorsioni in avanti e indietro, assumendo LF n = T con T = UB sulla durata minima del progetto (es., UB = Ti T p i ). s.t. LS i t = ES LS t = ES i i n i= 1 x p LS n + min t n x nt t = ES = 1, i 1,..., n it = t x i r it LS j t = ES min{ t 1, LS } x t x ih iq q= max{ t p, ES } i i j i jt = Q h p, j n, ( Ti, Tj ) R0 h = 1,..., s; t = 1,..., T x it { 0,1}, i = 1,..., n; t = ESi,..., LSi N.B.: Le attività T i in esecuzione nel periodo unitario t sono quelle i cui s i cadono nell intervallo [t p i, t 1] (oltre ovviamente a appartenere all intervallo [ES i, LS i ]). Quindi T i è in esecuzione nel periodo unitario t se max{t p i, ES i } s i min{t 1, LS i }. (1) (2) (3) (4) (5) 9

5.2. RCPSP(C max ): Lower bound LB basato sul cammino critico Si ignorano i vincoli (4) sulla limitatezza delle risorse, riconducendo il problema al caso con risorse illimitate. Lower bound: LB1 1 ipotesi: risorse tutte in quantità illimitata. Esempio LB1 = l π lunghezza del cammino critico π del grafo G 0 = (T, R 0 ) delle precedenze. 4 task T = {T 1, T 2, T 3, } con durate p = (7, 6, 2, 5) con relazioni di precedenza: T 1 < T 2, ; T 2 < T 3. Risorse R 1, R 2, di quantità Q 1 = 3 e Q 2 = 3. Siano r i1 = (3, 2, 0, 2) e r i2 = (2, 0, 1, 2) le quantità di R 1, R 2 utilizzate dai task T i. T 1 (7) {3,2} (6) T 2 {2,0} (2) T 3 {0,1} T 5 G 0 (p i ) {r i1, r i2 } LB1 = 15 {2,2} (5) 10

5.2. RCPSP(C max ): Lower bound LB basato sulla sequenza critica (Stinson et al., 1978) Miglioramento del LB precedente. Si determina un cammino critico π ipotizzando di rilassare il vincolo (4) sulla limitatezza delle risorse. Sia l π la sua lunghezza (n.b.: LB1 = l π ). Sia T π l insieme della attività del cammino critico. Per ciascuna attività T i T\T π si valuta la (massima) durata di tempo l i p i in cui T i nell intervallo [ES i, LF i ] può essere eseguita (senza interruzione) in parallelo alle attività del cammino critico π. Per eseguire le attività T π {T i } occorre un tempo pari a l π + (p i l i ) che pertanto costituisce la lunghezza della sequenza critica formata da tali attività. Il massimo tra le lunghezze delle sequenze critiche ottenute per ogni attività T i T\T π è un valido LB Lower bound: LBs LBs = l π + max Ti T \T π {p i l i }. 11

5.2. RCPSP(C max ): Lower bound Esempio 4 task T = {T 1, T 2, T 3, } con durate p = (7, 6, 2, 5) con relazioni di precedenza: T 1 < T 2, ; T 2 < T 3. Risorse R 1, R 2, di quantità Q 1 = 3 e Q 2 = 3. Siano r i1 = (3, 2, 0, 2) e r i2 = (2, 0, 1, 2) le quantità di R 1, R 2 utilizzate dai task T i. [0, 7] T 1 (7) {3,2} (6) {2,2} T 2 {2,0} [7, 13] [7, 15] (5) (2) T 3 {0,1} [13, 15] T 5 [15, 15] G 0 Q 1 = 3; Q 2 = 3 (p i ) {r i1, r i2 } [ES i, LF i ] l π = 15 Per l unica attività T\T π si ha che l 4 = 2 p 4 = 5. Quindi LBs = l π + max Ti T \T π {p i l i } = 15 + (5 2) = 18. 12

5.3. RCPSP(C max ): Euristiche con regole di priorità LB basato sulle risorse L attività T i richiede un ammontare totale di risorsa R h pari r ih p i. Pertanto Ti r T ih p i è la quantità totale di risorsa R h richiesta durante il progetto. In ogni periodo unitario di tempo la risorsa R h è disponibile in quantità pari a Q h. È quindi necessario almeno un tempo pari a ( Ti T r ih p i )/Q h per eseguire tutte le attività. Dovendo valere ciò per ogni risorsa R h (per h = 1,, s) si ha: Lower bound: LBr LBr = max h { ( Ti T r ih p i )/Q h } 13

5.2. RCPSP(C max ): Lower bound Esempio 4 task T = {T 1, T 2, T 3, } con durate p = (7, 6, 2, 5) con relazioni di precedenza: T 1 < T 2, ; T 2 < T 3. Risorse R 1, R 2, di quantità Q 1 = 3 e Q 2 = 3. Siano r i1 = (3, 2, 0, 2) e r i2 = (2, 0, 1, 2) le quantità di R 1, R 2 utilizzate dai task T i. i p i r i1 ; r i2 r i1 p i r i2 p i 1 7 3; 2 21 14 2 6 2; 0 12 0 3 2 0; 2 0 4 4 5 2; 2 10 10 i 20-43 28 ( i r ih p i )/Q h - - 15 10 Quindi LBr = max h { ( Ti T r ih p i )/Q h } = max{15; 10} = 15. 14

5.3. RCPSP(C max ): Euristiche con regole di priorità Sono euristiche costruttive che si basano su: i. schema di scheduling ii. regola di priorità Lo schema di scheduling definisce il modo con cui la schedula ammissibile è costruita, estendendo una schedula parziale. Tipicamente gli schemi di scheduling sono di due tipi: a) schema di scheduling seriale b) schema di scheduling parallelo La regola di priorità, definita dalla coppia (v, extremum), definisce l ordine di priorità nella schedulazione delle attività; permette di scegliere una o più attività da un insieme detto di decisione. 15

5.3. RCPSP(C max ): Euristiche con regole di priorità Schema di scheduling seriale Partendo dalla schedula vuota, si aggiungono sequenzialmente le attività alla schedula parziale. È un algoritmo iterativo che ad ogni iterazione seleziona un attività (in base alla regola di priorità impiegata) non schedulata e la aggiunge alla corrente schedula parziale. All iterazione k si considera una partizione delle attività T in 3 sottoinsiemi: o C k (complete set) contenente le attività già schedulate e che quindi appartengono alla schedula parziale o D k (decision set) contenente le attività non schedulate i cui predecessori diretti sono in C k o R k (remaining set) contenente le rimanenti attività 16

5.3. RCPSP(C max ): Euristiche con regole di priorità Schema di scheduling seriale All iterazione k: 1. Si seleziona un attività T i D k a priorità più elevata e la si schedula all'istante di tempo minimo ammissibile, rispetto alle precedenze e alle risorse usate dalla schedula parziale; 2. Si rimuove T i da D k e si aggiunge a C k ; 3. Tutte le attività di R k le cui attività predecessori (diretti) sono state schedulate vengono rimosse da R k e aggiunte a D k. L algoritmo termina quando tutte le attività sono in C k. Al passo 1 la selezione avviene tenendo conto del valore di priorità v i assegnato al task T i. In particolare si seleziona T i* tale che: v i* = extremum Ti D k {v i } È garantito che la schedula generata è ammissibile. La schedula generata è attiva. In caso di assenza di vincoli sulla limitatezza delle risorse la schedula fornita è ottima. 17

5.3. RCPSP(C max ): Euristiche con regole di priorità Le regole di priorità possono essere classificate in: o regole basate sul tempo; o regole basate sulle precedenze; o regole basate sulle risorse. Esempi di regole basate sul tempo: o Shortest Proc. Time o Latest Start Time o Latest Finish Time (SPT) (p i, min) (LST) (LS i, min) (LFT) (LF i, min) Esempi di regole basate sulle precedenze: o Most Immediate Succ. o Most Total Succ. (MIS) ( S i, max) (MTS) ( S i, max) Esempi di regole basate sulle risorse: o Great Resource Demand (GRD) (p i h r ih ), max) o Relative Resource Usage (RRU) ( h r ih /Q h, max) 18

5.3. RCPSP(C max ): Euristiche con regole di priorità Esempio (1) (5) T 1 [2] [1] (0) (1) (0) (p i ) T 0 [0] T 2 [2] T 6 [0] T i [r i1 ] (2) (4) R = {R 1 } Q 1 = 4 T 3 [3] T 5 [3] Si assume di aver assegnato le seguenti priorità v, con extremum = min. Τ i T 0 T 1 T 2 T 3 T 5 T 6 ν i 0 1 1 2 6 6 6 L applicazione dell algoritmo seriale produce la seguente schedula. Q 1 = R 1 T 3 T 1 T 2 T 5 C max =7 0 1 2 3 4 5 6 7 t Si noti che LBr = (0 0+1 2+1 2+2 3+5 1+4 3+0 0)/4 = 7 (LB1 = 6; LBs = 7 scegliendo (T 0, T 3, T 5, T 6 ) come percorso critico), pertanto la schedula è ottima. 19

5.4. RCPSP(C max ): Approccio su grafo Consideriamo RCPSP con l obiettivo di minimizzare il tempo di completamento del progetto RCPSP(C max ). Consideriamo il grafo di progetto con attività sui nodi G 0 = (T, R 0 ) (aggiungendo eventualmente due dummy task: T 0 che precede tutti i task e T n+1 che sussegue tutti i task). G 0 è il grafo delle precedenze. Esempio 4 task T = {T 1, T 2, T 3, } con durate p = (7, 6, 2, 5) con relazioni di precedenza: T 1 < T 2, ; T 2 < T 3. Risorse R 1, R 2, di quantità Q 1 = 3 e Q 2 = 3. Siano r i1 = (3, 2, 0, 2) e r i2 = (2, 0, 1, 2) le quantità di R 1, R 2 utilizzate dai task T i. T 1 (7) {3,2} (6) T 2 {2,0} (2) T 3 {0,1} T 5 G 0 (p i ) {r i1, r i2 } {2,2} (5) Grafo di progetto G 0 20

5.4. RCPSP(C max ): Approccio su grafo (continua) T 1 (7) {3,2} (6) T 2 {2,0} (2) T 3 {0,1} T 5 G 0t (p i ) {r i1, r i2 } {2,2} (5) Chiusura transitiva G 0t del grafo di progetto Teorema 1 La durata minima del progetto, supponendo le risorse illimitate, è pari al peso ω p (G 0t ) della massima clique del grafo di progetto chiuso transitivamente G 0t con vertici di peso p i. Corollario La lunghezza l π del cammino critico π sul grafo delle precedenze G 0 = (T, R 0 ) è pari a ω p (G 0t ) LB1 = l π = ω p (G 0t ) ω p (G 0t ) = 15 T 1 (7) {3,2} (6) T 2 {2,0} (2) T 3 {0,1} T 5 G 0t (p i ) {r i1, r i2 } {2,2} (5) 21

5.4. RCPSP(C max ): Approccio su grafo (continua) Teorema 2 L ammontare massimo r max h di risorsa R h utilizzata durante i vari istanti di vita del progetto è pari al peso α rh (G 0t ) del massimo insieme indipendente del grafo di progetto chiuso transitivamente G 0t con vertici di peso r ih. α r1 (G 0t ) = 4 α r2 (G 0t ) = 3 T 1 (7) {3,2} (6) T 2 {2,0} (2) T 3 {0,1} T 5 G 0t (p i ) {r i1, r i2 } {2,2} (5) Una soluzione ammissibile è rappresentata dal grafo diretto aciclico G + = (T, R) ottenuto da G 0 aggiungendo archi (cioè precedenze, R 0 R) in modo che per la sua chiusura transitiva G + t si ha: α rh (G t + ) = r h max Q h, h = 1,, s 22

5.4. RCPSP(C max ): Approccio su grafo (continua) Chiamiamo G + grafo esteso ammissibile di G 0. T 1 (7) {3,2} (6) T 2 {2,0} (2) T 3 {0,1} T 5 G + (p i ) {r i1, r i2 } {2,2} (5) π c l πc = 18 la sua chiusura transitiva è G + t e α rh (G + t ) = Q h, h. α α r2 (G + r1 (G + t ) = 3 t ) = 3 T 1 (7) {3,2} (6) T 2 {2,0} (2) T 3 {0,1} T 5 G t + (p i ) {r i1, r i2 } ω p (G t + ) = 18 {2,2} (5) La durata minima del progetto associato alla soluzione G + grafo esteso ammissibile di G 0 è pari: o al peso ω p (G + + t ) della massima clique del grafo G t chiusura transitiva di G + con vertici di peso p i. ovvero o alla lunghezza l πc (G + ) del cammino critico π c (cioè di lunghezza massima) di G +. 23

5.4. RCPSP(C max ): Approccio su grafo (continua) Dato il grafo diretto aciclico G + = (T, R) insieme al vettore delle durate p dei task, si definisce Definizione Earliest start schedule ES G +[p] indotta da G + e p la schedula con i seguenti starting time per i task: t j (ES G +[p]) = 0 se T j non ha predecessori in G + max {Ti : (T i, T j ) R} [t i (ES G +[p]) + p i ] altrimenti ES G +[p] è una schedula semi-attiva poiché nessun task può essere completato prima senza violare la relazione R. Si tratta della miglior schedula associata a G +. Il suo makespan C max (ES G +[p]) è pari alla lunghezza l πc (G + ) del cammino critico π c (cioè di lunghezza massima) di G +. Q 2 =3 R 2 Q 1 =3 T 1 T 3 C max (ES G +[p]) = 18 R 1 T 2 7 13 15 18 t 24

5.4. RCPSP(C max ): Approccio su grafo (continua) Pertanto risolvere il problema RCPSP(C max ) corrisponde a determinare un grafo (esteso) G * che estende il grafo delle precedenze G 0, aggiungendo a questo archi orientati, tale che: o l estensione sia ammissibile: il grafo esteso G * sia aciclico e per la sua chiusura transitiva G t * si ha: α rh (G t * ) = r h max Q h, h = 1,, s o la lunghezza l πc (G * ) del cammino critico π c (di lunghezza massima) del grafo esteso G * sia minima. Un tale grafo esteso G * è ottimo e la earliest start schedule ES G *[p] indotta è una schedula ottima per RCPSP(C max ). Il makespan C * max della schedula ottima ES G *[p] associata è pari alla lunghezza l πc (G * ) del cammino critico π c di G *. 25

5.4. RCPSP(C max ): Approccio su grafo (continua) L approccio su grafo descritto per l RCPSP(C max ) in pratica estende quello per il job shop scheduling Jm C max, estendendo il concetto di grafo disgiuntivo. Definizione Il grafo disgiuntivo dei conflitti è il grafo C 0 = (T, A[G 0t ] E 0 ), dove G 0t è la ch. trans. di G 0 e T i e T j non possono essere (T i, T j ) E 0 <==> eseguiti simultaneaneamente per mancanza di risorse T 1 (7) {3,2} (6) T 2 {2,0} (2) T 3 {0,1} T 5 C 0 (p i ) {r i1, r i2 } {2,2} (5) C 0 si ottiene dalla chiusura transitiva G 0t di G 0 e aggiungendo gli archi non orientati E 0, dove (T i, T j ) E 0 se esiste una risorsa R h per cui r ih + r ih > Q h. Una soluzione ammissibile è rappresentata dal grafo diretto aciclico G + = (T, A[G 0t ] E 0 A + ) ottenuto da C 0 orientando gli archi indiretti E 0 e eventualmente aggiungendo archi in modo che per la sua chiusura transitiva G + t si ha: α rh (G t + ) = r h max Q h, h = 1,, s 26

5.5. RCPSP(C max ): Altri lower bound Lower bound: LB2 Un valido LB è pari al tempo richiesto per sequenziare task mutuamente in conflitto. o task mutuamente in conflitto sono clique del grafo dei conflitti o per eseguire task mutuamente in conflitto occorre un tempo pari alla somma delle loro durate LB2 = peso ω p (C 0 ) della clique di peso massimo del grafo dei conflitti C 0. {3,2} (6) {2,0} (2) T 1 T 2 T 3 (7) {0,1} C 0 Q 1 = 3; Q 2 = 3 (p i ) {r i1, r i2 } {2,2} (5) T 5 LB2 = 18 ω p (C 0 )=18 Teorema LB2 LB1 27

5.5. RCPSP(C max ): Altri lower bound (continua) Lower bound: LB3 3 ipotesi: risorse tutte tranne una in quant. illimit. LB3 = LB1 + max h (δ h ), dove δ h è il minimo tempo addizionale necessario per sequenziare i task che fanno uso della risorsa R h, tale che r h max Q h. N.B.: E ovvio che LB3 LB1, mentre nulla si può dire in generale tra LBs, LB2 e LB3. Calcolo di δ h Per ogni task T i richiedente R h, siano definiti il suo earliest start time ES i e il suo latest finish time LF i nell ipotesi 1. Il tempo addizionale richiesto dal task T i è pari alla sua tardiness rispetto a LF i mentre è ovvio che il task non può iniziare prima di ES i. Quindi il tempo addizionale necessario per sequenziare i task richiedenti R h, è pari alla massima tardiness dei task. 28

5.5. RCPSP(C max ): Altri lower bound (continua) Pertanto il minimo tempo addizionale necessario δ h è pari al minimo valore possibile per la massima tardiness. Il task T i può essere modellato come un job i con release date r i = ES i e due date d i = LF i e richiedente r ih macchine contemporaneamente. Inoltre tra i job sono date delle precedenze (quelle di R 0 ) e il numero delle macchine (parallele identiche) a disposizione è m = Q h. Determinare δ h equivale quindi a risolvere il problema Pm r i, size, prec L max, cioè un problema di scheduling con m macchine parallele identiche, con release date, due date e precedenze, in cui ciascun job i richiede simultaneamente r ih macchine e l obiettivo è minimizzare la lateness massima. Sia L * max il valore ottimo, si ha che δ h = max [0, L * max]. 29

5.5. RCPSP(C max ): Altri lower bound (continua) Esempio 4 task T = {T 1, T 2, T 3, } con durate p = (7, 6, 2, 5) con relazioni di precedenza: T 1 < T 2, ; T 2 < T 3. Risorse R 1, R 2, di quantità Q 1 = 3 e Q 2 = 3. Siano r i1 = (3, 2, 0, 2) e r i2 = (2, 0, 1, 2) le quantità di R 1, R 2 utilizzate dai task T i. R 2 R 1 [0, 7] [7, 13] [13, 15] [ES i, LF i ] T 1 T 2 T 3 G (p i ) 0 (7) (6) (2) {r i1, r i2 } {3,2} {2,0} {0,1} {2,2} (5) [7, 15] T 5 [15, 15] LB1 = 15 {3,2} (6) {2,0} (2) T 1 T 2 T 3 (7) {0,1} C 0 (p i ) {r i1, r i2 } {2,2} (5) T 5 LB2 = 18 ω p (C 0 )=18 30

5.5. RCPSP(C max ): Altri lower bound (continua) Calcolo di δ 1 : risorsa R 1 : r i1 = (3, 2, 0, 2), Q 1 = 3 Risolviamo la seguente istanza di P3 r i, size, prec L max task T 1 T 2 p i 7 6 5 r i 0 7 7 d i 7 13 15 con T 1 < T 2,. La schedula ottima è t 1 = 0, t 2 = 7, t 4 = 13 con L * max= 3. Pertanto δ 1 = 3. Calcolo di δ 2 : risorsa R 2 : r i2 = (2, 0, 1, 2), Q 2 = 3 Risolviamo la seguente istanza di P3 r i, size, prec L max task T 1 T 3 p i 7 2 5 r i 0 13 7 d i 7 15 15 con T 1 < T 3,. La schedula ottima è t 1 = 0, t 3 = 13, t 4 = 7 con L * max= 0. Pertanto δ 2 = 0. Pertanto, LB3 = LB1 + max(δ 1, δ 2 ) = 15 + 3 = 18 31

5.6. RCPSP(C max ): Euristica shift. bottl. Euristica shifting bottleneck E una procedura iterativa (analoga a quella per il job-shop) che consta di s iterazioni. Ad ogni iterazione viene individuata la risorsa che costituisce il bottleneck del progetto, e determinata la miglior schedula dei task che ne fanno uso. Tale schedula definisce ulteriori precedenze tra i task T, che si traducono nella definizione di archi aggiuntivi a G 0. Indichiamo con R l insieme delle s risorse. Ad una generica iterazione, indichiamo con R 0 il sottoinsieme delle risorse per le quali è stata specificata la schedula dei task che ne fanno uso. Pertanto nella generica iterazione il primo passo da fare è individuare la risorsa bottleneck in R\R 0. 32

5.6. RCPSP(C max ): Euristica shift. bottl. (continua) Per determinare la risorsa bottleneck, si individua quale risorsa in R\R 0 è causa del maggior accumulo di ritardo a causa del sequenziamento dei task che ne fanno uso. Sia G + (R 0 ) il grafo orientato (aciclico) ottenuto da G 0 aggiungendo gli archi rappresentanti le nuove precedenze dovute alla schedulazione dei task che impiegano le risorse R 0. La lunghezza del cammino critico di G + (R 0 ) è pertanto il makespan C max (R 0 ) della schedula ottima supponendo di rilassare i vincoli sulle altre risorse R\R 0. La risorsa bottleneck è quella k per cui C max (R 0 {R k }) = C max (R 0 ) + δ k è massimo tra tutte le risorse R h, h = 1,, s, dove δ h è il minimo tempo addizionale necessario per schedulare i task che impiegano la risorsa R h. Calcolo di δ h : Per ogni task T i, siano r i il suo earliest start time ES i e d i il suo latest finish time LF i calcolato su G + (R 0 ), noto C max (R 0 ). 33

5.6. RCPSP(C max ): Euristica shift. bottl. (continua) Determinare δ h equivale a risolvere il problema Pm r i, size, prec L max, cioè un problema di scheduling con m macchine parallele, con release date, due date e precedenze, in cui ciascun task T i richiede simultaneamente r ih macchine e l obiettivo è minimizzare la lateness massima; δ h = max [0, L * max]. In particolare, le release date sono gli ES i e le due date sono i LF i, le precedenze sono quelle degli archi di G + (R 0 ) e m = Q h. Determinata la risorsa bottleneck R k, i task vengono schedulati su di essa secondo la schedula ottenuta risolvendo il problema ausiliario Pm r i, size, prec L max. Questo consiste nel considerare le nuove precedenze dovute alla schedulazione dei task che usano la risorsa R k, ovvero definire il nuovo grafo aggiunto G + (R 0 {R k }) ottenuto aggiungendo i relativi archi a G + (R 0 ). Prima di terminare la generica iterazione si può eventualmente riottimizzare localmente la soluzione parziale ottenuta sequenziando le risorse R 0 {R k }. 34

5.6. RCPSP(C max ): Euristica shift. bottl. (continua) Riconsideriamo il precedente. Esempio 4 task T = {T 1, T 2, T 3, } con durate p = (7, 6, 2, 5) con relazioni di precedenza: T 1 < T 2, ; T 2 < T 3. Risorse R 1, R 2, di quantità Q 1 = 3 e Q 2 = 3. Siano r i1 = (3, 2, 0, 2) e r i2 = (2, 0, 1, 2) le quantità di R 1, R 2 utilizzate dai task T i. R 2 R 1 [0, 7] [7, 13] [13, 15] [ES i, LF i ] T 1 T 2 T 3 G (p i ) 0 (7) (6) (2) {r i1, r i2 } {3,2} {2,0} {0,1} {2,2} (5) [7, 15] T 5 [15, 15] LB1 = 15 LB2 = 18 LB3 = 18 35

5.6. RCPSP(C max ): Euristica shift. bottl. (continua) Applichiamo l euristica shifting bottleneck. Iniz.: R 0 è vuoto. Iter. 1: C max (R 0 ) = 15 pari alla lunghezza del cammino critico di G + (R 0 ) = G 0. Determiniamo la risorsa bottleneck Risorsa R 1 : r i1 = (3, 2, 0, 2), Q 1 = 3 Risolviamo la seguente istanza di P3 r i, size, prec L max task T 1 T 2 p i 7 6 5 r i 0 7 7 d i 7 13 15 con T 1 < T 2,. Schedula ottima: t 1 = 0, t 2 = 7, t 4 = 13 con L * max = 3. Risorsa R 2 : r i2 = (2, 0, 1, 2), Q 2 = 3 Risolviamo la seguente istanza di P3 r i, size, prec L max task T 1 T 3 p i 7 2 5 r i 0 13 7 d i 7 15 15 con T 1 < T 3,. Schedula ottima: t 1 = 0, t 3 = 13, t 4 = 7 con L * max = 0. 36

5.6. RCPSP(C max ): Euristica shift. bottl. (continua) La risorsa candidata è R 1 (L * max = 3). Sia R 0 = {R 1 }. Scheduliamo i task che usano la risorsa R 1 secondo t 1 = 0, t 2 = 7, t 4 = 13, che definisce le nuove precedenze (archi) T 2 <. Si ha: R 2 [0, 7] [7, 13] [13, 18] [ES i, LF i ] T 1 T 2 T 3 G + (R (p i ) 0 ) (7) (6) (2) {r i1, r i2 } {2,0} {0,1} {3,2} {2,2} (5) [13, 18] T 5 [18, 18] C max (R 0 ) = 18 Iter. 2: C max (R 0 ) = 18 pari alla lunghezza del cammino critico di G + (R 0 ) = G 0. Rimane solo da schedulare rispetto alla risorsa R 2 (che quindi sarà la risorsa bottleneck). Risorsa R 2 : r i2 = (2, 0, 1, 2), Q 2 = 3 Risolviamo la seguente istanza di P3 r i, size, prec L max task T 1 T 3 p i 7 2 5 r i 0 13 13 d i 7 18 18 con T 1 < T 3,. Schedula ottima: t 1 = 0, t 3 = 13, t 4 = 13 con L * max = 0. 37

5.6. RCPSP(C max ): Euristica shift. bottl. (continua) Si noti che nessuna nuova precedenza è definita da tale soluzione. Pertanto alla fine della seconda iterazione il grafo esteso G + ({R 1, R 2 }) coincide con il grafo G + ({R 1 }) ottenuto alla fine della iterazione precedente. Nel caso specifico infatti il grafo esteso G + ({R 1 }) al termine della iterazione 1 è già ammissibile. Infatti abbiamo quantità sufficiente per la risorsa R 2. Si noti che α r2 (G t + ({R 1 })) r 2 = 3. Infine, il grafo esteso è anche ottimo, pertanto G * = G + ({R 1, R 2 }), perchè C max ({R 1, R 2 }) = LB2 =18. 38

5.6. RCPSP(C max ): Euristica shift. bottl. (continua) Ridisegnamo G * = G + (R). [0, 7] [7, 13] [13, 18] [ES i, LF i ] T 1 T 2 T 3 G * (p i ) (7) (6) (2) {2,0} {0,1} {3,2} {r i1, r i2 } {2,2} (5) [13, 18] T 5 [18, 18] C max (ES G *[p]) = 18 A partire da G * ES G *[p]. = G + (R) si ottiene la seguente Q 2 =3 R 2 Q 1 =3 T 1 T 3 C * max=18 R 1 T 2 7 13 15 18 t Concludiamo notando che nel caso in cui le risorse rinnovabili siano tutte disponibili per una unità i task che ne fanno uso sono mutuamente in conflitto e tali conflitti possono essere rappresentati con archi disgiuntivi aggiunti a G 0 come nel job-shop. 39