Metodi di Ottimizzazione per la Logistica e la Produzione Parte III

Download Report

Transcript Metodi di Ottimizzazione per la Logistica e la Produzione Parte III

Metodi di Ottimizzazione
per la Logistica
e la Produzione
Parte III
Manuel Iori
Dipartimento di Scienze e Metodi dell’Ingegneria
Università di Modena e Reggio Emilia
Anno Accademico 2016/17
MOLP – Parte III
1 / 61
Contenuto della Parte III del Corso
9. Metodi di Ottimizzazione per la Produzione
La pianificazione della produzione
Metodi di ottimizzazione per le linee produttive
Modelli aggregati per la produzione
10. Metodi di Ottimizzazione per la Schedulazione
Notazione
Shop Problems
Funzioni obiettivo e classificazione problemi
Tecniche risolutive
MOLP – Parte III
2 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di Ottimizzazione per la Produzione
225
289
247
258
265
272
275
280
290
227
230
229
235
203
206
271
252
223
175
232
180
236
187
239
172
221
188
191
200
266
138
179
259
182
88
31
292
87
82
89
81
27
100
104
99
103
140
108
34
30
297
168
143
153
165
176
115
42
46
51
55
169
59
120
150
119
127
192
110
38
41
45
50
54
33
24
25
29
64
72
78
2
3
4
86
83
132
95
122
286
214
294
217
234
218
216
219
220
222
224
226
228
231
233
237
240
285
256
263
284
248
243
249
245
241
238
242
244
254
278
261
255
268
274
212
262
277
283
269
282
293
270
135
197
137
133
174
85
287
92
170
49
90
250
251
178
131
79
80
121
93
116
202
194
53
1
198
213
215
210
204
199
193
211
207
181
186
279
246
209
208
205
196
58
128
22
296
190
185
184
157
201
125
162
105
177
195
295
161
109
173
183
114
35
26
189
98
44
102
107
113
118
288
130
126
144
124
40
264
154
257
111
129
167
141
151
171
163
117
20
106
7
5
6
8
11
12
13
166
146
156
147
158
148
159
149
160
145
155
16
84
17
67
9
123
112
18
23
28
91
96
101
70
63
37
75
10
14
19
15
21
142
152
32
36
39
71
43
164
47
52
57
60
68
48
61
65
136
139
73
77
97
76
62
56
74
66
69
94
134
253
260
267
273
276
281
291
MOLP – Parte III
3 / 61
9. Metodi di Ottimizzazione per la Produzione
La pianificazione della produzione
La pianificazione della produzione
La pianificazione della produzione è un processo complesso che coinvolge
larga parte dell’azienda e deve ragionare su previsioni a lungo periodo.
Gli elementi di un piano di produzione sono:
MPS (Master Production Schedule)
MRP (Material Requirement Planning)
Inventory Management
Capacity Planning
Scheduling
Production Control
Data la complessità del problema, i diversi decisori e il lungo orizzonte
temporale, il processo di pianificazione si realizza normalmente per successive
approssimazioni:
a) piano a lungo termine molto aggregato,
b) piani successivi con orizzonti minori e maggior dettaglio.
MOLP – Parte III
4 / 61
9. Metodi di Ottimizzazione per la Produzione
La pianificazione della produzione
Definizioni
Pianificazione (Production Planning): tentativo di pianificazione delle quantità su
un orizzonte temporale lungo (mese, anno).
Include dimensionamenti della forza lavoro, delle giacenze di
magaz-zino, della materia prima e di altre risorse.
Opera per quantità aggregate (per tipologia o per periodo).
Schedulazione (Production Scheduling): piano di produzione dettagliato che
considera individualmente ogni prodotto/risorsa e definisce
esattamente il loro utilizzo nel tempo.
L’orizzonte di pianificazione è limitato (giorno, settimana)
Nonostante il dettaglio il piano viene modificato nella pratica a
causa di vari fattori (tra cui necessità o urgenze impreviste, rottura
di macchine, utensili, pezzi, aleatorietà dei dati, . . . ).
MOLP – Parte III
5 / 61
9. Metodi di Ottimizzazione per la Produzione
La pianificazione della produzione
Parametri di input
La pianificazione si basa su risorse fisse e variabili definite dal management
(es: impianti, equipaggiamenti, magazzini, forza lavoro, . . . ).
Si basa inoltre su stime della domanda futura che si assume nota e valida.
Questa stima entra quindi nella fase di pianificazione e nei modelli come un
dato di input. La sua determinazione è un problema fondamentale
nell’azienda ed è normalmente effettuata con il supporto di vari metodi e
tecniche (demand forecasting).
La pianificazione deve determinare la scelta ottima considerando:
1. costi di produzione, con la valutazione delle varie alternative a disposizione
(lavoro straordinario, nuovo personale, produzione esterna, . . . ),
2. costi di immagazzinamento e obsolescenza,
3. costi dovuti alla mancata soddisfazione della domanda (o a ritardi).
MOLP – Parte III
6 / 61
9. Metodi di Ottimizzazione per la Produzione
La pianificazione della produzione
I parametri del MPS
I parametri del MPS possono essere riassunti in:
1
2
3
4
5
6
Unità temporale (mese, settimana, giorno, ora, . . . )
Orizzonte temporale
Livello di aggregazione dei prodotti (per famiglia, per categoria, . . . )
Livello di aggregazione delle risorse
Frequenza di ripianificazione
Numerosità e struttura dei piani produttivi
1. Unità temporale
⊲ Di norma si usano le settimane o i mesi.
⊲ Piccola unità ⇔ maggior dettaglio, la pianificazione più difficile.
2. Orizzonte temporale
⊲ Di norma discende naturalmente dalla natura della produzione (prodotti
stagionali, prodotti di largo consumo, . . . ).
⊲ Il piano parte dopo un breve periodo dal momento attuale; da ora all’inizio
del piano si considerano decisioni non modificabili.
MOLP – Parte III
7 / 61
9. Metodi di Ottimizzazione per la Produzione
La pianificazione della produzione
3. Livello di aggregazione dei prodotti
⊲ Scopo dell’aggregazione è: (a) concentrare l’attenzione sulle risorse/costi
più rilevanti; (b) sviluppare un piano che sia semplice da analizzare.
⊲ Il livello ottimale di aggregazione dipende dalla natura dei costi, dalla
struttura produttiva, dalla stabilità della situazione.
⊲ Esiste poi il problema di disaggregare il piano per la fase di scheduling.
4. Livello di aggregazione delle risorse
⊲ Valgono le considerazioni del punto 3
5. Frequenza di ripianificazione
⊲ L’MPS è su un orizzonte lungo, ma viene ricalcolato più volte nel periodo
⊲ Spesso i piani sono usati in rolling mode: si sviluppa un piano per T
periodi e si inizia a realizzarlo, ma dopo τ ≪ T periodi si calcola un nuovo
piano (ovvero solo i primi τ periodi di ogni piano sono utilizzati)
⊲ I piani sono rivisti frequentemente per l’instabilità e l’aleatorietà dei sistemi
6. Numerosità e struttura dei piani
⊲ Spesso le aziende non hanno un solo piano, ma molti piani a diversi livelli
⊲ I diversi piani vengono utilizzati a diversi livelli decisionali e hanno diversi
orizzonti temporali e unità di misura
MOLP – Parte III
8 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di ottimizzazione per le linee produttive
Problema di dimensionamento
I sistemi produttivi complessi sono caratterizzati da linee di produzione aventi
macchine in sequenza e/o in parallelo.
Alcuni dei modelli di base visti in precedenza durante il corso possono essere
utilizzati per risolvere problemi di ottimizzazione per il caso di macchine
uniformi in parallelo.
Date n lavorazioni j, ognuna richiedente un tempo pj , e un insieme di
macchine di capacità C , il problema di dimensionare il numero di macchine
richieste per le lavorazioni può essere modellato definendo
una variabile xij = 1 se la lavorazione j è eseguita sulla macchina i, 0
altrimenti,
una variabile yi = 1 se la macchina i è usata, 0 altrimenti.
MOLP – Parte III
9 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di ottimizzazione per le linee produttive
Il modello risultante è:
min
U
X
yi
(1)
i =1
U
X
xij = 1
j = 1...,n
(2)
pj xij ≤ Cyi
i = 1...,U
(3)
xij ∈ {0, 1}
j = 1 . . . , n, i = 1 . . . , U
(4)
yi ∈ {0, 1}
i = 1...,U
(5)
i =1
n
X
j=1
dove U = upper bound sul numero di macchine necessarie.
Si tratta di un’applicazione del classico problema del Bin Packing
MOLP – Parte III
10 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di ottimizzazione per le linee produttive
Problema di dimensionamento con vincoli di precedenza
(assemblaggio)
Il modello (1)–(5) può essere utilizzato anche per modellare situazioni in cui
un’unica macchina (o un unico repoarto, o comunque un’unica risorsa
produttiva) è usata su più giorni.
In tale caso i rappresenta l’indice del giorno, e l’intervallo (1, . . . , U)
l’orizzonte temporale.
Se le lavorazioni sono da svolgersi tutte su di un unico pezzo (o su un unico
lotto) è usuale prevedere una serie di precedenze tra le lavorazioni. Si pensi
ad esempio ai problemi di assemblaggio.
Usiamo la notazione k ≺ k ′ (k precede k ′ ) per intendere che la lavorazione k ′
possa iniziare solo dopo la fine della lavorazione k.
MOLP – Parte III
11 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di ottimizzazione per le linee produttive
L’insieme completo di precendenze viene quindi fornito come uno schema di
assemblaggio, in particolare un grafo orientato aciclico, dove i vertici sono le
lavorazioni stesse, e gli archi rappresentano le precedenze:
A = {(k, k ′ ) : k ≺ k ′ }
Nel caso di precedenze lasche:
se k ≺ k ′ e la lavorazione k è svolta nel giorno i, allora la lavorazione k ′ deve
essere svolta nei giorni i, i + 1, . . . , U (quindi anche lo stesso giorno).
Nel caso di precedenze strette:
se k ≺ k ′ e la lavorazione k è svolta nel giorno i, allora la lavorazione k ′ deve
essere svolta nei giorni i + 1, i + 2, . . . , U (dal giorno successivo).
Esistono vari modi per imporre le precedenze nel modello (1)–(5).
MOLP – Parte III
12 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di ottimizzazione per le linee produttive
Precedenze strette
Se k ′ è assegnata al giorno i, allora k deve essere assegnata ad un giorno in
1, . . . , i − 1. Un possibile vincolo per imporre questa condizione è:
xik ′ ≤
i −1
X
xℓk
i = 2, . . . , U, (k, k ′ ) ∈ A
(6)
k ′ = 1, . . . , n : ∃(k, k ′ ) ∈ A
(7)
ℓ=1
x1k ′ = 0
1
IN
|
2
3
{z
}
k deve essere assegnato qui
MOLP – Parte III
4
OUT
k′
13 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di ottimizzazione per le linee produttive
Precedenze lasche
Se k ′ è assegnata al giorno i, allora k deve essere assegnata ad un giorno in
1, . . . , i. Un possibile vincolo per imporre questa condizione è:
xik ′ ≤
i
X
i = 1, . . . , U, (k, k ′ ) ∈ A
xℓk
(8)
ℓ=1
1
IN
|
2
3
{z
k deve essere assegnato qui
MOLP – Parte III
4
k
OUT
′
}
14 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di ottimizzazione per le linee produttive
Problema di bilanciamento
Dato il numero m di macchine uniformi in parallelo (output del precedente
problema di dimensionamento), il passo successivo è di assegnare le
lavorazioni alle macchine bilanciando i carichi.
L’obiettivo sarebbe di minimizzare
P lo scostamento dal valore medio del carico
di lavoro µ. A tal fine, sia Ci = nj=1 pj xij il carico del processore i. Lo
scostamento totale da µ è esprimibile come:
min
m
X
|Ci − µ|
i =1
Dato che la funzione valore assoluto non è lineare, occorre linearizzarla:
min
m
X
zi
i =1
zi ≥ Ci − µ
zi ≥ µ − Ci
MOLP – Parte III
i = 1, . . . , m
i = 1, . . . , m
15 / 61
9. Metodi di Ottimizzazione per la Produzione
Metodi di ottimizzazione per le linee produttive
In alternativa si minimizza il makespan Cmax , istante di fine dell’ultima
lavorazione, arrivando al noto problema del parallel processor scheduling
problem (P||Cmax ). Il modello risultante è quindi
min z
n
X
pj xij ≤ z
i = 1...,m
xij = 1
j = 1...,n
xij ∈ {0, 1}
i = 1 . . . , m; j = 1 . . . , n
j=1
m
X
i =1
A tale modello si possono aggiungere numerosi vincoli di natura produttiva.
Esempio 1. È dato un insieme S di coppie (k, k ′ ) di lavorazioni da eseguire
sulla stessa macchina. Questo implica
xik = xik ′
i = 1, . . . , m, (k, k ′ ) ∈ S
Esempio 2. È dato un insieme D di coppie (k, k ′ ) di lavorazioni da eseguire
su macchine diverse. Questo implica
xik + xik ′ ≤ 1
i = 1, . . . , m, (k, k ′ ) ∈ D
MOLP – Parte III
16 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Modelli aggregati per la produzione
Si tenta di rappresentare nei modelli i principali elementi di costo e le
principali risorse
Vi sono vari modelli a seconda delle diverse ’filosofie’ di rappresentazione dei
costi e delle diverse aggregazioni.
La stima dei costi non è facile. In particolare è complicato dare costi che
rendano omogenee quantità non monetarie (es. costo di mancato
soddisfacimento di un ordine).
Si devono prevedere modalità per passare dai piani aggregati a quelli
disaggregati.
Presentiamo alcuni esempi di modelli che si basano sulle seguenti definizioni:
-) n = numero di tipi di prodotti
-) T = numero di unità temporali
-) dit = domanda totale dei prodotti appartenenti alla famiglia i nel periodo t,
per i = 1, . . . , n e t = 1, . . . , T .
MOLP – Parte III
17 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Modello 1: produzione base
Variabili:
xit = numero di prodotti della famiglia i realizzati nel periodo t,
Iit = numero di prodotti della famiglia i in magazzino alla fine del periodo t,
Modello:
min z =
T
n X
X
(cvit xit + ciit Iit )
(9)
i =1 t=1
xit + Ii ,t−1 = dit + Iit
n
X
ki xit ≤ Wtmax
i = 1, . . . , n; t = 1, . . . , T
(10)
t = 1, . . . , T
(11)
xit ≥ 0, intere
i = 1, . . . , n; t = 1, . . . , T
(12)
Iit ≥ 0, intere
i = 1, . . . , n; t = 1, . . . , T
(13)
i =1
MOLP – Parte III
18 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Le costanti hanno il seguente significato:
ki = ore necessarie per realizzare un prodotto della famiglia i,
Wtmax = ore di lavoro regolari disponibili nel periodo t,
cvit = costo variabile di produzione di un’unità di prodotto della fam. i,
ciit = costo di immagazzinamento di un’unità di prodotto della fam. i.
Ii 0 è un input del problema, rappresenta la quantità di prodotti di famiglia i
disponibile a magazzino all’inizio dell’intervallo di ottimizzazione.
MOLP – Parte III
19 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Il vincolo (10) è un vincolo di bilanciamento del flusso. Impone di soddisfare
la domanda del prodotto i nel periodo t, utilizzando:
- la produzione del periodo t,
- le scorte di magazzino alla fine del periodo t − 1.
Le quantità di cui sopra devono essere sufficienti a coprire anche la giacenza
di magazzino alla fine del periodo t. Le variabili I partono dalla giacenza a
magazzino all’inizio della programmazione.
I vincoli (11) sono classici vincoli di capacità. Impongono che le ore
necessarie per realizzare tutti i prodotti non eccedano la massima
disponibilità dichiarata per ogni periodo.
Si suppone implicitamente di avere manodopera omogenea (qualsiasi
operatore può lavorare qualsiasi prodotto). Questo può portare a problemi
nella successiva fase di disaggregazione.
MOLP – Parte III
20 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Modello 2: lavoro straordinario
Variabili (in aggiunta a quelle del modello base):
Wt = ore di lavoro regolare nel periodo t,
Ot = ore di lavoro straordinario nel periodo t.
Modello:
n X
T
T
X
X
min z =
(cvit xit + ciit Iit ) +
(cwt Wt + cot Ot )
i =1 t=1
(14)
t=1
xit + Ii ,t−1 = dit + Iit
n
X
ki xit ≤ Wt + Ot
i = 1, . . . , n; t = 1, . . . , T
(15)
t = 1, . . . , T
(16)
t = 1, . . . , T
(17)
0 ≤ Ot ≤ Otmax , intere
xit ≥ 0, intere
t = 1, . . . , T
i = 1, . . . , n; t = 1, . . . , T
(18)
(19)
Iit ≥ 0, intere
i = 1, . . . , n; t = 1, . . . , T
(20)
i =1
0 ≤ Wt ≤ Wtmax , intere
MOLP – Parte III
21 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Costanti (in aggiunta a quelle del modello base):
Otmax = ore di lavoro straordinarie disponibili nel periodo t,
I vincoli (16) impongono che le ore necessarie a realizzare tutti i prodotti in
un dato periodo siano coperte da lavoro regolare o straordinario.
Essendo le ore di lavoro differenziate tra regolari e ordinarie, è opportuno
imporne i diversi costi nella funzione obiettivo.
MOLP – Parte III
22 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Modello 3: domanda non interamente soddisfatta
Variabili (in aggiunta al modello 2):
Bit = domanda prodotti famiglia i non soddisfatta nel periodo t.
Modello:
min z =
T
n X
X
(cvit xit + ciit Iit + cbit Bit ) +
i =1 t=1
T
X
(cwt Wt + cot Ot )
t=1
xit +Ii ,t−1+Bit =dit +Bi ,t−1+Iit
n
X
ki xit ≤ Wt + Ot
i = 1, . . . , n; t = 1, . . . , T
(21)
t = 1, . . . , T
(22)
t = 1, . . . , T
t = 1, . . . , T
(23)
(24)
xit ≥ 0, intere
Iit ≥ 0, intere
i = 1, . . . , n; t = 1, . . . , T
i = 1, . . . , n; t = 1, . . . , T
(25)
(26)
Bit ≥ 0, intere
i = 1, . . . , n; t = 1, . . . , T
(27)
i =1
0 ≤ Wt ≤ Wtmax , intere
0 ≤ Ot ≤ Otmax , intere
MOLP – Parte III
23 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Costanti (in aggiunta al modello 2):
cbit = costo domanda non soddisfatta.
I vincoli (21) sono un’estensione dei precedenti vincoli di flusso. Impongono
che nel periodo t si debba soddisfare la domanda del prodotto i e la domanda
insoddisfatta del periodo t − 1 (ovvero Bi ,t−1 ).
La richiesta di produzione può però essere decurtata della domanda non
soddisfatta nel periodo t (ovvero Bit ).
xit
t −1
Ii ,t−1
Bit
Iit
t
dt
Bi ,t−1
MOLP – Parte III
t +1
Bit
24 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Modello 4: Lot sizing (gestione costi fissi di setup)
Questo modello si differenzia dai precedenti per il diverso ambito applicativo.
Consideriamo un solo prodotto e i seguenti dati di input:
Un solo prodotto
m risorse produttive, ciascuna con capacità Ci ,
csi = costo di preparazione (setup) della risorsa i,
cvit = costo unitario di produzione su risorsa i nel periodo t,
dt = domanda prodotto nel periodo t.
Definiamo le seguenti variabili decisionali:
(
1 se la risorsa i è utilizzata
yi =
0 altrimenti
xit = prodotti realizzati sulla risorsa i nel periodo t
MOLP – Parte III
25 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Il problema del lot sizing è esprimibile tramite il seguente modello:
min
m X
T
X
cvit xit +
i =1 t=1
m
X
m
X
csi yi
(28)
i =1
xit ≥ dt
t = 1, . . . , T
(29)
xit ≤ Ci yi
i = 1, . . . , m
(30)
i = 1, . . . , m
(31)
i = 1, . . . , m, t = 1, . . . , T
(32)
i =1
T
X
t=1
yi ∈ {0, 1}
xit ≥ 0, intere
La funzione obiettivo (28) minimizza la somma dei costi variabili e dei costi
di setup. I vincoli (29) impongono di soddisfare tutte le domande. I vincoli
(30) impongono i limiti di capacità delle risorse e il legame tra le xit e le yi .
MOLP – Parte III
26 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Il modello di lot sizing vale anche per il problema di ottimizzazione dato da:
un unico periodo temporale,
n clienti,
ogni cliente j ha una domanda dj ,
m stabilimenti produttivi,
csi = costo di preparazione (setup) dello stabilimento i,
cptij = costo unitario produzione e trasporto dallo stabilimento i al cliente j.
min
n
m X
X
cptij xij +
i =1 j=1
m
X
m
X
csi yi
(33)
i =1
xij ≥ dj
j = 1, . . . , n
(34)
xij ≤ Ci yi
i = 1, . . . , m
(35)
yi ∈ {0, 1}
xij ≥ 0, intere
i = 1, . . . , m
i = 1, . . . , m, j = 1, . . . , n
(36)
(37)
i =1
n
X
j=1
MOLP – Parte III
27 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Modello 5: costi di setup e sotto-utilizzo/carenza risorse
Variabili:
xit = numero prodotti famiglia i realizzati nel periodo t
Iit = numero prod. famiglia i in magazzino alla fine del periodo t
yit = 1 se si effettua setup per fam. i nel periodo t, 0 altrimenti
Okt = eccesso di capacità sulla risorsa k nel periodo t
Ukt = carenza di capacità sulla risorsa k nel periodo t
Xn
XT
(cvit xit + ciit Iit + csit yit ) +
t=1
i =1
Xn
γij xjt
βi xi ,t−L(i ) + Ii ,t−1 = dit + Iit +
j=1
Xn
(hki xit + ski yit ) − Ukt + Okt = Ck
min z =
i =1
xit ≤ Myit
xit , Iit ≥ 0, intere
Ukt , Okt ≥ 0, intere
yit ∈ {0, 1}
XK
k=1
XT
t=1
(cokt Okt + cukt Ukt )
i = 1, . . . , n; t = 1, . . . , T
k = 1, . . . , K ; t = 1, . . . , T
i = 1, . . . , n; t = 1, . . . , T
i = 1, . . . , n; t = 1, . . . , T
k = 1, . . . , K ; t = 1, . . . , T
i = 1, . . . , n; t = 1, . . . , T
MOLP – Parte III
28 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Le costanti del modello sono:
βi = rendimento della produzione del prodotto i
L(i)= lead time per la produzione del prodotto i
hki = ore per realizzare un prodotto di famiglia i sulla risorsa k
γij = numero di prodotti famiglia i usati per un prodotto famiglia j
ski = tempo di setup per la risorsa k prodotto famiglia i
Ck = capacità risorsa k, e M= numero ≫ 0
Il modello considera K risorse produttive, ognuna con capacità Ck .
Il vincolo
n
X
(hki xit + ski yit ) − Ukt + Okt = Ck
i =1
impone che le ore richieste per la produzione ed il setup siano commisurate
alla capacità di ogni risorsa. Se si generano eccessi o carenze di capacità,
questi vengono pesati nella funzione obiettivo.
MOLP – Parte III
29 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Il vincolo
βi xi ,t−L(i ) + Ii ,t−1 = dit + Iit +
n
X
γij xjt
j=1
impone che per ogni famiglia i si soddisfi la domanda, la scorta di magazzino
alla fine del periodo t e la richiesta di i necessaria a realizzare gli altri
prodotti di famiglie j.
Il modello rende disponibili all’istante τ i prodotti che entrano in produzione
all’istante τ − L(i).
ingresso in prod.
t=1
lead time (4)
z
}|
0
1
2
3
MOLP – Parte III
disponibile
t=5
{
4
5
6
30 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Modello disaggregato
Le quantità aggregate per famiglia (xit ) ottenute con i modelli appena
descritti devono essere separate nei singoli prodotti per definire la produzione
effettiva del periodo.
Si deve quindi generare un piano di dettaglio coerente con il piano globale.
Non sempre è possibile però avere piani coerenti in quanto il piano aggregato
trascura vincoli che devono essere inclusi nel piano particolare.
Consideriamo il primo periodo da disaggregare (periodo 1) e introduciamo i
seguenti parametri:
J(i) = insieme prodotti di dettaglio appartenenti alla famiglia i
csj = costo di setup per il prodotto j
e la seguente variabile:
yj1 = quantità del j-esimo prodotto da realizzare nel periodo 1.
MOLP – Parte III
31 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Il modello disaggregato risulta
min
X
j∈J(i )
X
dj
yj1
(38)
yj1 = xi 1
(39)
csj
j∈J(i )
lbj1 ≤ yj1 ≤ ubj1
j ∈ J(i)
(40)
La funzione obiettivo (38) tende a minimizzare il costo medio annuale di
setup.
Tale funzione è non lineare, quindi in pratica sono considerati vari obiettivi
alternativi lineari, sui quali non ci soffermiamo.
Ci soffermiamo invece sulla relazione tra x e y e sui possibili problemi che ne
possono derivare.
MOLP – Parte III
32 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
I valori delle x sono dati di input che derivano dalla soluzione del precedente
modello aggregato. Il vincolo (39) impone che tale input sia rispettato dalle
variabili y .
I lower e upper bound sulle variabili y sono dati da:
lbj1 = max(0, dj1 + ssj1 − Ij1 )
ubj1 = osj1 + dj1 − Ij1
per il prodotto j, nel periodo 1, dove
dj1 = domanda;
ssj1 = scorta di sicurezza;
Ij1 = disponibilità a magazzino;
osj1 = massima scorta.
La produzione del periodo insieme alla scorta di magazzino deve soddisfare la
domanda, lasciando disponibile una scorta di sicurezza a magazzino.
Analogamente, la scorta di magazzino a fine periodo non deve superare un
limite massimo di stock.
MOLP – Parte III
33 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
Il problema delle incongruenze
La disaggregazione di un MPS non sempre è possibile. Vediamo un esempio.
Dati di input per una famiglia di
domanda
Prodotto
1
2
1
5
17
2
3
12
domanda per MPS
8
29
2 prodotti
magazzino
3
iniziale
30
9
30
20
60
29
Soluzione ammissibile per MPS
periodi
Variabile
1
2
x (produzione)
0
8
I (mag. fine periodo)
21
0
domanda
8
29
MOLP – Parte III
3
60
0
60
34 / 61
9. Metodi di Ottimizzazione per la Produzione
Modelli aggregati per la produzione
La domanda del primo periodo viene soddisfatta con la giacenza iniziale di
magazzino.
Con questa scelta, alla fine del primo periodo rimangono 4 unità del prodotto
1 e 17 del prodotto 2.
⇒ non è possibile soddisfare la domanda del prodotto 1 nel periodo 2.
Piccoli aggiustamenti sono necessari, e quindi variazioni rispetto alla
soluzione del piano aggregato sono possibili.
MOLP – Parte III
35 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Metodi di Ottimizzazione per la Schedulazione
J1
r1
J2
r3
J1
r1
r2
J3
r3
J3
r2
r4
J4
r5
J2
J4
r4
J5
J5
r5
MOLP – Parte III
36 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Notazione
Notazione
I sistemi di schedulazione sono caratterizzati da numerosi elementi:
-
macchine (processori) o risorse
configurazioni e caratteristiche delle macchine
livello di automatizzazione
sistemi di movimentazione
...
Chiameremo genericamente macchina ogni risorsa (un tornio, un computer,
un operatore, un reparto, . . . ).
Le macchine devono eseguire dei lavori (job) che possono consistere in una
sola operazione o in una serie di operazioni che compongono un processo
produttivo (ciclo).
Le specifiche caratteristiche delle macchine, dei lavori e della funzione
obiettivo determinano problemi di schedulazione di natura molto differente
tra loro.
MOLP – Parte III
37 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Notazione
Principali dati di input
Processing time (pij ): tempo di esecuzione del job j sull macchina i. Si usa
pj se l’esecuzione è indipendente dalla macchina
Release date (rj ): data minima di inizio della lavorazione del job j
Due date (dj ): data di consegna attesa. A volte si hanno deadline ovvero
date di consegna che non possono essere superate
Setup time (sjk ): tempo di allestimento della macchina per passare dal job j
al job k
Precedenze i ≺ j ((i precede j): indica che il job j può iniziare solo dopo che
sia finito il job i
MOLP – Parte III
38 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Notazione
Output della schedulazione
Completion time (Cij ): istante di completamento dell’operazione i del job j
Starting time (Sij ): istante di inizio dell’operazione i del job j
Si ha che Sij = Cij − pij , quindi solo uno dei due output è necessario
I problemi di scheduling si dividono inizialmente in problemi a macchina
singola e problemi a macchine parallele.
MOLP – Parte III
39 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Notazione
Problemi a macchina singola
Molti sistemi di produzioni vengono assimilati a singoli processori:
quando una macchina è il “collo di bottiglia” che determina la velocità di un
intero sistema
quando un reparto può essere aggregato e studiato come un’unica unità
...
Gli algoritmi per la risoluzione di problemi a macchina singola sono usati
all’interno di ottimizzazioni di problemi più complessi.
Vi sono numerosi problemi ben studiati in letteratura.
Alcuni problemi sono risolubili in tempo polinomiale (appartengono quindi
alla classe P) tramite algoritmi semplici di ordinamento dei job (es. SPT
Shortest Processing Time, EDD Earliest Due Date, . . . ), seguiti da
assegnamento sequenziale secondo l’ordinamento prodotto.
MOLP – Parte III
40 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Notazione
Problemi a macchina singola
Altri problemi sono invece N P-difficili, e richiedono quindi tecniche di
enumerazione o modelli matematici.
Esempio.
Assegnare le lavorazioni dei job a una macchina singola, minimizzando il
tempo complessivo, dato dalla somma dei tempi di lavorazione (pj per ogni job
j) e dei tempi di setup (sjk per ogni coppia di job (j, k)).
Il problema (noto come 1|sjk |Cmax ) richiede di ottenere la permuazione ottima
dei job, ed è equivalente al TSP (e quindi N P-difficile).
MOLP – Parte III
41 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Notazione
Problemi a macchine parallele
Vi sono m macchine che possono eseguire i lavori (job). I job sono di norma
operazioni singole (alternativa: operazioni multiple che possono essere svolte
anche su macchine diverse, si parla in tal caso di batch di lavorazione).
Occorre: assegnare i job alle macchine e determinare gli istanti di inizio e fine
dei job per ogni macchina.
Esempio:
M3
J4
M2
J7
J2
M1
J8
J3
J1
J6
J5
✲
0
50
MOLP – Parte III
100
42 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Notazione
Tipologie di macchine
Se le macchine sono identiche, il tempo di processamento di un job è
indipendente dalla macchina (pj ).
Se le macchine sono uniformi, il tempo di processamento di un job è il
rapporto tra il tempo di processamento “standard” del job e la velocità della
macchina (rappresenta problemi con macchine dello stesso tipo, ma di diversa
velocità).
Se le macchine sono completamente diverse (non correlate), il tempo di
processamento dipende dalla coppia macchina-job (pij ).
MOLP – Parte III
43 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Shop Problems
Shop problems
I job sono costituiti da più operazioni da eseguire su più macchine
Di norma ogni operazione di un job è assegnata a una data macchina
Permettono di modellare condizioni produttive molto complesse
Di seguito riportiamo le principali tipologie di shop problems
MOLP – Parte III
44 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Shop Problems
Open shop
Non vi è alcuna precedenza tra le operazioni
M3
M2
M1
J1
J2
J3
J2
J4
J3
J2
M3
J1
M2
J4
M1
Soluzione 1
J2
J1
J1
J2
J3
J2
J3
J4
J4
Soluzione 2
MOLP – Parte III
45 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Shop Problems
Flow shop
Ogni job ha m operazioni da eseguire in sequenza sulle macchine 1, 2, . . . , m,
rispettivamente
M3
J1
M2
M1
J1
J1
J3
J3 J2
J3
J2
MOLP – Parte III
J2
J4
J4
J4
46 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Shop Problems
Job shop
Ogni job j ha nj operazioni da eseguire in sequenza sulle macchine
µ1 , µ2 , . . . , µnj , rispettivamente
Job
J1
J2
J3
J4
nj
3
4
3
2
µ1
1
2
3
3
µ2
2
1
2
1
µ3
4
3
4
µ4
4
M4
M3
M2
M1
J3
J3
J4
J2
J2
J2
J3
J1
J1
J1
J2
MOLP – Parte III
J4
47 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Shop Problems
Flexible shop problem
Shop problem con più macchine parallele in ogni stadio di produzione
Le precedenze non sono più tra macchine, ma tra stadi di produzione
Stage 3
Stage 2



Stage 1
MOLP – Parte III
48 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Funzioni obiettivo e classificazione problemi
Principali tipologie di funzioni obiettivo
Le prime funzioni obiettivo si basano sul tempo di completamento dei job (Cj )
Makespan: Cmax = maxj (Cj )
istante di completamento dell’ultima operazione
Determina il tempo necessario per terminare tutta la produzione.
E’ una delle misure più studiate.
Tempo di attraversamento totale
Pn
j=1
Cj
Viene usato come indicatore dei costi di Work-in-Process (quanità di materiale
acquistato, ma non venduto in quanto in attesa di lavorazioni)
Tempo di attraversamento totale pesato
Pn
j=1
wj Cj
Come per il tempo di attraversamento, ma ogni job ha un indicatore
economico che esprime la sua rilevanza
MOLP – Parte III
49 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Funzioni obiettivo e classificazione problemi
Altre funzioni obiettivo si basano sulla valutazione dei ritardi di consegna
Lj = Cj − dj
Tj = max(0, Cj − dj )
Ej = max(0, dj − Cj )
Lateness (può essere positiva o negativa)
Tardiness (ritardo di consegna)
Earliness (anticipo di consegna)
Come visto per i tempi di completamento, anche per questi casi si usa
minimizzare il massimo, la somma o la somma pesata delle funzioni
Pn
Pn
w j Lj
Lmax = maxj (Lj )
Lj
Pj=1
Pj=1
n
n
wj T j
Tmax = maxj (Tj )
T
j
Pj=1
Pj=1
n
n
Emax = maxj (Ej )
E
j=1 wj Ej
j=1 j
In ottica Just in Time si tende a minimizzare sia l’anticipo che il ritardo di
consegna:
Jj = Ej + Tj
Jmax = maxj (Jj )
Pn
j=1
Jj
Pn
j=1
wj Jj
MOLP – Parte III
50 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Funzioni obiettivo e classificazione problemi
Classificazione dei problemi di scheduling
Si utilizza una notazione a tre campi:
α|β|γ
α = (α1 α2 ) caratteristiche delle macchine
α1 ∈ {∅, P, Q, R, PMPM, QMPM, G , X , O, F , J}
α2 ∈ {∅,numero}
β = caratteristiche dei job (β1 , β2 , β3 , β4 , β5 , β6 )
β1
β2
β3
β4
β5
β6
:
:
:
:
:
:
preemption
precedenze
release time
caratteristiche dei processing time
deadline
batch
γ = funzione obiettivo
data una funzione fj , γ è del tipo fmax ,
MOLP – Parte III
P
fj , oppure
P
wj fj
51 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Funzioni obiettivo e classificazione problemi
Classificazione dei problemi di scheduling
Esempi:
P||Cmax = macchine parallele identiche, minimizzare il makespan
P|prec|Cmax = macchine parallele identiche, precedenze generiche tra job,
minimizzare il makespan
1|rj |Lmax = macchina singola, release time, minimizzare la massima lateness
J||Cmax = Job shop, minimizzare il makespan
...
Per maggiori dettagli rimandiamo a:
http://www.informatik.uni-osnabrueck.de/knust/class/
MOLP – Parte III
52 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Tecniche risolutive
Tecniche risolutive dei problemi di scheduling
Le tecniche disponibili si suddividono in:
Dispatching rule (euristici costruttivi)
Metaeuristiche
Branch-and-Bound
Programmazione Dinamica
Constraint programming
Programmazione matematica
...
I package commerciali sviluppati sino a metà degli anni ’90 usavano
essenzialmente euristici costruttivi.
Verso la fine degli anni ’90 sono stati sviluppati package basati su
metaeuristiche e basate su applicazioni limitate (nel tempo e/o nelle scelte)
di programmazione lineare, branch-and-bound o constraint programming.
I problemi reali sono di norma molto complessi e complicati da numerosissimi
“strani” vincoli, quindi il ricorso alle euristiche è spesso d’obbligo. Anche gli
algoritmi euristici possono però utilizzare tecniche molto sofisticate.
MOLP – Parte III
53 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Tecniche risolutive
Dispatching rule
L’idea è quella di ordinare secondo priorità le operazioni da assegnare alle
macchine.
Sono state studiate e applicate per vari decenni.
Si dividono in due tipologie in base all’ordinamento dei job:
Regole statiche: la priorità di un job viene definita una volta per tutte
Regole dinamiche: la priorità di un job può cambiare durante l’esecuzione
Si dividono inoltre in due tipologie in base alla costruzione della soluzione:
Algoritmo sequenziale: assegna un job alla volta
Algoritmo parallelo: seleziona un sott’insieme di jobs e cerca di assegnarli
tutti prima di passare al prossimo sott’insieme
MOLP – Parte III
54 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Tecniche risolutive
Dispatching rule: algoritmo sequenziale
Input: n, m, caratteristiche dei job e delle macchine
Ordina i job secondo una priorità definita
for j := 1 to n do
(eventualmente cambia priorità per l’ordinamento)
seleziona il primo job della lista e assegna la sua lavorazione al primo istante
ammissibile (tale per cui i vincoli siano rispettati)
end for
MOLP – Parte III
55 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Tecniche risolutive
Dispatching rule: algoritmo parallelo
Input: n, m, caratteristiche dei job e delle macchine
Ordina i job secondo una priorità definita
t := 0
J = {1, . . . , n}
while (J 6= ∅) do
Determina l’insieme S ⊆ J dei job che possono iniziare in t
S = ∅;
(eventualmente riordina i job di S secondo priorità)
while (S 6= ∅) do
estrai il primo job da S
se possibile, schedula il job all’istante t e inseriscilo in S
end while
J := J\S
t :=minimo istante in cui può essere assegnato un job successivo
end while
MOLP – Parte III
56 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Tecniche risolutive
Esempio: P|prec|Cmax
Regola LPT (Longest Processing Time)
6 job, 2 macchine parallele identiche
processing time pj = (40, 40, 30, 40, 70, 20)
Precedenze:
2
4
5
6
3
Algoritmo sequenziale:
Ordine: J5 J1 J2
M2
J4
J3
J1
M1
J6
J2
J3
J5
J6
J4
✲
0
50
100
MOLP – Parte III
57 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Tecniche risolutive
Esempio: P|prec|Cmax
Regola LPT (Longest Processing Time)
6 job, 2 macchine parallele identiche
processing time pj = (40, 40, 30, 40, 70, 20)
Precedenze:
2
4
5
6
3
Algoritmo parallelo:
t
S
0 {J5 , J1 , J2 }
40
{J2 }
70
{J6 }
80
{J4 , J3 }
90
{J3 }
M2
J1
M1
J2
J5
J4
J6
J3
✲
0
MOLP – Parte III
50
100
58 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Tecniche risolutive
Principali regole di ordinamento
ERD : Earliest Release Date, equivale a F.I.F.O.
LPT : Longest Processing Time, in ordine decrescente di durata
SPT : Shortest Processing Time, in ordine crescente di durata
WSPT : Weighted Shortest Processing Time, in ordine crescente del
rapporto durata/peso
EDD : Earliest Due Date), in ordine crescente di due-date (o deadline)
SST : Shortest Setup Time, in ordine crescente di setup
CP : Critical Path, seleziona il job che inizia il cammino più lungo
MOLP – Parte III
59 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Regola
ERD
EDD
LPT
Dati
rj
dj
pj
SPT
WSPT
CP
SST
pj
pj , w j
pj , prec
setup
Tecniche risolutive
Obiettivo usuale per tale regola
makespan
Lmax
bilanciamento di macchine identiche,
makespan
tempo medio di completamento
tempo di processamento pesato
makespan
tempo medio di completamento,
makespan
MOLP – Parte III
60 / 61
10. Metodi di Ottimizzazione per la Schedulazione
Tecniche risolutive
Esempi classici di dispatching rule
Di norma le dispatching rule forniscono soluzioni euristiche.
Per casi speciali forniscono la soluzione ottima. Ad esempio:
1
2
3
P
1|| P Cj per SPT (Smith’s rule)
1|| wj Cj per WSPT (Smith’s ratio rule)
1||Lmax per EDD (Jackson’s rule)
MOLP – Parte III
61 / 61