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