Pianificazione della produzione MRP MPS vs. MRP Distinta base

Transcript

Pianificazione della produzione MRP MPS vs. MRP Distinta base
MRP
• Con l’MRP si decide la tempificazione delle disponibilità dei
materiali, delle risorse e delle lavorazioni.
Pianificazione della produzione
• MRP vs. ERP (Enterprise Resources Planning): con ERP si
indicano quei pacchetti SW che coprono la parte del sistema
informativo che gestisce i flussi logistici, compresi gli aspetti
amministrativi e di gestione del personale, all’interno di
un’azienda. Il sistema che gestisce l’MRP è di solito il nucleo
base dell’ERP. L’ERP di solito non comprende invece
CAD/CAM e paghe.
Materials Requirements Planning (MRP)
15/11/2002 16.58
Raffaele Pesenti
1
Raffaele Pesenti
Distinta base
MPS vs. MRP
Bill Of Materials (BOM)
Con il Master Production Schedule (MPS) si definiscono livelli
di produzione di ogni prodotto nei sottoperiodi di T e le
corrispondenti date di consegna.
I dati di input dell’MPS sono tra gli altri:
– gli ordini dei clienti e gli ordini interni,
– le previsioni della domanda futura,
– le necessità delle scorte di sicurezza,
– gli output della pianificazione aggregata.
Le decisioni sono prese interagendo con i sistemi che gestiscono
l’MRP e la gestione operativa della produzione.
Raffaele Pesenti
2
3
La distinta base (vedi UNI-ISO 7573/00) contiene le
informazioni circa i componenti e i tempi di lavorazione
necessari per realizzare i sottoassemblati e da essi il prodotto
finale.
La distinta base è organizzata ad albero e la sua “esplosione”
permette di schedulare a ritroso quando devono essere
disponibili al più tardi i componenti o di un unico prodotto o di
un lotto di prodotti.
Raffaele Pesenti
4
Distinta base:
Distinta base:
rappresentazione grafica
s.a.: sottoassemblato
c.: componente base
rappresentazione indentata
Esempio: motore elettrico
• 1 motore elettrico a gabbia di scoiattolo c.a. 1gg
prodotto finale
s.a. 1 (m olteplic ità)
lead tim e
s.a. 2 (m olteplicità)
lead tim e
s.a. 1.1 (m olteplic ità)
lead tim e
s.a. 1.2 (m olteplic ità)
lead tim e
c. 1.2.1 (m olteplic ità)
lead tim e
c. 1.2.2 (m olteplic ità)
lead tim e
– 1 carcassa 5gg
• ...
– 1 statore 4gg
• 1 pacco statorico 3gg
• 3 avvolgimenti 2gg
• ...
– 1 rotore 4gg
s.a. 3 (m olteplicità)
lead tim e
• 21 sbarre di alluminio 1gg
• 2 anelli frontali 1gg
• ...
c. 1.2.3 (m olteplicità)
disponibile a m agazzino
Raffaele Pesenti
5
Raffaele Pesenti
Distinta base e MRP
Esempio MRP
gg 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
domanda
9 10 12 12 12 12 8 8 8 8 8
motore completo
9 10 12 12 12 12 8 8 8 8 8
carcassa
9 10 12 12 12 12 8 8 8 8 8
....
... ... ... ... ... ... ... ... ... ... ...
statore
9 10 12 12 12 12 8 8 8 8 8
pacco
9 10 12 12 12 12 8 8 8 8 8
avvolgimenti
27 30 36 36 36 36 24 24 24 24 24
....
... ... ... ... ... ... ... ... ... ... ...
rotore
9 10 12 12 12 12 8 8 8 8 8
sbarre
189 210 252 252 252 252 168 168 168 168 168
anelli
18 20 24 24 24 24 16 16 16 16 16
....
... ... ... ... ... ... ... ... ... ... ...
I lead time indicano i tempi di disponibilità del subassemblato
una volta che si siano resi disponibili i componenti.
Con i sistemi MRP procedendo a ritroso si calcola quando
devono essere disponibili i componenti.
Nell’esempio si assume di riuscire di ad assiemare il motore in
giornata una volta disponibili la carcassa, lo statore e il rotore.
Per avere un motore il giorno 10 si devono avere i componenti
della carcassa il giorno 5, quelli dello statore e del rotore il 6.
Per avere uno statore il 6 si devono avere i componenti per il
pacco il 3 e per gli avvolgimenti il 4.
Raffaele Pesenti
6
7
Raffaele Pesenti
8
Componenti base
Commenti
Quando (e quanti) ordinare i componenti base, e.g., sbarre e anelli
della gabbia del rotore?
Alternative elementari:
– lot-for-lot (ogni giorno solo quello che serve): non ha costi di
mantenimento, non ottimizza i costi fissi d’ordine;
– EOQ: la domanda non è costante, si rischia di tenere in
magazzino materiali che comunque non sarebbero sufficienti a
soddisfare la domanda del giorno successivo e quindi si
sarebbe costretti comunque a riordinare;
– (Q,R),(s,S), ...: la domanda non è stocastica, trattandola come
tale per lo meno si spreca inutilmente dell’informazione e
quindi ci si allontana dall’ottimo.
• il processo presentato assume disponibilità infinita di risorse di
produzione;
• le scadenze dell’MPS devono essere fissate sufficientemente
lontano nel tempo in modo da potere essere soddisfatte;
• devono essere eventualmente considerati anche i lead time dei
fornitori.
Raffaele Pesenti
9
Raffaele Pesenti
Lot-sizing
Il problema del lot-sizing (dimensionamento lotto) richiede di
trovare un compromesso tra costi di riordino oppure set-up
produzione e costi di mantenimento*.
• metodi euristici
(richiedono conoscenza esatta della domanda nel breve periodo)
– Silver-Meal
– least unit cost
– part period balancing
• metodo esatto
(richiede conoscenza esatta della domanda nel lungo periodo)
– Wagner-Within
10
Metodi euristici
I metodi euristici ricercano la soddisfazione di almeno una delle
condizioni di ottimalità dell’EOQ:
– minimalità locale del costo medio per periodo (Silver-Meal),
– minimalità del costo per prodotto (least unit cost ),
– costi di mantenimento uguale ai costi di riordino (part period
balancing).
*come scorte, ma con domanda diversa
Raffaele Pesenti
11
Raffaele Pesenti
12
Silver - Meal
Silver - Meal
Siano
• K: costo fisso ordine
• h: costo mantenimento in un periodo
• ri: domanda da soddisfare nel periodo i-mo
• G(T): costo medio per periodo se si ordina lotto equivalente alla
domanda dei seguenti T periodi:
G(1) = K,
G(2) = (K+ h r2)/2,
.....
G(3) = (K+ h r2 + 2 h r3 )/3
G(j) = (K+ h r2 + 2 h r3 + ....+ (j-1) h rj )/j
Raffaele Pesenti
13
si riordina per soddisfare la domanda di j° periodi,
dove j° è il primo minimo locale, i.e., il numero più piccolo t.c.:
G(j°-1) > G(j°)
e
G(j°) ≤ G(j°+1)
Esempio: sbarre motore a gabbia, K = 1000, h = 1
G(1) = 1000,
G(2) = (1000 + 210)/2 = 605,
G(3) = (1000 + 210 + 2*252)/3 = 571.3,
G(4) = (1000 + 210 + 2*252 + 3*252)/4 = 617.5
minimo locale in j°=3,
il giorno 5 devono essere disponibili le sbarre anche per il 6 e il 7
Raffaele Pesenti
Least unit cost
Least unit cost
si riordina per soddisfare la domanda di j° periodi,
dove j° è il primo minimo locale, i.e., il numero più piccolo t.c.:
G(j°-1) > G(j°)
e
G(j°) ≤ G(j°+1)
Siano
• K: costo fisso ordine
• h: costo mantenimento in un periodo
• ri: domanda da soddisfare nel periodo i-mo
• G(T): costo unitario per periodo se si ordina lotto equivalente
alla domanda dei seguenti T periodi:
G(2) = (K+ h r2)/(r1 +r2),
G(1) = K/ r1 ,
.....
G(3) = (K+ h r2 + 2 h r3 )/(r1 +r2+ r3)
G(j) = (K+ h r2 + 2 h r3 + ....+ (j-1) h rj )/ (r1 +r2+...+ rj)
Raffaele Pesenti
14
Esempio: sbarre motore a gabbia, K = 1000, h = 1
G(1) = 1000/189=5.3,
G(2) = (1000 + 210)/(189+210) = 3.0,
G(3) = (1000 + 210+ 2*252)/(189+210+252) = 2.6,
G(4) = (1000 + 210+ 2*252 + 3*252)/(189+210+252+252) = 2.7,
minimo locale in j°=3,
il giorno 5 devono essere disponibili le sbarre anche per il 6 e il 7
15
Raffaele Pesenti
16
Part period balancing
Part period balancing
si riordina per soddisfare la domanda di j° periodi,
dove j° è il primo minimo locale del valore
|K- G(j)|
Siano
• K: costo fisso ordine
• h: costo mantenimento in un periodo
• ri: domanda da soddisfare nel periodo i-mo
• G(T): costo di mantenimento se si ordina lotto equivalente alla
domanda dei seguenti T periodi:
G(1) =0,
G(2) = h r2 ,
.....
G(3) = h r2 + 2 h r3
G(j) = h r2 + 2 h r3 + ....+ (j-1) h rj
Raffaele Pesenti
Esempio: sbarre motore a gabbia, K = 1000, h = 1
G(1) = 0,
G(2) = 210,
G(3) = 210+ 2*252 = 714,
G(4) = 210+ 2*252 + 3*252 = 1470,
minimo locale in j°=3,
il giorno 5 devono essere disponibili le sbarre anche per il 6 e il 7
17
Raffaele Pesenti
Commenti
Wagner - Within
• in questo caso tutte le euristiche forniscono lo stesso risultato. In
genere Silver - Meal è quella che fornisce risultati migliori, ma
per la sua semplicità la part period balancing è la più usata;
• negli esempi si è calcolato la dimensione del primo ordine e
utilizzano solo i dati per i pochi giorni successivi, le euristiche
vanno riapplicate a partire dal primo giorno per cui non sia
hanno a disposizione scorte, i.e, il giorno 8;
• si ordina sempre per soddisfare un numero esatto di periodi, non
conviene fare altrimenti.
Raffaele Pesenti
18
19
• Metodo esatto che suppone di conoscere la domanda per tutto
l’orizzonte rispetto al quale si vuole ottimizzare.
Siano
• K: costo fisso ordine
• h: costo mantenimento in un periodo
• ri: domanda da soddisfare nel periodo i-mo
• c(i,j): costo d’ordine e di mantenimento pagato per un lotto che
soddisfa la domanda dei periodi da i a (j-1), e.g.,:
c(1,2) =K,
c(1,3) = K+ h r2 ,
c(2,5) = K+ h r3 + 2 h r4
.....
Raffaele Pesenti
20
Reti
Wagner - Within
Una rete G(N,A) è costituita da:
sia T la lunghezza dell’orizzonte su cui si vuole ottimizzare,
si deve determinare la sequenza di costi c(i,j) t.c. sia minima la
somma:
c(1,i1) + c(i1,i2) + c(i2,i3) + ... + c(ik,T+1).
Tale problema corrisponde a determinare il percorso minimo su
una rete aciclica e può essere risolto attraverso la
programmazione dinamica.
– un insieme N di nodi, in questo caso i nodi sono i giorni dell’orizzonte più
uno, |N| = T+1;
– un insieme A di archi orientati (i,j) con i,j∈ N che esprimono l’esistenza di
una relazione tra una coppia di nodi, in questo caso gli archi esprimono il
fatto che in i si ha a disposizione prodotti per soddisfare tutta e sola la
domanda fino a j-1;
– un insieme C di pesi c(i,j) associati ad ogni singolo arco, in questo caso i
pesi sono i costi delle scorte da i a j-1.
Una rete ha una ovvia rappresentazione grafica:
1
Raffaele Pesenti
21
3
4
Raffaele Pesenti
Percorso a costo minimo
22
Percorso a costo minimo
Esempio: sbarre motore a gabbia su T=6 giorni (dal 5 al 11),
sia f(i) il cost-to-go (costo minimo dal giorno i a T+1)
f(4) = min{c(4,5) + f(5), c(4,6) + f(6), c(4,7) + f(7)}=
= min{1000+ 1252, (1000 + 252)+ 1000,
(1000 + 252 + 2*252) + 0} = 1756
f(7) = 0
f(6) = min{c(6,7) + f(7)} = 1000 + 0 = 1000
se al quarto giorno si deve ordinare, conviene ordinare anche per rimanenti;
f(3) = min{c(3,4) + f(4), c(3,5) + f(5), c(3,6) + f(6), c(3,7) + f(7)}=
= min{1000+ 1756, (1000 + 252)+ 1252,
(1000 + 252 + 2*252) + 1000,
(1000 + 252 + 2*252 + 3*252) + 0} = 2504
se al sesto giorno si deve ordinare, si ordina solo per il giorno stesso
f(5) = min{c(5,6) + f(6), c(5,7) + f(7)}=
= min{1000+ 1000, (1000+ 252) + 0} = 1252
se al terzo giorno si deve ordinare, conviene ordinare anche per il quarto e
quindi ricevere la merce di nuovo il quinto giorno;
se al quinto giorno si deve ordinare, conviene ordinare anche per il sesto
Raffaele Pesenti
2
23
Raffaele Pesenti
24
Percorso a costo minimo
Commenti
f(2) = min{c(2,3) + f(3), c(2,4) + f(4), c(2,5) + f(5), c(2,6) + f(6),
c(2,7) + f(7)} = min{1000+ 2504,
(1000 + 252)+ 1756, (1000 + 252 + 2*252) + 1252,
(1000 + 252 + 2*252 + 3*252) + 1000,
(1000 + 252 + 2*252 + 3*252 + 4*252) + 0} = 3008
se al secondo giorno si deve ordinare, conviene ordinare anche per il terzo e
quindi ricevere la merce di nuovo il quarto giorno;
f(1) = min{c(1,2) + f(2), c(1,3) + f(3), c(1,4) + f(4), c(1,5) + f(5), } =
= min{1000+ 3008, (1000 + 210)+ 2504, (1000 + 210 + 2*252) +
1756, (1000 + 210 + 2*252 + 3*252) + 1252} = 3470
• il numero di operazioni che si devono compiere per calcolare il
percorso minimo cresce con il quadrato di T, in realtà esistono
procedure più efficienti che crescono con TlogT;
• è possibile evitare alcuni confronti nei minimi (come avvenuto
nel calcolo di f(1)) escludendo le situazioni in cui si è certi che i
costi di mantenimento eccedono i costi di riordino.
al primo giorno conviene ordinare anche per il secondo e il terzo,
quindi ricevere la merce di nuovo il quarto giorno.
Raffaele Pesenti
25
Raffaele Pesenti
Verifica
MRP a capacità finita
Sia la domanda da soddisfare temporaneamente superiore alle
capacità del sistema, allora si deve:
– verificare se anticipando gli ordini si può soddisfare la
domanda, altrimenti qualche consegna sarà necessariamente
in ritardo;
– decidere quali ordini anticipare e di quanto.
Il problema è in generale estremamente complesso e viene
risolto in maniera euristica riconducendosi ad uno dei metodi
precedenti, anche se non vale più la condizione per cui conviene
avere lotti la cui dimensione soddisfa la domanda complessiva
di un numero esatti di periodi.
Raffaele Pesenti
26
27
Condizione necessaria che si possa soddisfare la domanda senza
ritardo è che, ad ogni istante di tempo, la domanda cumulata non
ecceda la capacità cumulata.
Esempio:
T = 6, D={30, 40, 50, 40, 40, 60}, C={45, 45, 45, 45, 45, 45}
t=1 30≤ 45
t=2 30 + 40 = 70 ≤ 45 + 45 = 90
t=3 30 + 40 + 50 = 120≤ 45 + 45 + 45 =135
t=4 30 + 40 + 50 +40 = 160≤ 45 + 45 + 45 +45 = 180
t=5 30 + 40 + 50 +40 +40 = 200≤ 45 + 45 + 45 +45 +45 = 225
t=6 30 + 40 + 50 +40 +40 + 60 = 260≤ 45 + 45 + 45 +45 +45 +45 = 270
domanda soddisfacibile. Se invece la domanda complessivamente aumentasse
di più di 10 unità non sarebbe possibile soddisfarla senza introdurre ritardi.
Raffaele Pesenti
28
Anticipazione
Lot-sizing
Procedendo all’indietro a partire dall’ultimo giorno si anticipa la
domanda che non può essere soddisfatta.
Esempio:
T = 6, D={30, 40, 50, 40, 40, 60}, C={45, 45, 45, 45, 45, 45}
t=6 da 60 a 45, si anticipano 15 unità al periodo precedente da cui
D={30, 40, 50, 40, 55, 45}
t=5 da 55 a 45, D={30, 40, 50, 50, 45, 45}
t=4 da 50 a 45, D={30, 40, 55, 45, 45, 45}
t=3 da 55 a 45, D={30, 50, 45, 45, 45, 45}
t=2 da 50 a 45, D={35, 45, 45, 45, 45, 45}
Raffaele Pesenti
29
Raffaele Pesenti
30
Metodo esatto
Capacità comuni a più prodotti
Alcuni prodotti possono competere per capacità comuni, e.g., le
sbarre e gli anelli del motore a gabbia potrebbero essere prodotti
dalle stesse squadre. In questo caso conviene esprimere la
domanda in termini aggregati (sbarre e anelli assieme) di
capacità, eseguire l’MRP e quindi disaggregare.
Raffaele Pesenti
La domanda periodo per periodo è non superiore alla capacità
del sistema, si può quindi applicare un metodo qualunque di lotsizing, avendo cura di aggiungere il vincolo che i singoli lotti
non eccedano le capacità di produzione.
In Wagner - Within questo significa, ad esempio, che da un
nodo si potranno raggiungere solo i nodi più vicini, quelli la cui
domanda complessiva fino a tal punto non eccede la dimensione
massima di un lotto in un periodo.
Nel caso dell’esempio, banalmente, ogni nodo sarebbe collegato
solo con il successivo.
31
Parametri
• T: orizzonte
• N: insieme componenti/subassemblati della distinta base
• Ki: costi ordine/set-up componente i
• hi: costi mantenimento componente i
• rt: domanda prodotto finito periodo t
• cjt: capacità disponibile risorsa j periodo t
• aij : capacità risorsa j per produrre un’unità i
• s(i): subassemblato padre di i
• mis(i): molteplicità di componenti i richiesti da s(i)
• l(i): lead time componente i
• M: big M
Raffaele Pesenti
32
Metodo esatto
Metodo esatto
Obiettivo:
Variabili
• xit: quantità prodotta/acquisita componente i periodo t (variabili
continue)
• yit indicatore di ordine/produzione componente i periodo t
(variabili binarie)
• Iit disponibilità a magazzino componente i periodo t (variabili
continue)
• minimizzazione costi Σi∈NΣt∈T (Kiyit + hiIit)
Vincoli:
• soddisfare la domanda prodotto finito i=1
1≤t≤T
I1(t-1) +x1t = I1t+rt
• soddisfare la domanda componenti intermedi
1≤t≤T 2≤i≤N
Ii(t-1) +xit = Iit+ Σk∈s(i) mik xk(t+l(k) )
• considerare i set-up
1≤t≤T 2≤i≤N
xit ≤ M yit
• rispettare le capacità
Σi∈N aij xit ≤ cjt 1 ≤ t ≤ T
• positività/interezza variabili le capacità
Raffaele Pesenti
33
Raffaele Pesenti
Commenti
yit∈{0,1}
34
Stocasticità
• la presenza di variabili binarie rende il problema estremamente
complesso da risolvere in generale, però molto spesso ….
• molti costi di set-up possono essere trascurati, quindi si può
ridurre il numero delle variabili binarie;
• trascurando i tutti costi di set-up si ha una soluzione ammissibile
che può essere utilizzata come punto di partenza di una
soluzione euristica in due passi:
– si ottimizzano i costi di mantenimento, trascurando i set-up;
– attraverso una ricerca locale, a piccoli gruppi di componenti a partire da
quelli più in alto nella BOM, si ottimizzano i set-up rispettando le risorse.
Raffaele Pesenti
xit , Iit ≥ 0
1≤j≤C
35
• I sistemi MRP suppongono tutto deterministico. In caso di
stocasticità della domanda può essere opportuno prevedere una
scorta di sicurezza per i prodotti finali o comunque per i
subassemblati più complessi per cui sia ragionevole farlo
(aumentando fittiziamente la domanda) e propagarla attraverso
l’esplosione della distinta base;
• analogamente ci si comporta nel caso i cui i lotti possono
includere pezzi difettosi.
Raffaele Pesenti
36
Rolling horizon e nervousness
Altri problemi
I sistemi MRP nel caso siano applicati con una politica di rolling
horizon (sempre consigliabile) possono presentare:
– indicazioni significativamente diverse sulle dimensioni dei
lotti (non convergenti) a secondo dell’orizzonte considerato
soprattutto in presenza di domanda periodica;
– nervousness, cambiare i periodi in cui effettuare gli ordini.
Conviene sempre inserire termini che penalizzino il
cambiamento delle decisioni, e.g., i costi di set-up possono
essere aumentati nei giorni non previsti.
Raffaele Pesenti
37
• l’MRP deve interagire con il sw di CRP (Capacity Requirement
Planning) per gestire al meglio le risorse. Purtroppo non ci sono
metodologie esatte efficienti di CRP e quindi tali problemi sono
di solito gestiti in modo euristico molto elementare dai sw
commerciali;
• l’MRP suppone lead time costanti, mentre questi possono
dipendere dalla dimensione del lotto;
• l’MRP funziona soltanto se i dati su cui si basa sono aggiornati,
cosa che spesso non avviene nelle aziende.
Raffaele Pesenti
38