Minimizzazione Makespan ossia Tempi di Set-up Metodo Euristico: Modello di Karg e Thompson Ipotesi...

Post on 01-May-2015

226 views 3 download

Transcript of Minimizzazione Makespan ossia Tempi di Set-up Metodo Euristico: Modello di Karg e Thompson Ipotesi...

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

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.

Modello Macchina Singola

Modello di Karg e Thompson

Siano dati 7 Jobs: J1, J2, J3, J4, J5, J6, J7, con i tempi di set-up:

Esempio Algoritmo Euristico di Karg e Thompson

  1 2 3 4 5 6 71 0 2 3 2 3 5 62 3 0 1 2 2 2 33 2 4 0 2 4 2 24 2 2 3 0 3 1 25 2 5 1 1 0 1 26 1 2 2 1 1 0 27 3 2 1 2 1 1 0

 

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:

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

!N2

)1N(Ni

N

1i

Modello Macchina Singola

Modello di Karg e Thompson

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

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.

Modello Macchina Singola

Modello di Hodgson

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 1 5 3 9 7

dj 2 7 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

 

Job 1 2 3 4 5tj 1 5 3 9 7dj 2 7 8 13 11

 

Esempio dell'Algoritmo Euristico di Hodgson

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 Macchina Singola

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

Risultato teorico su cui si basa la soluzione algoritmica: sotto le ipotesi del modello, il minimo makespan è:

Modello Macchine Parallele Identiche

Modello di Mc Naughton

}}tmax{,M

t

max{M j

N

1jj

*

Caratteristiche dell'Algoritmo: L'algoritmo ammette più di una soluzione In ogni caso la soluzione fornita è ottima

J1(5), J2(6), J3(4), J4(3) 

Modello Macchine Parallele Identiche

Modello di Mc Naughton

J3 J2

J2 J1 J4

9

M1

M2

9}6,9max{}}tmax{,M

t

max{M j

N

1jj

*

J1(2), J2(11), J3(4), J4(3) 

Modello Macchine Parallele Identiche

Modello di Mc Naughton

11}11,10max{}}tmax{,M

t

max{M j

N

1jj

*

J3 J2

J2 J1 J4

11

M1

M2

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.

Modello Macchine Parallele Identiche

Modello di Mc Naughton

J1(5), J2(6), J3(4), J4(3) due Macchine Una soluzione fornita dall'algoritmo:

Esempio dell'Algoritmo di Mc Naughton

J3 J2

J2 J1 J4

9

 

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

Modello Macchine Parallele Identiche

Soluzione: Programmazione Lineare Intera:

Modello Macchine Parallele Identiche

 

)y(eminimizzar

Nj11x

Mi10xty

M

1iji

N

1jjij

dove:y=Makespanxji=1 se il job j è assegnato alla macchina i, xji=0 altrimentitj=tempo di lavorazione del job j.

M+N vincoliM*N+1 variabili

Assenza di preemption

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

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

Flow Shop

Modello 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

Teorema di Johnson

J1=(M1(1),M2(2))

J2=(M1(3),M2(6))

Esempio Teorema Johnson

10

M1

M2

J2

J1 J2

J1

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}

J1J2

J1

11

M1

M2 J2

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

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}

J1 J2

J2 J1

15

M2

M1

J1 J2

J2 J1

14

M1

M2

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

Algoritmo di Ottimizzazione 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

Esempio Algoritmo di Johnson

 

J3

J2 J1 J4 J5

J1 J4 J5 J2 M2

M1

J3

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:

Algoritmo Euristico di Campbell, Dudek e Smith

L

1kjk1j t't

L

1k1kjM2j t't

j=1,..,N

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

Esempio Algoritmo Euristico di Campbell, Dudek e Smith

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

3t't1

1kk111

4ttt't 31

1

1k1k31

1

1k1kM112

5t't1

1kk221

8tt't 32

1

1k1k3212

Passo L=2

Esempio Algoritmo Euristico di Campbell, Dudek e Smith

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:

12ttt't 1211

2

1kk111

13ttt't 1213

2

1k1kM112

J2J1 J4

M2

M1 J5 J3

M3

J2J1 J4J5 J3

J2J1 J5 J3J4

51

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

Job Shop

Modalità Operative: 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.

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:

Regole di Carico

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.

rimanentioperazioni numero

rimanente elavoraziontempo-attualeistanteconsegnadata

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. 

Regole di Carico

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)

Programmazione della Produzione

Just in Time (JIT) Pianificazione di Lungo Periodo

Livellamento Mensile della Produzione

Calcolo della Produzione Livellata

Piano di Produzione Media Giornaliera

Rn

kanban

R2

kanban

R1 Rn-1

Programma di Produzione Mensile

Programma di Produzione Annuale

Descrizione di un Sistema Kanban

a 2 Cartellini

1

2

36

4

5

cassetta di raccolta

7

R iR i-1

Cartellino (Kanban) di Produzione Cartellino (Kanban) di Prelievo Passi Operativi:

Nel reparto Ri si e’ verificata la necessità di un prodotto fornito dal reparto R i-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 R i-1 (6)

i prodotti completati dal reparto Ri-1 vengono messi nei contenitori vuoti in attesa di

essere prelevati (7)

Descrizione di un Sistema Kanban

a 2 Cartellini

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) 

Programmazione della Produzione JIT