Corso di Laurea Triennale in INGEGNERIA GESTIONALE Anno Accademico 2012/13 Prof. Davide GIGLIO 1
INDICE Esempio Introduttivo Generalità sui problemi di scheduling SINGLE MACHINE SPT (shortest processing time) scheduling EDD (earliest due date) scheduling Algoritmo di Moore Algoritmo di Smith FLOW-SHOP E JOB-SHOP Algoritmi di Johnson DI TASK PERIODICI SU SINGLE MACHINE Priority scheduling Timeline scheduling 2
ESEMPIO INTRODUTTIVO Quattro ragazzi (Anna, Bruno, Carla e Diego) abitano nello stesso appartamento Ogni sabato mattina comprano quattro quotidiani (La Repubblica, Corriere della Sera, La Stampa e Gazzetta dello Sport) che ciascuno vuole leggere nel proprio ordine preferito e per la durata che vuole Anna vuole leggere la Repubblica per 1 ora, poi il Corriere per 30 minuti, poi la Stampa per 2 minuti e infine la Gazzetta per 5 minuti Bruno vuole leggere il Corriere per 1 ora e 15 minuti, poi la Stampa per 3 minuti, poi la Repubblica per 25 minuti e infine la Gazzetta per 10 minuti Carla vuole leggere la Stampa per 5 minuti, poi il Corriere per 15 minuti, poi la Repubblica per 10 minuti e infine la Gazzetta per 30 minuti Diego vuole leggere la Gazzetta per 1 ora e 30 minuti, poi la Repubblica per 1 minuto, poi il Corriere per 1 minuto e infine la Stampa per 1 minuto I ragazzi sono molto abitudinari e quindi preferiscono aspettare che un giornale si liberi piuttosto che cambiare la propria sequenza preferita 3
ESEMPIO INTRODUTTIVO I ragazzi si alzano ad orari differenti e appena alzati possono e vogliono iniziare a leggere i giornali Anna si alza alle 8:30 Bruno si alza alle 8:45 Carla si alza alle 8:45 Diego si alza alle 9:30 Premesso che nessuno vuole uscire prima di avere concluso la lettura di tutti i giornali, qual è il più presto istante di tempo in cui i ragazzi possono uscire di casa? Questo è un problema di scheduling Trovare l ordine secondo cui i 4 giornali sono letti dai 4 ragazzi in modo da finire prima possibile 4
Un possibile schedule è il seguente ESEMPIO INTRODUTTIVO Repubblica Corriere Stampa Gazzetta 1 2 3 4 Anna Diego Carla Bruno Bruno Carla Anna Diego Carla Bruno Anna Diego Diego Anna Carla Bruno a cui corrisponde il seguente Diagramma di Gantt Repubblica A D C B Corriere B C A D Stampa Gazzetta C B A D D A C B 8:30 9:00 10:00 11:00 12:00 11:51 5
ESEMPIO INTRODUTTIVO Quello appena visto è uno schedule ammissibile ( feasible ) ma non necessariamente ottimo Si osservi come il fatto di dovere rispettare la sequenza di lettura desiderata dai quattro ragazzi, fa sì che vi siano degli intervalli di tempo in cui alcuni giornali non vengono letti da nessuno, anche se vi sono delle persone che non stanno leggendo e devono ancora leggere tali giornali Ad esempio, Bruno alle 11:05 non sta leggendo e vi è libera la Gazzetta che lui non ha ancora letto; ma Bruno prima della Gazzetta vuole leggere la Repubblica che però è occupata; la conseguenza è che sia Bruno che la Gazzetta rimangono non attivi 6
ESEMPIO INTRODUTTIVO Non tutte le combinazioni sono possibili Un esempio di schedule non ammissibile è il seguente Repubblica Corriere Stampa Gazzetta 1 2 3 4 Diego Bruno Anna Carla Diego Carla Bruno Anna Diego Bruno Carla Anna Anna Diego Carla Bruno La non ammissibilità è dovuta al fatto che Anna non può iniziare a leggere la Gazzetta prima di avere letto gli altri tre giornali (in particolare la Repubblica che è bloccata da Diego) e Diego non può iniziare a leggere la Repubblica prima di avere letto la Gazzetta (che è bloccata da Anna) 7
Uno schedule migliore è il seguente ESEMPIO INTRODUTTIVO Repubblica Corriere Stampa Gazzetta 1 2 3 4 Anna Bruno Carla Diego Bruno Carla Anna Diego Carla Bruno Anna Diego Diego Anna Carla Bruno a cui corrisponde il seguente Diagramma di Gantt Repubblica A B C D Corriere B C A D Stampa Gazzetta C B A D D A C B 8:30 9:00 10:00 11:00 12:00 11:45 8
ESEMPIO INTRODUTTIVO Quello appena visto è un altro schedule ammissibile, migliore di quello visto in precedenza (infatti il completion time è alle 11:45 invece che alle 11:51) Questo schedule è stato ottenuto dopo che si è osservato che la Gazzetta, che è il giornale la cui lettura viene terminata per ultima, rimaneva non letta per 6 minuti, dalle 11:05 alle 11.11 Invertendo l ordine di lettura della Repubblica per quanto riguarda Bruno e Diego è stato possibile anticipare alle 11:05 l inizio della lettura della Gazzetta da parte di Carla, facendo quindi scomparire l intervallo di 6 minuti in cui la Gazzetta non veniva letta Si noti che anche in questo schedule è la lettura della Gazzetta che determina il completion time Lo schedule appena visto è ottimo? La risposta è no 9
Uno schedule ottimo è il seguente ESEMPIO INTRODUTTIVO Repubblica Corriere Stampa Gazzetta 1 2 3 4 Carla Anna Bruno Diego Carla Bruno Anna Diego Carla Bruno Anna Diego Carla Diego Bruno Anna a cui corrisponde il seguente Diagramma di Gantt Repubblica C A B D Corriere C B A D Stampa C B A D Gazzetta C D B A 8:30 9:00 10:00 11:00 12:00 11:30 10
ESEMPIO INTRODUTTIVO In questo schedule, a differenza dei precedenti, i 4 ragazzi non iniziano a leggere appena possibile Anna si alza alle 8:30 ma inizia a leggere il suo primo giornale (la Repubblica) alle 9:15 Bruno si alza alle 8:45 ma inizia a leggere il suo primo giornale (il Corriere) alle 9:05 Diego si alza alle 9:30 ma inizia a leggere il suo primo giornale (la Gazzetta) alle 9:45 Solo Carlo inizia a leggere il suo primo giornale (la Stampa) appena alzato Questo ha consentito di ottenere uno schedule ammissibile il cui completion time è alle 11:30 (migliore quindi dei precedenti) Perché si può affermare che lo schedule appena visto sia ottimo? Si osservi come esso sia stato ottenuto facendo si che la lettura della Gazzetta (che anche in precedenza era quella che determinava il completion time) inizi prima, alle 9:15 invece che alle 9:45 Si facciano adesso le seguenti considerazioni: La Gazzetta, se letta consecutivamente dai 4 ragazzi, impegna 2 ore e 15 minuti 11
ESEMPIO INTRODUTTIVO Anna può iniziare a leggere la Gazzetta non prima delle 10:02 (in quanto si alza alle 8:30 e legge per 92 minuti i giornali che precedono la Gazzetta nella sua sequenza). Se la sequenza della Gazzetta inizia con Anna, il completion time non può essere inferiore alle 12:17 Bruno può iniziare a leggere la Gazzetta non prima delle 10:28 (in quanto si alza alle 8:45 e legge per 103 minuti i giornali che precedono la Gazzetta nella sua sequenza). Se la sequenza della Gazzetta inizia con Bruno, il completion time non può essere inferiore alle 12:43 Carlo può iniziare a leggere la Gazzetta non prima delle 9:15 (in quanto si alza alle 8:45 e legge per 30 minuti i giornali che precedono la Gazzetta nella sua sequenza). Se la sequenza della Gazzetta inizia con Carlo, il completion time non può essere inferiore alle 11:30 Diego può iniziare a leggere la Gazzetta non prima delle 9:30 (che è l ora in cui si alza, essendo la Gazzetta il primo giornale nella sua sequenza). Se la sequenza della Gazzetta inizia con Diego, il completion time non può essere inferiore alle 11:45 Il completion time non può quindi essere inferiore alle 11:30 E l unica soluzione ottima? Non è detto... 12
ESEMPIO INTRODUTTIVO Per determinare la soluzione ottima non è pensabile enumerare tutti i possibili schedule e poi scegliere uno di quelli che hanno il completion time più basso Con n job da eseguire su m macchine vi sono (n!) m possibili schedule Nell esempio introduttivo i job sono i ragazzi e le macchine sono i giornali da leggere Si hanno pertanto (4!) 4 = 331776 possibili schedule Con un computer molto rapido si potrebbero analizzare tutti Analizzando, ad esempio, 1000 schedule al secondo, ci vorrebbero circa 5 minuti e mezzo Ma aumentando anche solo di 1 il numero di job/ragazzi si avrebbero da analizzare (5!) 4 = 207360000 possibili schedule In questo caso ci vorrebbero circa 58 ore (più 2 giorni!) L enumerazione diretta non è un buon metodo di risoluzione dei problemi di scheduling 13
GENERALITÀ SUI PROBLEMI DI Il problema generico di scheduling è quello definito come General Job-Shop Problem n m Job Macchine {J 1,J 2,...,J n } {M 1,M 2,...,M m } Ciascun job deve essere processato da ciascuna macchina una e una sola volta Vincoli tecnologici possono specificare un ordine secondo cui i job devono essere processati dalle macchine Un caso particolare è rappresentato dal flow-shop problem in cui i vincoli tecnologici specificano che tutti i job devono visitare le macchine secondo la stessa sequenza Un operazione consiste nell esecuzione di un job su una macchina o i,j Operazione della macchina i sul job j 14
GENERALITÀ SUI PROBLEMI DI Assunzioni classiche che caratterizzano i problemi di scheduling Due operazioni relative allo stesso job non possono essere eseguite simultaneamente Le operazioni, una volta partite, non possono essere interrotte, devono essere completate ( no preemption ) I job sono processati da ciascuna macchina, una e una sola volta Un job non può essere cancellato, deve essere portato a completamento I tempi di esecuzione dei job sulle macchine (processing time) sono indipendenti dalla sequenza di servizio, cioè dallo schedule Quest ultima ipotesi significa che i set-up, se previsti, sono operation-dependent e che i tempi di trasferimento tra le macchine sono non significativi I job possono rimanere in attesa che una macchina diventi disponibile Ciascuna macchina può processare un solo job alla volta (le risorse sono single-server) 15
GENERALITÀ SUI PROBLEMI DI Le macchine possono essere idle Le macchine non si guastano mai e sono disponibili per tutto l intervallo di tempo che caratterizza il problema di scheduling I vincoli tecnologici sono noti in anticipo e non possono variare nel tempo Non vi sono grandezze stocastiche che caratterizzano il problema. In particolare: Il numero di job è noto e fisso Il numero delle macchine è noto e fisso I tempi di esecuzione dei job sulle macchine (processing time) sono noti e fissi Gli istanti in cui i job sono disponibili (release time) sono noti e prefissati Tutte le altre grandezze necessarie per caratterizzare un problema di scheduling sono note e fisse 16
GENERALITÀ SUI PROBLEMI DI PARAMETRI che caratterizzano i job e le macchine r i p i,j d i Release time (o release date o ready time) Processing time Due date a i Allowance a i = d i r i 17
VALORI GENERALITÀ SUI PROBLEMI DI che caratterizzano i job in relazione a un particolare schedule W i,k W i C i F i L i T i E i Waiting time Total waiting time Completion time Flow time Lateness Tardiness Earliness W i = P m k=1 W i,k C i = r i + P m k=1 (W i,k + p i,j(k) ) F i = C i L i = C i r i d i T i = max{c i d i, 0} = max{l i, 0} E i = max{d i C i, 0} = max{ L i, 0} con il pedice j(k) si indica la macchina M j(k) che è la macchina che esegue la k-th operazione del job, operazione che viene pertanto indicata come o i,j(k) 18
GENERALITÀ SUI PROBLEMI DI Data una certa grandezza (total waiting time, completion time, ecc.), si considerano spesso il valore medio e il valore massimo di una tale grandezza X i GRANDEZZA VALORE MEDIO VALORE MASSIMO X =(1/n) P n i=1 X i X max = max{x 1,X 2,...,X n } 19
VALORI GENERALITÀ SUI PROBLEMI DI che caratterizzano le macchine in relazione a un particolare schedule VALORI P I n j Idle time I j = C max i=1 p i,j relativi a un particolare schedule in uno specifico istante di tempo N w (t) N p (t) N c (t) N u (t) Numero di job in attesa (o non pronti) al tempo Numero di job in esecuzione al tempo t Numero di job completati al tempo t Numero di job ancora da completare al tempo t t 20
GENERALITÀ SUI PROBLEMI DI Sono valide le seguenti relazioni: N w (t) +N p (t) +N c (t) =n N w (t) +N p (t) =N u (t) N u (0) = n N u (C max )=0 Essendo inoltre tali valori riferiti ad un particolare istante di tempo, il valore medio si può calcolare considerando l integrale su tutto l intervallo di tempo che caratterizza lo schedule VALORE MEDIO N x = 1 C max Z Cmax 0 N x (t)dt 21
INDICATORI DI PERFORMANCE PER PROBLEMI DI CRITERI BASATI SUL COMPLETION TIME F max C max F C Flow time massimo Completion time massimo (makespan) Flow time medio Completion time medio Il makespan è il tempo totale di produzione P n A volte si usano medie pesate del tipo i=1 P n ic i e i=1 if i con 1, 2,..., n e 1, 2,..., n pesi opportuni (la cui somma è generalmente 1) Si tratta di valori da minimizzare 22
INDICATORI DI PERFORMANCE PER PROBLEMI DI CRITERI BASATI SULLE DUE DATE L L max T T max n T Lateness media Lateness massima Tardiness media Tardiness massima Numero di job tardy Anche per questi indicatori è possibile prendere in considerazione delle medie pesate Si tratta di valori da minimizzare 23
INDICATORI DI PERFORMANCE PER PROBLEMI DI CRITERI BASATI SULL INVENTORY E SULL UTILIZZAZIONE DELLE MACCHINE N c N p I I max Numero medio di job completati Numero medio di job in corso di esecuzione Idle time medio Idle time massimo, I, I max sono valori da minimizzare N c N p è un valore da massimizzare 24
INDICATORI DI PERFORMANCE PER PROBLEMI DI INDICATORI REGOLARI Un indicatore R si dice regolare ( misura regolare ) se è non decrescente rispetto al completion time Sia R funzione dei completion time C 1,C 2,...,C n. Tale misura è regolare se dati risulta C 1 apple C 0 1, C 2 apple C 0 2,..., C n apple C 0 n R(C 1,C 2,...,C n ) apple R(C 0 1,C0 2,...,C0 n ) In pratica, se si hanno due schedule nel primo dei quali i job vengono completati non in ritardo rispetto al completamento dei job del secondo schedule, l utilizzo di una misura regolare assicura che il primo schedule non è peggiore del secondo (è quindi possibile scartare il secondo a favore del primo) 25
INDICATORI DI PERFORMANCE PER PROBLEMI DI Gli indicatori basati sul completion time (flow time massimo e medio, completion time massimo e medio) e sulla due date (lateness massima e media, tardiness massima e media, numero di job tardy) visti in precedenza sono misure regolari Non sono misure regolari gli indicatori che tengono conto della earliness 26
INDICATORI DI PERFORMANCE PER PROBLEMI DI EQUIVALENZE TRA INDICATORI Due indicatori sono equivalenti se uno schedule che è ottimo per il primo è ottimo anche per il secondo e viceversa TEOREMA I seguenti indicatori di performance sono equivalenti: C, F, W e L TEOREMA Uno schedule che è ottimo rispetto a L max, è anche ottimo rispetto T max TEOREMA I seguenti indicatori di performance sono equivalenti:, e C max N p I TEOREMA N u e TEOREMA N w e C/C max W /C max sono indicatori di performance equivalenti sono indicatori di performance equivalenti 27
CLASSIFICAZIONE DEI PROBLEMI DI n/m/a/b NUMERO DI JOB NUMERO DI MACCHINE DISCIPLINA DI SERVIZIO INDICATORE DI PERFORMANCE Disciplina di servizio (se m>1) F P G Flow shop (l ordine delle macchine è lo stesso per tutti i job) Permutation flow-shop (l ordine delle macchine è lo stesso per tutti i job e inoltre si deve trovare uno schedule in cui l ordine di esecuzione dei job è lo stesso per tutte le macchine) General job shop (nessun vincolo tecnologico) Esempio: 6/2/F/C max 28
SINGLE MACHINE n/1/a/b Sono problemi semplici ma di un certo interesse pratico (processori nontime-sharing, impianti dedicati alla produzione di specifici item, macchine bottleneck all interno di impianti complessi) Nei problemi di single machine scheduling si assume che tutti i job da processare siano disponibili all inizio, ovvero r i =08J i,i =1,...,n Un risultato che sta alla base della risoluzione dei problemi di single machine scheduling è il seguente TEOREMA In un problema n/1//b, dove B è una misura regolare, esiste uno schedule ottimo in cui non vi sono idle time, cioè la macchina inizia a processare i job all istante t =0 e continua senza interruzioni fino a t temporaneo = C max 29
SINGLE MACHINE La conseguenza del precedente teorema è che nei problemi n/1//b (con B misura regolare), per la determinazione di uno schedule ottimo, è sufficiente considerare i permutation schedule Bisogna quindi trovare un permutazione di venga minimizzato l indicatore B J 1,J 2,...,J n in modo che Sia k l indice che indica la posizione di un job nella sequenza di esecuzione è pertanto il job che viene eseguito per k -esimo J i(k) è il processing time del job che viene eseguito per k -esimo p i(k) è la due date del job che viene eseguito per k -esimo d i(k) (si considereranno definizioni analoghe per le altre grandezze che caratterizzano un problemi di scheduling) 30
SPT (SHORTEST PROCESSING TIME) n/1//f Si vuole minimizzare il tempo medio di attraversamento del sistema (flow time medio) TEOREMA In un problema tale che n/1//f, il flow time medio è minimizzato da una sequenza p i(k) p i(1) apple p i(2) apple p i(3) apple... apple p i(n) essendo il processing time del job che viene processato per k-esimo Uno schedule fatto in questo modo prende il nome di SPT schedule Uno schedule SPT risolve in maniera ottima anche i seguenti problemi di scheduling: n/1//c, n/1//w, n/1//l, n/1//n u, n/1//n w (cioè minimizza anche il completion time medio, il tempo medio di attesa, la lateness media, il numero medio di job ancora da completare e il numero medio di job in attesa) 31
EDD (EARLIEST DUE DATE) n/1//l max Si vuole minimizzare la lateness massima TEOREMA In un problema n/1//l max sequenza tale che, la lateness massima è minimizzato da una essendo la due date del job che viene processato per k-esimo d i(k) d i(1) apple d i(2) apple d i(3) apple... apple d i(k) Uno schedule fatto in questo modo prende il nome di EDD schedule Uno schedule EDD risolve in maniera ottima anche il problema di scheduling: n/1//t max (cioè minimizza anche la tardiness massima) 32
ALGORITMO DI MOORE n/1//n T Si vuole minimizzare il numero di job in ritardo (tardy job), indipendentemente da quanto sono in ritardo. Tale problema è risolto dal seguente algoritmo (Algoritmo di Moore) 33
ALGORITMO DI MOORE ALGORITMO STEP 1 Sequenziare i job secondo la regola EDD in modo da definire una sequenza di job (J i(1),j i(2),...,j i(n) ) tale che d i(k) apple d i(k+1) per ogni k =1, 2,...,n 1; sia essa la sequenza corrente STEP 2 Trovare il primo job tardy, sia esso si trova alcun job, passare allo step 4 STEP 3 J i(l), nella sequenza corrente; se non Trovare nella sequenza (J i(1),j i(2),...,j i(l) ) il job con il più alto processing time ed escludere esso dalla sequenza corrente; ritornare allo step 2 con una sequenza corrente aggiornata (è più corta di 1 rispetto a prima) STEP 4 Costruire uno schedule composto dalla sequenza corrente di job seguita dai job che sono stati esclusi nelle varie iterazioni dello step 3 (questi ultimi possono essere messi in qualunque ordine); tale schedule è ottimo 34
SINGLE MACHINE SCHEDULE OTTIMI VS. SCHEDULE EFFICIENTI Nei casi precedenti è stato mostrato come sia possibile determinare uno schedule che sia ottimo rispetto un certo indicatore di performance In alcuni casi ha però senso considerare delle funzioni di costo che tengano conto di più indicatori di performance (ad esempio, se si vuole penalizzare sia il completamento in ritardo dei job sia i costi di inventory è necessario utilizzare una funzione di e F ) T max In questi casi l obiettivo è determinare uno schedule efficiente Dati due schedule S e S 0, si dice che S 0 è efficiente rispetto gli indicatori di performance µ 1,µ 2,...,µ v se non esiste uno schedule S tale che µ 1 apple µ 0 1 µ 2 apple µ 0 2... µ v apple µ 0 v con una diseguaglianza stretta in almeno un caso Si dice anche che non esiste uno schedule S che domina S 0 35
SINGLE MACHINE SCHEDULE OTTIMI VS. SCHEDULE EFFICIENTI Il risultato importante è che se il costo totale è una funzione crescente nelle variabili µ 1,µ 2,...,µ v prese singolarmente, uno schedule che garantisca il costo minimo (cioè uno schedule ottimo) deve essere uno schedule efficiente T max (un esempio di funzionale di costo crescente nei suoi argomenti e F è la funzione c(t max, F )=4T max +7F ) Si può quindi procedere nella ricerca di tutti gli schedule efficienti e poi, sulla base della funzione di costo adottata, scegliere quello che presenta il costo minore (che sarà quindi lo schedule ottimo) 36
ALGORITMO DI SMITH Si voglia determinare uno schedule efficiente rispetto al tempo medio di attraversamento del sistema Fe alla tardiness massima Per ottenere tale schedule si può sfruttare il seguente Algoritmo di Smith L algoritmo di Smith consente di minimizzare il flow time medio (che, avendo supposto nullo il release time di ogni job, coincide con il completion time medio) nell ipotesi che nessun job sia tardy, ovvero che T max =0 (quindi l algoritmo di Smith non trova di per sè uno schedule efficiente ma verrà sfruttato per la determinazione di esso) L algoritmo di Smith si basa sul seguente teorema T max TEOREMA In un problema n job / 1 macchina in cui tutte le due date sono rispettate ( T max =0) esiste uno schedule che minimizza F e in cui il job J P k è n l ultimo ad essere processato, P se e solo se d k i=1 p i e p k p l per n tutti i job J l tali che d l i=1 p i 37
ALGORITMO DI SMITH ALGORITMO STEP 1 Siano k = n, = P n i=1 p i e U = {J 1,J 2,...,J n } STEP 2 Trovare J i(k) in U tale che d i(k) e p i(k) p l per tutti i job J l tali che STEP 3 Decrementare k di 1; decrementare della quantità p i(k) ; eliminare J i(k) da U STEP 4 d l Se ci sono ancora job da schedulare (cioè se k 1) ritornare allo step 2; altrimenti fermarsi; in quest ultimo caso, lo schedule ottimo per il problema considerato è (J i(1),j i(2),...,j i(n) ) Ovviamente questo algoritmo va eseguito solamente dopo avere verificato che esista uno schedule EDD in cui T max =0 38
ALGORITMO DI SMITH Si rilassi adesso la condizione T max =0, con l obiettivo di determinare uno schedule efficiente rispetto a F e T max F L algoritmo di Smith può essere utilizzato in modo da minimizzare la condizione T max apple Bisogna innanzitutto incrementare tutte le due date della quantità poi considerare il seguente step 2 modificato con e STEP 2 Trovare J i(k) in U tale che d i(k) e p i(k) p l per tutti i job J l tali che d l ; se bisogna effettuare una scelta per J i(k), scegliere quello che ha la due date maggiore Con tale modifica, o è impossibile costruire uno schedule oppure lo schedule risultante è uno schedule efficiente rispetto a F e T max 39
FLOW-SHOP E JOB-SHOP Quando il numero di macchine è maggiore di 1, si parla di scheduling in the flow-shop oppure di scheduling in the general job-shop Questi problemi sono di gran lunga più complicati rispetto a quelli visti nel caso di single-machine scheduling. Soltanto per un limitato insieme di problemi esistono degli algoritmi costruttivi che consentono di ottenere lo schedule ottimo Nel caso non siano disponibili algoritmi costruttivi per risolvere un certo problema di scheduling, è necessario ricorrere a metodologie enumerative (come la programmazione dinamica e il branch-and-bound) oppure a metodologie euristiche che però non sono in grado di fornire la soluzione ottima di un problema Anche per questa categoria di problemi assumeremo che tutti i job da processare siano disponibili all inizio, ovvero 40
FLOW-SHOP In un flow-shop tutti i job visitano le macchine nello stesso ordine (vincolo tecnologico) Job J 1 Processing Order M 1 M 2 M 3... M m J 2 M 1 M 2 M 3... M m J n M 1 M 2 M 3... M m Esistono due risultati di carattere generale per quanto riguarda i problemi di flow-shop scheduling TEOREMA In un problema n/m/f/b, con B misura regolare, è sufficiente considerare schedule in cui vi sia la stessa sequenza di esecuzione dei job sulle prime due macchine, M 1 e M 2 41
TEOREMA FLOW-SHOP In un problema n/m/f/f max non c è bisogno di considerare gli schedule in cui vi sia una diversa sequenza di esecuzione dei job sulle ultime due macchine, M m 1 e M m Conseguenza diretta di questi due teoremi è che, al fine di determinare uno schedule ottimo, nei problemi n/2/f/b (con qualsiasi B purché regolare) n/3/f/f max è possibile considerare esclusivamente i permutation schedule Il problema Johnson n/2/f/f max può essere risolto attraverso l Algoritmo di 42
ALGORITMO DI JOHNSON Si devono processare n job attraverso 2 macchine, ciascun job deve visitare le macchine nella sequenza M 1 - M 2, in modo da minimizzare il tempo massimo di attraversamento del sistema (problema n/2/f/f max ) Avendo supposto che i release time siano nulli, tale problema equivale a minimizzare il completion time massimo (makespan) L algoritmo di Johnson si basa sulla seguente considerazione: dato che all inizio la macchina M 2 sarà necessariamente idle (dovendo attendere che il primo job che viene eseguito venga processato da M 1 ), è ragionevole ipotizzare che convenga iniziare a processare sulla macchina il job con il processing time più breve su M 1 analogamente, dato che alla fine sarà idle la macchina, è ragionevole ipotizzare che l ultimo job da eseguire, sulla macchina M 2, sia il job con il processing time più breve su M 2 M 1 M 1 43
ALGORITMO DI JOHNSON M 1 M 2 È IDLE QUANDO SI ESEGUE IL PRIMO JOB SU M 1 M 1 È IDLE QUANDO SI ESEGUE L ULTIMO JOB SU M 2 M 2 Sulla base di questa considerazione (e sul fatto che sia sufficiente considerare i permutation schedule), l algoritmo di Johnson determina uno schedule ottimo che consiste in una permutazione di {J 1,J 2,...,J n } tale che i primi job che vengono eseguiti hanno bassi processing time su M 1, mentre gli ultimi job che vengono eseguiti hanno bassi processing time su M 2 Siano, per semplicità: a i = p i,1 Processing time del job sulla macchina b i = p i,2 Processing time del job J i sulla macchina M 2 J i M 1 44
ALGORITMO DI JOHNSON ALGORITMO STEP 1 Siano STEP 2 Sia k =1 e l = n U = {J 1,J 2,...,J n } la lista dei job ancora da schedulare STEP 3 Trovare il valore più piccolo tra tutti gli e dei job ancora da schedulare STEP 4 Se il valore più piccolo è a i, schedulare J i nella k-esima posizione della sequenza di esecuzione, togliere J i dalla lista dei job ancora da schedulare, incrementare k di 1, andare allo step 6 STEP 5 b i Se il valore più piccolo è, schedulare J i nella l-esima posizione della sequenza di esecuzione, togliere J i dalla lista dei job ancora da schedulare, decrementare l di 1, andare allo step 6 STEP 6 Se vi sono ancora job da schedulare tornare allo step 3; altrimenti stop a i b i 45
ALGORITMO DI JOHNSON L algoritmo di Johnson può essere adattato per risolvere il problema di scheduling n/2/g/f max (in cui non vi è più il vincolo che ciascun job deve essere processato da tutte le macchine) Essendo 2 le macchine, è possibile classificare i job nel seguente modo: Tipo A: job che vengono processati solo da M 1 Tipo B: job che vengono processati solo da M 2 Tipo C: job che vengono processati prima da M 1 e poi da M 2 Tipo D: job che vengono processati prima da M 2 e poi da Uno schedule ottimo può essere ottenuto applicando il seguente algoritmo M 1 46
ALGORITMO DI JOHNSON ALGORITMO STEP 1 Schedulare i job di tipo A in qualsiasi ordine; sia STEP 2 Schedulare i job di tipo B in qualsiasi ordine; sia S A S B la sequenza ottenuta la sequenza ottenuta STEP 3 Schedulare i job di tipo C applicando l algoritmo di Johnson visto in precedenza; sia la sequenza ottenuta STEP 4 S C Schedulare i job di tipo D applicando l algoritmo di Johnson visto in precedenza (facendo attenzione perché bisogna considerare M 2 come prima macchina e come seconda); sia la sequenza ottenuta M 1 STEP 5 Uno schedule ottimo è dato dalle seguenti sequenze di esecuzione S D M 1 M 2 : S C! S A! S D : S D! S B! S C 47
DI TASK PERIODICI SU SINGLE MACHINE Si considerino attività (task) che devono essere eseguite periodicamente. In questo caso, i job sono i singoli elementi di un task periodico, ovvero le singole esecuzioni dell attività in questione Essendo i task attivati periodicamente, l obiettivo è quello di eseguire i vari job all interno di ogni periodo di attivazione; in altre parole, si ha una deadline in corrispondenza della fine di ogni periodo di attivazione Si suppone che il periodo di attivazione e il tempo di esecuzione dei vari task (quindi dei job) siano costanti ISTANTE DI ATTIVAZIONE DEADLINE a i (k) d i (k) =a i (k + 1) k-esimo JOB DEL TASK i (k+1)-esimo JOB DEL TASK i (k+2)-esimo JOB DEL TASK i t PERIODO DI ATTIVAZIONE PERIODO DI ATTIVAZIONE PERIODO DI ATTIVAZIONE 48
DI TASK PERIODICI SU SINGLE MACHINE I vari task da eseguire sono indipendenti tra loro Il problema da affrontare è quello di schedulare su una single machine un insieme di task periodici in modo che tutte le deadline siano soddisfatte n Si considerino task periodici caratterizzati da periodo di attivazione e tempo di esecuzione p i i Il fattore di utilizzazione della single machine è nx p i U = i=1 U apple 1 Condizione necessaria per la schedulabilità dei task è che sia Tale condizione è anche sufficiente solo per alcuni algoritmi di scheduling periodico; per altri la condizione sufficiente sarà U apple U lsm, con U lsm < 1 valore che caratterizza lo specifico algoritmo e che dipende anche dal numero di task da processare i 49
ALGORITMO RATE MONOTONIC PRIORITY ORDERING (RMPO) Ad ogni task viene assegnata una priorità inversamente proporzionale al proprio periodo di attivazione La priorità viene utilizzata per schedulare i task mediante un meccanismo di preemption Ad ogni attivazione di un nuovo job di un task, si aggiorna la coda dei job pronti e si manda in esecuzione quello caratterizzato dalla maggiore priorità TASK 1 TASK 2 TASK 3 t t t PREEMPTION DEL TASK 1 SUL TASK 2 PREEMPTION DEL TASK 1 SUL TASK 3 PREEMPTION DEL TASK 3 SUL TASK 2 PREEMPTION DEL TASK 1 SUL TASK 3 50
ALGORITMO RATE MONOTONIC PRIORITY ORDERING (RMPO) L algoritmo RMPO è un algoritmo statico: la priorità dei diversi task è assegnata a priori e rimane tale per tutta la durata del funzionamento del sistema L algoritmo RMPO è ottimo nel campo dello scheduling di processi periodici con assegnazione statica delle priorità Questo significa anche che se un insieme di task periodici non sono schedulabili tramite l algoritmo RMPO, allora non esiste nessun altro algoritmo di tipo statico che riesca a risolvere lo stesso problema di scheduling La schedulabilità di task periodici attraverso l algoritmo RMPO è garantita per utilizzazioni inferiori al valore massimo U lsm = n(2 1/n 1) 1 ln 2 0.69 0.5 0 1 5 10 15 20 51
ALGORITMO EARLIEST DEADLINE FIRST (EDF) È un algoritmo basato su un assegnazione dinamica della priorità In ogni istante viene schedulato il job la cui deadline è più imminente È un algoritmo intrinsecamente preemptive Non appena viene attivato un job caratterizzato da una deadline più stringente rispetto al job in esecuzione, il job in esecuzione viene bloccato per iniziare l esecuzione del job appena attivato TASK 1 TASK 2 TASK 3 t t t PREEMPTION DEL TASK 1 SUL TASK 2 PREEMPTION DEL TASK 1 SUL TASK 2 52
ALGORITMO EARLIEST DEADLINE FIRST (EDF) L algoritmo EDF è un algoritmo dinamico: la priorità dei diversi task è assegnata dinamicamente sulla base della propria deadline assoluta L algoritmo deve ricalcolare la priorità dei task ad ogni attivazione L algoritmo EDF è ottimo nel campo dello scheduling di processi periodici con assegnazione dinamica delle priorità Questo significa anche che se un insieme di task periodici non sono schedulabili tramite l algoritmo EDF, allora non esiste nessun altro algoritmo di tipo dinamico che riesca a risolvere lo stesso problema di scheduling Dato un insieme di task periodici, la loro schedulabilità attraverso l algoritmo EDF è garantita se il fattore di utilizzo è minore o uguale a 1 L algoritmo EDF offre quindi garanzie di schedulazione maggiori rispetto all algoritmo RMPO; quest ultimo è però più semplice da implementare essendo un algoritmo statico 53
EDF vs RMPO Applicazione dell algoritmo RMPO TASK 1 TASK 2 TASK 3 t t t PREEMPTION DEL TASK 3 SUL TASK 2 PREEMPTION DEL TASK 1 SUL TASK 3 DEADLINE DEL TASK 2 NON RISPETTATA Applicazione dell algoritmo EDF TASK 1 TASK 2 TASK 3 t t t 54
EDF vs RMPO L algoritmo EDF può essere utilizzato nello scheduling di processi non necessariamente periodici non essendo la priorità influenzata dalla periodicità (l algoritmo RMPO invece no) Sono possibili estensioni ai due algoritmi visti in cui si considera una deadline relativa che non coincide con l istante di attivazione L algoritmo DMPO (Deadline Monotonic Priority Ordering) è un algoritmo statico (ottimo) in cui la priorità di ogni task è assegnata in maniera statica ed è inversamente proporzionale alla deadline relativa ISTANTE DI ATTIVAZIONE a i (k) DEADLINE d i (k) k-esimo JOB DEL TASK i (k+1)-esimo JOB DEL TASK i (k+2)-esimo JOB DEL TASK i t FINESTRA DI ESEGUIBILITÀ DEL JOB FINESTRA DI ESEGUIBILITÀ DEL JOB FINESTRA DI ESEGUIBILITÀ DEL JOB 55
TIMELINE Approccio molto utilizzato (sistemi militari, sistemi aeronautici, controllo del traffico aereo) in quanto non prevede alcun meccanismo di preemption Si basa sulla suddivisione dell asse temporale in intervalli di tempo uguali (time slices) da assegnare in maniera opportuna per l esecuzione dei vari task/job Minor Cycle: massimo comune divisore di tutti i periodi di attivazione Major Cycle: minimo comune multiplo di tutti i periodi di attivazione La durata di un time slice viene presa pari al minor cycle e, all interno di questo intervallo, vengono schedulati in modo arbitrario i job di tutti i task Il major cycle è il periodo dopo il quale la schedulazione si ripete in maniera sempre identica L unica ipotesi necessaria è che il processing time di ogni job sia minore del minor cycle (questo per evitare la preemption) 56
TIMELINE TASK 1 TASK 2 TASK 3 t t t MINOR C. MINOR C. MINOR C. MINOR C. MINOR C. MINOR C. MINOR C. MINOR C. MAJOR CYCLE MAJOR CYCLE E una metodologia estremamente semplice da implementare e fornisce uno schedule ripetitivo Lo studio della schedulabilità può essere effettuato a priori sulla base dei tempi di esecuzione assegnati ai vari time slice Il principale svantaggio è che una minima modifica delle caratteristiche dei task da schedulare rende necessaria una completa rivisitazione della soluzione adottata: è pertanto molto utilizzato in quei casi in cui i tempi di attivazione e quelli di processing sono noti a priori e difficilmente soggetti a variazioni 57