Roberto Cigolini ([email protected]) · quello di Karni Roll, il metodo risolutivo è...
Transcript of Roberto Cigolini ([email protected]) · quello di Karni Roll, il metodo risolutivo è...
2
Agenda
• Introduzione• I modelli per la programmazione aggregata della produzione in
contesti multi ‐ prodotto– Il modello di PL intera– Il modello di Karni‐Roll– Il modello di Aucamp
4
Introduzione
• Le “coordinate” della programmazione aggregata:– Obiettivo: ottenere il Master Production Schedule (MPS o Piano Principale di
Produzione) per i prodotti finiti– Orizzonte: tra i sei e i diciotto mesi– Passo: mensile, quindicinale o settimanale– Oggetto: le famiglie produttive di prodotti
• Nel ciclo di Pianificazione e Controllo, la programmazione aggregata è collocata tra :– La pianificazione strategica– La programmazione operativa
5
Introduzione
• Il MPS “fisicamente” è una tabella / matrice ….
Periodi di tempo
Prodotto 2Prodotto 1
6
Introduzione
• Un “buon” modello di Programmazione Aggregata “compila” la tabella del MPS in modo efficiente ...
• ... ossia minimizza il costo totale del piano, dato (tipicamente) da:– costo di mantenimento a scorta – costo di setup
• indipendente dalla sequenza• dipendente dalla sequenza• dipendente dalla “storia”
7
Il modello di PL intera
• Obiettivo: – minimizzazione del costo dell’eccesso di produzione rispetto alla domanda e
del costo di set‐up, proiettati su tutto l’orizzonte di pianificazione
• Vincoli:– assenza di backlog (si impone che l’eccesso di produzione rispetto alla
domanda positivo in ogni periodo)– rispetto del limite di capacità produttiva in tutti i periodi– assegnamento di un setup tutte le volte che un prodotto è immesso in
produzione
8
Il modello di PL intera
• Notazione:– i indice di prodotto– t indice di periodo– D(i,t) quantità ordinata del prodotto i nel periodo t
(domanda commerciale, ordini e previsioni)– X(i,t) produzione del prodotto i nel periodo t– CP(t) capacità produttiva nel periodo t– SU(i,t) costo di setup del prodotto i nel periodo t– Mant(i.t) costo di mantenimento a scorta del prodotto i nel periodo t
9
Il modello di PL intera
• L’eccesso di produzione rispetto alla domanda e(i,t) può essere calcolato (per ogni prodotto) come differenza tra:– la sommatoria (fino al periodo considerato) delle quantità prodotte– la sommatoria (fino al periodo considerato) delle quantità ordinate
• In simboli:
t
j
t
jjiDjiXtie
1 1),(),(),(
10
Il modello di PL intera
• La funzione obiettivo risulta la somma estesa a tutti i prodotti e a tutti i periodi di:– eccesso di produzione [e(i,t)] per il costo di mantenimento corrispondente
[Mant(i,t)] – costo unitario di setup [SU(i,t)] per il numero di setup eseguiti. Si esegue un
setup ogni volta che si effettua il “lancio“ in produzione di un prodotto
• In simboli:
ti
tiManttietiSUtikZ,
),(),(),(),()min(
11
Il modello di PL intera
• Il primo vincolo riguarda l’assenza di backlog:– si impone che l’eccesso di produzione rispetto alla domanda positivo in ogni
periodo
• Il secondo vincolo riguarda il rispetto della capacità produttiva in tutti i periodi:
titie , 0),(
i
ttCPtiX )(),(
12
Il modello di PL intera
• Il terzo vincolo assegna un setup ad ogni lancio in produzione di un prodotto:
– in questo modo, se in un certo periodo si produce un prodotto (ossia se X(i,t), k(i,t) vale 1 e nella funzione obiettivo “scatta” il costo di setup SU(i,t).
0),( 10),( 0
),(tiXsetiXse
tik
13
Il modello di PL intera
• Critiche al modello di PL intera:– Critica tecnica:
• nel caso di problemi di dimensioni “reali” sono necessarie molte variabili intere • i tempi di elaborazione sono “troppo” lunghi
– Critiche architetturali:• i setup sono interpretati solo come costi, senza considerare il tempo di setup,
ossia la sottrazione di capacità produttiva• il costo di setup è valutato solo come costo di lancio in produzione, senza tener
conto della sequenza produttiva o della “storia”
14
Il modello di Karni‐Roll
• Obiettivo: – determinazione della matrice dei lotti di produzione da lanciare in ciascun
periodo
• Vincoli:– assenza di backlog– rispetto del limite di capacità produttiva in tutti i periodi– assegnamento di un setup tutte le volte che un prodotto è immesso in
produzione
15
Il modello di Karni‐Roll
• Osservazioni– la formulazione analitica è del tutto simile a quella di PL intera– non viene superato il problema del setup, visto come semplice lancio in
produzione, indipendentemente dalla sequenza di produzione– a differenza del modello di PL intera (che è ottimizzante), il metodo risolutivo
è euristico• non fornisce la migliore soluzione possibile, dato l’obiettivo e i vincoli, ma una
soluzione “ragionevolmente buona” …• … per contro è maggiormente applicabile in pratica
16
Il modello di Karni‐Roll
• La procedura di funzionamento:– si parte dalla soluzione offerta dall’algoritmo di Wagner‐Whitin (EOQ
dinamico)• tale soluzione è il limite inferiore del costo, in quanto effettua un caricamento a
capacità infinita
– se tale soluzione è fattibile, l’algoritmo termina– se tale soluzione è infattibile …
• il vincolo di capacità produttiva è violato in uno o più periodi
– … l’algoritmo cerca una soluzione ammissibile effettuando degli spostamenti (shift) di quantità da un periodo all’altro dell’orizzonte
17
Il modello di Karni‐Roll
• Il concetto di shift:
Limite dicapacità
Periodi di tempo
Spostamento anticipatorio(left shift)
Spostamento posticipatorio(right shift)
18
Il modello di Karni‐Roll
• Nota bene:
Periodi di tempo
Quando l’infattibilità si manifesta nel primo periodo, il problema è a priori inammissibile, a meno di non rilassare il vincolo di assenza di backlog
19
Il modello di Karni‐Roll
• Caratteristiche degli shift:– dimensione, ossia la quantità (in pezzi o in frazione della capacità) che deve
essere spostata– direzione, ossia il numero di periodi (a destra o a sinistra) di cui si effettua lo
spostamento
• Obiettivi degli shift:– eliminazione dell’infattibilità al minimo costo– riduzione del costo complessivo del piano …
• costo totale di setup e costo totale di mantenimento a scorta
– … attraverso modifiche della matrice del piano
20
Il modello di Karni‐Roll
• Regole degli shift:– spostare la minor quantità possibile per eliminare le infattibilità– spostare la maggior quantità possibile per ridurre il costo di mantenimento– spostare tutta la quantità possibile per:
• eliminare un setup• ridurre il costo di mantenimento senza generare nuovi setup
– spostare a destra (posticipare) la maggior quantità possibile senza generare infattibilità
– spostare a sinistra (anticipare) la minor quantità possibile senza generare infattibilità
21
Il modello di Karni‐Roll
• L’effetto di ciascuno shift si valuta in termini di riduzione del costo del piano (C) e sovrapponendo gli effetti.
• In simboli, considerando il singolo shift …• quindi riferendosi ad un assegnato prodotto, oggetto dello shift (per il quale si è
omesso l’indice i):
analizziamo l’espressione ...
)()()( tSUtShifttMantC
22
Il modello di Karni‐Roll
)()()( tSUtShifttMantC
quantità spostata (pezzi o frazione della capacità)
periodo “di partenza” della quantità spostata
periodo “di arrivo” della quantità spostata
Moltiplicatore di creazioneo eliminazione di un setup
t
1;0;1
23
Il modello di Karni‐Roll
• Osservazioni:– C rappresenta la diminuzione del costo totale del piano dovuta allo shift …
• quindi per esempio, quando si sposta a sinistra (indietro nel tempo; cioè > t), il costo di mantenimento diminuisce e dunque C è positivo
– il moltiplicatore può assumere tre valori:• ‐1 quando si “crea” un setup, per esempio spostando parte di un lotto e nel
periodo destinazione c’è un altro prodotto• +1 quando si “elimina” un setup, per esempio spostando un lotto intero e nel
periodo destinazione c’è lo stesso prodotto• 0 in caso “neutro”
24
Il modello di Karni‐Roll
• Esempi:
Spostamento con creazione di
un setup. = -1
Spostamento con eliminazione di un setup. = +1
A B C
A B C
YX
BY C X
ZY
Spostamento“neutro”. = 0
25
Il modello di Karni‐Roll
• Gli shift sono “cablati” in 5 subalgoritmi:– subalgoritmo 1: elimina tutte le infattibilità tra il periodo 1 e un periodo t
qualsiasi (t>1)– subalgoritmo 2: elimina tutte le infattibilità di una data soluzione (applicando
ricorsivamente il subalgoritmo 1)– subalgoritmo 3: riduce i costi di setup con shift verso sinistra (accorpando i
lotti)– subalgoritmo 4: riduce i costi di mantenimento con shift verso destra
(pianificando “al più tardi”)• dopo ogni shift richiama il subalgoritmo 3
– subalgoritmo 5: introduce shift forzati
26
Il modello di Karni‐Roll
• Il flusso …
Soluzione iniziale di Wagner-Whitin
Subalgoritmo 2
Subalgoritmo 4
Subalgoritmo 3
Subalgoritmo 5
Subalgoritmo 1
Fine
Piano a capacità infinita
Piano fattibile
Piano con meno setup
Piano “buono”
Piano con meno scorte
Chiamate ricorsive periodo
per periodoPi
ano
“var
iato
”
27
Il modello di Karni‐Roll
• L’andamento “tipico” del costo totale del piano lungo il flusso principale
Subalgoritmo 2 Subalgoritmo 3 Subalgoritmo 4
Costo iniziale di Wagner Whitin
Si rimuovono le infattibilità e il costo cresce
Si riducono i setup e il costo diminuisce
Si riducono le scorte e il costo diminuisce ulteriormente
28
Il modello di Karni‐Roll
• Il subalgoritmo 5 serve a proteggersi dalle cosiddette “buche di potenziale”
Soluzione iniziale
Parametro
Soluzione trovata dall’algoritmo
Ottimo di costo “vero”,
che l’algoritmo però non
“vede”
“Percorso” dell’algoritmo
29
Il modello di Karni‐Roll
• Vantaggi e svantaggi del modello:– è assai più efficiente del modello di PL intera
• la funzione obiettivo peggiora di circa l’1% a fronte di una riduzione del tempo di elaborazione di circa 140 volte
– l’elaborazione è comunque piuttosto complessa• vi sono molti subalgoritmi che “ricircolano”• il tempo di leaborazione resta comunque piuttosto “lungo”
– comunque non si tengono in considerazione i tempi di setup• una soluzione potrebbe risultare ulteriormente infattibile una volta introdotti il
trade‐off tra produzione e setup
30
Il modello di Karni‐Roll
• Vantaggi e svantaggi del modello:– le prestazioni sono molto influenzate dallo shift factor (SF),
• ossia dal rapporto tra il costo di setup e il costo di mantenimento:
it
itit Mant
SUSF
31
Il modello di Karni‐Roll
• Vantaggi e svantaggi del modello:– Per shift factor bassi
• il costo di mantenimento è prevalente su quello di setup
– la soluzione di partenza di Wganer Whitin è poco significativa• banalmente si colloca la produzione nel periodo in cui si manifesta la domanda
– Per shift factor alti, le prestazioni del modello risultano complessivamente “scarse”• una volta introdotti i setup (che non sono considerati nel modello) il vincolo di
capacità potrebbe risultare comunque violato
32
Il modello di Aucamp
• Obiettivo: • determinazione della matrice dei lotti di produzione da lanciare in
ciascun periodo, indicando le quantità prodotte:– in orario regolare– in straordinario– in subfornitura
33
Il modello di Aucamp
• Osservazioni– la formulazione analitica è del tutto simile a quella di PL intera– a differenza del modello di PL intera (che è ottimizzante), e analogamente a
quello di Karni Roll, il metodo risolutivo è euristico – i setup sono trattati non come un costo vivo ma come una riduzione di
capacità produttiva
per semplicità si analizza il caso “mono prodotto”, in cui si ragiona con una sola famiglia produttiva
34
Il modello di Aucamp
• Agenda:– equazioni di bilancio
• bilancio dei materiali• bilancio della manodopera• vincoli sui setup
– funzione obiettivo• costo totale attualizzato del piano
– costo della manodopera
– moltiplicatore del lotto• bilanciamento addizionale per la politica di lot sizing• ulteriori vincoli sui setup
35
Il modello di Aucamp
• Bilancio dei materiali:
tttttt DSUBPOTPREGINVINV 1
Scorte totali alla fine del periodo corrispondente
Ordinato (domanda) complessiva di periodo
Quantità prodotta in orario regolare
Quantità prodotta in orario starordinario
Quantità prodotta in subfornitura
36
Il modello di Aucamp
• Bilancio della manodopera:
tttt FIREHIREWORKERSWORKERS 1
Addetti disponibili durante il periodo corrispondente
Numero di nuovi assunti all’inizio del periodo
Numero di addetti che lasciano il servizio
37
Il modello di Aucamp
• Legame produzione ‐ tempo:
tt PREGTIMEMHPREG
Tempo standard di lavorazione unitario (h/pz)
Nota bene: MHPREG e MHPOT
non includono (ovviamente) i tempi
di setup
Ore uomo dedicate alla produzione in orario regolare
tt POTTIMEMHPOT
Ore uomo dedicate alla produzione in orario straordinario
38
Il modello di Aucamp
• Vincoli aggiuntivi sui setup:
tttt WORKERSHOURSSUREGMHPREG
Ore uomo dedicate alla produzione in orario regolare
Ore uomo dedicate al setup in orario regolare
Ore totali disponibili in orario regolare per operatore
39
Il modello di Aucamp
• Vincoli aggiuntivi sui setup:
ttttt WORKERSHOURSfSUOTMHPOT
Ore uomo dedicate alla produzione in orario straordinario
Ore uomo dedicate al setup in orario straordinario
Ore totali disponibili in orario regolare per operatore
Rapporto di elasticità della manodopera (al più 0,3)
40
Il modello di Aucamp
• La funzione obiettivo– consiste nella minimizzazione dei costi totali attualizzati relativi a tutto
l’orizzonte di pianificazione
– Attenzione al tasso di attualizzazione (r) che deve essere riportato sulla base temporale corrispondente (ad es. mensile, settimanale ecc.)
T
ttt
rCOSTZ
1 )1()min(
41
Il modello di Aucamp
• A proposito del tasso di attualizzazione …– se si dispone del tasso annuo “i” (per esempio il 5%) ...– … ragionando su base mensile, “r” risulta:
• in teoria:
• in pratica, siccome 1)1()1(1 12
112 irriaxx a 1)1(
ir 121
42
Il modello di Aucamp
• La funzione di costo:
)( ttMATttSUB
tFIREtHIREt
POTPREGCWAGESSUBCFIRECHIRECCOST
Costo di assunzione e addestramento di ogni nuovo addetto
Costo di licenziamento di ogni nuovo addetto
Costo unitario di subfornitura
Salario della manodopera impegnata
Costo unitario variabilediretto (materiali,
energia ecc.)
43
Il modello di Aucamp
• Il costo della manodopera (WAGES):
Costo orario per addetto in orario regolare
Costo per ogni ora di straordinario lavorata
Ore dedicate alla produzione e al setup in orario straordinario
)( ttOT
ttREGt
SUOTMHPOTCWORKERSHOURSCWAGES
44
Il modello di Aucamp
• Osservazioni sul costo della manodopera:– la manodopera è considerata come un a risorsa molto rigida in orario
regolare• il costo è calcolato sulla disponibilità ex ante della risorsa, e non a consuntivo
– in straordinario, il costo della manodopera è invece proporzionale alle ore effettivamente lavorate (sia per produrre sia per fare setup) cosa che equivale a ritenere assai flessibile la manodopera in tale orario
– i costi della manodopera nei due orari sono differenziati• si può considerare la perdita di efficienza in straordinario ecc.
45
Il modello di Aucamp
• Osservazioni generali sul modello:– il setup è considerato NON attraverso un costo esplicito, ma come
sottrazione di capacità • i vincoli aggiuntivi impongono che le ore totali disponibili siano assegnate o alla
produzione o al setup
– il costo di mantenimento NON è una voce esplicita, ma è tradotto dal tasso barriera• in questo modo si considerano anche i costi accessori di mantenimento
(obsolescenza ecc.)
Fino a questo punto la struttura del modello è rigorosamente di PL ...
46
Il modello di Aucamp
• Quindi:– la soluzione ottima consisterà nel porre uguale a ZERO le ore di setup in
orario regolare e in straordinario• infatti i setup consumano risorse (le ore disponibili per periodo) senza pesare
nella funzione obiettivo
• Occorre introdurre la dimensione del lotto– standard Q(i), per ogni prodotto– “perturbata”:
)()( iQkiQ tt
Moltiplicatore del lotto
47
Il modello di Aucamp
• Il moltiplicatore del lotto– è un “vettore” di variabili, una per ogni periodo dell’orizzonte di
pianificazione– deve essere determinato accanto alle tre variabili per periodo (PREG, POT e
SUB)– riflette la politica di lot sizing dell’azienda
occorre poi introdurlo nel modello ...
48
Il modello di Aucamp
• Equazione di bilanciamento addizionale di lot sizing:
– si verifica che la giacenza media (MINV) effettivamente sia superiore alla somma delle scorte di sicurezza e della metà del lotto
iit iQSSMINV )(
21
121
ttt INVINVMINV
49
Il modello di Aucamp
• Vincoli ulteriori sulle ore di setup:
t
tt k
PREGSUTPUSUREG
t
tt k
POTSUTPUSUOT
Ore uomo totali dedicate ai setup in orario regolare
Ore uomo totali dedicate ai setup in orario straordinario
Tempo medio di setup per unità di prodotto (calcolato
sul lotto standard)
50
Il modello di Aucamp
• Il termine SUTPU (set‐up per unit) si può stimare come:
tit
ti
t
iDiQiDiSUT
SUTPU
,
,
)()()()(
Domanda totale (ovvero produzione totale)
Tempo standard unitario di setup (dato tecnico)
Numero totale di lotti lanciati
Ore totali di setup
51
Il modello di Aucamp
• Estensioni del modello:– si può considerare la possibilità di effettuare consegne differite nel tempo
(backlog, bakorder):• il bilancio dei materiali diventa:
• parallelamente si modifica anche la funzione di costo:
11 tttttttt BODSUBPOTPREGINVBOINV
tBottMATtHIREt BOCPOTPREGCHIRECCOST )(...
52
Il modello di Aucamp
• Estensioni del modello:– si può introdurre una limitazione alla giacenza
• per esempio per considerare la limitata potenzialità ricettiva dei magazzini
– si può introdurre una limitazione alla subfornitura• per esempio per considerare la limitata capacità produttiva del terzista
MAXINVINVt
MAXSUBSUBt
53
Il modello di Aucamp
• Estensioni del modello:– si può introdurre una subfornitura differenziata:
• per tener conto che alcuni terzisti sono maggiormente competitivi sulle grandi forniture, altri sulle piccole:
• se
• si ha:
22
11
MINSUBSUBMAXSUBSUB
21 SUBSUB CC
2211 SUBCSUBC SUBSUB
54
Il modello di Aucamp
• Funzionamento della procedura:– il modello è strutturalmente di PL, a meno dei termini di perturbazione del
lotto (k), quindi:
Soluzione iniziale di PL con k=1 per tutti i prodotti
Si genera una perturbazione del vettore k e si risolve di
nuovo
Si valuta il miglioramento della funzione obiettivo
Miglioramento consistente
Fine
Miglioramento limitato
55
Il modello di Aucamp
• Considerazioni conclusive– la particolarità del modello risiede nella gestione del setup
• come riduzione della capacità in termini quantitativi• come costo di mancata produzione implicito in termini di funzione obiettivo
– tuttavia:• i costi “vivi” di setup non sono rappresentati• il tempo di setup è comunque indipendente dalla sequenza