Sei sulla pagina 1di 45

Manufacturing Planning and Control

La pianificazione della produzione


La pianificazione della produzione `e un processo complesso che coinvolge
larga parte dellazienda (funzioni e risorse) e deve ragionare su previsioni
a lungo periodo.
Gli elementi du un piano di produzione sono:
MPS (Master Production Schedule)
MRP (Material Requirement Planning)
Inventory Management
Capacity Planning
Scheduling
Production Control
Data la complessit`a 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

Modelli di Sistemi di Produzione

Manufacturing Planning and Control

Production Planning : tentativo di pianificazione delle quantit`a su


un orizzonte temporale lungo (6 mesi, un anno).
Include dimensionamenti della forza lavoro, delle giacenze di magazzino, della materia prima e altre risorse.
Opera per quantit`a aggregate (per tipologia o periodo)
Production Scheduling (dispatching): piano di produzione dettagliato che considera individualmente ogni prodotto/ risorsa e definisce
esattamente cosa fanno nel tempo.
Lorizzonte di pianificazione `e limitato (1, 2 settimane, un mese)
Nonostante il dettaglio il piano viene modificato nella pratica a causa
di: necessit`a o urgenze impreviste, rottura di macchine, utensili,
pezzi, aleatoriet`a dei dati.
La pianificazione si basa su risorse fisse e variabili definite dal management (es: impianti, equipaggiamenti, magazzini, forza lavoro, etc.)
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, problema fondamentale nellazienda (forcasting), pu`o essere effettuata con il supporto di vari metodi
e tecniche della Ricerca Operativa (descritti negli opportuni corsi).
La pianificazione deve determinare la scelta ottima considerando i :
1. costi di immagazzinamento e obsolescenza (oversupply)
2. costi dovuti al non soddisfare la domanda (interamente o con ritardo)
3. costi dovuti ad alternative di produzione (lavoro straordinario, nuovo
personale, produzione esterna)
4. costi di modifica del livello di produzione
Modelli di Sistemi di Produzione

Manufacturing Planning and Control

I parametri del MPS


1. Unit`a temporale (mese, settimana, giorno, ora..)
2. Orizzonte temporale
3. Livello di aggregazione dei prodotti (per prodotto, per categoria,..)
4. Livello di aggregazione delle risorse
5. Frequenza di ripianificazione
6. Numerosit`a e struttura dei piani
1. Unit`
a temporale
 Di norma si usano le settimane o i mesi.
 Piccola unit`a maggior dettaglio, pianificazione pi`u difficile
2. Orizzonte temporale
 Di norma discende naturalmente dalla natura della produzione (prodotti stagionali, prodotti di largo consumo, etc.)
 Il piano parte un breve periodo dal momento attuale; da ora allinizio
del piano si considerano decisioni non modificabili (congelate)
3. Livello di aggregazione dei prodotti
 Scopo dellaggregazione `e: (a) concentrare lattenzione sulle risorse/costi
pi`u rilevanti; (b) sviluppare un piano che sia relativamente semplice da
sviluppare/analizzare
 Il livello ottimale di aggregazione dipende dalla natura dei costi, dalla
struttura produttiva, dalla stabilit`a della situazione
 Esiste poi il problema di disaggregare il piano per la fase di scheduling
(spesso si usano piani intermedi)
Modelli di Sistemi di Produzione

Manufacturing Planning and Control

4. Livello di aggregazione delle risorse


 Valgono le considerazioni del punto 3.
5. Frequenza di ripianificazione
 Per loro natura i MPS non vengono implementati esattamente
 LMPS `e su un lungo orizzonte, ma viene ricalcolato pi`u volte in
questo 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)
 In pratica i piani sono rivisti di frequenza data linstabilit`a dei sistemi
e laleatoriet`a dei dati
6. Numerosit`
a e struttura dei piani
 Spesso le aziende non hanno un solo piano, ma molti piani a diversi
livelli di aggregazione
 I diversi piani vengono utilizzati a diversi livelli decisionali e hanno
diversi orizzonti temporali e unit`a di misura

Modelli di Sistemi di Produzione

Manufacturing Planning and Control

Le fasi della Pianificazione

Manufacturing Planning and Control System. Vollmann, Berry and Whybark


(1992), 3rd edition, Irwin, Homewood

Modelli di Sistemi di Produzione

Manufacturing Planning and Control

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

Manufacturing Planning and Control

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

MILP: aggregate models

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

Modelli di Sistemi di Produzione

MILP: aggregate models

Modello 1
min z =

n X
T
X

(cvit xit + ciit Iit) +

i=1 t=1

xit + Ii,t1 = dit + Iit


n
X
ki xit Wt + Ot

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

Modelli di Sistemi di Produzione

MILP: aggregate models

10

xit + Ii,t1 = dit + Iit i, T

(1)

Si deve soddisfare la domanda del prodotto i, periodo t, con:


- produzione del periodo t
- scorte di magazzino alla fine del periodo t 1
Le quantit`a di cui sopra devono essere sufficienti a coprire anche la giacenza di magazzino alla fine del periodo t
xit
t1

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)

Le ore regolari e di straordinario non devono eccedere le massime disponibilit`a dichiarate.


Modelli di Sistemi di Produzione

MILP: aggregate models

11

Rilassamenti
Pn
Eliminazione dei vincoli (2)
i=1 ki xit Wt + Ot

La coppia (x, I) e la coppia (W, O) non sono pi`u legate: il problema si


separa in due problemi indipendenti
(P 1) min z =

T
n X
X

(cvit xit + ciit Iit)

i=1 t=1

xit + Ii,t1 = dit + Iit


xit, Iit 0
T
X
(P 2) min z =
(cwt Wt + cot Ot)

i, T
i, t

t=1

Wt W Capt
Ot OCapt
Wt , O t 0

t
t
t

P1 `e un problema di flusso di costo minimo, mentre P2 ha soluzione


banale Wt = Ot = 0 t.
Rilassando in maniera lagrangiana i vincoli (2) la f.o di P1 diventa
min z =

n X
T
X

((cvit + tki )xit + ciit Iit )

(t 0)

((cwt t )Wt + (cot t)Ot )

(t 0)

i=1 t=1

e quella di P2
min z =

T
X
t=1

P1 rimane un problema di flusso; P2 si risolve per ispezione


Modelli di Sistemi di Produzione

MILP: aggregate models

12

Modello 2
min z =

n X
T
X

(cvit xit + ciit Iit + cbit Bit)+

i=1 t=1
T
X

(cwt Wt + cotOt + cat At + clt Lt)

t=1

xit + Ii,t1 + Bit = dit + Bi,t1 + Iit


n
X
kixit Wt + Ot

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

MILP: aggregate models

13

xit + Ii,t1 + Bit = dit + Bi,t1 + Iit

i, T

(5)

Nel periodo t si deve soddisfare la domanda del prodotto i e il non


prodotto del periodo t 1 (Bi,t1 )
La richiesta di produzione pu`o essere decurtata del non prodotto del
periodo t (Bit )
x B
it

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)

Il personale del periodo t `e uguale a quello del periodo t 1


pi`u le persone assunte in t 1, meno quelle licenziate in t
t1

Wt1

At1
t

Wt

t+1

Lt
` un vincolo di flusso
E
Ot Wt t

(8)

Le ore di straordinario devono essere una percentuale delle ore regolari


Modelli di Sistemi di Produzione

MILP: aggregate models

14

Rilassamenti
Pn
Eliminazione dei vincoli (6)
i=1 ki xit Wt + Ot t

Le variabili (x, I, B) e le variabili (W, O, A, L) non sono pi`u legate: il


problema si separa in due problemi indipendenti
(P 2 1) min z =

T
n X
X

(cvit xit + ciit Iit + cbit Bit )

i=1 t=1

xit + Ii,t1 + Bit = dit + Bi,t1 + Iit


xit, Iit , Bit 0

(P 2 2) min z =

T
X

i, t
i, t

(cwt Wt + cot Ot + cat At + cltLt)

t=1

Wt = Wt1 + At1 Lt
Ot Wt
Wt , O t , A t , L t 0

t
t
t

P2-1 e P2-2 sono problemi di flusso di costo minimo (in P2-2 Ot = 0 t)


Miglior LB si ottiene con un rilassamento lagrangiano

Modelli di Sistemi di Produzione

MILP: aggregate models

15

Modello 3: Lot sizing (gestione dei costi fissi di setup)


Un solo prodotto
m risorse produttive, ciascuna con capacit`a CAPi;
csi = costo di preparazione setup della risorsa i
cvit = costo unitario di produzione su risorsa i nel periodo t
yi =

1 se la risorsa i `e utilizzata
0 altrimenti

xit = prodotti realizzati sulla risorsa i nel periodo t

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

xit 0, intere , yi {0, 1}

(4)

Modelli di Sistemi di Produzione

MILP: aggregate models

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

xit 0, intere , yi {0, 1}

(4)

- La funzione obiettivo (1) minimizza la somma dei costi di produzione


e trasporto (prime due sommatorie) e dei costi di setup;
- i vincoli (2) impongono di soddisfare tutte le domande
- i vincoli (3) impongono i limiti di capacit`a delle risorse e il legame
tra xit e yi
- i vincoli (4) impongono la non negativit`a di x e booleanit`a di y

Rilassamenti lagrangiani
Si possono ottenere rilassamenti lagrangiani:
rilassando i vincoli (2)
rilassando i vincoli (3)

Modelli di Sistemi di Produzione

MILP: aggregate models

17

rilassando i vincoli (2) in si ottiene:

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

xit 0, intere , yi {0, 1}, t 0

L1() =

n
X

t dt + min

m X
T
X

(7)

(cvit t)xit +

i=1 t=1

t=1

s.t.(6) and (7)

m
X
i=1

csi yi

!
(8)

rilassando i vincoli (3) si ottiene un problema con sole x nei vincoli

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

xit 0, intere , yi {0, 1}, i 0

L2() = min

m X
T
X
i=1 t=1

s.t.(10) and (11)

(cvit + i )xit +

m
X
i=1

(11)

(csi iCAPi)yi

!
(12)

Modelli di Sistemi di Produzione

MILP: aggregate models

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

xit 0, intere , yi {0, 1}, t 0


Non ci sono domande da soddisfare
la soluzione banale x = 0; y = 0 `e ammissibile (non lo `e per il
problema originale)
P
la soluzione ottima di L1 ha valore Tt=1 t dt + con 0

Se decido di usare una risorsa i pago un costo csi , allora mi conviene


usarla solo se i termini in x portano ad un calo del valore della f.o.

Se (cvit t) 0 non mi conviene usare la risorsa i per il periodo t


Se (cvit t) < 0 pu`o convenire attivare la risorsa i
i = min ( cvit t )
t=1,...,T

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

Modelli di Sistemi di Produzione

MILP: aggregate models

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

xit 0, intere , yi {0, 1}, i 0


Le variabili y non sono vincolate in alcun modo
yi = 0 se (csi iCAPi) 0; yi = 1 se (csi iCAPi) < 0
se ` : (cv` + `) < 0 il problema `e illimitato
`e ottima la soluzione con x` = +
se (cvit + i) 0 i
t = min

m
X

(cvit + i)xit

i=1

sia i(t) : cvi(t),t + i(t) = t (la risorsa pi`u favorevole per t)


La soluzione ottima, per ogni periodo t, `e:
xi(t),t = dt, xit = 0 i 6= i(t)

Modelli di Sistemi di Produzione

MILP: aggregate models

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

Modelli di Sistemi di Produzione

MILP: aggregate models

21

Lo stesso modello vale per:


periodo temporale fisso
n clienti dove ogni cliente j ha domanda dj
m stabilimenti di produzione
cptij = costo unitario produzione e trasporto da stabilimento i a
cliente j

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

xij 0, intere , yi {0, 1}

Modelli di Sistemi di Produzione

MILP: aggregate models

22

Modello 4: costi di setup, sotto-utilizzo/carenza risorse


min z =

n X
T
X

(ciit Iit + csit yit ) +

i=1 t=1

K X
T
X

(cvktOTkt + cukt U Tkt )

k=1 t=1
n
X

compij xjt

i, t

(1)

(kki xit + ski yit ) + U Tkt OTkt = CAPk

k, t

(2)

i xi,tL(i) + Ii,t1 = dit + Iit +

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

MILP: aggregate models

23

i xi,tL(i) + Ii,t1 = dit + Iit +

n
X

compij xjt (1)

j=1

Per ogni famiglia i di prodotti si deve soddisfare la domanda, la scorta


di magazzino alla fine del periodo t e la richiesta di questo prodotto per
realizzare gli altri prodotti di famigliaP j tramite i prodotti disponibili
nel periodo t e la giacenza di magazzino al periodo t 1.
N.B. Il modello rende disponibili allistante i prodotti che entrano in
produzione allistante L(i). Il carico delle risorse viene considerato
solo nella bocca dingresso del manufacturing.
ingresso in prod.
disponibile
t=1
t=5
lead time (4)
z
}|
{

0
n
X

(kkixit + sk1 yit ) + U Tkt OTkt = CAPk (2)

i=1

Le ore richieste per la produzione ed il setup devono essere commisurate


alla capacit`a di ogni risorsa (si generano eccessi o carenze di capacit`a
che vengono pesati nella funzione obiettivo)
xit M yit (3)
Si pu`o produrre il bene i nel periodo t solo se si effettua il corrispondente
setup
Modelli di Sistemi di Produzione

MILP: aggregate models

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)

lbjt yjt ubjt

j J(i)

(5)

NOTE
lbjt = max(0, djt + ssjt aijt)

ubjt = max(0, osjt + djt aijt)

per il prodotto j, periodo t:


djt = domanda; ssjt = scorta di sicurezza;
aijt= disponibilit`a a magazzino; osjt= massima scorta
N.B.
prefissato il periodo che si considera (t)
-E
- i valori delle x sono dati del problema
Modelli di Sistemi di Produzione

MILP: aggregate models

25

min

csj

jJ(i)

dj
yjt

Definita la domanda annuale dj che sar`a soddisfatta dai vincoli (4) si


vuole minimizzare il costo di setup
` la stessa formula che si usa per il lotto economico (EOQ):
E
(dj /yjt `e il numero di riprese della produzione di j)
X

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).

Modelli di Sistemi di Produzione

MILP: aggregate models

26

Il problema delle incongruenze


La disaggregazione di un MPS non sempre e possibile
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

3
60
0
60

La domanda del primo periodo viene soddisfatta con la giacenza iniziale


di magazzino
Con questa scelta a fine primo periodo rimangono 4 unita del prodotto
1 e 18 del prodotto 2
non e possibile soddisfare la domanda del prodotto 1 periodo 2 !

Modelli di Sistemi di Produzione

MILP: production line

27

Linea di produzione
Sistema produttivo caratterizzato dalla sequenzialita delle operazioni

IN

Stage 1

Stage 2

Stage m

OUT

- Ogni prodotto richiede n lavorazioni


- Ogni stazione (stage) puo eseguire qualunque operazione
- Processing time indipendente dalla stazione che la esegue (pj )
- Carico lavorativo di ogni stazione C
Il carico di lavoro C di una stazione e il tempo che la stazione lavora in
un ciclo di produzione, ovvero nel tempo che occorre per realizzare un
prodotto
C e determinato dalla stazione piu carica
In pratica a regime nella linea vi sono prodotti in ogni stazione. Ad ogni
ciclo esce un prodotto finito dallultima stazione.

Modelli di Sistemi di Produzione

MILP: production line

28

Problema 1 (dimensionamento):
assegnare le lavorazioni alle stazioni minimizzando il numero di stazioni

xij =

1 se loperazione j e eseguita dalla stazione i


0 altrimenti
(
1 se la stazione i e usata
yi =
0 altrimenti

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

Modelli di Sistemi di Produzione

MILP: production line

29

Precedenze tra operazioni


A = {(k, k 0) : k k 0, k, k 0 = 1, . . . , n}
Se (k, k 0) A loperazione k deve essere eseguita prima di k 0
xik0

i1
X

x`k

i = 1, . . . , U

`=1

k 0 e assegnata alla stazione i

k deve essere assegnata ad una stazione in 1 . . . i 1

IN

|
{z
}
k deve essere assegnato qui

OUT

k0

Modelli di Sistemi di Produzione

MILP: production line

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

il carico del processore i


min

m
X

|Ci |

i=1

La funzione valore assoluto non `e lineare : occorre linearizzare con


m
X
min
zi
i=1

zi C i
zi C i
...

i = 1, . . . , m
i = 1, . . . , m

In alternativa si minimizza il makespan Cmax


min z
m
X
i=1
n
X

xij = 1

j = 1...,n

pj xij z

i = 1...,m

j=1

xij {0, 1}

Modelli di Sistemi di Produzione

MILP: production line

31

Ulteriori vincoli
Coppie di operazioni da eseguire su stessa stazione (S)
xik = xik0

(k, k 0) S

Coppie di operazioni da eseguire su stessa stazioni diverse (D)


xik + xik0 1

(k, k 0) D

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

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

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

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

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

34

Problemi a macchina singola


Molti sistemi di produzioni vengono assimilati a singoli processori
- quando una macchina `e il collo di bottiglia che determina la velocit`a
di un intero sistema
- quando un reparto pu`o essere aggregato e studiato come un unica unit`a
Problemi a macchina singola si usano come sottoproblemi da ottimizzare
nella risoluzione di problemi pi`u complessi.
Vi sono numerosi problemi ben studiati in letteratura.
Alcuni problemi si risolvono con algoritmi semplici di ordinamento dei
job
(es. SPT Shortest Processing Time, EDD Earliest Due Date)
Altri problemi richiedono tecniche di enumerazione implicita.
I job sono di norma singole operazioni.

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

35

Problemi a macchine parallele


Vi sono m macchine che possono eseguire i job.
I job sono si norma operazioni singole.
Occorre: (a) assegnare i job alle macchine; (b) determinare gli istanti di
inizio e fine dei job per ogni macchina

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

Operational level: Notation and Methods

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

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

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

Flexible shop problem


Shop problem con pi`u macchine parallele in ogni stadio di produzione.
Le precedenze non sono pi`u tra macchine, ma tra stadi di produzione
Stage 3
Stage 2

Stage 1



Modelli di Sistemi di Produzione

Operational level: Notation and Methods

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

Viene usato come indicatore dei costi di Work-in-Process (quanit`a di


materiale acquistato, ma non venduto in quanto in attesa di lavorazioni)
Valutazione dei ritardi di consegna
Lj = C j d j
Lateness (pu`o essere positiva o negativa)
Tj = max(0, Cj dj Tardiness (ritardo di consegna)
Ej = max(0, dj dj ) Earliness (anticipo di consegna)
Si usa minimizzare sia iln massimonche la somma delle misure
X
X
Lmax = maxj (Lj ),
Lj ,
wj L j
Tmax = maxj (Tj ),

j=1
n
X
j=1

Tj ,

j=1
n
X

wj T j

j=1

La earliness misura lanticipo rispetto alla data di consegna. Diventa un


costo in un ottica di Just-In-Time

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

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

Operational level: Notation and Methods

40

Tecniche di soluzione generali


Dispatching rules (euristica)
Metaeuristiche (euristica)
Branch-and-Bound (esatta/euristica)
Programmazione Dinamica (esatta/euristica)
Constraint programming (esatta/euristica)
Programmazione matematica (esatta/euristica)
I package commerciali sviluppati sino a met`a degli anni 90 usavano essenzialmente dispatching rules.
Verso la fine degli anni 90 sono stati sviluppati package basati su
metaeuristiche ed euristiche basate su applicazioni limitate nel tempo
e 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 `e dobbligo.
Anche gli algoritmi euristici possono per`o utilizzare tecniche molto sofisticate !

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

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

Input: n, m, caratteristiche dei job e delle macchine


Ordina i job secondo una priorit`a definita
for j := 1 to n do
assegna il j-esimo job della lista al prima possibile, rispettando i
vincoli (non sovrapposizione, precedenze, etc)
end for
Algoritmo parallelo

Input: n, m, caratteristiche dei job e delle macchine


Ordina i job secondo una priorit`a definita
t := 0; J = {1, . . . , n}
while (J 6= ) do
Determina linsieme S J dei job che possono iniziare in t
eventualmente riordina i job di S secondo priorit`a
while (S 6= ) do
estrai il primo job j e schedulalo dallistante t, se possibile
end while
J := J\S; t :=minimo istante > t cui pu`o essere assegnato un job
end while
Modelli di Sistemi di Produzione

Operational level: Notation and Methods

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}

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

43

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)
MS (Minimum Slack): in ordine crescente di differenza tra listante
attuale e la due date (se usato con algoritmo statico `e come EDD)
SST (Shortest Setup Time) : in ordine crescente di setup
CP (Critical Path) : seleziona il job che inizia il cammino pi`u lungo
Regola
dipende da
ERD
release date EDD
o due date
MS

Dati
rj
dj
dj

dipende da

LPT

pj

SST

processing
time

varie

Obiettivo
somma delle varianze
Lmax
Lmax

bilanciamento di macchine identiche,


makespan
SPT pj
tempo medio di completamento
WSPT pj , wj tempo medio di completamento
CP
pj , prec makespan
tempo medio di completamento,
makespan
Modelli di Sistemi di Produzione

Operational level: Notation and Methods

44

Di norma le dispatching rules forniscono soluzioni euristiche.


Per casi speciali forniscono la soluzione ottima.
P
1|| Cj SPT (Smiths rule (1956))
P
1|| wj Cj WSPT (Smiths ratio rule (1956))
1||Lmax
EDD (Jacksons rule (1955))

Modelli di Sistemi di Produzione

Operational level: Notation and Methods

45

Efficacia delle tecniche di soluzione

sol
value

dispatching rules
4

packages
B&B troncato

metaeuristiche
B&B

0
0

time

Modelli di Sistemi di Produzione