Roberto Cigolini ([email protected]) · quello di Karni Roll, il metodo risolutivo è...

55
I modelli di pianificazione aggregata Roberto Cigolini ([email protected])

Transcript of Roberto Cigolini ([email protected]) · quello di Karni Roll, il metodo risolutivo è...

I modelli di pianificazione aggregata

Roberto Cigolini ([email protected])

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

3

Introduzione

• Lo spazio dell’analisi:

Unità produttive

Tempo fisico

Caricomacchina

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