Applicazioni del job shop

Documenti analoghi
CASE STUDY 2. Fabbricazione dell acciaio. Un problema di pianificazione: Minimizzazione dei costi di carica del forno. Dati. Formulazione del problema

Modelli di Sistemi di Produzione I

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

Approcci esatti per il job shop

Organizzazione della produzione

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

Organizzazione della produzione

Tecniche euristiche Ricerca Locale

1. Considerazioni generali

Le attuali tendenze del mercato

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

2.2 Alberi di supporto di costo ottimo

Cenni di schedulazione in tempo reale. E.Mumolo

ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO

Metodi di Ottimizzazione per la Logistica e la Produzione

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Pianificazione dei progetti. Alberto Caprara DEIS - Università di Bologna

2.2 Alberi di supporto di costo ottimo

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

Metodi di Ottimizzazione per la Logistica e la Produzione

Modelli dei Sistemi di Produzione Modelli e Algoritmi della Logistica

Problemi di localizzazione di servizi (Facility Location Problems)

TSP Ricerca Locale. Riccardo Mondani Martina Alberti

Pianificazione dei progetti

Modelli di Sistemi di Produzione:

Parte 3: Gestione dei progetti, Shop scheduling

METODI DELLA RICERCA OPERATIVA

1. Classificazione delle risorse

Operations Management

età (anni) manutenzione (keuro) ricavato (keuro)

La pianificazione della produzione

CAPITOLO 6 La programmazione operativa (operations scheduling)

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

1. Considerazioni generali

Problemi, istanze, soluzioni

Algoritmo basato su cancellazione di cicli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Algoritmi di ricerca locale

APPLICAZIONI DELLA RICERCA OPERATIVA

Problema Determinare la miscelazione ottimale delle materie prime in modo da massimizzare il profitto complessivo

Introduzione ai grafi

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al

Programmazione della produzione MT MT

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Corso di Perfezionamento

Il problema del commesso viaggiatore

Il problema del commesso viaggiatore e problemi di vehicle routing

Organizzazione della produzione

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

2.3.3 Cammini ottimi nei grafi senza circuiti

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Gestione della produzione e della supply chain Logistica distributiva

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Programmazione Lineare Intera: Piani di Taglio

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

11.4 Chiusura transitiva

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Schedulazione delle Attività di un Progetto in Presenza di Multi-Calendari

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

Appunti lezione Capitolo 14 Greedy

Celle di fabbricazione

SISTEMI DI PRODUZIONE DISCRETA

2. ALGORITMO DEL SIMPLESSO

1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi

Programmazione operativa

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

Schedulazione di attività in presenza di attività interrompibili

Progettazione di Algoritmi

Progettazione di Algoritmi

Possibile applicazione

Cammini minimi in grafi:

Soluzioni degli esercizi di formulazione di PL{0, 1}

6.5 RNA Secondary Structure. 18 novembre 2014

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

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Sistemi Organizzativi

GROUP TECHNOLOGY e PRODUZIONE A CELLE

Schedulazione real-time di task PERIODICI

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Soluzione dei problemi di Programmazione Lineare Intera

Visite in Grafi BFS e DFS

Gestione della produzione e della supply chain Logistica distributiva

Ottimizzazione numerica

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

3.4 Metodo di Branch and Bound

Introduzione alla programmazione Esercizi risolti

Cercare il percorso minimo Ant Colony Optimization

Sistemi Operativi. La gestione delle risorse

Analisi algoritmi ricorsivi e relazioni di ricorrenza

5.3 Metodo dei piani di taglio

Ottimizzazione della produzione tramite software di scheduling

La Gestione dei Progetti. Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena

Parte V: Rilassamento Lagrangiano

SCHEDULING SCHEDULING

Flusso a Costo Minimo

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

AMPL Problemi su Reti

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

Transcript:

Applicazioni del job shop Production scheduling in due contesti I case study: Industria siderurgica II case study: Industria farmaceutica

PRIMO CASE STUDY Gestione delle risorse produttive nell industria siderurgica Rapporto tecnico: DIA-- Pacciarelli, International Journal of Production Research

Section outline Introduzione al problema Modellazione via grafi delle alternative Esempi Algoritmi

Processo di fabbricazione dell acciaio AOD: Argon Oxigen Decarburization unit

Modello schematico Ferro grezzo EAF Buffers - AOD LF Buffer CC Bramme EAF: Electric Arc Furnace AOD: Argon Oxigen Decarburization unit LF: Ladle Furnace CC: Continuous Caster

Un problema di pianificazione: Minimizzazione dei costi di carica del forno Magazzini materie prime Ceste di ferro grezzo (ladles) EAF Buffers AOD EAF: Electric Arc Furnace Materiali di affinazione AOD: Argon Oxigen Decarburization unit 6

Magazzini materie prime Dati del problema Per ogni materiale: Disponibilità Caratteristiche Resa in fusione Resa in affinazione Ceste di ferro grezzo (ladles) EAF Buffer Materiali di affinazione Per ogni prodotto: Quantità Caratteristiche all uscita del forno Caratteristiche dopo l affinazione AOD 7

Formulazione del problema di pianificazione Variabili: x ik quantità di materiale i per produrre l acciaio k Dati: c hi concentrazione di elemento h nel materiale i r h resa in forno dell elemento h s h resa in affinazione dell elemento h R i resa in forno del materiale i S i resa in affinazione del materiale i D i disponibilità del materiale i B k quantità richiesta di materiale k f hk concentrazione rich. di el. h nell acciaio k dopo il forno e hk conc. rich. di el. h nell acciaio k dopo l affinazione C i costo per unità di materiale i V i volume per unità di peso del materiale i V max volume massimo per unità di peso della miscela 8

Formulazione del problema di pianificazione Obiettivo: minimizzazione dei costi dei materiali min Σ ik C i x ik Vincoli sulle caratteristiche di ogni acciaio dopo il forno (Σ i forno c hi x ik ) r h = f hk (Σ x i forno ik ) r h h,k Vincoli sulle caratteristiche di ogni acciaio dopo l affinazione (Σ i forno c hi x ik ) r h s h + (Σ i aff. c hi x ik )s h = e hk B k h,k Vincoli sulla quantità da produrre di ogni acciaio (Σ i forno x ik ) R i S i + (Σ i aff. x ik )S i = b k k Vincoli sulla disponibilità di materiali Σ k x ik D i i Vincoli sulla densità delle miscele Σ ik V i x ik V max Σ k x ik k 9

Problema del sequenziamento dei lotti Il problema consiste nello schedulare la produzione di un numero dato di lotti con l obiettivo di minimizzare il makespan (i.e., il tempo di completamento dell ultimo lotto schedulato) Caratteristiche principali del problema: Elevato costo, peso e ingombro dei semilavorati Raffreddamento del materiale Scarsa capacità di immagazzinamento Lotti di piccole dimensioni Costi di set-up tra lotti diversi Criticità in fase di colatura STEEL LADLE Ogni lotto è composto da un insieme di ladles che devono essere processate in blocco in fase di colatura

Section outline Introduzione al problema Modellazione via grafi delle alternative Esempi Algoritmi

Intro al modello di job shop Job: Macchine: La sequenza di visita delle macchine per ogni job è fissata La lavorazione di un job su una macchina è detta operazione Ogni operazione richiede un tempo di lavorazione dato e non interrompibile Ogni macchina può eseguire al più un operazione alla volta

Intro al grafo disgiuntivo Variabili: istante di inizio t i dell operazione o i, i=,, n p i : tempo di processamento dell operazione o i Obj. Function: min t n Congiunzioni: t j t i +p (i,j) F i Disgiunzioni: (t h t k +p k ) (t k t h +p h ) (h,k) A 9 6 7 8

Il grafo disgiuntivo min t 9 Cong. t t t t +p t t +p t 9 t +p t t t t +p t 9 t +p t 6 t t 7 t 6 +p 6 t 8 t 7 +p 7 t 9 t 8 +p 8 Disg. (t t 6 +p 6 ) (t 6 t +p ) (t t +p ) (t t +p ) (t t 7 +p 7 ) (t 7 t +p ) (t t 7 +p 7 ) (t 7 t +p ) (t t 8 +p 8 ) (t 8 t +p ) 9 6 7 8

Il grafo disgiuntivo min t 9 Cong. t t t t +p t t +p t 9 t +p t t t t +p t 9 t +p t 6 t t 7 t 6 +p 6 t 8 t 7 +p 7 t 9 t 8 +p 8 Disg. (t t 6 +p 6 ) (t 6 t +p ) (t t +p ) (t t +p ) (t t 7 +p 7 ) (t 7 t +p ) (t t 7 +p 7 ) (t 7 t +p ) (t t 8 +p 8 ) (t 8 t +p ) 9 6 7 8

Il modello di job shop assume l esistenza di magazzini intermedi per i semilavorati a capacità infinita 6

Il modello di job shop assume l esistenza di magazzini intermedi per i semilavorati a capacità infinita nel caso siderurgico I magazzini hanno capacità limitata (vincoli di blocking) I semilavorati hanno un tempo massimo di immagazzinamento tra operazioni consecutive (vincoli di deperibilità) 7

Magazzini di capacità k sono modellati introducendo k macchine fittizie con tempo di processamento e con blocking (Mc Cormick et al. OR 989) A Buffer op. op. B 8

Magazzini di capacità k sono modellati introducendo k macchine fittizie con tempo di processamento e con blocking (Mc Cormick et al. OR 989) A Buffer op. op. B A B op. op. 9

Il modello di job shop considera tutti i lavori indipendenti l uno dall altro

Il modello di job shop considera tutti i lavori indipendenti l uno dall altro nel caso siderurgico I lavori di uno stesso lotto devono essere processati consecutivamente Esiste un vincolo di continuità tra le operazioni di colatura di uno stesso lotto

Il grafo delle alternative Variabili: istante di inizio t i dell operazione o i, i=,, n

Il grafo delle alternative Variabili: istante di inizio t i dell operazione o i, i=,, n min t n t j t i +d ij (i,j) F (t i t h +a hi ) (t j t k +a kj ) ((h,i)(k,j)) A F: insieme degli archi FISSI A: insieme delle coppie di archi ALTERNATIVI

Il grafo delle alternative Variabili: istante di inizio t i dell operazione o i, i=,, n min t n t j t i +d ij (i,j) F (t i t h +a hi ) (t j t k +a kj ) ((h,i)(k,j)) A F: insieme degli archi FISSI A: insieme delle coppie di archi ALTERNATIVI d ij < a hi < a kj <

Il grafo delle alternative Variabili: istante di inizio t i dell operazione o i, i=,, n min t n t j t i +d ij (i,j) F (t i t h +a hi ) (t j t k +a kj ) ((h,i)(k,j)) A F: insieme degli archi FISSI A: insieme delle coppie di archi ALTERNATIVI d ij < a hi < a kj < G=(N,F,A) 9 6 7 8

Il grafo delle alternative Variabili: istante di inizio t i dell operazione o i, i=,, n min t n d ij < t j t i +d ij (i,j) F a hi (t i t h +a hi ) (t j t k +a kj ) ((h,i)(k,j)) A < a kj < F: insieme degli archi FISSI G=(N,F,A) A: insieme delle coppie di archi ALTERNATIVI Una soluzione è ammissibile se e solo se non ci sono 9 cicli di lunghezza positiva nel grafo risultante 6 7 8 6

Il grafo delle alternative min t 9 Cong. t t t t +d t t +d t 9 t +d 9 t t +d t t +d t t +d t 6 t t 7 t 6 +d 67 t 8 t 7 +d 78 t 9 t 8 +d 89 Disg. (t t 8 +a 8 ) (t 6 t +a 6 ) (t t +a ) (t 6 t +a 6 ) (t t 7 +a 7 ) (t 7 t +a 7 ) 6 7 8 9 Una soluzione è ammissibile se e solo se non ci sono cicli di lunghezza positiva nel grafo risultante 7

Il grafo delle alternative min t 9 Cong. t t t t +d t t +d t 9 t +d 9 t t +d t t +d t t +d t 6 t t 7 t 6 +d 67 t 8 t 7 +d 78 t 9 t 8 +d 89 Disg. (t t 8 +a 8 ) (t 6 t +a 6 ) (t t +a ) (t 6 t +a 6 ) (t t 7 +a 7 ) (t 7 t +a 7 ) 6 7 8 9 Una soluzione è ammissibile se e solo se non ci sono cicli di lunghezza positiva nel grafo risultante 8

Vincoli di deperibilità t j t i +p i t j t i +p i +q i i j p i 9

Vincoli di deperibilità -p i -q i. t j t i +p i i j t j t i +p i +q i p i

Vincoli di deperibilità -p i -q i. t j t i +p i i j t j t i +p i +q i p i Vincoli di blocking o σ(i) : operazione che segue o i in un lavoro (job) (t j t σ(i) ) (t i t σ(j) ) i p i σ(i) j p j σ(j)

Vincoli di deperibilità -p i -q i. t j t i +p i i j t j t i +p i +q i p i Vincoli di blocking o σ(i) : operazione che segue o i in un lavoro (job) (t j t σ(i) +ε) (t i t σ(j) +ε) i j p i p j ε ε σ(i) σ(j)

Section outline Introduzione al problema Modellazione via grafi delle alternative Esempi Algoritmi

Uno schedule non ammissibile con un solo lotto Ferro grezzo EAF Buffers - AOD LF Buffer CC Bramme

Ferro grezzo Uno schedule ammissibile con due lotti Buffers - EAF AOD CC LF Buffer Bramme

Esempio di modellazione: AG per un lotto con ladles Ferro grezzo EAF Buffers - AOD LF Buffer CC Bramme EAF B B B AOD LF LF B CC p EAF p AOD p LF p LF ε ε ε ε ε ε ε -p B -p CC p CC p EAF p AOD p LF p LF ε p EAF ε ε ε ε p AOD ε p LF ε p LF -p B -p CC p CC p CC + p set-up -p B 6

Compressione del modello Esempio precedente: AG per un lotto con ladles Ferro grezzo EAF Buffers - AOD LF Buffer CC Bramme 7

Cicli che limitano il numero di ladles in un lotto 8

Cicli che limitano il numero di ladles in un lotto 9

Altro esempio di modello: AG per lotti e ladles Ferro grezzo EAF Buffer AOD LF CC Bramme ε p EAF ε p EAF ε p EAF ε ε p AOD -W ε ε ε -W ε ε p AOD ε p AOD p LF ε p LF ε p LF p LF ε ε p LF p LF -p CC p CC -p CC p CC p CC + p set-up p + p CC set-up -W p CC + p set-up ε p ε ε ε ε ε CC + ε ε ε ε ε ε ε p set-up h h h h h h h p EAF p AOD p LF p LF h ε ε -W ε ε ε ε p ε -p CC CC p EAF p AOD p LF p LF -W

Section outline Introduzione al problema Modellazione via grafi delle alternative Esempi Algoritmi

Algoritmo euristico Selezione S: insieme di archi di A, ottenuti scegliendo al più un arco da ogni coppia alternativa S è completa se esattamente un arco di ogni coppia di A è selezionata dato S, sia l(i,j) il cammino più lungo da i a j in G(N, F S) Avoid maximum Current C max (AMCC) Trova (i,j) A : l(,i)+a ij +l(j,n) è massimo Seleziona il suo arco alternativo Seleziona tutti gli archi implicati dalla selezione corrente (i,j) è implicato da S se: ((i,j),(h,k)) A G=(N,F S {(h,k)}) ha un ciclo di lunghezza positiva

Algoritmo di branch & bound Branching rule: scegli la coppia non selezionata tale che l(,i)+a ij +l(j,n) è massimo e scegli il suo alternativo Lower bound: Jackson preemptive schedule calcolato su una clique di operazioni Se o i è blocking: proc. π i = max{p i, l(i,σ(i))} head h i = max{l(o,i), l(o, σ(i)) - π i } tail t i = max{l(σ(i),n), l(i,n) - π i -h i + l(o,i)} con σ(i) = successore dell op. i sul job Selezioni immediate: come in Carlier e Pinson (99-9)

SECONDO CASE STUDY Gestione delle risorse produttive nell industria farmaceutica Rapporto tecnico: DIA-9-8 Ciavotta et al., American Institute of Chemical Engineers 8

Section outline Introduzione Casi studio Algoritmi Esercizio

Pharmaceutical supply chain Forecasted demands The pharmaceutical supply chain Customers Primary manufacturing Pharmacies Hospitals Suppliers Secondary manufacturing Wholesalers Primary manufacturing is typically organized as a push process, and therefore not very sensitive to short-term demand fluctuation Secondary manufacturing is organized as a pull process, and effective tracking, tracing and process control are critical issues 6

Secondary manufacturing Raw material handling and dispensing activities: materials are weighted according to the batch recipes and stored in sealed bins Dispensing Packages are prepared and organized for different orders and destination countries Counting Manufacturing Packaging Binder preparation, granulation (dry materials from sealed bins are mixed with binder agents to produce granule), blending, compression (granules are fed into tablets), coating. Then, tablets are stored in sealed bins Tablets and packages are processed in order to obtain the products for customers 7

Packaging department: Model and algorithms Model: A line with several jobs, operators and tools is represented as a multi-purpose machine scheduling problem Three Algorithms (see Venditti et al. EJOR ): Greedy heuristic (the idea is to group jobs using the same tools and to process first the one with minimum setup) Simple tabu search (fast evaluation of moves on basic neighborhoods, that correspond to exchanges of jobs/operators) Advanced tabu search (evaluation of moves on larger neighborhoods, that correspond to the computation of a longest extended critical path in a directed graph) 8

Other departments of the Pharma Industry Manufacturing department: This type of production environment is a complex job shop problem with high level of automation Dispensing department: In this department, operations are mainly manual and the production environment can be represented by parallel machine problems Counting department: This department can also be represented by parallel machine problems Dispensing Manufacturing Counting Packaging 9

Secondary manufacturing Complexity of manufacturing process: machines in the manufacturing area (job shop environment) More than products to schedule in the packaging area Cross-contamination issues lead to sequence dependent (campaign dependent) setups Preemption partly allowed Limited manpower resources, with different skills Limited number of copies of the same tool Release dates, due dates, deadlines Different objective functions: maximum tardiness, makespan, number of tardy jobs in lexicographical order Problems encountered by human schedulers: The need for meeting short-term due dates lead to frequent underutilization of shop resources and to disregarding long-term due dates Frequent late deliveries and urgent orders, due to the lack of coordination with adjacent departments and planning functions

Section outline Introduzione Casi studio Algoritmi Esercizio

Casi studio: Dispensing e Counting Dispensing Counting Manifattura Confezionamento (Packaging) Uno pianificatore dettagliato deve: Sequenziare i JOBS in ogni workcenter, decidendo la relativa temporizzazione e le risorse umane Determinare le date di transito dei materiali trai vari work-centers Nell abito di studio sono presenti work-centers, ognuno addetto ad un particolare compito riguardo la produzione di farmaci: Dispensing Manifattura Counting Confezionamento

Casi studio: Dispensing e Counting In particolare ci riferiamo ai dipartimenti di Dispensing e Counting. Il dipartimento di Dispensing ha il compito di rilasciare le varie quantità di prodotti chimici che andranno a costituire i farmaci. Il dipartimento di Counting ha il compito di rilasciare i materiali di assemblaggio utilizzati dal dipartimento di Confezionamento.

Casi studio: Dispensing e Counting Il dipartimento di Dispensing è costituito da macchine parallele identiche gestite da turni di operai specializzati. Tali turni implicano la pianificazioni di indisponibilità programmate con incidenza giornaliera e settimanale. Lo stesso discorso vale anche per il dipartimento di Counting, costituito però da macchine parallele. Entrambi i dipartimenti processano jobs che sono caratterizzati da un tempo di rilascio e da una due date o deadline. Il dipartimento di Dispensing attende un certo tempo di setup ogni volta c è un cambio di tipologia di job da processare. In questo dipartimento prevede anche delle dimensioni massime per le campagne di produzione.

Indici di prestazione Ci = tempo di completamento del job i di = due date del job i Ti = max (Li,) = tardiness del job i Job i = tardy job se Ci > di Massima Lateness Makespan { L } L = max,..., max dove L i = C i d i L n { C } C = max,..., max C n

Modello (α β γ) di Lawler-Graham Per classificare i problemi di scheduling si può utilizzare la classica codifica a tre campi (α β γ) di Lawler-Graham Configurazione delle macchine Presenza di eventuali vincoli da rispettare Misure di prestazione 6

Modello (α β γ): Casi studio Campo α: Macchine Parallele Identiche (Pm) Campo β: Release time (ri) Due-date (di) Deadline (Di) Setup time: sequence-dependent or sequence-independent (this time can be even larger than the processing time of a lot) La possibilità di Preemption non è ammessa La possibilità d indisponibilità delle macchine è ammessa. Limite sul max numero di prodotti per campagna (dipende dalla tipologia delle operazioni di cleaning) Campo γ: Si individua Lmax come principale obj function da minimizzare Funzioni obiettivo secondarie sono Cmax ed il numero di Tardy Jobs Si utilizza un approccio multi-obiettivo di tipo lessicografico. 7

Section outline Introduzione Casi studio Algoritmi Esercizio 8

Possibili approcci euristici Due classi di algoritmi euristici vengono analizzate: Algoritmi costruttuvi: Greedy heuristics Pilot/rollout method: Duin and Voss (99), Bertsekas, Tsitsiklis, and Wu (997) Metodi iterativi: Local search: semplici mosse (swap, insert, exchange, ) Variable Neighborhood Search: Mladenovic and Hansen (997) Iterated Local Search: Lorenço, Martin and Stützle () 9

Algoritmi testati Metodo iterativo: VNS Esempi di mosse ed vicinati Metodo costruttivo: Rollout Rollout Modificato Euristica greedy per il rollout: Delta Euristica greedy per il rollout: MJS 6

Variable Neighborhood Search La VNS è un algoritmo che applica strategie di ricerca locale per individuare miglioramenti alle soluzioni ottenute in un primo vicinato. In generale, la ricerca locale viene effettuata su opportuni intorni adoperando adeguate mosse. 6

Variable Neighborhood Search Basic VNS: Algoritmo di ricerca locale che si basa su vicinati sempre più ampi. Ogni volta viene individuata una soluzione migliore rispetto a quella candidata l algoritmo riprende l esplorazione a partire dal vicinato più piccolo. N N N 6

Variable Neighborhood Search N N N N N N 6

Esempio d implementazione della VNS Variable Neighborhood Search (VNS) La metaeuristica opera in intorni di ricerca N, N ed N associati a tre diverse mosse applicabili. L euristica compie un esplorazione dell intorno, se trova una mossa che migliora la soluzione esegue nuovamente la ricerca altrimenti passa all intorno successivo. Ogni volta che viene trovata una mossa migliorante si riparte dall esplorazione dell intorno N. La procedura termina quando non vengono più trovate mosse miglioranti. Data una soluzione iniziale begin do {cerca una mossa migliorante in N if mossa trovata then applica la mossa in N else begin { cerca una mossa migliorante in N if mossa trovata then applica la mossa in N else begin { cerca una mossa migliorante in N if mossa trovata then applica la mossa in N end } end } } while una mossa viene eseguita end 6

Mosse per il sequenziamento Mosse usate dalla ricerca locale sulla sequenza delle operazioni da processare sulla singola macchina SWAP J J k- J k J k+ J n INSERT J J k- J k J k+m J n EXCHANGE J J k- J k J k+m J n 6

Mosse per l assegnazione Mosse usate dalla ricerca locale sull assegnazione delle operazioni da processare sulle varie macchine J J k- J k J k+ J n Macchina A M-MOVE J J s- J s J s+ J n Macchina B J J k- J k J k+ J n Macchina A M-SWAP J J s- J s J s+ J n Macchina B 66

Vicinati di ricerca Primo intorno di ricerca (N) Si applica la mossa SWAP per spostare un JOB di un posto indietro in una data sequenza. E applicata ai JOBS in ordine decrescente di Lateness. Secondo intorno di ricerca (N) Si applica la mossa INSERT ai JOBS che violano le deadlines (in ordine decrescente) scegliendo il parametro m in modo da anticipare ciascun JOB alla prima posizione utile affinché rispetti il suo tempo di consegna. Terzo intorno di ricerca (N) Si applica la mossa SWAP per spostare un JOB di un posto in avanti in una data sequenza, ritardandone l esecuzione. 67

Rollout Il Rollout è un metodo costruttivo cioè realizza iterativamente una soluzione per il problema. E applicabile a quelle classi di problemi la cui soluzione può essere rappresentata da una o può sequenze di componenti. Applicazioni interessanti sono rappresentate da alcuni problemi di scheduling 68

Rollout L idea base della metaeuristica di ROLLOUT è quella di utilizzare q euristiche costruttive (H, H, H,., H q ), q, per potenziarne l effetto nella costruzione di una buona soluzione. Una soluzione s = (s, s, s,, s m-, s m ) viene prodotta in modo sequenziale, fissando una componente per volta. Definiamo k-stato (S k ) una soluzione parziale in cui sono state fissate le prime k componenti: S k = (s, s, s,, s k-, s k ), k m. Definiamo H i (S k-,s k ) il costo della soluzione ottenuta dall euristica H i, applicata a partire dallo stato S k = (S k-,s k ). Data una soluzione parziale S k-, e detto σ k l insieme dei possibili valori della k-esima componente s k, definiamo: C(S k )= min {H i (S k-,s k ), i =,..q, s k in σ k } il costo delle sequenze ottenute dalle q euristiche, partendo da S k- e per ogni possibile scelta della k-esima componente. Ad ogni iterazione, si fissa la componente s k che ha prodotto il costo (minimo) C(S k ), cioè S k = (S k-, argmin{c(s k )}). 69

Rollout Sia J l insieme di tutte le componenti e σ k l insieme delle componenti direttamente schedulabili (non soggette a vincoli di precedenza) e sia H l insieme delle euristiche utilizzate dal rollout. Il rollout può essere schematizzato nel modo seguente: Per ogni j i appartenente ad σ k si applicano tutte le euristiche in H sull insieme J - {j i }. Si valutano quindi le soluzioni {j i, H k (J - {j i })} per ogni euristica k e si aggiunge la soluzione parziale j i per cui si ottiene la miglior soluzione. Si elimina quindi da J l elemento corrente e si aggiorna σ k. Si prosegue cosi fino a che non rimangono elementi in J. 7

Rollout S = Ø While(J!= Ø) { } For any j i { in σ k for(k = ; k < tot_num_eur; k++) { sol(i,k) = { j i, H k (J-{j i })} } } (i.k ) = arg min {sol(i, k)} S p = (S p-, j i ), p++ σ k =update(σ k,j i ) J=J\{j i } 7

Rollout H H J H H HJ H J H q J 6 J 8 J p H q J H q H H H J J H H H H H q H H q H J n H q J n H J H H Euristica provata H q H q H q Euristica migliore 7

Rollout Modificato E una versione semplificata del Rollout che permette di ridurre il tempo di calcolo complessivo. L idea è di sostituire alla formula C(S k )= min {H i (S k-,s k ), i=,..q, s k in σ k } La formula semplificata C(S k )= min {H i (S k- ), i=,..q} 7

Rollout Modificato S = Ø While(J tot!= Ø) { for(k=; k < tot_num_eur; k++) { sol(k) = { H k (J tot )} } k = arg min {sol(k)} S p = (S p-, {H(k ) }), p++ J tot =J tot \{j i } } Primo elemento della soluzione trovata dalla k-esima euristica 7

Rollout Modificato H (s) H (s) HJ (s) H (s) H (s) HJ (s) HJ (s) H H (s) (s) H (s) H (s) H (s) HJ (s) H (s) H (s) H (s) H 6 (s) H (s) H 6 (s) HJ (s) HJ 6 (s) 6 J 8 J 9 J n H (s) H 6 (s) H8 (s) H 9 (s) Hn q (s) H (s) J 7 H q (s) H q (s) H q (s) H q (s) H q (s) H 6 q (s) H 7 (s) Euristica provata Euristica migliore 7

Applicazione algo rollout ai due casi studio Il rollout può definirsi un algoritmo costruttivo che, se applicato al problema di scheduling, costruisce una soluzione aggiungendo un job alla volta, sfruttando un insieme di regole che si propongono di salvaguardare l ammissibilità e la qualità della soluzione. Ammissibilità: Un job è schedulabile dopo il suo rilascio Nessun job è schedulabile su una macchina indisponibile Una macchina può processare un solo job alla volta Un job è schedulabile su una macchina in grado (per tipologia, tools e disponibilità) di eseguire le operazioni richieste. Qualità Di seguire una sequenza di lavorazione specifica (per esempio, earliest due date (EDD) per minimizzare Lmax); Di seguire una particolare sottosequenza o successione di jobs per ridurre i tempi di setup (per ridurre Cmax ed il numero di Tardy Jobs). 76

Euristiche usate nel Rollout: notazioni T L : istante di tempo al quale si libera la prima macchina. R JD : insieme dei job rilasciati al tempo T L con deadline R Jd : insieme dei job rilasciati al tempo T L senza deadline R J : insieme totale dei job rilasciati al tempo T L (R J =R JD U R Jd ) M L : insieme delle macchine libere al tempo T L 77

Euristiche usate nel Rollout: Delta L insieme delle due dates dei jobs rilasciati all istante T L viene diviso in intervalli di ampiezza. Ad ogni job viene assegnata una nuova due date fittizia, il cui valore è un multiplo di, a seconda dell intervallo in cui cade. Tale procedimento consente di creare famiglie di jobs con due dates coincidenti per le quali i tempi di setup sono meglio gestibili (ad esempio formando delle campagne). Ogni euristica è caratterizzata da un diverso valore di. d d d d d d 6 d 7 d 8 d n t grande d d d d d d 6 d 7 d 8 d n t 78

Euristiche usate nel Rollout: Delta Schedulare i jobs di R J secondo le seguenti regole: Step. Ordinare R J per due date crescenti; Step. Individuare i sottoinsiemi di jobs di R J con duedate compresa tra d e d+ e aggiornare d Step. Ordinare R J per deadline crescente; Step. Per ciascun job di R JD, scegliere la macchina presente in M L il cui ultimo job schedulato è della stessa tipologia del job considerato, altrimenti schedulare il job sull ultima macchina dell insieme M L, aggiornare R J e M L e reiterare lo step finchè min{ # R JD, # M L } = ; Step. Per ciascun job di R Jd, scegliere la macchina presente in M L il cui ultimo job schedulato è della stessa tipologia del job considerato, altrimenti schedulare il job sull ultima macchina dell insieme M L, aggiornare R J e M L e reiterare lo step finchè min{# R Jd, # M L } = ; Step 6. Aggiornare T L, R JD, R Jd e M L e reiterare la procedura a partire dallo step finché non sono stati schedulati tutti i jobs. 79

Euristiche usate nel Rollout: Modified Jackson Schedule Modified Jackson Schedule (MJS) Input: Un insieme P degli ordini di produzione; t = min{r i : i in P}, S = Ø; While (P!= Ø){ R = {i in P : r i t} if (c è un job in R con deadline){ scegli un job j in R con la più piccola deadline} else if (c è un job in R con duedate){ scegli un job j in R con la più piccola duedate} else {t = min{r i : i in P}, R = {i in P : r i t} } if (un job è stato selezionato) { Assegno il job j alla macchina che può completarlo per prima,tenendo in conto dei setup, delle campagne e della disponibilità della macchina S = S U {j}, P = P \ {j} Aggiorno t al più piccolo completion time di tutte le macchine disponibili } } 8

Section outline Introduzione Casi studio Algoritmi Esercizio 8

Esercizio: Rollout Applichiamo l algoritmo del rollout su una istanza di scheduling su singola macchina per cui sono date le relazioni di precedenza trai jobs in figura. Job J i Proc. p i Due date d i Peso w i Funzione obiettivo: Σw i T i con wi Ti = peso del job i * tardiness del job i 8

Esercizio: Rollout Usiamo due semplici euristiche per il rollout EDD : Erliest Due Date (H ) SPT : Shortest Processing Time (H ) H processa i jobs per due date crescente H processa i jobs per processing time crescente 8

Esercizio: Rollout J i p i d i w i Durante il primo passo del rollout σ ={,}, da cui il primo elemento proposto sarà. EDD: H (,,,) =,,, ->,,,, Job c.time wt 6 * 7 * tot SPT: H (,,,) =,,, ->,,,, Job c.time wt 7 * * Tot c.time = tempo di completamento del job wt = tardiness pesata del job 8

Esercizio: Rollout Durante il primo passo del rollout σ ={,}, da cui il secondo elemento proposto sarà. J i p i d i w i H (,,,) =,,, ->,,,, Job c.time 6 7 tot wt H (,,,) =,,, ->,,,, Job c.time 6 7 tot wt 8

Esercizio: Rollout Al primo passo del rollout il migliore è (), da cui al secondo passo σ ={,,} ed il primo elemento proposto sarà. J i p i d i w i H (,,) =,, ->,,,, Job c.time 7 tot wt H (,,) =,, ->,,,, Job c.time wt 7 tot 86

Esercizio: Rollout Al primo passo del rollout il migliore è (), da cui al secondo passo σ ={,,} ed il secondo elemento proposto sarà. J i p i d i w i H (,,) =,, ->,,,, Job c.time wt 7 9 tot 7 H (,,) =,, ->,,,, Job c.time wt 7 8 6 tot 8 87

Esercizio: Rollout Al primo passo del rollout il migliore è (), da cui al secondo passo σ ={,,} ed il terzo elemento proposto sarà. J i p i d i w i H (,,) =,, ->,,,, Job c.time 6 7 tot wt H (,,) =,, ->,,,, Job c.time wt 7 8 tot 88

Esercizio: Rollout Al secondo passo del rollout il migliore è (), da cui al terzo passo σ ={,} ed il primo elemento proposto sarà. J i p i d i w i H (,) =, ->,,,, Job c.time 6 7 tot wt H (,) =, ->,,,, Job c.time 7 8 tot wt 89

Esercizio: Rollout Al secondo passo del rollout il migliore è (), da cui al terzo passo σ ={,} ed il secondo elemento proposto sarà. J i p i d i w i H (,) =, ->,,,, Job c.time 6 9 tot wt H (,) =, ->,,,, Job c.time wt 6 9 tot 9

Esercizio: Rollout Al terzo passo del rollout un migliore è (), da cui al quarto passo σ ={,} ed il primo elemento proposto sarà. J i Job p i d i w i tot c.time 6 9 H () = ->,,,, wt Job tot H () = ->,,,, c.time wt 6 9 9

Esercizio: Rollout Al terzo passo del rollout un migliore è (), da cui al quarto passo σ ={,} ed il secondo elemento proposto sarà. J i Job p i d i w i tot c.time 6 9 H () = ->,,,, wt 8 8 8 Job tot H () = ->,,,, c.time wt 6 9 8 8 8 9

Esercizio: Rollout Al quarto passo del rollout il migliore è (), da cui al quinto passo σ ={} ed l elemento scelto sarà. La soluzione finale è la seguente:,,,, con funzione obiettivo pari a Job tot c.time 6 9 wt 9