I problemi di scheduling

Documenti analoghi
Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività

Organizzazione della produzione

Organizzazione della produzione

Problema del Job Shop

Operations Management

Le attuali tendenze del mercato

Programmazione della produzione nei sistemi automatizzati

Cenni di schedulazione in tempo reale. E.Mumolo

Lezione R4. Sistemi embedded e real-time

Problemi di Scheduling

1. Considerazioni generali

Schedulazione real-time di task PERIODICI

Modello di Sistema Real Time. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Operation scheduling. Corso di GPM Secondo Modulo Quinta Unità Didattica

CAPITOLO 6 La programmazione operativa (operations scheduling)

1) Disegnare la rete di progetto con le attività sugli archi, e la rete di progetto con le attività sui nodi.

Linea di 4 macchine con buffer

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

1. Problemi di ottimizzazione combinatoria

Programmazione della produzione MT MT

ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO

Modelli dei Sistemi di Produzione Modelli e Algoritmi della Logistica

max z = c T x s.t. Ax b

UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II CORSO DI RICERCA OPERATIVA II docente Ing. Giuseppe Bruno ESERCIZI CAPITOLO 2 - TECNICHE DI PREVISIONE

Organizzazione della produzione

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

Struttura del Corso. Durata

Metodi di Ottimizzazione per la Logistica e la Produzione

Introduzione al Project Scheduling

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

Problema del Job Shop

7) Determinare il(i) percorso(i) critico(i), indicando la modalità impiegata per la determinazione.

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Scheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi.

Programmazione operativa

Problemi di PersonnelScheduling

Schedulazione di dettaglio Macchine in parallelo

Scheduling della CPU

Introduzione al Project Scheduling

PROBLEMA DEL COMMESSO VIAGGIATORE

Grafo per n/m/g/c max r i =0

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Project Management. Nozioni fondamentali. Definizione di Project Management. Prof.ssa E. Gentile a.a

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Introduzione alla programmazione

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Problemi di localizzazione di servizi (Facility Location Problems)

Il Sistema Operativo Ripasso

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Lezione 1. Le tipologie di problemi di gestione della produzione e delle reti logistiche

Ricerca per ispezione guidata (Branch and Bound) per min L max con r j 0

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

COLLEGIO DEI PERITI AGRARI E DEI PERITI AGRARI LAUREATI DELLA PROVINCIA DI SALERNO

OTTIMIZZAZIONE NON LINEARE

Automazione 12 Febbraio 2018

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

Esercitazione: Job shop scheduling con vincoli di processo. 22/12/2010 Ottimizzazione della Logistica

BILANCIAMENTO DI UNA LINEA DI MONTAGGIO MANUALE

Strategie risolutive e algoritmi per problemi di partizionamento ottimo di grafi

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi

Laboratory for innovation MUSP. Macchine utensili e sistemi di produzione. Laboratorio MUSP

Celle di fabbricazione

Introduzione agli algoritmi euristici

Algoritmo. Calcolabilità

CORSO DI INFORMATICA Maria Grazia Celentano

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

Algoritmi di scheduling - Parte 1

Appendice A: un esempio di scelta del mix ottimo di produzione in presenza di vincoli 19

Problemi, algoritmi, calcolatore

Project Scheduling: CPM time analysis

Sistemi Operativi. La gestione delle risorse

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Teoria della complessità

Ricerca Operativa A.A. 2007/ Esercitazione di laboratorio: Branch and Bound.

2 Introduzione È più semplice comprendere i sistemi hardware digitali considerando le modalità con cui vengono descritti, che possono essere distinte

Lezione R11. Di cosa parliamo in questa lezione?

Sistemi Embedded e Real-time (M. Cesati)

IL MODELLO FLaIR. Descrizione sintetica del modello

APPLICAZIONI DELLA RICERCA OPERATIVA

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

Elementi di matematica - dott. I. GRASSI

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Laboratorio di Algoritmi

Algoritmi e Strutture di Dati

Parte 3: Gestione dei progetti, Shop scheduling

Problemi di Ottimizzazione

BOLLETTINO UNIONE MATEMATICA ITALIANA

Indice. 1 Introduzione... 1

Un algoritmo è costituito da una serie di passaggi che portano alla risoluzione di un problema.

Linea monoprodotto con assiemature (modello:pettine): lotto, flusso. Minimo tempo di completamento: pezzo singolo, lotto finito, linea satura

ESERCITAZIONE 7 - Soluzioni. Algoritmi di schedulazione Fattibilità di sistemi real-time Gestione della memoria, paginazione e gestione del disco

Modulo 1 Concetti di base della Tecnologia dell Informazione

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Capitolo 8. Pianificare e programmare le operations

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Possibile applicazione

Transcript:

I problemi di scheduling ESTRATTO DAL VOLUME Operations Management Modelli e metodi per la logistica II Edizione Autore: Giuseppe Bruno Edizioni Scientifiche Italiane

SOMMARIO. I problemi di scheduling riguardano l uso nel tempo di risorse limitate per le quali esiste una domanda di utilizzazione. In questo capitolo, dopo una introduzione nella quale si effettua la descrizione e la classificazione dei possibili problemi, si passano in rassegna i principali modelli e si illustrano le tecniche utilizzabili per la loro risoluzione. 6.1 - INTRODUZIONE Un processo di produzione si compone di operazioni per effettuare le quali è necessario l impiego di risorse (manodopera, macchinari). Si pone, pertanto, il problema di allocare le operazioni alle risorse disponibili ( loading), di determinare la sequenza secondo la quale le operazioni vanno eseguite (sequencing) ed infine di definire, per ciascuna operazione, una schedulazione ossia l individuazione degli istanti di inizio e di completamento di ciascuna operazione (scheduling). I termini scheduling o schedulazione possono essere utilizzati per indicare la tempificazione secondo la quale le operazioni devono essere realizzate e il processo che conduce alla individuazione di tale tempificazione. Diverse applicazioni possono essere ricondotte a problemi di scheduling: la disciplina di accesso di utenti ad un servizio, l assegnazione di operazioni a stazioni di lavoro durante il processo di trasformazione di un prodotto, la tempificazione di attività da svolgere all interno di un progetto complesso, l attribuzione di aule ad un insieme di classi, la regolazione degli accessi di veicoli ad un incrocio attraverso il controllo semaforico, l assegnazione di binari a convogli ferroviari, l utilizzazione di piste e/o gates da parte di aerei in arrivo o in partenza da un aeroporto. La definizione di uno scheduling può essere molto complicata per la

presenza di vincoli relativi alle attività da svolgere ed alle risorse a disposizione. Possono esistere, ad esempio, relazioni di precedenza tra le operazioni (es: la trasformazione di un prodotto avviene secondo una sequenza ordinata di lavorazioni), vincoli sui tempi di realizzazione (es: una dete r- minata procedura deve completarsi entro un tempo stabilito) e/o sulle modalità di utilizzo di una certa risorsa (es: due aerei che decollano in successione devono rispettare una distanza di sicurezza), sull uso simultaneo di risorse (es: due treni non possono sostare nello stesso tempo sullo stesso binario), sui tempi di disponibilità delle risorse (es: le aule a disposizione possono essere utilizzate soltanto in certi orari della giornata), sulla continuità nell uso delle risorse (es: dopo un certo periodo di utilizzazione le risorse vanno sottoposte ad operazioni di manutenzione), sui tempi di attesa per l effettuazione di un operazione (es: un utente che accede ad un servizio non può rimanere in attesa più di un certo periodo massimo). Per definire una schedulazione efficiente bisogna individuare opportuni parametri di valutazione legati all uso delle risorse, alla capacità di assicurare una risposta alle richieste in maniera rapida e soddisfacente, al contenimento dei costi di gestione. La scelta dell obiettivo da perseguire dipende dalle applicazioni, dai casi particolari e dalle scelte del decisore. I problemi di scheduling possono essere rappresentati attraverso opportuni modelli. La complessità dei modelli dipende dalle risorse a disposizione, dalla tipologia dei vincoli presenti, dalla scelta degli obiettivi. Nel seguito si illustrano i modelli fondamentali per la descrizione dei problemi di scheduling. 6.2 - DEFINIZIONI FONDAMENTALI Sia M un insieme di m macchine e O un insieme di n operazioni da effettuare; un problema di scheduling consiste nell assegnare le operazioni O alle macchine M nel rispetto di alcuni vincoli. Le macchine rappresentano le risorse e possono essere indicate anche con i termini processori o stazioni di lavoro; le operazioni sono le richieste di utilizzazione e possono essere indicate anche con i termini attività, compiti o task. Una macchina é dedicata se può svolgere solo determinate operazioni; è, invece, non dedicata o parallela se essa può effettuare tutte le possibili operazioni; in quest ultimo caso le macchine possono essere identiche se hanno la stessa velocità di processamento, uniformi se la velocità è differente ma costante ed indipendente dall operazione, incorrelate se le velocità dipendono dall operazione da effettuare.

In presenza di macchine dedicate ha senso parlare di lavorazione o job, ossia di un insieme di operazioni caratterizzate dal fatto che due operazioni successive devono essere realizzate su macchine differenti. A ciascuna operazione j è possibile associare i seguenti parametri: Tempo di esecuzione o di processamento (processing time) p kj E il tempo che occorre alla macchina k per eseguire l operazione j. Nel caso di macchine identiche si ha che pkj=pj mentre, per macchine uniformi, pkj=pj/vk dove pj è detto tempo di processamento standard ed è dato dal tempo di esecuzione dell operazione j con la macchina più lenta, e vk è il fattore di velocità della macchina k. Peso o priorità (weight) wj È una misura della priorità dell operazione j. Ponendo wu=1 per l operazione u ritenuta meno importante, il peso wj>1 rappresenta un indice di priorità dell operazione j rispetto all operazione u. Tempo di rilascio (release time) r j E l istante di tempo a partire dal quale l operazione j è pronta per essere processata. Se tale istante è lo stesso per ogni operazione, si pone r j=0 per ogni j. In questo caso si parla di scheduling statico in contrapposizione al caso generale di scheduling dinamico. Tempo di inizio (start time) s j E l istante in cui viene iniziata l operazione j e, pertanto, s j r j. Tempo di completamento (completion time) C j E l istante di tempo in corrispondenza del quale termina l esecuzione di j. Tempo di flusso (flow time) Fj=Cj-rj Rappresenta l intervallo tra l istante in cui l operazione è pronta per essere eseguita e l istante in cui l operazione é completata; in altri termini, il tempo di flusso é dato dalla somma dei tempi di attesa e di quelli di esecuzione. Nel caso di scheduling statico (rj=0 j) il tempo di flusso coincide con il tempo di completamento. Tempo di scadenza (due date) d j Rappresenta l istante entro cui l operazione j dovrebbe essere completata; se tale scadenza non viene rispettata occorre valutare una penalità. Termine massimo (deadline) d j Indica il termine perentorio entro cui bisogna completare l operazione j; a differenza del tempo di scadenza, non è ammissibile una schedulazione

con operazioni che abbiano tempi di completamento oltre le deadlines. Ritardo (lateness) Lj=Cj-dj E la differenza tra il tempo di completamento e il tempo di scadenza; se Lj>0 l operazione é stata completata in ritardo rispetto alla scadenza; se Lj<0, invece, essa é stata completata in anticipo. Tardiness Tj= max{lj, 0} Ha significato analogo al ritardo ma tiene conto solo dei ritardi rispetto ai tempi di completamento. Scorrimento (slack) slj=dj-rj-pj Rappresenta lo scorrimento temporale possibile per l esecuzione dell operazione. Tempo di setup (setup time) sij Rappresenta il tempo minimo necessario al passaggio, su una determinata macchina, dall operazione i all operazione j. In pratica, una operazione j può iniziare a partire dall istante sj=ci+sij, se Ci è il tempo di completamento dell operazione i che la precede. Una soluzione di un problema di scheduling viene rappresentata utilizzando i diagrammi di Gantt. Sull ascissa si riporta il tempo mentre le ordinate vengono suddivise sulla base del numero delle macchine; ogni operazione è raffigurata con un rettangolo di base pari al tempo di processamento. Utilizzando questa rappresentazione, in Figura 6.1 è illustrato il significato di alcune delle variabili introdotte. F j p j j j r j C j dj t dj C j t Lj<0, Dj=0 FIG. 6.1 -Tempo di flusso, ritardo e tardiness Lj>0, Dj<0

Risolvere un problema di scheduling significa determinare la tempificazione delle operazioni su ogni macchina nel rispetto dei seguenti vincoli: ogni macchina deve effettuare al più una operazione alla volta e, viceversa, ogni operazione deve essere eseguita al massimo da una macchina alla volta; un operazione j deve essere realizzata all interno dell intervallo [rj, dj]; tutte le operazioni devono essere eseguite nel rispetto dei vincoli tecnologici e sulla disponibilità delle risorse. I vincoli tecnologici possono essere di vario tipo. Se l esecuzione di un operazione può essere interrotta per essere ripresa in tempi successivi si parla di scheduling preemptive, altrimenti di scheduling non preemptive (Figura 6.2). In alcuni casi possono esistere vincoli di precedenza tra operazioni; se per iniziare l esecuzione di u occorre prima completare v si dirà che u<v. Se tra due operazioni esiste una relazione di precedenza, esse si dicono dipendenti, in caso contrario si parla di operazioni indipendenti. E possibile utilizzare diversi criteri per valutare l efficienza di una schedulazione. Gli obiettivi più comuni riguardano la minimizzazione di uno dei parametri indicati in Figura 6.3. Macchina 1 j Macchina 2 j t FIG. 6.2 - Scheduling preemptive di un operazione su due macchine Obiettivo Espressione 1 Tempo di completamento massimo (makespan) Cmax= max{cj} 2 Somma pesata dei tempi di completamento wjcj 3 Somma pesata dei tempi di flusso wjfj 4 Somma pesata dei ritardi wjlj 5 Ritardo massimo Lmax= max{lj} 6 Massima tardiness Tmax= max{tj} 7 Numero di operazioni in ritardo δ(lj) con δ(lj)=1 se Lj>0; δ(lj)=0 se Lj 0 8 Numero pesato di operazioni in ritardo w j δ(lj) con δ(lj)=1 se Lj>0; δ(lj)=0 se Lj 0 9 Somma pesata delle tardiness wjtj

FIG. 6.3 - Obiettivi per problemi di scheduling Minimizzare il tempo massimo di completamento di un operazione detto makespan (obiettivo 1) è l obiettivo più frequentemente utilizzato per ottenere una schedulazione con la più efficiente utilizzazione complessiva delle risorse, dal momento che completare le operazioni il più presto possibile rende le risorse disponibili prima per altre utilizzazioni (Figura 6.4). La minimizzazione della somma dei tempi di completamento, dei tempi di flusso o dei ritardi (obiettivi 2,3,4) è orientata a minimizzare il tempo di attesa medio delle operazioni. Tali obiettivi coincidono nel senso che una soluzione che ottimizza la somma dei tempi di completamento ottimizza anche gli altri due obiettivi e viceversa. Essi risultano inoltre robusti, nel senso che schedulazioni ottimali secondo questi obiettivi producono buone soluzioni anche rispetto ad altri obiettivi. La minimizzazione del massimo ritardo, della massima tardiness e del numero di operazioni in ritardo (obiettivi 5,6,7) puntano a ridurre le inefficienze complessive della schedulazione rispetto alle scadenze. Gli obiettivi della somma pesata delle tardiness e del numero pesato delle operazioni in ritardo (obiettivi 8,9) danno luogo a problemi molto complessi dal punto di vista computazionale. I criteri di ottimizzazione, quindi, possono distinguersi in obiettivi o- rientati all efficienza o al makespan (obiettivo 1), obiettivi orientati ai tempi di flusso o ai tempi di risposta (obiettivi 2,3,4) e obiettivi orientati al rispetto delle scadenze (obiettivi 5,6,7,8,9). Tutti gli obiettivi indicati sono funzioni non decrescenti dei tempi di completamento delle operazioni e, pertanto, sono detti regolari. Per chiarire questo concetto si faccia riferimento ad una schedulazione con valore di funzione obiettivo f e che presenti, per l operazione k, un tempo di completamento Ck; se si considera una nuova schedulazione con gli stessi tempi di completamento ad eccezione dell operazione k caratterizzata da un tempo di completamento C k>ck, in corrispondenza di questa schedulazione un obiettivo regolare sarà certamente caratterizzato da un nuovo valore f f. Macchina 1 1 5 Macchina 2 2 4 6 Macchina 3 3 7

Cmax FIG. 6.4 - Makespan per una schedulazione su tre macchine t 6.3 - CLASSIFICAZIONE DEI PROBLEMI DI SCHEDULING Per effettuare una classificazione dei problemi di scheduling, occorre analizzare le caratteristiche delle macchine e delle operazioni, il tipo e la natura dei vincoli da soddisfare e la funzione obiettivo. Sulla base delle caratteristiche delle operazioni è possibile distinguere tra problemi a fase unica e problemi multifase. Nel primo caso tutte le lavorazioni richiedono una sola operazione e, pertanto, si può parlare indifferentemente di lavorazione o operazione (job o task); le operazioni possono essere realizzate su una sola macchina (scheduling su macchina singola) o su più macchine (scheduling su macchine parallele). Nello scheduling multifase ogni job richiede che si effettuino operazioni su macchine dedicate tra le quali esistono vincoli di precedenza. E possibile distinguere tra problemi Flow Shop in cui le operazioni sono eseguite dallo stesso insieme di macchine e con lo stesso ordine di precedenza e problemi Job Shop in cui ciascun job può presentare caratteristiche diverse. Per quanto riguarda i vincoli temporali, si parla di problemi dinamici quando le operazioni possono essere eseguite solo a partire da un certo istante (rj) e problemi statici quando non vi sono vincoli sul tempo di inizio e le operazioni, quindi, sono tutte disponibili a partire dallo stesso istante. Possono esistere, inoltre, vincoli sul tempo di fine al più tardi (dj o dj), sulla possibilità o meno di scheduling con interruzione (preemptive), sull esistenza di relazioni di precedenza tra operazioni, oltre a vincoli generali sul processo di schedulazione (es: esistenza di buffers di capacità limitata, limitazione sul numero di operazioni da realizzare per ogni lavorazione). In sintesi, per definire un problema di scheduling, è necessario specificare una terna di informazioni α β γ con α informazioni sul processo di scheduling (numero e tipo di macchine (identiche, uniformi, incorrelate), monofase o multifase); β informazioni relative ai vincoli presenti; γ funzione obiettivo. Nelle Figure 6.5 e 6.6 sono indicati i codici che saranno utilizzati per indicare i diversi problemi. Ad esempio P rj, preemptive ΣFj indica un

problema di scheduling dinamico su macchine parallele con possibilità di interruzioni in cui si intende minimizzare la somma dei tempi di flusso; F2 Cmax, invece, indica un Flow Shop a due macchine con l obiettivo di minimizzare il makespan. 6.4 - TECNICHE DI RISOLUZIONE DI PROBLEMI DI SCHEDULING I problemi di scheduling sono caratterizzati da difficoltà computazionali molto diverse secondo il tipo di problema. Ne consegue che, in base alla complessità, si ricorre a tecniche esatte o a tecniche euristiche di risoluzione. Le tecniche euristiche, a loro volta, si dividono in tecniche costruttive e migliorative. Nel seguito si illustrano modelli e metodi di risoluzione per diversi tipi di problemi (monofase su macchina singola e macchine parallele, multifase Flow Shop e Job Shop). 6.4.1 - TECNICHE COSTRUTTIVE Tecniche basate su liste di priorità Si tratta di algoritmi che consentono, sulla base di regole o indici di priorità (dispatching rules), di ordinare le operazioni da eseguire. Le regole di priorità possono essere statiche o dinamiche: quelle statiche sono caratterizzate da indici di priorità che non variano durante la schedulazione; nelle regole dinamiche, invece, gli indici sono aggiornati dinamicamente. Per schedulazioni su macchina singola la lista di priorità rappresenta l ordine secondo il quale le operazioni devono essere schedulate. Nel caso di schedulazione su più macchine, invece, le operazioni vengono assegnate nell ordine indicato alle macchine che si rendono mano mano disponibili per effettuare un operazione. Di seguito sono descritte le regole di priorità più utilizzate. Codice Problema 1 Macchina singola P Macchina parallele R Macchine incorrelate Fm Flow Shop su m macchine Jm Job Shop su m macchine FIG. 6.5 - Codici per la descrizione dei problemi (α)

Codice rj sij Preemptive Vincoli Scheduling dinamico Presenza di tempi di setup Possibilità di schedulazione con interruzione FIG. 6.6 - Codici per la descrizione dei vincoli (β) Random: si eseguono le operazioni secondo un ordine casuale. FCFS ( First Come First Served): nel caso dinamico, le operazioni sono eseguite seguendo l ordine con cui si rendono disponibili; in pratica, si ordinano le operazioni secondo il tempo di rilascio crescente. WSPT ( Weighted Shortest Processing Time): si ordinano le operazioni secondo il rapporto wj/pj crescente; se wj=1 j, equivale a processare secondo il tempo di processamento crescente (SPT). WLPT ( Weighted Longest Processing Time): si ordinano le operazioni nell ordine del rapporto wj/pj decrescente; se wj=1 j, equivale a processare secondo il tempo di processamento decrescente (LPT). EDD (Earliest Due Date): si eseguono le operazioni secondo il tempo di scadenza crescente. MST (Minimum Slack Time): si eseguono le operazioni secondo il valore di slack slj=dj-rj-pj crescente. CR (Critical Ratio): in presenza di tempi di rilascio e scadenze, il rapporto ( dj-rj)/pj è un indice della criticità della lavorazione: quanto più basso è il rapporto tanto più la schedulazione è critica. In particolare, per (dj-rj)/pj=1, per evitare un ritardo, la lavorazione deve essere schedulata a partire dall istante rj. La regola CR, prevede, quindi, che le o- perazioni vengano eseguite secondo il rapporto (dj-rj)/pj crescente. LTWK (Least Total WorK): nel caso multifase si ordinano i jobs secondo l ordine crescente del tempo di processamento totale su tutte le macchine; la LTWK corrisponde alla regola SPT nel caso monofase. MOPNR ( Most OPeratioN Remaining): nel caso multifase si ordinano i jobs secondo l ordine decrescente della somma dei tempi di processamento delle operazioni ancora da assegnare; la MOPNR coincide con la regola LPT nel caso monofase.

Alcune regole, come ad esempio la MST o la CR, possono essere applicate dinamicamente sostituendo ad rj il valore dell istante in corrispondenza del quale l operazione j può iniziare al più presto. La scelta della regola dipende dal tipo di problema e, soprattutto, dall obiettivo che si considera. A titolo esemplificativo, si riporta l ordine di schedulazione risultante dall applicazione delle diverse regole su macchina singola per un insieme di operazioni (Figura 6.7). Approccio del collo di bottiglia (bottleneck) Nei problemi a più macchine e, in particolare, nei problemi multifase, accade frequentemente che vi sia la presenza di una macchina più importante delle altre che assume, quindi, la funzione di collo di bottiglia (bottleneck) nel processo di schedulazione. Questa diversa importanza può essere dovuta, ad esempio, alla peculiarità della lavorazione che essa svolge, ai tempi di processamento più elevati, al fatto che la gran parte se non la totalità dei jobs richiede il passaggio per quella macchina. In queste circostanza, invece di considerare il problema nel suo complesso, si affronta il problema della schedulazione della macchina bottleneck come problema a macchina singola. A partire dalla soluzione così determinata, si ricavano le schedulazioni delle altre macchine considerando, eventualmente, la presenza di vincoli di precedenza rispetto alla operazione eseguita sulla macchina bottleneck. 6.4.2 - TECNICHE MIGLIORATIVE Gli algoritmi costruttivi forniscono una soluzione ammissibile a partire dalla quale è possibile innescare procedure migliorative. Un algoritmo migliorativo definisce una mossa che consente di individuare l intorno della soluzione corrente all interno del quale scegliere la soluzione migliore. Le mosse più utilizzate per implementare procedure migliorative sono le mosse di scambio tra operazioni. Esse possono riguardare operazioni assegnate alla stessa macchina o a macchine diverse. Nel primo caso si ottengono intorni di dimensioni più contenute, ma si riducono i tempi per l esecuzione della mossa. Nelle Figure 6.8 e 6.9 sono illustrati esempi di mosse di scambio di o- perazioni assegnate alla stessa macchina e a macchine diverse. Operazioni Tempo di processamento pj Scadenza dj Regola Ordine di schedulazione

A 2 7 Random Qualsiasi B 8 16 SPT A-C-E-B-D-F C 4 4 LPT F-D-B-E-C-A D 10 17 EDD C-A-E-B-D-F E 5 15 MST C-A-F-D-B-E F 12 18 CR C-A-F-B-E-A FIG. 6.7 - Applicazione delle regole di priorità ad un insieme di operazioni Le mosse di scambio possono essere utilizzate anche all interno di procedure metaeuristiche quali Simulated Annealing e Tabu Search. Per quanto riguarda gli Algoritmi Genetici bisogna ricorrere a codifiche a permutazione per poter applicare gli operatori genetici modificati Per problemi su macchina singola una possibile codifica è data dalla successione delle operazioni sulla macchina; ad esempio le schedulazioni indicate in Figura 6.8 sono rappresentate dalle stringhe: A B C D A C B D Nel caso di schedulazione su più macchine, si può distinguere un numero di sottostringhe pari al numero di macchine; ad esempio, le soluzioni indicate in Figura 6.9 sono rappresentate dalla codifica: A B E G C D F A C E G B D F Macchina 1 A B C D Macchina 1 A C B D t FIG. 6.8 - Mossa di scambio tra operazioni assegnate alla stessa macchina Macchina 1 A B Macchina 2 E G Macchina 3 C D F 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728 t

Macchina 1 A C Macchina 2 E G Macchina 3 B D F 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 t FIG. 6.9 - Mossa di scambio tra operazioni assegnate a macchine diverse 6.5 - SCHEDULING SU MACCHINA SINGOLA I problemi su macchina singola sono di particolare interesse perché i metodi per la loro risoluzione possono essere adattati per affrontare casi più complessi. Nel seguito se ne illustrano alcuni distinguendo il caso statico dal caso dinamico. 6.5.1 - PROBLEMI STATICI I problemi statici possono essere risolti in maniera efficiente dal momento che, con riferimento alle funzioni obiettivo più utilizzate, essi risultano risolvibili in tempo polinomiale. Nel seguito si illustrano le tecniche risolutive, distinguendo tra funzioni obiettivo orientate al makespan, ai tempi di flusso ed al rispetto delle scadenze. 1 Cmax La soluzione ottima si ottiene schedulando le operazioni secondo un ordine qualsiasi ottenendo Cmax=Σpj. In Figura 6.10 sono indicate due diverse sequenze di operazioni che forniscono lo stesso makespan. 1 ΣwjCj; 1 ΣwjFj; 1 ΣwjLj; I problemi con funzioni obiettivo orientate ai tempi di flusso possono essere risolti in maniera ottimale con la regola WSPT, che, nel caso wj=1 j, coincide con la regola SPT. Questo risultato può essere evidenziato con un semplice esempio di due operazioni (A, B) con uguale priorità e tempi di processamento diversi (es: pa=1 e pb=3). Per la soluzione A-B si ha ΣC j=1+4=5 mentre, per la soluzione B-A, ΣCj=3+4=7; la schedulazione migliore, dunque, prevede di anticipare le operazioni con i tempi di processamento minori. (Figura 6.11). Macchina 1 A B C

t Macchina 1 C A B FIG. 6.10 - Esempio di schedulazione statica su una macchina t Macchina 1 A B B A 1 2 3 4 5 6 1 2 3 4 5 6 FIG. 6.11 - Possibili schedulazioni di due operazioni su una macchina 1 Lmax, 1 Tmax, Entrambi i problemi possono essere risolti in tempo polinomiale con la regola EDD (Earliest Due Date). 6.6 - SCHEDULING SU MACCHINE PARALLELE I problemi su macchine parallele risultano di diversa complessità secondo il tipo di funzione obiettivo, i vincoli e le tipologie delle macchine (identiche, uniformi, incorrelate). Mentre i problemi preemptive sono in generale polinomiali, i problemi non preemptive sono NP-hard. Nel seguito si illustrano alcune tecniche risolutive per entrambi i casi. 6.6.1 - SCHEDULING PREEMPTIVE P preemptive Cmax Per ottenere la soluzione ottima è necessario realizzare la condizione di perfetto bilanciamento del carico di lavoro tra le m macchine, cosa che consentirebbe di ottenere C max=σpj/m. Tuttavia, se vi è di un operazione con tempo di processamento maggiore di (Σpj/m), il bilanciamento perfetto non può realizzarsi; di conseguenza l espressione del makespan è C * max max 1 m ( p j, max ( p j )) dove il primo valore si ottiene nel caso di bilanciamento perfetto, mentre il secondo prevale quando è presente un operazione con tempo di processamento maggiore di (Σpj/m). In entrambi i casi per ottenere la soluzione ottima si può procedere nel seguente modo. Si assegni ad una macchina qualsiasi la prima operazione;

successivamente si attribuiscano nell ordine le altre assicurandosi che, se l operazione corrente k dovesse presentare un tempo di completamento Ck>C * max, si interrompe all istante C * max e si assegna il residuo tempo di processamento (Ck-C * max) ad un altra macchina libera. Il procedimento viene iterato fino ad assegnare tutte le operazioni. Le schedulazioni di Figura 6.21 sono state realizzate applicando il metodo esposto. Macchina 1 A B Macchina 1 A Macchina 2 B C D Macchina 2 B C D Macchina 3 D E F Macchina 3 D E 1 2 3 4 5 6 7 8 t 1 2 3 4 5 6 7 8 9 10 t FIG. 6.21 - Scheduling con e senza bilanciamento nel caso P preemptive C max 6.6.2 - SCHEDULING NON PREEMPTIVE P Cmax Mentre nella schedulazione preemptive le variabili xij sono continue, nel caso non preemptive, non potendo interrompersi l esecuzione di un operazione, le xij sono binarie (0 o 1). Si può comprendere, quindi, per quale ragione il problema P Cmax è di tipo NP-hard anche per P 2. Poiché una soluzione è tanto migliore quanto più ci si avvicina al bilanciamento perfetto, una regola di priorità che produce buoni risultati è la LPT ( Longest Processing Time). L applicazione di questa regola, infatti, consente di assegnare prioritariamente le operazioni con tempi di processamento maggiori, in modo da tentare il bilanciamento con l assegnazione successiva delle operazioni con tempi di processamento più brevi. Esempio Considerando la lista di operazioni in Tabella da eseguire su 3 macchine, utilizzando la regola LPT si ottiene la schedulazione riportata in Figura 6.26 con C max=18. A partire dalla soluzione ottenuta con l applicazione della regola LPT, si può innescare una qualsiasi tecnica migliorativa. Se si considera, ad esempio, la mossa di scambio di due operazioni assegnate a due macchine diverse (es: C-G) si ottiene la soluzione ottima di

Figura 6.22 con C max=17. Operazione A B C D E F G p j 12 5 7 7 9 4 6 d j 17 9 11 15 10 7 21 Macchina 1 A B Macchina 2 E G Macchina 3 C D F 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 t FIG. 6.26 Schedulazione con la regola LPT per un problema P C max Macchina 1 A B Macchina 2 E C Macchina 3 G D F 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 t FIG. 6.27 Schedulazione dopo una mossa di scambio per un problema P C max dopo una mossa di scambio P Σ Cj; P Σ Fj; P Σ Lj Il problema è risolvibile in tempo polinomiale applicando la regola SPT (Shortest Processing Time). Esempio Considerando le operazioni indicate in Tabella, utilizzando la regola SPT si ottiene la schedulazione riportata in Figura 6.28 con ΣC j= C A+ + C G= 6+ 14+ 5+ 11+ 21+ 12+ 4= 73. Operazione A B C D E F G p j 6 8 5 7 10 7 4

Macchina 1 G D E Macchina 2 C F Macchina 3 A B 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 t FIG. 6.28 - Schedulazione con la regola SPT per un problema P Σ C j P Lmax; P Tmax Come nel caso P Cmax il problema risulta NP-hard per P2. La regola EDD (Earliest Due Date) produce buone soluzioni subottimali. Esempio Considerando le operazioni indicate in Tabella, utilizzando la regola EDD si ottiene la schedulazione di Figura 6.29 con L max= max(l A,, L G)= max(0, 0, 0, 0, (17-16), 0, (21-18))= 3. Operazione A B C D E F G p j 7 9 5 6 8 10 7 d j 10 10 8 13 26 18 15 Macchina 1 C D F Macchina 2 B E Macchina 3 A G 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 t FIG. 6.29 Schedulazione con la regola EDD per un problema P L max