APPLICAZIONI DELLA RICERCA OPERATIVA



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

1. Considerazioni generali

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 11

Dimensione di uno Spazio vettoriale

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

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. PRIME PROPRIETÀ 2

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

Ottimizzazione Multi Obiettivo

2. Leggi finanziarie di capitalizzazione

Sistemi Organizzativi

Appunti sulla Macchina di Turing. Macchina di Turing

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

Organizzazione della produzione

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Il Metodo Branch and Bound

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

LE FUNZIONI A DUE VARIABILI

Funzioni. Parte prima. Daniele Serra

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

Programmazione dinamica

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

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

risulta (x) = 1 se x < 0.

4 3 4 = 4 x x x 10 0 aaa

TSP con eliminazione di sottocicli

Parte 2. Determinante e matrice inversa

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

( x) ( x) 0. Equazioni irrazionali

CALCOLO COMBINATORIO

Problema del trasporto

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

TSP con eliminazione di sottocicli

Soluzione dell esercizio del 2 Febbraio 2004

Schedulazione di attività in presenza di attività interrompibili

Capitolo 2. Operazione di limite

e-dva - eni-depth Velocity Analysis

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

Corso di Matematica per la Chimica

Il concetto di valore medio in generale

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

LEZIONE 23. Esempio Si consideri la matrice (si veda l Esempio ) A =

1. Distribuzioni campionarie

Lezione 9: Cambio di base

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

RETI DI TELECOMUNICAZIONE

CAPITOLO 6 La programmazione operativa (operations scheduling)

Basi di matematica per il corso di micro

Modelli di scheduling su macchina singola. relazione alle macchine che devono eseguire le varie operazioni, allora ogni singola macchina nello shop è

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Luigi Piroddi

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Bibliografia. Gestione operativa della produzione. Terminologia. Schedulazione. Schedulazione operativa della produzione

Transitori del primo ordine

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

Principi di Schedulazione in tempo reale

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

Esercizi su lineare indipendenza e generatori

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Relazioni statistiche: regressione e correlazione

Algoritmi e strutture dati. Codici di Huffman

Ricerca Operativa e Logistica

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

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Lezione 8. La macchina universale

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

Matematica in laboratorio

Capitolo 13: L offerta dell impresa e il surplus del produttore

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

Rappresentazione dei numeri in un calcolatore

Raccolta degli Scritti d Esame di ANALISI MATEMATICA U.D. 1 assegnati nei Corsi di Laurea di Fisica, Fisica Applicata, Matematica

mese richiesta

Equilibrio bayesiano perfetto. Giochi di segnalazione

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

SCHEDULING SCHEDULING

Lezioni di Matematica 1 - I modulo

1. Classificazione delle risorse

ESEMPIO 1: eseguire il complemento a 10 di 765

Corrispondenze e funzioni

(a cura di Francesca Godioli)

Fondamenti e didattica di Matematica Finanziaria

Parte 3. Rango e teorema di Rouché-Capelli

1 Applicazioni Lineari tra Spazi Vettoriali

Ottimizazione vincolata

Codifica binaria dei numeri relativi

Probabilità discreta

della funzione obiettivo. Questo punto dovrebbe risultare chiaro se consideriamo una generica funzione:

Lezioni di Ricerca Operativa. Corso di Laurea in Informatica Università di Salerno. Lezione n 4

SISTEMI DI NUMERAZIONE E CODICI

Metodi Stocastici per la Finanza

CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)

FUNZIONI / ESERCIZI SVOLTI

Teoria dei Giochi. Anna Torre

Particelle identiche : schema (per uno studio più dettagliato vedi lezione 2) φ 1

Esponenziali elogaritmi

Reti sequenziali sincrone

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

Transcript:

Università degli Studi della Calabria Laurea in Informatica A.A. 2004/2005 Appunti di supporto didattico al corso di APPLICAZIONI DELLA RICERCA OPERATIVA

Indice 1 Introduzione alla teoria dello Scheduling 1 1.1 Introduzione.................................... 1 1.2 Scheduling su singola macchina......................... 3 1.2.1 Minimizzazione della massima lateness................. 4 1.2.2 Generalizzazione della regola di Jackson................ 6 1.2.3 Minimizzazione della somma pesata dei tempi di completamento.. 9 1.2.4 Minimizzazione del ritardo....................... 11 1.2.5 Tempi di set-up dipendenti dalla sequenza............... 12 1.3 Macchine parallele identiche e uniformi..................... 13 1.4 Flow Shop su due macchine........................... 17 i

Capitolo 1 Introduzione alla teoria dello Scheduling 1.1 Introduzione I problemi dello scheduling (più precisamente, quelli di cui si parlerà sono detti di machine scheduling = sequenziamento su macchine) costituiscono una vasta classe di problemi di ottimizzazione, spesso molto complessi (NP-hard), e di utilità in svariati campi applicativi. La teoria dello scheduling è, quindi, un grosso capitolo della ricerca operativa, estremamente ampio ed articolato, con risultati consolidati relativamente a modelli, algoritmi e complessità, e al tempo stesso in continua evoluzione a causa dei numerosi problemi aperti che stimolano tuttora la ricerca. Si considererà solo una piccola parte dei problemi di scheduling su macchine, i più semplici, per i quali esistono algoritmi polinomiali di soluzione. Si supponga di avere un insieme di macchine che effettuano un certo numero di operazioni la cui esecuzione è necessaria per completare dei job (ciascuno costituito da una sequenza di operazioni che possono essere eseguite sulle macchine). Il processamento di una operazione richiede l uso di una particolare macchina per un certo tempo, detto tempo di processamento (processing time) dell operazione. Ogni macchina può processare una sola operazione alla volta. Il problema che ci si pone è quello di determinare l ordine di processamento delle operazioni su ogni macchina in modo da ottimizzare una qualche misura di prestazione. La terminologia usata evidenzia che il problema è noto originariamente in un contesto di produzione industriale. Tuttavia varie altre interpretazioni sono possibili: job e macchine potrebbero di volta in volta rappresentare pazienti ed equipaggiamenti ospedalieri, lezioni (classi) e docenti, programmi e computers, navi e arsenali ecc. Quattro diversi fattori servono a descrivere e a classificare i problemi di scheduling: 1. La configurazione degli arrivi dei job. Se n job arrivano simultaneamente in uno shop che è vuoto e immediatamente disponibile per iniziare la lavorazione, allora il problema è detto statico. Se i job arrivano in momenti diversi, possibilmente seguendo un processo stocastico, il problema è detto dinamico. Si considererà solo il caso statico. 2. Il numero di macchine, m, disponibili. 1

2 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING 3. Il modo in cui i job passano sulle macchine (flusso dei job sulle macchine). Se tutti i job seguono lo stesso ordine di processamento sulle macchine si parla di problema flow shop. L estremo opposto, in cui i job non seguono una sequenza comune di operazioni, è detto randomly routed job shop oppure open shop. 4. Il criterio di valutazione di prestazione dello shop (la funzione obiettivo). Esistono numerosi modi per misurare la bontà della schedula proposta: si considereranno solo alcuni criteri, detti misure regolari, ovvero funzioni il cui valore, rispetto ad una data schedula, è completamente determinato dai tempi di completamento dei job (tempo in cui l ultima operazione del job è completata). Questa scelta non è in realtà restrittiva, perchè la classe delle misure regolari è sufficientemente ricca per comprendere una grande varietà di criteri che sono i più significativi in pratica. Oltre ai quattro fattori considerati, potrebbero di volta in volta aggiungersi vincoli diversi che limitano il numero di soluzioni ammissibili, sostanzialmente legati al modo di operare delle macchine o a fattori esterni dello shop, come date di consegna (scadenze) per i job che vanno rispettate. Ne deriva una grande varietà di problemi di scheduling diversi (ne sono stati formulati oltre 400), che solitamente vengono classificati adottando la notazione a tre campi α β γ dove: α indica l ambiente macchina (singola macchina, macchine parallele, job shop, open shop, flow shop) β indica le caratteristiche dei job (indipendenti, con relazioni di precedenza, tempi di rilascio) γ indica il criterio di ottimalità (makespan, max lateness,...) Per quanto riguarda la configurazione degli arrivi dei job occorre precisare che, pur restando sempre nel caso statico, si rilasserà qualche volta l ipotesi che i job siano tutti disponibili per il processamento nello stesso istante. Le due situazioni che può essere utile considerare sono: (i) I job diventano disponibili in istanti diversi e interi, detti ready-times o releasedates r j, j = 1,..., n (comunque noti deterministicamente a priori). Si indicherà questa situazione inserendo r j nel secondo campo. In tutti gli altri casi si assumerà r 1 =... = r j =... = r n = r e, senza perdita di generalità, r = 0. (ii) I job non sono indipendenti tra loro, ma esistono delle relazioni di precedenza che impediscono il processamento del generico job k se non sono completati tutti i job suoi predecessori (e quindi definiscono implicitamente dei ready times ). Questi

1.2. SCHEDULING SU SINGOLA MACCHINA 3 vincoli di precedenza (relaz. d ordine parziale) possono essere rappresentati mediante un grafo orientato aciclico H =< V, A > dove e V = {1,..., n} (insieme dei job ) (i, j) A i < j (il job j non può essere processato prima del completamento del job i). Si indicherà questo tipo di problemi con la notazione prec nel secondo campo. Va ancora precisato che solitamente i tempi di processamento dei job, p j, si assumono fissati e indipendenti dalla sequenza, ma tale ipotesi è, in alcuni casi, irrealistica. Si accenerà in seguito a problemi in cui non si possono ignorare dei tempi di change-over o di set-up della macchina dipendenti dalla sequenza (nel caso singola macchina), che rendono di fatto i tempi p j complessivi (includendo in essi anche quelli di allestimento della macchina) dipendenti dall ordinamento. Per questo caso si porrà seq dep nel secondo campo. In alcuni problemi è ragionevole ed utile consentire che l esecuzione del job sulla macchina possa essere interrotta per essere ripresa in un istante successivo. La preemption può in realtà semplificare il problema (è una sorta di rilassamento lineare di un problema intero); essa viene indicata con prmtn nel secondo campo. 1.2 Scheduling su singola macchina I problemi di scheduling più semplici sono quelli in cui si dispone di una singola macchina, e si debba determinare l ordine di processamento degli n job sulla macchina (la quale può eseguire al più un job alla volta), noti i tempi di processamento p j, j = 1,..., n, dei job, in modo da ottimizzare una assegnata misura di prestazione regolare. Si assume che: tutti i job sono disponibili all istante t = 0; i tempi di processamento p 1,..., p n sono noti con certezza; i job sono eseguiti senza interruzioni e senza intervalli vuoti tra di essi. Una schedula, allora, sarà niente altro che un ordinamento dei job, ovvero una permutazione degli interi 1, 2,..., n che indicheremo con π (ci sono, quindi, n! soluzioni ammissibili). Ciascuna sequenza definisce univocamente il tempo di completamento di ogni job: c j = t j + p j j = 1,..., n, dove t j è l istante in cui ha inizio il processamento del job j e, quindi, il valore di ogni misura regolare, che è una funzione non decrescente dei tempi di completamento: f(c 1,..., c n ) Denotando con [i] il job che è in posizione i-esima in una data sequenza, e con p [i] il tempo di processamento di quel job (analogamente per c [i] ) è evidente che, nelle ipotesi fatte c [n] = per ogni sequenza p j

4 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING (il tempo di completamento dell ultimo job è sempre pari alla somma dei tempi di processamento, indipendentemente dall ordine in cui i job vengono processati). Pertanto la funzione makespan definita come segue: c max (π) = max 1 j n {c j(π)} che è una delle misure di prestazione più significative per i problemi di scheduling su più macchine, perde di significato nel caso di una sola macchina, essendo c max (π) = c [n] = p j per ogni permutazione π Si considereranno, quindi, altre misure di prestazione. 1.2.1 Minimizzazione della massima lateness Per ciascun job j {1,..., n} si suppone assegnata una data di consegna, o due-date, d j. Si definisce allora, j L j = c j d j Lateness del job j Si noti che potrebbe essere L j = c j d j > 0 ritardo rispetto a d j = 0 puntualità < 0 anticipo Il problema che si pone è quello di determinare la sequenza che minimizza la massima lateness: { } min L max (π) = min max L π π j(π) 1 j n Nel seguito, per semplicità di notazione, si ometterà di evidenziare la dipendenza delle funzioni considerate dalla sequenza π, e si porrà, ad esempio L max = max j {L j }. Nella notazione a tre campi precedentemente introdotta, il problema in esame è: 1 L max Tale problema è risolubile mediante la seguente regola di Jackson (1955) Regola EDD ( Earliest Due-Date ) La soluzione ottima del problema 1 L max si ottiene sequenziando i job in ordine di due-date non decrescenti: d [1] d [2]... d [n] Dim. Sia π una sequenza che rispetta la regola EDD e π una sequenza arbitraria, π π. Allora esistono due job j e k tali che j precede immediatamente k in π, ma k precede j in π, essendo d k d j. Scambiando le posizioni reciproche dei job j e k in π si ottiene una nuova sequenza π, rispetto alla quale

1.2. SCHEDULING SU SINGOLA MACCHINA 5 Figura 1.1 L k := c k d k < c k d k := L k perchè c k < c k Quindi L j := c j d j = c k d j c k d k := L k max{l k, L j} L k = max{l j, L k } perchè d k d j ovvero, scambiando le posizioni di j e k in π la funzione obiettivo L max non può crescere. Ripetendo un numero finito di volte l operazione di scambio si può trasformare π in π. Pertanto π è ottimale. Nota: La regola di Jackson consente di risolvere il problema 1 L max in tempo O(n log n), essendo il costo dell ordinamento delle n due-date il fattore dominante nella complessità dell algoritmo. Il problema 1 L max può essere (come tutti i problemi di scheduling) formulato come problema di ottimizzazione lineare mista. Si ponga t j = istante di inizio di processamento del job j, j = 1,..., n y ij = { 1 se il job i precede j nella sequenza 0 altrimenti ( 1 i < j n) (Si noti che le variabili t j possono essere assunte intere se p j è intero j = 1,..., n; altrimenti t j IR j) Se il job i precede j nella sequenza, le relative variabili t i e t j devono soddisfare Se, invece, j precede i si deve avere t j t i + p i t i t j + p j Per imporre il soddisfacimento di questi vincoli disgiuntivi, sia α > 0 sufficientemente grande ( α > n p j ) e si considerino i seguenti due vincoli che dovranno essere invece soddisfatti simultaneamente { αyij + t i t j p j α(1 y ij ) + t j t i p i

6 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING Si noti che y ij = 1 (i precede j) { α tj + p j t i (sempre soddisfatto) t j t i + p i mentre y ij = 0 (j precede i) { ti t j + p j α t j + p i t j (sempre soddisfatto) Inoltre, j si ha Quindi l obiettivo è L j = c j d j = t j + p j d j. min L max = min{max{t j + p j d j }} j Tale problema di min / max può essere ricondotto sotto forma di problema di programmazione lineare, introducendo una ulteriore variabile L, come segue: min s.v. L t j + p j d j L j = 1,..., n La formulazione completa del problema è dunque: min L s.v. t j + p j d j L j = 1,..., n αy ij + t i t j p j 1 i < j n α(1 y ij ) + t j t i p i 1 i < j n y ij {0, 1} 1 i < j n t j 0 j = 1,..., n 1.2.2 Generalizzazione della regola di Jackson Una generalizzazione del problema 1 L max consiste nel considerare delle funzioni di costo non decrescenti dei tempi di completamento dei job, f j (c j ), e cercare la sequenza che minimizza la funzione f max = max{f j (c j )} j Se, inoltre, si suppongono assegnate delle relazioni di precedenza tra i job, che inducono una relazione d ordine parziale tra i job (j < k il job k non può essere processato se non è stata completata l esecuzione del job j), si ottiene il problema 1 prec f max di cui 1 L max è un caso particolare (relazione di precedenza vuota, f j (c j ) = L j j) Il problema 1 prec f max è risolto dalla seguente semplice regola (Lawler 1973). Regola di Lawler La soluzione ottima del problema 1 prec f max si ottiene sequenziando i job come segue: Fra tutti i job che possono essere sequenziati per ultimi (senza successori in prec ) poni in ultima posizione quel job cui corrisponde il costo minimo, se processato in coda;

1.2. SCHEDULING SU SINGOLA MACCHINA 7 ripeti sui rimanenti n 1 job. Dim. Sia N = {1, 2,..., n} l insieme di tutti i job e sia Q N l insieme dei job senza successori. Per ogni S N sia F (S) il massimo costo di completamento nella schedula ottimale per S ossia f (S) = f max (π (S)) = max j S {f j(c j (π (S))} dove π (S) è la sequenza ottimale per i job in S. L ultimo job, in qualunque sequenza, sarà completato all istante P = p 1 + p 2 +... + p n. Se il job l Q è scelto in modo tale che f l (P ) = min j Q f j(p ) allora il valore ottimale di una sequenza soggetta alla condizione che il job l sia fissato in ultima posizione è dato da: max{f (N\{l}), f l (P )} Si vuole provare che tale valore è non peggiore (e cioè, visto che si deve minimizzare f max ) di f (N). Basterà dimostrare che: (1) f (N\{l}) f (N) (2) f l (P ) f (N) (1) Sia π la sequenza ottima sui job N, con tempi di completamento c j = c j(π ), e sia l = [k] in π (il job l è in posizione k-sima). Si rimuova il job l e si compatti, ottenendo la sequenza ˆπ : [1], [2],..., [k 1], [k + 1],..., [n] (la sequenza ˆπ è identica a π nelle prime k 1 posizioni e poi continua con i job che seguivano il job l in π ). Questa è una soluzione ammissibile per il problema sui job N\{l}, con tempi di completamento ĉ j = c j j predecessore di l in π Poichè f j (c j ) è monotona non decrescente j, (j = [i], i k 1) f j (ĉ j ) f j (c j) j N\{l} e quindi anche Se ne deduce che max {f j(ĉ j )} max f j(c j) = f (N) j N\{l} j N f (N\{l}) = min π [ max f j(c j (π)) j N\{l} ] f (N) (2) Per costruzione f l (P ) f k (P ) k Q, e quindi anche f l (P ) f k (P ) se k = [n] in π. Ma f k (P ) f (N) per definizione f l (P ) f (N). Nota: La regola di Lawler, applicata al problema 1 L max, coincide con la regola EDD.

8 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING Esempio Si consideri il semplice caso 1 prec L max con n = 4 dove la relazione di precedenza è: 1 < 3, 1 < 4, 2 < 4 e tempi di processamento e due-date dei quattro job sono i seguenti: p 1 = 8 d 1 = 10 p 2 = 6 d 2 = 12 p 3 = 5 d 3 = 9 p 4 = 3 d 4 = 15 Figura 1.2 4 Q = {3, 4} P = p j = 22 L 3 (22) = 22 d 3 = 13 L 4 (22) = 22 d 4 = 7 min{l 3 (P ), L 4 (P )} = min{13, 7} = 7 l = 4 L 4 = 7 Q = {2, 3} P = 22 p 4 = 22 3 = 19 min{l 2 (19) = 19 12, L 3 (19) = 19 9} = min{7, 10} = 7 l = 2 L 2 = 7 Q = {3} P = 19 p 2 = 13 L 3 = 4 π = (1, 3, 2, 4) L = max{l j } = 7 j Nota: ulteriori generalizzazioni del problema 1 f max sono le seguenti: 1 r j f max che è NP-hard (anche senza relazioni di precedenza); 1 premtn, prec, r j f max che può essere risolto, mediante una generalizzazione della regola di Lawler, in tempo polinominale (O(n 2 )).

1.2. SCHEDULING SU SINGOLA MACCHINA 9 Si osservi come il consentire l interruzione del processamento dei job in qualunque istante e la ripresa dell esecuzione più tardi, senza alcuna penalità, semplifichi il problema. Nota: la regola di Lawler può essere implementata in modo da ottenere una complessità O(n 2 ), nell ipotesi che il costo della valutazione di f j (c j ) sia unitario j. In tal caso, infatti, il costo dell algoritmo si riduce a determinare il min j Q {f j (P )} per ciascuna iterazione, dove, nel caso peggiore, Q = n alla prima iterazione, poi Q = n 1, Q = n 2 e così via. 1.2.3 Minimizzazione della somma pesata dei tempi di completamento Si supponga di avere un problema di scheduling su singola macchina in cui, per ogni job, è specificato il tempo di processamento p j ed un peso w j associato al suo tempo di completamento c j. L obiettivo è determinare una sequenza che minimizzi la somma pesata dei tempi di completamento: min w j c j Il problema 1 n w j c j è risolto da un altro risultato classico della teoria dello scheduling, noto come ratio-rule o regola del rapporto, dovuta a Smith (1956). Regola di Smith La soluzione ottima del problema 1 n w j c j si ottiene sequenziando i job in ordine di rapporti p j /w j non decrescenti: p [1] w [1]... p [n] w [n] Dim. Sia π una sequenza che rispetta la regola del rapporto e π una sequenza arbitraria, π π. Allora esistono j e k tali che j precede immediatamente k in π ma p j /w j > p k /w k. Sia π ottenuta da π per scambio di j e k Figura 1.3

10 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING Si ha: c j = c k c k = c j p j = c k p j c k c j = p k (w k c k + w j c j) (w k c k + w j c j ) = w k (c k p j ) + w j c k w k c k w j c j = = w k c k w k p j + w j c k w k c k w j c j = w j (c k c j ) w k p j = = w j p k w k p j < 0 Quindi w j c j < j j w j c j. Poichè π è ottenibile da π con un numero finito di scambi di questo tipo, π è ottimale. Nota: Se w = 1 j = 1, 2,..., n, il problema diventa 1 si riduce a : j c j e la regola di Smith p [1] p [2]... p [n] nota come: SPT o regola Shortest Processing Time. Dimostrazione alternativa della regola SPT Sia c [i] il tempo di completamento del job che è i-esimo nella sequenza. Allora, per ogni sequenza ammissibile si ha: c [1] = p [1] c [2] = c [1] + p [2] = p [1] + p [2]. c [n] = p [1] + p [2] +... + p [n] Quindi c [j] = np [1] + (n 1)p [2] +... + p [n] La funzione obiettivo è una funzione lineare delle incognite p [j] ( 0) con coefficienti positivi strettamente decrescenti: il valore minimo si ottiene facendo corrispondere al coefficente massimo l incognita di valore minimo e ripetendo sui rimanenti addendi. In altri termini la soluzione ottima si ottiene ordinando i job in modo tale che p [1] p [2]... p [n] Nota: Il problema 1 n w j c j è risolubile in tempo O(n log n) Generalizzazioni: 1 r j j c j (e quindi anche 1 r j n w j c j ) è NP-hard;

1.2. SCHEDULING SU SINGOLA MACCHINA 11 1 pmtn, r j j c j è risolubile in tempo polinominale con una semplice estensione della regola SPT (sebbene 1 pmtn, r j j w jc j sia NP-hard) Regola di Baker (1974): Poni in prima posizione nella sequenza il job con release-date r j minima (il primo disponibile). In ogni punto di decisione (ogni qualvolta un nuovo job diventa disponibile per il processamento o un job è completato) scegli come successivo, tra quelli disponibili (rispetto a r j ), un job il cui tempo di processamento rimanente è minimo. Esercizio: Dimostrare l ottimalità della soluzione fornita dalla regola di Baker (SRPT,o Shortest Remaining Processing Time ). Una ulteriore generalizzazione del problema 1 j w jc j si ottiene considerando, per ciascun job j = 1,..., n, una data di scadenza, d j ( deadline ). Al contrario delle due-date, le deadlines definiscono vincoli sui tempi di completamento: c j d j j = 1,..., n Il problema che si pone è quello di minimizzare j c j soggetto ai vincoli di deadline: 1 d j j c j (si noti che il problema potrebbe essere inammissibile!) Regola di Smith (1956) La soluzione ottima (se esiste) del problema 1 d j j c j si ottiene applicando la seguente regola: fra tutti i job che potrebbero essere sequenziati per ultimi ( d j n i=1 p i ) metti in ultima posizione quello che ha tempo di processamento massimo; ripeti sui rimanenti n 1 job, e così via. Nota: 1 d j j w jc j è NP-hard. 1.2.4 Minimizzazione del ritardo Sia d j la due-date del job j. Si definisce tardiness o ritardo del job j rispetto a d j T j = max{0, c j d j } Il problema della minimizzazione del ritardo totale dei job (min j T j) è molto più complicato di quello della minimizzazione di altre funzione dei tempi di completamento c j. 1 j w jt j è noto essere NP-hard; per 1 j T j è noto un algoritmo pseudopolinomiale (con complessità O(n 4 j p j)) e nel 1990 è stato dimostrato che 1 j T j P è NP-hard. Un altro possibile obiettivo legato alla tardiness dei job è: minimizzare il numero di job in ritardo rispetto alle due-date. Sia: { 0 se cj d j = 1,..., n u j (c j ) := j 1 se c j > d j

12 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING Il problema si scrive dunque 1 j u j, ed è ovviamente equivalente a determinare un sottoinsieme S N tale che tutti i job di S possano essere completati in tempo e S è massimale. Una sequenza ottimale allora consiste dei job in S, in ordine EDD, seguiti dai job in N\S in ordine arbitrario (una volta che il job è in ritardo non importa di quanto lo sia!). L algoritmo che segue consente di trovare l insieme S di massima cardinalità: begin ordina i job in modo che d 1 d 2... d n s := 0 P := 0 for j := 1 to n do end begin s := s {j} P := P + p j if P > d j then end begin sia p l = max{p i i S} s := s\{l} P := P p l end Tale algoritmo può essere implementato in modo da avere una complessità O(n log n). 1.2.5 Tempi di set-up dipendenti dalla sequenza In molti problemi reali i tempi di processamento non sono indipendenti dalla sequenza, in quanto non possono essere ignorati i tempi di allestimento della macchina stessa ( set-up o change-over ). Più precisamente, sia s jk il tempo necessario per preparare la macchina alla lavorazione del job k, supposto sia stato appena ultimato il processamento del job j. Se si considera p k (j) = p k + s jk, allora chiaramente p k è funzione del job predecessore j. Nel seguito si considereranno separatamente i tempi (costanti) p k e quelli di set-up s jk. I tempi di set-up, supposti dati per ogni coppia j, k, j k (s jj = 0 j) definiscono una matrice S IR n n non simmetrica (s jk s kj ). Si definiscono inoltre, j = 1,..., n s 0j = tempo necessario per preparare la macchina alla lavorazione del job j, se j è il primo della sequenza. s j,n+1 = tempo necessario per riportare la macchina nello stato iniziale dopo il processamento del job j, se j è l ultimo della sequenza. Orlando S con la riga 0 e la colonna n + 1 la matrice avrà dimensione (n + 1) (n + 1). Per problemi di scheduling con tempi di set-up anche la funzione makespan c max diventa significativa perchè dipendente dalla sequenza. Infatti: c max = max 1 j n {c j} = p j + s [i],[i+1] i=0

1.3. MACCHINE PARALLELE IDENTICHE E UNIFORMI 13 e min c max min s [i],[i+1] i=0 è facile verificare che il problema 1 seq.dep. c max è NP-hard perchè equivalente ad un problema di commesso viaggiatore. Sia V = {0, 1,..., n} l insieme dei nodi (uno per ogni job + il nodo fittizio 0) e si costruisca il digrafo completo su V con costi sugli archi c jk = s jk j = 0, 1,..., n, k = 1,..., n e c j0 = s j,n+1 j = 1,..., n (nodo n + 1 coincide con il nodo 0). La funzione obiettivo può, quindi, essere espressa come dove, come di consueto x ij = min i c ij x ij j { 1 se il nodo (job) i precede j 0 altrimenti ed il problema diventa quello di determinare il ciclo Hamiltoniano (orientato) di costo minimo. 1.3 Macchine parallele identiche e uniformi Si supponga di dover schedulare n job e che il job j abbia una richiesta di processamento p j (ad es.: p j = numero di operazione del job j); si supponga, inoltre, che ci siano m macchine parallele disponibili. Ogni job può essere lavorato su al più una macchina per volta ed ogni macchina può processare al più un job alla volta. La macchina i processa il job j con velocità v ij (ad es.: v ij = numero di operazione di j nell unità di tempo). Perciò, se il job j è lavorato interamente sulla macchina i, il tempo necessario per il suo processamento è p j /v ij. Si distinguono tre tipi di macchine parallele: (P) Macchine Identiche: tutte le v ij sono uguali. Senza perdita di generalità si può assumere v ij = 1 i, j. (Q) Macchine uniformi: v ij = v ik i, j, k. In altre parole ogni macchina ha una sua velocità v i indipendente dal job. Si assumerà v 1 v 2... v m ; (R) Macchine non correlate: non c è nessuna relazione tra le v ij. Si accennerà brevemente ad alcuni dei problemi più semplici su macchine parallele identiche e uniformi, denotati utilizzando rispettivamennte P e Q nel primo campo della usuale notazione. Si tratta in generale di problemi complessi (P 2 c max, cioè un problema (P) con m = 2 e funzione obiettivo c max, è NP-hard) in cui la possibilità di interruzione semplifica spesso, sensibilmente, problemi e algoritmi risolutivi. Il problema P j c j è molto semplice e risolubile mediante la seguente regola (Conway e altri, 1967) in tempo polinomiale: Ordina i job in modo tale che p 1 p 2... p n ;

14 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING Una volta schedulati i job 1, 2,..., j trova la macchina per prima disponibile ed assegna il job j + 1 a quella macchina (completando j + 1 il più presto possibile). Questo approccio greedy è una variante della regola SPT e fornisce una schedula come quella rappresentata mediante il seguente diagramma di Gant: Figura 1.4 La regola può essere giustificata considerando i job da processare su una singola macchina. Per tali job c j = kp [1] + (k 1)p [2] +... + 2p [k 1] + p [k] j Considerando tutte le m macchine è evidente che sono disponibili mn coefficienti (m uni, m volte 2,... ecc) e che gli n più piccoli di tali coefficenti devono essere assegnati agli n job con coefficenti minimi corrispondenti a p j massimi (esattamente come nella dimostrazione di ottimalità della SPT). Un discorso analogo vale per il problema Q j c j; questa volta, però, se i job 1, 2,..., k sono processati sulla macchina i, si ottiene: c j = k p v [1] + j i (k 1) p v [2] +... + 2 p i v [k 1] + 1 p i v [k] i Quindi è necessario assegnare i job con tempo di processamento più grande ai coefficenti k v i più piccoli: ciò può essere fatto in tempo polinomiale (O(nlogn))) da un algoritmo di Horowitz e Sahni (1976). Un problema interessante è quello di schedulare i job su m macchine parallele e identiche, consentendo la preemption, in modo da minimizzare il makespan: P pmtn c max, dove c max = max 1 j n {c j }; in questo caso può anche essere intepretato come l istante in cui tutte le macchine hanno completato il proprio lavoro. Grazie al meccanismo dell interruzione, ogni job può essere processato su più macchine, purchè non simultaneamente: in altri termini il job j potrebbe iniziare il suo processamento sulla macchina i per continuare, più tardi, sulla stessa o su qualunque altra macchina, eventualmente con ulteriori interruzioni. Sia allora x ij = la frazione di job j processata sulla macchina i, j = 1,..., n

1.3. MACCHINE PARALLELE IDENTICHE E UNIFORMI 15 Le variabili x ij devono soddisfare il vincolo m x ij = 1 i=1 j = 1,..., n (ogni job deve essere interamente processato). Con questa definizione delle variabili, il tempo totale di lavoro della i-sima macchina si esprime come K i = p j x ij ed il problema diventa s.v. min c max p j x ij c max i = 1,..., m m x ij = 1 j = 1,..., n i=1 x ij 0 Si noti che, se la preemption non fosse consentita, il problema potrebbe essere formulato in maniera analoga, ma con { 1 se il job j è assegnato alla macchina i x ij = 0 altrimenti quindi con variabili binarie, ed il vincolo m i=1 x ij = 1 esprimerebbe il fatto che ogni job può essere processato da una sola macchina. I vincoli, in questo caso, sarebbero analoghi a quelli di un problema di assegnamento generalizzato, così detto perchè più job possono essere assegnati ad una stessa macchina, come risulta dal primo gruppo di vincoli, e non c è più corrispondenza 1:1 come nel problema di assegnamento classico. Il problema di assegnamento generalizzato è NP-hard, ed è possibile dimostrare che anche P c max è NP-hard, mentre, grazie alla preemption, P pmtn c max è polinomiale e coincide con il rilassato del problema P c max, ottenuto eliminando il vincolo di interezza (binarietà) sulle variabili. Con riferimento al problema di Programmazione Lineare (quindi senza i vincoli di binarietà) sopra formulato, si dimostra facilmente che( la soluzione ammissibile (x, c max), con x ij = 1/m, per ogni i e per ogni j, e c max = 1 n ) m p j è anche ottima. Infatti, se così non fosse, esisterebbe una soluzione ( x, c max ) ammissibile tale che c max < c max. Poichè c max soddisfa il primo gruppo di vincoli, si ha: e quindi c max p j x ij i = 1,..., m. c max > p j x ij i = 1,..., m. Sommando sull indice i e tenendo conto del secondo gruppo di vincoli, si ottiene:

16 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING mc max > p j, cioè c max > 1 p j, m ( che contraddice il fatto che c max = 1 n ) m p j. Sebbene la soluzione (x, c max) sia una soluzione ottima per il problema di Programmazione Lineare sopra formulato, essa potrebbe non essere ammissibile per il problema reale; ciò avviene se esiste qualche job il cui tempo di processamento è molto più grande degli altri, e precisamente se max 1 j m {p j} > 1 m p j (si consideri, ad esempio, il caso n = 2, p 1 = 100, p 2 = 10 ed m = 2: il makespan non può essere inferiore a p 1 = 100). Pertanto, ponendo p := 1 p j, vale sempre m c max max{max{p j }, p} = c max. j Quindi, dopo aver calcolato c max = max{max{p j }, p}, il problema può essere risolto applicando la seguente regola (Mc Naughton, j 1959): Immagina di processare, senza interruzione, tutti i job su una singola macchina in qualsiasi ordine; taglia lo scheduling della singola macchina in piú parti. La prima parte costituisce l intervallo [0, c max], la seconda parte l intervallo [c max, 2c max], la terza parte [2c max, 3c max], e cosí via; assegna il primo intervallo alla prima macchina, il secondo intervallo alla seconda macchina, il terzo intervallo alla terza macchina, e cosí via. Figura 1.5 La procedura richiede tempo O(n) e genera al più m 1 interruzioni.

1.4. FLOW SHOP SU DUE MACCHINE 17 1.4 Flow Shop su due macchine Eccetuato il caso delle macchine parallele che, a parte l eventuale diversa velocità, sono da condiderarsi equivalenti (ogni job può essere indifferentemente processato su ciascuna di esse), in tutti gli altri problemi di scheduling su m macchine, le macchine sono diverse fra di loro, e cioè in grado di effettuare un determinato tipo di lavorazione e non altri. Pertanto ogni job sarà costituito da più operazioni (al massimo m), ciascuna richiedente il processamento su una ben precisa macchina dello shop. Dovranno perciò essere assegnate j = 1,..., n, i = 1,..., m p ij = tempo di processamento del job j sulla macchina i (p ij 0). Il processo di flusso dei job attraverso le macchine consente di distinguere tre classi di problemi (in ordine di difficoltà crescente) Flow shop : tutti i job seguono la stessa sequenza di lavorazione sulle macchine Job shop : ogni job ha una propria sequenza di lavorazione (o relazione di precedenza sulle proprie operazioni). Open shop : per ogni job le operazioni possono essere processate in qualunque ordine. Il problema più semplice in questo contesto è un flow-shop su m = 2 macchine. Si assuma, senza perdita di generalità, che gli n job debbano essere processati prima sulla macchina 1 e poi sulla macchina 2 e di voler determinare la schedula che minimizza il makespan. Il problema F 2 c max può essere risolto con la seguente procedura di Johnson: calcola min{p ij j = 1,..., n, i = 1, 2 } = p i j se i = 1 assegna il job j al primo posto disponibile nella sequenza; se i = 2 assegna il job j all ultimo posto disponibile nella sequenza; rimuovi il job j dalla lista dei job da sequenziare e ripeti sui rimanenti n 1 job. Una giustificazione intuitiva della validità della regola di Johnson è la seguente: sia p [k]i il tempo di processamento sulla macchina i del job che è k-simo nella sequenza, per i = 1, 2. Figura 1.6

18 CAPITOLO 1. INTRODUZIONE ALLA TEORIA DELLO SCHEDULING L ultimo job non può essere completato prima del tempo necessario per processare tutti i job sulla macchina 1 più il tempo di processamento dell ultimo job sulla macchina 2: c max p [j]1 + p [n]2 D altro canto l ultimo job non può essere ultimato prima del tempo richiesto per processare tutti i job sulla macchina 2 più il tempo di attesa prima che la macchina 2 possa iniziare: c max p [j]2 + p [1]1 Le due sommatorie nei lower-bounds su c max sono indipendenti dalla sequenza; se il minimo dei tempi di processamento si realizza sulla macchina 1, porre il job j in prima posizione nella sequenza (j = [1]) consente di minimizzare p [1]1, mentre se si realizza sulla macchina 2 porre j = [n] minimizzerà p [n]2.