Académique Documents
Professionnel Documents
Culture Documents
Hierarchical Production Planning, Bitran and Tirupati (1993) , in Logistics Of Production and Inventory, Graves, Rinnoy Kan and Zipkin (eds),
Handbooks of Operations Research and Management Science, North-Holland
Modelli di Sistemi di Produzione
Modelli aggregati
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 `e facile. In particolare `e complicato dare costi
che omogenizzano quantit`a non monetarie (es. costo di non soddisfacimento di un ordine)
Si devono prevedere modalit`a per passare dai piani aggregati a quelli
disaggregati
I modelli sono normalmente molto grandi e li si risolve tramite
rilassamenti lagrangiani o decomposizione
Nel seguito supponiamo di avere definito:
n tipi di prodotti
T unit`a temporali
dit domanda per ogni prodotto i nel periodo t
Modello 1
min z =
n X
T
X
i=1 t=1
T
X
(cwt Wt + cot Ot )
t=1
i, T (1)
t (2)
i=1
Wt W Capt
Ot OCapt
xit , Iit 0
Wt , O t 0
t (3)
t (4)
i, t
t
Variabili
xit = numero prodotti famiglia i realizzati nel periodo t
Iit = prodotti famiglia i in magazzino alla fine del periodo t
Wt = ore di lavoro regolare nel periodo t
Ot = ore di lavoro straordinario nel periodo t
Costanti
ki = ore necessarie per realizzare un prodotto famiglia i
W Capt = ore di lavoro regolari disponibili nel periodo t
OCapt = ore di lavoro regolari disponibili nel periodo t
c?it , c?t = costi
10
(1)
Ii,t1
Iit
t+1
dt
Si tratta di vincoli di bilanciamento del flusso. Le variabili I partono
da I0, ovvero la Giacenza a magazzino allinizio della programmazione.
n
X
ki xit Wt + Ot t
(2)
i=1
Le ore necessarie per realizzare tutti i prodotti devono essere coperte con
lavoro regolare o straordinario.
Sono vincoli di tipo knapsack
N.B. Si suppone avere manodopera omogenea: chiunque pu`o lavorare
qualunque prodotto. Nella disaggregazione si potranno avere problemi !
Wt W Capt, t
(3)
Ot OCapt, t
(4)
11
Rilassamenti
Pn
Eliminazione dei vincoli (2)
i=1 ki xit Wt + Ot
T
n X
X
i=1 t=1
i, T
i, t
t=1
Wt W Capt
Ot OCapt
Wt , O t 0
t
t
t
n X
T
X
(t 0)
(t 0)
i=1 t=1
e quella di P2
min z =
T
X
t=1
12
Modello 2
min z =
n X
T
X
i=1 t=1
T
X
t=1
i, T
(5)
(6)
t
t
i, t
t
(7)
(8)
i=1
Wt = Wt1 + At1 Lt
Ot Wt
xit, Iit , Bit 0
Wt , O t , H t , F t 0
Variabili
xit = numero prodotti famiglia i realizzati nel periodo t
Iit = prodotti famiglia i in magazzino alla fine del periodo t
Bit = domanda prodotti famiglia i non soddisfatta nel periodo t
Wt = ore di lavoro regolare nel periodo t
Ot = ore di lavoro straordinario nel periodo t
At = personale assunto nel periodo t
Lt = personale licenziato nel periodo t
Costanti
ki = ore necessarie per realizzare un prodotto famiglia i
(0 < < 1) = coefficiente di massimo utilizzo di ore straordinarie
(vs ore regolari)
c?it , c?t = costi
Modelli di Sistemi di Produzione
13
i, T
(5)
Ii,t1
t1
` un vincolo di flusso
E
n
X
it
Iit
t+1
dt Bi,t1
ki xit Wt + Ot t
(6)
i=1
Le ore necessarie per realizzare tutti i prodotti devono essere coperte con
lavoro regolare o straordinario
` un vincolo di tipo knapsack con risorse omogenee
E
Wt = Wt1 + At1 Lt t
(7)
Wt1
At1
t
Wt
t+1
Lt
` un vincolo di flusso
E
Ot Wt t
(8)
14
Rilassamenti
Pn
Eliminazione dei vincoli (6)
i=1 ki xit Wt + Ot t
T
n X
X
i=1 t=1
(P 2 2) min z =
T
X
i, t
i, t
t=1
Wt = Wt1 + At1 Lt
Ot Wt
Wt , O t , A t , L t 0
t
t
t
15
1 se la risorsa i `e utilizzata
0 altrimenti
min
s.t.
m X
T
X
i=1 t=1
m
X
i=1
T
X
cvit xit +
m
X
csi yi
(1)
i=1
xit dt
t = 1, . . . , T
(2)
xit CAPiyi
i = 1, . . . , m
(3)
t=1
(4)
min
s.t.
m X
T
X
16
cvit xit +
i=1 t=1
m
X
i=1
T
X
m
X
csi yi
(1)
i=1
xit dt
t = 1, . . . , T
(2)
xit CAPiyi 0
i = 1, . . . , m
(3)
t=1
(4)
Rilassamenti lagrangiani
Si possono ottenere rilassamenti lagrangiani:
rilassando i vincoli (2)
rilassando i vincoli (3)
17
L1() = min
m X
T
X
cvit xit +
i=1 t=1
s.t.
T
X
m
X
csi yi +
T
X
t (dt
t=1
i=1
m
X
xit )
(5)
i=1
xit CAPiyi 0 i = 1, . . . , m
(6)
t=1
L1() =
n
X
t dt + min
m X
T
X
(7)
(cvit t)xit +
i=1 t=1
t=1
m
X
i=1
csi yi
!
(8)
L2() = min
m X
T
X
cvit xit +
i=1 t=1
s.t.
m
X
m
X
csi yi +
i=1
m
X
i=1
i (
T
X
xit CAPiyi )
t=1
xit dt t = 1, . . . , T
(9)
(10)
i=1
L2() = min
m X
T
X
i=1 t=1
(cvit + i )xit +
m
X
i=1
(11)
(csi iCAPi)yi
!
(12)
18
Soluzione di L1
L1() =
s.t.
T
X
t=1
n
X
t dt + min
m X
T
X
(cvit t)xit +
i=1 t=1
m
X
i=1
csi yi
xit CAPiyi 0 i = 1, . . . , m
t=1
sia t(i) : cvi,t(i) t(i) = i (il periodo pi`u profittevole per la risorsa i)
se csi < iCAPi conviene attivare la risorsa i dedicando tutta la sua
capacit`a al periodo t(i)
yi = 1, xi,t(i) = CAPi, xit = 0 t : t 6= t(i)
se csi iCAPi yi = 0, xit = 0 t
19
Soluzione di L2
L2() =
s.t.
m
X
i=1
m
X
i + min
m X
T
X
(cvit + i)xit +
i=1 t=1
m
X
(csi iCAPi)yi
i=1
xit dt t = 1, . . . , T
i=1
m
X
(cvit + i)xit
i=1
20
Esempio
n = 2, m = 8
i
1
2
3
4
5
6
7
8
dt
cvit
1
2
21 73
45 41
86 50
105 35
110 54
42 22
38 26
63 65
31 28
CAPi
csi
14
17
8
6
12
9
13
15
40
45
27
20
39
30
42
46
21
min
s.t.
m X
n
X
i=1 j=1
m
X
i=1
n
X
cptij xij +
m
X
csi yi
i=1
xij dj
j = 1, . . . , n
xij CAPi yi 0
i = 1, . . . , m
j=1
22
n X
T
X
i=1 t=1
K X
T
X
k=1 t=1
n
X
compij xjt
i, t
(1)
k, t
(2)
j=1
n
X
i=1
xit M yit i, t
xit , Iit, U Tkt , OTkt 0
yit {0, 1}
(3)
Variabili
xit = numero prodotti famiglia i realizzati nel periodo t
yit = 1 se si effettua un setup per prodotti famiglia i nel periodo t
OTkt = eccesso di capacit`a sulla risorsa k nel periodo t
U Tkt = carenza di capacit`a sulla risorsa k nel periodo t
Costanti
i = rendimento della produzione del prodotto i
L(i) = Lead Time per la produzione del prodotto i
kki = ore necessarie per realizzare un prodotto di famiglia i sulla risorsa
k
compij = numero di prodotti famiglia i usati per realizzare un prodotto
famiglia j
ski = tempo di setup per la risorsa k prodotto famiglia i
CAPk = capacit`a risorsa k
M = numero 0
Modelli di Sistemi di Produzione
23
n
X
j=1
0
n
X
i=1
24
Modello disaggregato
Le quantit`a aggregate per famiglia (xit ) devono essere separate nei
singoli prodotti per definire la produzione effettiva del periodo
Si deve generare un piano di dettaglio coerente con il piano globale
Non sempre `e possibile avere piani coerenti in quanto il piano aggregato trascura vincoli che devono essere inclusi nel piano particolare
J(i) = insieme dei prodotti di dettaglio che appartengono al tipo i
yjt = quantit`a del j-esimo prodotto da realizzare nel periodo t
csj = costo di setup per il prodotto j
min
jJ(i)
csj
dj
yjt
yjt = xit
(4)
jJ(i)
j J(i)
(5)
NOTE
lbjt = max(0, djt + ssjt aijt)
25
min
csj
jJ(i)
dj
yjt
yjt = xit
(4)
jJ(i)
Il totale della produzione dei prodotti in J(i) deve essere uguale a quanto
previsto per la famiglia i
max(0, djt + ssjt aijt) = lbjt yjt
La produzione del periodo, insieme alla scorta di magazzino deve soddisfare la domanda, lasciando disponibile una scorta di sicurezza a magazzino
yjt ubjt = max(0, osjt + djt aijt)
La scorta di magazzino a fine periodo non deve superare un limite
massimo di stock (osjt).
26
2 prodotti
magazzino
3
iniziale
30
9
30
20
60
29
3
60
0
60
27
Linea di produzione
Sistema produttivo caratterizzato dalla sequenzialita delle operazioni
IN
Stage 1
Stage 2
Stage m
OUT
28
Problema 1 (dimensionamento):
assegnare le lavorazioni alle stazioni minimizzando il numero di stazioni
xij =
min
U
X
i=1
U
X
i=1
n
X
yi
xij = 1
j = 1...,n
(6)
pj xij Cyi
i = 1...,U
(7)
j=1
xij {0, 1}
U = upper bound sul numero di stazioni necessario (si puo porre U = n)
(6) ogni operazione deve essere assegnata a una stazione
(7) il tempo di lavoro di una stazione non puo eccedere il carico di lavoro
29
i1
X
x`k
i = 1, . . . , U
`=1
IN
|
{z
}
k deve essere assegnato qui
OUT
k0
30
Problema 2 (bilanciamento):
dato il numero m di stazioni assegnare le lavorazioni alle stazioni
bilanciando i carichi
P
pj
: si vuole minimizzare lo scostamento da .
m
Il carico ideale `e =
Sia Ci =
Pn
j=1 pj xij
m
X
|Ci |
i=1
zi C i
zi C i
...
i = 1, . . . , m
i = 1, . . . , m
xij = 1
j = 1...,n
pj xij z
i = 1...,m
j=1
xij {0, 1}
31
Ulteriori vincoli
Coppie di operazioni da eseguire su stessa stazione (S)
xik = xik0
(k, k 0) S
(k, k 0) D
32
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 (che pu`o essere un
tornio, un computer, un operatore, un reparto, una stanza, etc.)
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
33
Dati di input
Processing time (pij ) tempo di esecuzione del job j sull macchina i.
Se lesecuzione `e indipendente dalla macchina pj
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) indica che il job j pu`o iniziare solo se `e finito il job i
Output della schedulazione
Completion time (Cij ) istante di completamento delloperazione i del
job j
Starting time (Sij ) istante di inizio delloperazione i del job j (Sij =
Cij dij )
Se il problema lo richiede si fornisce in output anche la scelta della
macchina che processa ciascun operazione
34
35
M3
M2
M1
J4
J7 J8
J2
J3
J1
J6
J5
-
0
50
100
Se le macchine sono identiche il tempo di processamento di un job `e
indipendente dalla macchina (pj )
Se le macchine sono uniformi il tempo di processamento di un job `e il
rapporto tra il tempo di processamento standard del job e la velocit`a
della macchina (rappresenta problemi con macchine dello stesso tipo,
ma di diversa classe, es. processore Pentium III, 500Mhz, Pentium 4,
2Ghz)
Se le macchine sono comletamente diverse (non correlate) il tempo di
processamento dipende dalla coppia macchina-job (pij ) (ad esempio se le
macchine sono dei programmatori uno sar`a molto veloce a programmare
in C++ e lento in Java ed un altro viceversa)
Modelli di Sistemi di Produzione
36
Shop problem
I job sono costituiti da pi`u operazioni da eseguire su pi`u macchine.
Di norma ogni job operazione di un job `e assegnata a una macchina data
Open shop
Non vi `e alcuna precedenza tra le operazioni
M3
J1
M2
J3
J2
M1
J4
J3
M3
J2
J2
J1
M2
J4
M1
Soluzione 1
J2
J1
J1
J2
J2
J3
J3
J4
J4
Soluzione 2
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
J2
J4
J4
J4
37
Job shop
Ogni job j ha nj operazioni da eseguire in sequenza sulle macchine
1, 2, . . . , nj , rispettivamente
M4
M3
J3
J3
M2 J 2
M1
J4
J2
J2
J3
J1
J1
J1
J2
J4
Job nj 1 2 3 4
J1 3 1 2 4
J2 4 2 1 3 4
J3 3 3 2 4
J4 2 3 1
Stage 1
Modelli di Sistemi di Produzione
38
Funzioni obiettivo
Makespan Cmax = maxj (Cj ) istante di completamento
dellultima operazione
Determina il tempo necessario per terminare tutta la produzione.
E una delle misure pi`u studiate.
Tempo medio di attraversamento
n
X
j=1
Cj ,
n
X
w j Cj
j=1
j=1
n
X
j=1
Tj ,
j=1
n
X
wj T j
j=1
39
Classificazione
Si utilizza una notazione a tre campi http:
(//www.mathematik.uni-osnabrueck.de/research/OR/class/)
||
= (12) caratteristiche delle macchine
1 {, P, Q, R, P M P M, QM P M, G, X, O, F, J}
2 {,numero}
= caratteristiche dei job
(1 , 2, 3, 4, 5, 6)
1 : preemption
2 : precedenze
3 : release time
4 : caratteristiche dei processing time
5 : deadline
6 : batch
= funzione obiettivo
P
data una funzione fi `e del tipo fmax oppure
fi
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
Modelli di Sistemi di Produzione
40
41
Dispatching rules
Lidea `e quella di ordinare secondo priorit`a le operazioni da assegnare
alle macchine.
Sono state studiate e applicate per vari decenni.
Regole statiche la priorit`a di un job viene definita una volta per tutte
Regole dinamiche la priorit`a di un job cambia durante la creazione
della soluzione
Algoritmo sequenziale
42
Esempio: P |prec|Cmax
Regola LPT (Longest Processing Time)
6 job, 2 macchine parallele identiche
processing time pj = (40, 40, 30, 30, 70, 20)
Precedenze
2
3
1
M2
J1
M1
J2
J3
J5
M2
J6
J1
M1
J4
J2
J5
J4
J6
J3
-
50
100
Algoritmo sequenziale
Ordine
J5 J1 J2 J3 J4 J6
50
100
Algoritmo parallelo
t
S
0 {J5, J1, J2}
40
{J2}
70
{J6}
80 {J4, J3}
90
{J3}
43
Dati
rj
dj
dj
dipende da
LPT
pj
SST
processing
time
varie
Obiettivo
somma delle varianze
Lmax
Lmax
44
45
sol
value
dispatching rules
4
packages
B&B troncato
metaeuristiche
B&B
0
0
time