La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Modelli di sistemi di produzione II Metaeuristiche: Rollout eVNS Ing. Michele Ciavotta.

Presentazioni simili


Presentazione sul tema: "Modelli di sistemi di produzione II Metaeuristiche: Rollout eVNS Ing. Michele Ciavotta."— Transcript della presentazione:

1 Modelli di sistemi di produzione II Metaeuristiche: Rollout eVNS Ing. Michele Ciavotta

2 2 Sommario Introduzione: complessità e Metaeuristiche Uno strumento flessibile: Rollout, Rollout Modificato Un esempio applicativo : scheduling di macchine parallele. Euristiche usate: MJS Euristiche usate: Delta VNS Mosse ed Vicinati proposti Utilizzo della VNS nellesempio applicativo Esercizio: Rollout

3 3 Introduzione Analisi complessità Problemi Facili Problemi Difficili Rilassamenti Algoritmi esatti o euristici Algoritmi approssimati

4 4 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. Un esempio è costituito dai problemi di scheduling.

5 5 Lidea base della metaeuristica di ROLLOUT è quella di utilizzare q euristiche costruttive (H 1, H 2, H 3,…., H q ), q1, per potenziarne leffetto nella costruzione di una buona soluzione. Una soluzione s = (s 1, s 2, s 3,…, s m-1, 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 1, s 2, s 3,…, s k-1, s k ), km. Definiamo H i (S k-1,s k ) il costo della soluzione ottenuta dalleuristica H i, applicata a partire dallo stato S k = (S k-1,s k ). Data una soluzione parziale S k-1, e detto σ k linsieme dei possibili valori della k-esima componente s k, definiamo: C(S k )= min {H i (S k-1,s k ), i=1,..q, s k in σ k } il costo delle sequenze ottenute dalle q euristiche, partendo da S k-1 e per ogni possibile scelta della k-esima componente. Ad ogni iterazione, si fissa la componente s k che ha prodotto il costo C(S k ), cioè S k = (S k-1,argmin{C(S k )}). Rollout

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

7 7 S 0 = Ø While(J != Ø) { For any j i in σ k { for(k=0;k

8 8 JnJn Euristica provata Euristica migliore Rollout J2J2 J1J1 H1H1 H2H2 HqHq H1H1 H2H2 HqHq H1H1 H2H2 HqHq H2H2 J1J1 J3J3 JnJn H1H1 H2H2 HqHq H1H1 H2H2 HqHq H1H1 H2H2 HqHq H2H2 J3J3 J4J4 J4J4 H1H1 H2H2 HqHq H1H1 H2H2 HqHq H1H1 H2H2 HqHq H1H1 H1H1 J6J6 J8J8 … JpJp

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

10 10 Rollout Modificato S 0 = Ø While(J tot != Ø) { for(k=0;k

11 11 Rollout Modificato S 0 = Ø While(J != Ø) { For any j i in σ k { for(k=0;k

12 12 H 1 1 (s) H 1 2 (s) H 1 3 (s) H 1 q (s) J1J1 H 2 1 (s) H 2 2 (s) H 2 3 (s) H 2 q (s) J2J2 H 3 1 (s) H 3 2 (s) H 3 3 (s) H 3 q (s) J3J3 H 4 1 (s) H 4 2 (s) H 4 3 (s) H 4 q (s) J4J4 H 5 1 (s) H 5 2 (s) H 5 3 (s) H 5 q (s) J5J5 H 6 1 (s) H 6 2 (s) H 6 q (s) H 6 3 (s) J6J6 J7J7 J8J8 J9J9 JnJn Euristica provata Euristica migliore H 1 3 (s) H 2 2 (s) H 3 2 (s) H 4 2 (s) H 7 12 (s) H 5 3 (s) H 6 3 (s)H 8 1 (s) H 9 25 (s)H n q (s) Rollout Modificato

13 13 Caso di studio:Dispensa e Counting Counting ManifatturaDispensa Confezionamento Uno schedulatore di dettaglio deve: sequenziare i JOB in ogni Work-Center, assegnando la relativa tempistica e le risorse umane determinare le date di transito tra le aree Nellabito di studio sono presenti 4 work-center ognuno addetto ad un particolare compito allinterno della produzione di farmaci: Dispensa Manifattura Counting Confezionamento

14 14 Caso di studio:Dispensa e Counting In particolare ci riferiamo ai dipartimenti di Dispensa e Counting. Il dipartimento di Dispensa 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.

15 15 Caso di studio:Dispensa e Counting Il dipartimento di Dispensa è costituito da 2 macchine parallele identiche gestite da turni di operai specializzati. Tali turni implicano delle indisponibilità programmate con incidenza giornaliera e settimanale. Lo stesso discorso vale anche per il dipartimento di Counting, costituito però da 3 macchine parallele. Entrambi i dipartimenti processano job caratterizzati da un tempo di rilascio e da una duedate o deadline. Il dipartimento di dispensa è costretto a pagare un setup ogni volta vi è un cambio di tipo di job in processamento. In tale dipartimento sono anche previste dimensioni massime per le campagne di produzione

16 16 Indici di prestazione ove Massima Lateness Makespan

17 17 Modello (α|β|γ) di Lawler-Graham Per classificare i problemi di schedulazione abbiamo usato la codifica a tre campi (α|β|γ) di Lawler-Graham. Configurazione delle macchine Presenza di eventuali vincoli da rispettare Misure di prestazione

18 18 Esempio applicativo: il Modello (α|β|γ) Campo α: Macchine Parallele Identiche (Pm) Campo β: Release time (ri) Due-date (di) Deadline (Di) Set-up: C_Min (si può considerare inglobato al tempo di processo) e C_Maj Preemption non ammessa Possibilità di indisponibilità di macchine. Limite sul Max numero di OP per campagna: dipende da OP Campo γ: Si individua Lmax come principale funzione obiettivo da minimizzare Secondarie funzioni obiettivo sono Cmax ed il numero di Tardy Job Si utilizza un approccio multiobiettivo di tipo lessicografico.

19 19 Caso di Studio Come detto il rollout è un algoritmo costruttivo, ovvero un algoritmo che, se applicato allo scheduling, costruisce una schedula aggiungendo un job alla volta, seguendo un insieme di regole che si propongono di salvaguardare lammissibilità 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, attrezzaggio e disponibilità) di eseguire le operazioni richieste da esso. Qualità di seguire una sequenza di lavorazione specifica (es. earliest due date (EDD) per minimizzare Lmax); di seguire una particolare sottosequenza o successione di job per ridurre i tempi di setup (migliorando Cmax).

20 20 Euristiche usate nel Rollout 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

21 21 Euristiche usate nel Rollout: Modified Jackson Schedule Modified Jackson Schedule (MJS) Input: un insieme P di 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 j alla macchina che può completarlo per primo,tenendo in conto i setup, le campagne e la disponibilità della macchina S = S U {j}, P = P \ {j} aggiorna t al più piccolo completion time di tutte le macchine disponibili} }

22 22 Euristiche usate nel Rollout: Delta Schedulare i job di R J secondo le seguenti regole: Step 1. ordinare R J per duedate crescenti; Step 2. individuare i sottoinsiemi di job di R J con duedate compresa tra d e d+ e aggiornare d Step 3. ordinare R J per Deadline crescenti; Step 4. 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 sullultima macchina dellinsieme M L, aggiornare R J e M L e reiterare il passo 4 finchè min{ # R JD, # M L }=0; Step 5. 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 sullultima macchina dellinsieme M L, aggiornare R J e M L e reiterare il passo 5 finchè min{ n R Jd, n M L }=0; Step 6. vengono quindi aggiornati T L, R JD, R Jd e M L e la procedura viene reiterata dal passo 4 finché non sono stati schedulati tutti i job.

23 23 Euristiche usate nel Rollout: Delta Linsieme delle due date dei job rilasciati allistante 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 dellintervallo in cui cade. Tale procedimento consente di creare famiglie di job con due date coincidenti per le quali sono meglio gestibili i tempi di setup (ad esempio formando delle campagne). Ogni euristica è caratterizzata da un diverso valore di. d2d2 d3d3 d7d7 d5d5 dndn d6d6 d4d4 d1d1 d8d8 t d2d2 d3d3 d7d7 d5d5 dndn d6d6 d4d4 d1d1 d8d8 t grande

24 24 Variable Neighborhood Search La VNS è un algoritmo che applica strategie di ricerca locale per individuare miglioramenti alle soluzioni ottenute nel primo livello. La ricerca viene effettuata su opportuni intorni adoperando adeguate mosse.

25 25 Variable Neighborhood Search N3 N2 N1 VNS: Algoritmo di ricerca locale che si basa su vicinati sempre più ampi. Ogni volta viene individuata una soluzione migliore rispetto a quella candidata lalgoritmo riprende lesplorazione a partire dal vicinato più piccolo.

26 26 Variable Neighborhood Search N3 N2 N1 N3 N2 N1

27 27 Mosse Proposte J1J1 J k-1 JkJk J k+1 JnJn J1J1 J k-1 JkJk J k+m JnJn SHIFT MOVE Mosse per la ricerca locale sulla sequenza delle singole macchine SWAP J1J1 J k-1 JkJk J k+m JnJn

28 28 Mosse M-MOVE M-SWAP J1J1 J k-1 JkJk J k+1 JnJn J1J1 J s-1 JsJs J s+1 JnJn Macchina A Macchina B J1J1 J k-1 JkJk J k+1 JnJn J1J1 J s-1 JsJs J s+1 JnJn Macchina A Macchina B Mosse per la ricerca locale sullassegnazione alle macchine

29 29 Esempio Applicativo: VNS Variable Neighborhood Search (VNS) La metaeuristica opera in 3 intorni di ricerca N1, N2 ed N3 associati a tre diverse mosse applicabili. Leuristica compie unesplorazione dellintorno, se trova una mossa che migliora la soluzione esegue nuovamente la ricerca altrimenti passa allintorno successivo. Ogni volta che viene trovata una mossa migliorante si riparte dallesplorazione dellintorno N1. La procedura termina quando non vengono più trovate mosse miglioranti. Data una soluzione iniziale begin do {cerca una mossa migliorante in N1 if mossa trovata then applica la mossa in N1 else begin { cerca una mossa migliorante in N2 if mossa trovata then applica la mossa in N2 else begin { cerca una mossa migliorante in N3 if mossa trovata then applica la mossa in N3 end } } while una mossa viene eseguita end

30 30 Vicinati Di Ricerca Primo intorno di ricerca (N1) Si applica la mossa SHIFT solo per spostare un JOB di un posto indietro in una data sequenza. E applicata ai JOB in ordine decrescente di Lateness. Secondo intorno di ricerca (N2) Si applica lal mossa MOVE ai JOB che violano le deadline (in ordine decrescente) scegliendo il parametro m in modo da anticipare il JOB alla prima posizione utile affinché rispetti il suo tempo di consegna. Terzo intorno di ricerca (N3) Si applica la mossa SHIFT 2 per spostare un JOB di un posto in avanti nella schedula, ritardandone quindi lesecuzione. Mosse di ricerca locale implementate

31 31 Esercizio: Rollout Applicheremo lalgoritmo del rollout su una istanza caratterizzata dalla presenza di una macchina singola e da relazioni di precedenza tra i job JiJi pipi didi wiwi Funzione obiettivo: Σw i T i

32 32 Esercizio: Rollout Useremo per il rollout due semplici euristiche : EDD : Erliest DueDate (H 1 ) SPT : Shortest Processing Time (H 2 )

33 33 Esercizio: Rollout Al primo passo del rollout σ 1 ={1,5} quindi il primo elemento proposto sarà 1. H 1 (2,3,4,5)= 5, 2, 3, 4 -> 1, 5, 2, 3, 4 H 2 (2,3,4,5)= 2, 5, 3, 4 ->1, 2, 5, 3, 4 JiJi pipi didi wiwi Job15234tot c.T wt Job12534tot c.T wt

34 34 Esercizio: Rollout Al primo passo del rollout σ 1 ={1,5} quindi il secondo elemento proposto sarà 5. H 1 (1,2,3,4)= 1, 2, 3, 4 -> 5, 1, 2, 3, 4 H 2 (1,2,3,4)= 1, 2, 3, 4 ->5, 1, 2, 3, 4 JiJi pipi didi wiwi Job51234tot c.T wt Job51234tot c.T wt

35 35 Esercizio: Rollout Al primo passo del rollout si fissa 1, al secondo σ 2 ={2,3,5} quindi il primo elemento proposto sarà 2. H 1 (3,4,5)=5, 3, 4 -> 1, 2, 5, 3, 4 H 2 (3,4,5)= 5, 3, 4 ->1, 2, 5, 3, 4 JiJi pipi didi wiwi Job12534tot c.T wt Job12534tot c.T wt

36 36 Esercizio: Rollout Al primo passo del rollout si fissa 1, al secondo σ 2 ={2,3,5} quindi il secondo elemento proposto sarà 3. H 1 (2,4,5)=5, 2, 4 -> 1, 3, 5, 2, 4 H 2 (2,4,5)= 2, 5, 4 ->1, 3, 2, 5, 4 JiJi pipi didi wiwi Job13524tot c.T wt Job13254tot c.T wt

37 37 Esercizio: Rollout Al primo passo del rollout si fissa 1, al secondo σ 2 ={2,3,5} quindi il terzo elemento proposto sarà 5. H 1 (2,3,4)=2, 3, 4 -> 1, 5, 2, 3, 4 H 2 (2,3,4)= 2, 3, 4 ->1, 5, 2, 3, 4 JiJi pipi didi wiwi Job15234tot c.T wt Job15234tot c.T wt

38 38 Esercizio: Rollout Al secondo passo del rollout si fissa 5, al terzo σ 3 ={2,3} quindi il primo elemento proposto sarà 2. H 1 (3,4)= 3, 4 -> 1, 5, 2, 3, 4 H 2 (3,4)= 3, 4 -> 1, 5, 2, 3, 4 JiJi pipi didi wiwi Job15234tot c.T wt Job15234tot c.T wt

39 39 Esercizio: Rollout Al secondo passo del rollout si fissa 5, al terzo σ 3 ={2,3} quindi il secondo elemento proposto sarà 3. H 1 (2,4)= 2, 4 -> 1, 5, 3, 2, 4 H 2 (2,4)= 2, 4 -> 1, 5, 3, 2, 4 JiJi pipi didi wiwi Job15324tot c.T wt Job15324tot c.T wt

40 40 Esercizio: Rollout Al terzo passo del rollout si fissa 3, al terzo σ 3 ={2,4} quindi il primo elemento proposto sarà 2. H 1 (4)= 4 -> 1, 5, 3, 2, 4 H 2 (4)= 4 -> 1, 5, 3, 2, 4 JiJi pipi didi wiwi Job15324tot c.T wt Job15324tot c.T wt

41 41 Esercizio: Rollout Al terzo passo del rollout si fissa 3, al terzo σ 3 ={2,4} quindi il secondo elemento proposto sarà 4. H 1 (2)= 2 -> 1, 5, 3, 4, 2 H 2 (2)= 2 -> 1, 5, 3, 4, 2 JiJi pipi didi wiwi Job15342tot c.T wt Job15342tot c.T wt

42 42 Esercizio: Rollout Al quarto passo del rollout si fissa 2, e quindi 4 La soluzione finale sarà: 1,5,3,2,4 con funzione obiettivo pari a 14


Scaricare ppt "Modelli di sistemi di produzione II Metaeuristiche: Rollout eVNS Ing. Michele Ciavotta."

Presentazioni simili


Annunci Google