Modello Macchina Singola Minimizzazione Makespan ossia Tempi di Set-up Metodo Euristico: Modello di Karg e Thompson Ipotesi del Modello: N job indipendenti date di consegna non rilevanti non è ammessa preemption tempi di set-up dipendenti dalla sequenza dei jobs
Modello Macchina Singola Modello di Karg e Thompson Passi dell’Algoritmo: Step 1. Selezionare Casualmente due jobs. Step 2. Selezionare un nuovo job e provare a disporlo nella sequenza corrente Step 3. Per ogni posizione provata calcolare il set-up complessivo Step 4. Allocare il job nella posizione che garantisce i più bassi tempi di set-up Step 5. Se vi sono ancora job da allocare vai al passo 2. Altrimenti fine.
Siano dati 7 Jobs: J1, J2, J3, J4, J5, J6, J7, con i tempi di set-up: Esempio Algoritmo Euristico di Karg e Thompson Siano dati 7 Jobs: J1, J2, J3, J4, J5, J6, J7, con i tempi di set-up: 1 2 3 4 5 6 7 Step 1. Si sceglie casualmente la sequenza (J2,J3). Set-up=1 Step 2. Si sceglie J5 e si prova a disporlo: (J5, J2, J3)->Set-up=5+1=6 (J2, J5, J3)-> Set-up=2+1=3 (J2, J3, J5)-> Set-up=1+4=5 Step 3. Si sceglie la sequenza (J2,J5,J3)
Complessità computazionale bassa: Modello Macchina Singola Modello di Karg e Thompson Complessità computazionale bassa: Limite: Soluzione dipendente dalla scelta della coppia iniziale di job e dall'ordine con cui vengono inseriti gli altri job. Soluzione: E’ possibile rieseguirlo più volte a partire da coppie di jobs diverse
Modello Macchina Singola Minimizzazione del numero di Job in Ritardo Metodo Euristico: Modello di Hodgson Ipotesi del Modello: N job indipendenti date di consegna sono note e sono rilevanti non è ammessa preemption tempi di set-up nulli o indipendenti dalla sequenza e quindi inclusi nei tempi di lavorazione
Modello Macchina Singola Modello di Hodgson Dati dell’Algoritmo: Input: Tempi di lavorazione dei job, Date di Consegna Outputs: E={Sequencing dei jobs non in ritardo} L={l'insieme dei job in ritardo, da sequenziare in qualsiasi ordine dopo i jobs relativi all'insieme E} Variabili Intermedie: E*, L*
Modello Macchina Singola Modello di Hodgson Passi dell’Algoritmo: Step 1. Creare l'insieme E*={elenco dei job per data di consegna crescente}, L*={} Step 2. In base all'ordine di sequenziamento individuato in E*, determinare i tempi di completamento di ciascun job, ed individuare i job in ritardo Step 3. Se in E* non vi sono job in ritardo allora E= E* e L=L*. STOP. Se in E* vi è almeno un job in ritardo, sia k il primo job in ritardo nella sequenza. Step 4. Identificare il job con tempo di lavorazione più alto entro i primi k job (job k compreso) della sequenza E*. Rimuovere questo job e metterlo in L*. GOTO Step 2.
Esempio dell'Algoritmo Euristico di Hodgson Job 1 2 3 4 5 tj 9 7 dj 8 13 11 Step 1. E*={1,2,3,5,4}, L*={} Prima Iterazione: Step 2. Job 1 (1), Job 2 (6), Job 3 (9), Job 5 (16), Job 4 (25) Step 3. Primo job in ritardo, Job k=3 Step 4. E*={1,3,5,4}, L*={2} Seconda Iterazione: Step 2. Job 1 (1), Job 3 (4), Job 5 (10), Job 4 (19). Step 3. Primo job in ritardo, Job k=4 Step 4. E*={1, 3, 5}, L*={2, 4}
Esempio dell'Algoritmo Euristico di Hodgson Job 1 2 3 4 5 tj 9 7 dj 8 13 11 Terza Iterazione: Step 2. Job 1 (1), Job 3 (4), Job 5 (10) Step 3. Nessun Job in ritardo. STOP Soluzione di Schedulazione E={1,3,5}, L={2,4} Possibili schedulazioni: 1,3,5,2,4 o 1,3,5,4,2
Modello Macchina Singola Minimizzazione del Flowtime Medio Ipotesi del Modello N job indipendenti date di consegna non rilevanti non è ammessa preemption tempi di set-up sono nulli od indipendenti dalla sequenza Metodo di Ottimizzazione Algoritmica I jobs vengono ordinati in ordine crescente in base ai tempi di lavorazione (complessità O(N2)) Soluzione Ottima Regola di Carico per i Job Shop
Modello Macchine Parallele Identiche Minimizzazione Makespan Metodo di Ottimizzazione Algoritmica: Modello di Mc Naughton Ipotesi del Modello: M macchine identiche parallele N job indipendenti date di consegna non sono rilevanti è ammessa preemption tempi di set-up nulli o indipendenti dalla sequenza e quindi inclusi nei tempi di lavorazione un job non può essere lavorato contemporaneamente su più macchine
Modello Macchine Parallele Identiche Modello di Mc Naughton Risultato teorico su cui si basa la soluzione algoritmica: sotto le ipotesi del modello, il minimo makespan è: Caratteristiche dell'Algoritmo: L'algoritmo ammette più di una soluzione In ogni caso la soluzione fornita è ottima
Modello Macchine Parallele Identiche Modello di Mc Naughton J1(5), J2(6), J3(4), J4(3) J3 J2 J1 J4 9 M1 M2
Modello Macchine Parallele Identiche Modello di Mc Naughton J1(2), J2(11), J3(4), J4(3) J3 J2 J1 J4 11 M1 M2
Modello Macchine Parallele Identiche Modello di Mc Naughton Passi dell'Algoritmo: Step 1. Selezionare un job da iniziare sulla macchina 1 al tempo 0 Step 2. Se la macchina corrente è occupata per un tempo pari a M*, allora terminare la schedulazione sulla macchina, e GOTO Step 3. In caso contrario, alla fine della lavorazione corrente, segliere uno tra i job rimasti e schedularlo sulla stessa macchina, senza lasciare tempi morti. GOTO Step 2. Step 3. Se tutti i job sono stati schedulati, ossia non vi sono più macchine, allora STOP. Altrimenti, asegnare il tempo di processo rimanente del job su cui si è operata la preemption, alla macchina successiva a partire dall'istante 0.
Esempio dell'Algoritmo di Mc Naughton J1(5), J2(6), J3(4), J4(3) due Macchine Una soluzione fornita dall'algoritmo: J3 J2 J1 J4 9
Modello Macchine Parallele Identiche Minimizzazione Makespan in assenza di preemption Metodo di Ottimizzazione Analitico Ipotesi del Modello: M macchine identiche parallele N job indipendenti date di consegna non sono rilevanti non è ammessa preemption tempi di set-up nulli o indipendenti dalla sequenza e quindi inclusi nei tempi di lavorazione
Soluzione: Programmazione Lineare Intera: Modello Macchine Parallele Identiche Soluzione: Programmazione Lineare Intera: Assenza di preemption dove: y=Makespan xji=1 se il job j è assegnato alla macchina i, xji=0 altrimenti tj=tempo di lavorazione del job j. M+N vincoli M*N+1 variabili
Flow Shop Minimizzazione del Makespan Metodo Euristico: Algoritmo Euristico di Campbell, Dudek e Smith Si basa sull’algoritmo di ottimizzazione di Johnson Metodo di Ottimizzazione Algoritmico Specifico
Flow Shop Modello di Johnson Il sistema è un flow shop con: 2 macchine N job date di consegna non rilevanti non è ammessa preemption dei job tempi di set-up nulli o indipendenti dalla sequenza e dunque inglobati nei tempi di lavorazione non sono ammessi sorpassi Obiettivo: Minimizzazione del Makespan Metodo di Ottimizzazione Algoritmico: basata su Teorema di Johnson
Teorema di Johnson Ipotesi: Dato un Routing fisso: Macchina1, Macchina2 Teorema: Il job X precede il job Y in una sequenza ottima se viene verificata la condizione: min{tX1,tY2}min{tX2,tY1} tji= tempo di lavorazione del job j sulla macchina i
J1=(M1(1),M2(2)) J2=(M1(3),M2(6)) Esempio Teorema Johnson J1=(M1(1),M2(2)) J2=(M1(3),M2(6)) min{t11,t22}=min{1,6}=1 min{t12,t21}=min{2,3}=2 min{tX1,tY2}min{tX2,tY1} min{t11,t22}<min{t12,t21} min{t21,t12}=min{3,2}=2 min{t22,t11}=min{6,1}=1 min{tX1,tY2}min{tX2,tY1} min{t21,t12}>min{t22,t11}
J1=(M1(8),M2(2)) J2=(M1(5),M2(1)) Esempio Teorema Johnson J1=(M1(8),M2(2)) J2=(M1(5),M2(1)) min{t11,t22}=min{8,1}=1 min{t12,t21}=min{2,5}=2 min{tX1,tY2}min{tX2,tY1} min{t11,t22}<min{t12,t21} min{t21,t12}=min{5,2}=2 min{t22,t11}=min{1,8}=1 min{tX1,tY2}min{tX2,tY1} min{t21,t12}>min{t22,t11}
Algoritmo di Ottimizzazione di Johnson Step 0. Considerare un insieme S contenente tutti i job non ancora schedulati. Inizialmente la sequenza di schedulazione è SP={} Step 1. Trovare il minj {tj1,tj2} tra tutti i Job j di S (j=1,..,N) Step 2. Se il minimo tempo è sulla macchina 1, allora inserire il relativo job j nella prima posizione disponibile della sequenza di schedulazione SP. Goto 4 Step 3. Se il minimo tempo è sulla macchina 2, allora inserire il job j nell’ultima posizione disponibile della sequenza di schedulazione SP Step 4. Rimuovere il job j da S. Se S non è vuoto goto 1. Altrimenti fine. Le situazioni di parità vengono sempre gestite in modo casuale L‘algoritmo fornisce sempre la soluzione ottima
Esempio Algoritmo di Johnson J1=(M1(3),M2(6)) J2=(M1(5),M2(2)) J3=(M1(1),M2(2)) J4=(M1(6),M2(6)) J5=(M1(7),M2(5)) Step 0. S={J1,J2,J3,J4,J5}, SP={} Step.1 minj {tj1,tj2}=t31 tra tutti i job j di S Step.2. Il job 3 viene inserito nella prima posizione disponibile di SP={J3} Step 3. S={J1,J2,J4,J5) Step 4. minj {tj1,tj2}=t22 Step 5. Il job 2 viene inserito nell’ultima posizione disponibile di SP={J3, …..,J2} Step 6. S={J1,J4,J5) Step 7. minj {tj1,tj2}=t12 Step 8. Il job 1 viene inserito nella prima posizione disponibile di SP={J3, J1,……..,J2}
Esempio Algoritmo di Johnson Step 9. S={J4,J5) Step 10. minj {tj1,tj2}=t52 Step.11. Il job 5 viene inserito nell’ultima posizione disponibile di SP={J3, J1,……,J5,J2} Step 12. S={J4) Step 13. minj {tj1,tj2}=t41 Step.11. Il job 4 viene inserito nella prima posizione disponibile di SP={J3, J1,J4,J5,J2} Soluzione Finale: Makespan 24
Algoritmo Euristico di Campbell, Dudek e Smith Il sistema è un flow shop con: M macchine N job date di consegna non rilevanti non è ammessa preemption dei job tempi di set-up nulli o indipendenti dalla sequenza non sono ammessi sorpassi Obiettivo: Minimizzazione del Makespan
Algoritmo Euristico di Campbell, Dudek e Smith Si compone di L (L=1, 2,.., M-1) passi Ad ogni passo L, viene generata una schedulazione completa per la quale viene calcolato il makespan Tra tutte le M-1 schedulazioni complete viene scelta quella con il makespan migliore
Algoritmo Euristico di Campbell, Dudek e Smith Calcolo della Schedulazione Completa al passo L: Applicazione dell’algoritmo di Johnson a N job e 2 macchine fittizie. I tempi di processamento dei job j (j=1,..,N) sulle due macchine fittizie sono dati da: j=1,..,N
Esempio Algoritmo Euristico di Campbell, Dudek e Smith J1=(M1(3),M2(9),M3(4)) J2=(M1(5),M2(8),M3(8)) J3=(M1(9),M2(3),M3(7)) J4=(M1(7),M2(5),M3(6)) J5=(M1(4),M2(12),M3(6)) M=3, Numero di Passi L=1,2
Esempio Algoritmo Euristico di Campbell, Dudek e Smith Passo L=1 t’31=9, t’32=7 t’41=7, t’42=6 t’51=4, t’52=6 Applicando l’algoritmo di Johnson si ottiene: {J1, J5, J2, J3, J4} Makespan=53
Esempio Algoritmo Euristico di Campbell, Dudek e Smith Passo L=2 t’21=13, t’22=16 t’31=12, t’32=10 t’41=12, t’42=11 t’51=16, t’52=18 Applicando l’algoritmo di Johnson si ottiene: { J1, J2, J5, J4, J3} Makespan=51 Soluzione Finale: J2 J1 J4 M2 M1 J5 J3 M3 51
Job Shop Problema estremamente complesso Regole di Carico: Scegliere il job da caricare su una macchina (quando si libera) tra quelli in attesa di essere lavorati Differenza con i precedenti approcci: la regola di carico non implica necessariamente un sequencing, ma solo il dispatching del job con priorità più bassa o più alta.
Job Shop Vantaggi dell’Approccio basato sulle Regole di Carico: può essere applicato a qualunque impianto, con qualunque numero di job, di macchine e qualunque tipo di routing può essere esteso anche ad altri modelli (flow shop, open shop, e macchine singole/parallele) è semplice permette di personalizzare la valutazione delle priorità Svantaggi dell’Approccio basato sulle Regole di Carico: difficoltà nella scelta delle priorità in relazione alla funzione da minimizzare non è possibile avere una stima sugli istanti di completamento dei job
Regole di Carico Modalità Operative: Visibilità Regole Statiche. I parametri su cui la regola opera (assegnazione della priorità) non variano nel tempo Regole Dinamiche. Hanno senso solo in impianti monitorati da calcolatore Visibilità Regole Locali. Utilizza informazioni relative unicamente alla macchina su cui fare il dispatching Regole Globali. Utilizzano informazioni relative ad altre macchine dell'impianto (lunghezza delle code di attesa, tempo di processamento rimanente, etc.)
Regole di Carico Regole che considerano il tempo di lavorazione o il tempo di set-up Regola SPT (Shortest Processing Time): viene caricato il job che ha tempo di lavorazione più breve sulla macchina. Regola TSPT (Truncated SPT): viene applicata la regola SPT, ma quando un job rimane in attesa in coda per un tempo superiore di una soglia, esso viene caricato. Regole che considerano la data di consegna Regola EDD (Earliest Due Date): viene caricato il job che ha data di consegna più vicina.
slack= data consegna - istante attuale - tempo lavorazione rimanente Regole di Carico Regole che considerano il tempo di accesso e la data di consegna Regola S/OPN (Slack per Operation): viene caricato il job che ha il minimo valore del rapporto: slack= data consegna - istante attuale - tempo lavorazione rimanente Regola SPTEX (SPT with Expediting): i job sono distinti in due classi di priorità. Nella prima classe sono inclusi i job soggetti ad anticipo di consegna o già in ritardo. Vengono schedulati (con la regola SPT) tutti i job della prima classe, e solo in assenza di essi, la regola SPT viene applicata ai job della seconda classe.
Regole di Carico Regole che considerano la situazione dell'impianto Regola NINQ (Number In Next QUEUE): viene caricato il job che ha la lavorazione successiva sulla macchina con il minor numero di job in coda. Regola WINQ (Work In Next QUEUE): viene caricato il job che ha la lavorazione successiva sulla macchina con la coda di attesa più breve in termini di carico di lavoro (non come numero di job !).
Regole di Carico Regole che considerano la situazione dei job Regola FIFO Regola LIFO Regola FROP (Fewest Remaining Operations): viene caricato il job con il minor numero di operazioni ancora da eseguire (più vicino al completamento). Regola MROP (Most Remaining Operations): viene caricato il job con il maggior numero di operazioni ancora da eseguire. Regole che considerano fattori economici Regola COVERT: viene caricato il job che ha il massimo valore del rapporto:(costo di ritardo)/(tempo rimanente).
Regole di Carico Combinazioni Lineari di Regole di Carico L'impiego di regole composte è di scarsa rilevanza pratica: è necessario tarare i coefficienti nella combinazione lineare i coefficienti potrebbero non essere costanti ma dipendere da alcune caratteristiche del job diversi studi hanno dimostrato che i benefici ottenibili dall'uso delle combinazioni lineari tra le regole di carico sono molto ridotti.
Programmazione della Produzione Just in Time (JIT) Caratteristiche Principali: Sviluppato dalla Toyota Motor Corporation Gestione di Produzione di tipo “Pull” Ordini di Produzione a “Valle” del Sistema Produttivo Riduzione delle scorte (si spostano verso i fornitori)
Programmazione della Produzione Just in Time (JIT) Pianificazione di Lungo Periodo Livellamento Mensile della Produzione Calcolo della Produzione Livellata Piano di Produzione Media Giornaliera R n kanban 2 1 n-1 Programma di Produzione Mensile Programma di Produzione Annuale
Descrizione di un Sistema Kanban a 2 Cartellini 1 2 3 6 4 5 cassetta di raccolta 7 R i i-1
Descrizione di un Sistema Kanban a 2 Cartellini Cartellino (Kanban) di Produzione Cartellino (Kanban) di Prelievo Passi Operativi: Nel reparto Ri si e’ verificata la necessità di un prodotto fornito dal reparto Ri-1 Un kanban di Prelievo indica il prodotto richiesto. Un contenitore vuoto con associato il kanban di Prelievo viene inoltrato al magazzino del reparto Ri-1 a monte (1). Viene cercato un contenitore pieno con cartellino di produzione corrispondente al kanban di prelievo (2). Il cartellino di produzione viene staccato e sostituito con quello di prelievo. il kanban di produzione viene posto in una cassetta di raccolta (3), secondo una certa priorità. il contenitore vuoto viene lasciato in una apposita area (4). il contenitore pieno viene trasferito al reparto Ri a valle che ha fatto richiesta (5) i kanban di produzione vengono prelevati secondo una certa priorità dal cassetto di raccolta. Essi costituiscono gli ordini di produzione del reparto Ri-1 (6) i prodotti completati dal reparto Ri-1 vengono messi nei contenitori vuoti in attesa di essere prelevati (7)
Programmazione della Produzione JIT Vantaggi del Sistema JIT Assenza di Schedulazione di Breve Periodo Produzione del Numero di Prodotti Richiesto Nessun Accumulo (WIP). Le scorte sono ridotte al minimo sufficiente a garantire le richieste dei reparti a valle. Nessuna Contesa sulle Risorse Il meccanismo kanban permette di far fronte a piccole variazioni delle richieste di produzione. Imprese giapponesi che usano il JIT da più di 5 anni hanno osservato: incremento della produttività del 30 % riduzione degli investimenti in scorte del 60 % riduzione dello spazio occupato del 15 %
Programmazione della Produzione JIT Limiti dei Sistemi Kanban (JIT) Necessità di Livellamento della Produzione (non sono ammessi flussi produttivi irregolari) Vicinanza dei Fornitori (Reparti a Monte) Criticità del Sistema di Trasporto Tempi di Regime Elevati (5-10 anni) Rigidità della produzione e dei ritmi produttivi (Il meccanismo kanban non è in grado di far fronte a forti variazioni di richieste di produzione)
Programmazione della Produzione JIT Applicazioni di Sistemi Kanban: Toyota Motor Corporation (ideatori e primi utilizzatori) General Motors (riduzione delle giacenze da 8 a 2 miliardi $ per anno) Kawasaki (Nebraska). Successo del kanban system dal 1980. Yamaha (Giappone) (riduzione del tempo di produzione da 20 a 10 giorni)