1 / 42

Modelli di sistemi di produzione II

Modelli di sistemi di produzione II. Metaeuristiche: Rollout eVNS. Ing. Michele Ciavotta. Sommario. Introduzione: complessità e Metaeuristiche Uno strumento flessibile: Rollout, Rollout Modificato Un esempio applicativo : scheduling di macchine parallele. Euristiche usate: MJS

drake-banks
Download Presentation

Modelli di sistemi di produzione II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 nell’esempio applicativo • Esercizio: Rollout

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

  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. Rollout • L’idea base della metaeuristica di ROLLOUT è quella di utilizzare q euristiche costruttive (H1, H2, H3,…., Hq), q≥1, per potenziarne l’effetto nella costruzione di una buona soluzione. • Una soluzione s = (s1, s2, s3,…, sm-1, sm) viene prodotta in modo sequenziale, fissando una componente per volta. • Definiamo k-stato (Sk) una soluzione parziale in cui sono state fissate le prime k componenti: Sk = (s1, s2, s3,…, sk-1, sk), k≤m. • Definiamo Hi(Sk-1 ,sk) il costo della soluzione ottenuta dall’euristica Hi, applicata a partire dallo stato Sk = (Sk-1 ,sk). • Data una soluzione “parziale” Sk-1, e detto σk l’insieme dei possibili valori della k-esima componente sk, definiamo: C(Sk)= min {Hi(Sk-1 ,sk), i=1,..q, sk inσk } il costo delle sequenze ottenute dalle q euristiche, partendo da Sk-1 e per ogni possibile scelta della k-esima componente. • Ad ogni iterazione, si fissa la componente sk che ha prodotto il costo C(Sk), cioè Sk = (Sk-1 ,argmin{C(Sk)}).

  6. 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 ji appartenente a σk si applicano tutte le euristiche in H sull’insieme J - {ji}. Si valutano quindi le soluzioni { ji,Hk(J - {ji}) } per ogni k e si aggiunge alla soluzione parziale ji 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.

  7. Rollout S0 = Ø While(J != Ø) { For any ji in σk { for(k=0;k<num_eur;k++) { sol(i,k) = { ji, Hk(J-{ji})} } } (i’.k’) = arg min {sol(i.k)} Sp = (Sp-1 , ji’),p++ σk =update(σk , ji’) J=J\{ji} }

  8. Rollout H1 H1 J3 H1 H2 H2 H2 J1 H2 J1 J6 Hq J8 … Hq Jp Hq J4 H1 H1 H1 H1 H1 J2 J3 H2 H2 H2 H2 H1 Hq H1 H1 Hq Hq H2 Euristica provata H2 H2 J4 Jn Jn Euristica migliore Hq Hq Hq

  9. Rollout Modificato • E’ una versione semplificata del Rollout che permette di ridurre il tempo di calcolo complessivo. • L’idea è di sostituire alla formula C(Sk)= min {Hi(Sk-1 ,sk), i=1,..q, sk inσk } • La formula semplificata C(Sk)= min {Hi(Sk-1), i=1,..q}

  10. Rollout Modificato S0 = Ø While(Jtot != Ø) { for(k=0;k<num_eur;k++) { sol(k) = { Hk(Jtot)} } k’ = arg min {sol(k)} Sp = (Sp-1 , {H(k’)0}),p++ Jtot=Jtot\{ji} } Primo elemento della soluzione Trovata dalla k-esima euristica

  11. Rollout Modificato S0 = Ø While(Jtot != Ø) { for(k=0;k<num_eur;k++) { sol(k) = { Hk(Jtot)} } k’ = arg min {sol(k)} Sp = (Sp-1 , {H(k’)0}),p++ Jtot=Jtot\{ji} } S0 = Ø While(J != Ø) { For any ji in σk { for(k=0;k<num_eur;k++) { sol(i,k) = { ji, Hk(J-{ji})} } } (i’.k’) = arg min {sol(i.k)} Sp = (Sp-1 , ji’),p++ σk =update(σk , ji’) J=J\{ji} } Complessità O(n*q) Complessità O(n2*q)

  12. Rollout Modificato H51(s) H41(s) H61(s) H11(s) H31(s) H21(s) H52(s) H42(s) H62(s) J4 H12(s) H32(s) J3 J9 Jn H22(s) J2 H53(s) J5 H42(s) H43(s) H63(s) J6 J8 H32(s) H925(s) Hnq(s) H13(s) H33(s) J1 H22(s) H53(s) H23(s) H63(s) H81(s) H13(s) J7 H5q(s) H712(s) Euristica provata H4q(s) H6q(s) H1q(s) H3q(s) H2q(s) Euristica migliore

  13. Dispensa Manifattura Counting Confezionamento Caso di studio:Dispensa e Counting • Nell’abito di studio sono presenti 4 work-center ognuno addetto ad un particolare compito all’interno della produzione di farmaci: • Dispensa • Manifattura • Counting • 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

  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. 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. Indici di prestazione Massima Lateness ove Makespan

  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. 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. 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 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, 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. Euristiche usate nel Rollout • TL : istante di tempo al quale si libera la prima macchina. • RJD: insieme dei job rilasciati al tempo TL con deadline • RJd: insieme dei job rilasciati al tempo TLsenza deadline • RJ: insieme totale dei job rilasciati al tempo TL • (RJ =RJDU RJd) • ML: insieme delle macchine libere al tempo TL

  21. Euristiche usate nel Rollout:Modified Jackson Schedule Modified Jackson Schedule (MJS) Input: un insieme P di ordini di produzione; t = min{ri : i in P}, S = Ø; While (P != Ø){ R = {i in P : ri ≤ 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{ri : i in P}, R = {i in P : ri ≤ 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. Euristiche usate nel Rollout:Delta • Schedulare i job di RJ secondo le seguenti regole: • Step 1.ordinare RJ per duedate crescenti; • Step 2.individuare i sottoinsiemi di job di RJ con duedate compresa tra d e d+ e aggiornare d • Step 3.ordinare RJ per Deadline crescenti; • Step 4.Per ciascun job di RJD, scegliere la macchina presente in ML il cui ultimo job schedulato è della stessa tipologia del job considerato, altrimenti schedulare il job sull’ultima macchina dell’insieme ML, aggiornare RJ e ML e reiterare il passo 4 finchè min{ # RJD, # ML}=0; • Step 5.Per ciascun job di RJd, scegliere la macchina presente in ML il cui ultimo job schedulato è della stessa tipologia del job considerato, altrimenti schedulare il job sull’ultima macchina dell’insieme ML, aggiornare RJ e ML e reiterare il passo 5 finchè min{ n RJd, n ML }=0; • Step 6.vengono quindi aggiornati TL, RJD, RJd e ML e la procedura viene reiterata dal passo 4 finché non sono stati schedulati tutti i job.

  23. Euristiche usate nel Rollout:Delta • L’insieme delle due date dei job rilasciati all’istante TL 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 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 .  d1 d2 d4 d5 d6 d7 d8 dn d3 t  grande  d1 d2 d4 d5 d6 d7 d8 dn d3 t

  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. N1 N2 N3 Variable Neighborhood Search 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.

  26. N1 N1 N2 N2 N3 N3 Variable Neighborhood Search

  27. Mosse Proposte Mosse per la ricerca locale sulla sequenza delle singole macchine SHIFT J1 Jk-1 Jk Jk+1 Jn MOVE J1 Jk-1 Jk Jk+m Jn SWAP J1 Jk-1 Jk Jk+m Jn

  28. Mosse Mosse per la ricerca locale sull’assegnazione alle macchine J1 Jk-1 Jk Jk+1 Macchina A Jn M-MOVE J1 Js-1 Js Js+1 Macchina B Jn J1 Jk-1 Jk Jk+1 Macchina A Jn M-SWAP J1 Js-1 Js Js+1 Macchina B Jn

  29. Esempio Applicativo: VNS 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 } end } } while una mossa viene eseguita end • Variable Neighborhood Search (VNS) • La metaeuristica opera in 3 intorni di ricerca N1, N2 ed N3 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 N1. • La procedura termina quando non vengono più trovate mosse “miglioranti”.

  30. Vicinati Di Ricerca Mosse di ricerca locale implementate • 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 l’esecuzione.

  31. Esercizio: Rollout Applicheremo l’algoritmo del rollout su una istanza caratterizzata dalla presenza di una macchina singola e da relazioni di precedenza tra i job. 2 1 3 4 5 Funzione obiettivo: ΣwiTi

  32. Esercizio: Rollout Useremo per il rollout due semplici euristiche : • EDD : Erliest DueDate (H1) • SPT : Shortest Processing Time (H2)

  33. Esercizio: Rollout • Al primo passo del rollout σ1={1,5} quindi il primo elemento proposto sarà 1. H1(2,3,4,5)= 5, 2, 3, 4 -> 1, 5, 2, 3, 4 H2(2,3,4,5)= 2, 5, 3, 4 ->1, 2, 5, 3, 4

  34. Esercizio: Rollout • Al primo passo del rollout σ1={1,5} quindi il secondo elemento proposto sarà 5. H1(1,2,3,4)= 1, 2, 3, 4 -> 5, 1, 2, 3, 4 H2(1,2,3,4)= 1, 2, 3, 4 ->5, 1, 2, 3, 4

  35. Esercizio: Rollout • Al primo passo del rollout si fissa 1, al secondo σ2={2,3,5} quindi il primo elemento proposto sarà 2. H1(3,4,5)=5, 3, 4 -> 1, 2, 5, 3, 4 H2(3,4,5)= 5, 3, 4 ->1, 2, 5, 3, 4

  36. Esercizio: Rollout • Al primo passo del rollout si fissa 1, al secondo σ2={2,3,5} quindi il secondo elemento proposto sarà 3. H1(2,4,5)=5, 2, 4 -> 1, 3, 5, 2, 4 H2(2,4,5)= 2, 5, 4 ->1, 3, 2, 5, 4

  37. Esercizio: Rollout • Al primo passo del rollout si fissa 1, al secondo σ2={2,3,5} quindi il terzo elemento proposto sarà 5. H1(2,3,4)=2, 3, 4 -> 1, 5, 2, 3, 4 H2(2,3,4)= 2, 3, 4 ->1, 5, 2, 3, 4

  38. Esercizio: Rollout • Al secondo passo del rollout si fissa 5, al terzo σ3={2,3} quindi il primo elemento proposto sarà 2. H1(3,4)= 3, 4 -> 1, 5, 2, 3, 4 H2(3,4)= 3, 4 -> 1, 5, 2, 3, 4

  39. Esercizio: Rollout • Al secondo passo del rollout si fissa 5, al terzo σ3={2,3} quindi il secondo elemento proposto sarà 3. H1(2,4)= 2, 4 -> 1, 5, 3, 2, 4 H2(2,4)= 2, 4 -> 1, 5, 3, 2, 4

  40. Esercizio: Rollout • Al terzo passo del rollout si fissa 3, al terzo σ3={2,4} quindi il primo elemento proposto sarà 2. H1(4)= 4 -> 1, 5, 3, 2, 4 H2(4)= 4 -> 1, 5, 3, 2, 4

  41. Esercizio: Rollout • Al terzo passo del rollout si fissa 3, al terzo σ3={2,4} quindi il secondo elemento proposto sarà 4. H1(2)= 2 -> 1, 5, 3, 4, 2 H2(2)= 2 -> 1, 5, 3, 4, 2

  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

More Related