Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle...

23
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di laurea L1 in Ingegneria Gestionale e L2 in Ingegneria Informatica III ciclo

Transcript of Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle...

Page 1: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Sistemi di Supporto alle

Decisioni I

Dynamic Programming

Chiara Mocenni

Corso di laurea L1 in Ingegneria Gestionale e L2 in Ingegneria Informatica

III ciclo

Page 2: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Il problema• Le decisioni vengono prese in periodi discreti• L’esito di ciascuna decisione non è completamente

predicibile ma può essere osservato prima che venga presa la successiva

• L’obiettivo è dunque quello di minimizzare un costo o di massimizzare una utilita’, cioe’ ottimizzare una espressione che rappresenta l’esito desiderabile

• Le decisioni non possono essere analizzate singolarmente dal momento che la singola decisione deve bilanciare il basso costo desiderato attuale e gli alti costi inevitabili futuri

Page 3: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• L’idea di base nella dynamic programming è quella di selezionare volta per volta la soluzione che minimizza la somma del prezzo al tempo attuale con il miglior costo che può essere atteso nei tempi successivi.

Page 4: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Le caratteristiche che compongono il problema sono:

• un sistema dinamico a tempo discreto del tipo

xk+1 = fk(xk, uk, wk)

• variabili aleatorie wk indipendenti che dipendono da xk e uk;

• dei vincoli di controllo, ad esempio imponendo che uk assuma valori positivi o nulli;

• una funzione di costo additivo del tipo:

kkk

N

=kkNN w,u,xg+xgE

1

0

Page 5: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

dove gk, k = 0, ..., N sono funzioni;

• delle leggi ottimizzazione sul controllo, necessarie per la scelta di uk per ogni k ed ogni possibile valore di xk;

Page 6: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• k è l’indice del tempo discreto;

• xk è lo stato del sistema e riassume le informazioni passate che sono rilevanti per l’ottimizzazione futura;

• uk è la variabile di controllo o di decisione da selezionare al tempo k conoscendo lo stato xk;

• wk è una variable aleatoria;

• N è l’orizzonte temporale o il numero di volte in cui viene presa la decisione.

Page 7: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• La soluzione del problema consiste in una successione di funzioni, chiamate leggi di controllo o politiche

110 ,...,, N

Dove k mappa gli stati xk nelle decisioni:

kkk xu

Page 8: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Formalmente

• Dato uno stato iniziale x0, il problema e’ quello di individuare una legge di controllo ammissibile che minimizza il funzionale di costo:

• con il vincolo che xk+1 = fk(xk, uk, wk), k=0,1,...,N-1;

• le funzioni gk sono note.

kkkk

N

kkNN wxxgxgExJ

Nkkw

,,1

00

1,...,0

Page 9: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• Per un dato stato iniziale x0, una legge di controllo ottima (una successione ottima di decisioni) * e’ quella che minimizza il costo corrispondente

• dove e’ l’insieme di tutte le leggi di controllo.

00 min* xJxJ

Page 10: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• Il costo ottimo corrispondente allo stato iniziale x0 viene indicato con J*(x0).

• Cioe’ J* e’ un funzionale che associa ad ogni stato iniziale x0 il costo ottimo J*(x0) e viene pertanto chiamato funzionale di costo ottimo.

Page 11: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Esempio

• Si considera il problema di fare l’ordine di un certo quantitativo di oggetti all’inizio di ciascun degli N periodi così da soddisfare una domanda di mercato di tipo stocastico. Siano:– xk lo stock della merce disponibile in magazzino all’inizio del k-

esimo periodo;– uk lo stock ordinato ed immediatamente venduto all’inizio del

periodo k-esimo;– wk la richiesta di mercato durante il k-esimo periodo con una certa

distribuzione di probabilità associata ed assumiamo che w0, w1, …, wN-1 siano indipendenti e che la domanda in eccesso sia evasa non appena ci sia sufficiente spazio in magazzino.

• Lo stock evolve secondo la seguente equazione tempo discreto:• xk+1 = xk + uk - wk

Page 12: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• Il costo della merce ad ogni periodo k è dato dalla somma di due contributi:

• il costo dell’acquisto cuk, dove c è il costo per unità ordinata;• un costo H(xk+1) che rappresenta la penalità per gli stock xk+1 > 0

alla fine del periodo (costo della merce in giacenza per eccesso di materiale in magazzino) o per xk+1 < 0 (costo per domanda non soddisfatta).

• Dall’equazione dell’evoluzione del sistema, possiamo scrivere il costo per periodo k come:

cuk + H(xk + uk – wk)• e il valore atteso totale del costo su N periodi è dato da:

kkk

N

=kk w–u+xH+cuE

1

0

Page 13: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• L’obiettivo è quello di minimizzare il costo mediante un’appropriata scelta di u0, …, uN-1 soggetto al vincolo uk ≥ 0, per k = 0, …, N-1, senza attendere di vedere il livelli di domanda. Ovviamente sarebbe meglio poter posporre l’ordinazione di uk fino al tempo k, quando il livello corrente xk sarà noto. Possiamo allora raccogliere l’informazione su tutte le decisioni ottime in ogni periodo e prendere poi la decisione nel momento in cui sara’ osservabile lo stato del sistema. Questo significa che non siamo interessati a scegliere i valori ottimi per l’ordine ma piuttosto nel trovare una regola ottima per la scelta dell’ordine uk in ciascun periodo k per ogni possibile valore dello stock xk.

Page 14: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• Matematicamente il problema è quello di trovare una sequenza di funzioni μk, k = 0, …, N-1, che mappano lo stock xk nell’ordine uk così da minimizzare il costo totale atteso. Il significato di μk per ogni k e per ogni possibile valore di xk è il seguente:

• μk(xk) = quantità di merce che deve essere ordinata al tempo k se lo stock è xk

Page 15: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• La dynamic programming si basa sul principio di ottimalità: sia π* = {μ0*, μ1*, ..., μN-1*} una legge di controllo ottima per il basic problem. Si consideri il sotto problema in cui siamo allo stato xi al periodo i e vogliamo minimizzare il costo per andare dal tempo i al tempo N ed assumiamo che quando usiamo π*, questa si presenti con probabilità positiva. Allora, la legge di controllo troncata {μi*, μi+1*, ..., μN-1*} è a sua volta ottima per il sotto-problema.

Page 16: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• Considerando il problema dell’inventario, analizziamo l’algoritmo per la determinazione dell’ordine dell’inventario ottimo partendo dall’ultimo periodo e procedendo a ritroso nel tempo (backward induction).

Page 17: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• Tempo N-1: si assume che all’inizio del periodo N-1 lo stock disponibile sia xN-1. In tale periodo, chi fa l’inventario dovrebbe ordinare, senza preoccuparsi di quello che e’ avvenuto nel passato, un quantitativo uN-1* = μN-1*(xN-1) che minimizza la somma del costo dell’ordine, della giacenza e della domanda non soddisfatta per l’ultimo periodo di tempo. Questo costo è uguale a E{cuN-1 + H(xN-1 + uN-1 – wN-1)} calcolato su wN-1. Denotiamo JN-1(xN-1) il minimo calcolato per uN-1 ≥ 0 di questa quantità.

Page 18: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• Tempo N-2: si assume che lo stock all’inizio del periodo N-2 sia

xN-2 e che il valore da ordinare sia uN-2 = μN-2*(xN-2) tale da

minimizzare non solo il costo atteso del periodo N-2 ma

piuttosto:

(il valore del costo atteso del periodo N-2) + (il valore del costo

atteso del periodo N-1, avendo a disposizione di una politica

ottima per il periodo N-1).

~

E{cuN-2 + H(xN-2 + uN-2 – wN-2)} + E{JN-1(xN-1)}

calcolato su wN-2 e sapendo che xN-1 = xN-2 + uN-2 – wN-2, il termine

E{JN-1(xN-1)} diventa E{JN-1(xN-2 + uN-2 – wN-2)}.

Page 19: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Dunque, il costo ottimo per gli ultimi due periodi,

sapendo di trovarsi nello stato xN-2, è dato da:

in cui il minimo è calcolato per ogni stock xN-2.

)w–u(xJ) w-uH(x cuEmin

)(xJ 2-N2-N2-N1-N2-N2-N2-N2-N

2

02-Nu2-N2-N

Nw

Page 20: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

• Tempo k: lo stock è xk e deve essere ordinato uk tale da minimizzare la quantità:

(il valore del costo atteso del periodo k) + (il valore del costo atteso del periodo k+1, …, N-1, avendo a disposizione di una politica

ottima per tutti questi periodi)

~

• Le funzioni Jk(xk) denotano il valore ottimo del costo atteso per i rimanenti periodi quando si parte dal periodo k con valore iniziale xk e sono calcolate in modo ricorsivo indietro nel tempo, partendo dal periodo N-1 fino al periodo 0. Il valore J0(x0) è il valore ottimo del costo atteso per il processo quando l’inventario iniziale è proprio x0. Durante il calcolo della politica ottima di inventario, i valori {μ0*(x0), μ1*(x1), ..., μN-1*(xN-1)} sono ottenuti minimizzando Jk(xk) per ogni possibile valore di k e di xk.

)w–u(xJ) w-uH(x cuEmin

)(xJ kkk1kkkkk0ku

kk

kw

Page 21: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Soluzione del problema dell’inventario

• Consideriamo il problema dell’inventario in cui sia gli stock da ordinare che la domanda sono varibili intere positive. Assumiamo inoltre che vi sia una capacita’ massima di immagazzinamento e che la domanda in eccesso venga persa. Dunque lo stock assume la forma

Xk+1=max(0, xk + uk – wk)

Page 22: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Dati del problema

• capacita’ massima di stock immagazzinato (xk+uk) = 2, • orizzonte temporale N = 3 periodi • costo per una unita’ di prodotto c = 1,• funzione di costo per periodo:

H(xk+uk–wk)=max(0, xk+uk–wk) + 3 max(0,wk–xk–uk),

• costo nello stato finale = 0,• lo stato iniziale x0 e’ noto,• la domanda wk ha sempre la stessa probabilita’ in ogni

periodo:p(wk=0)=0.1, p(wk=1)=0.7, p(wk=2)=0.2

Page 23: Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007 Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di.

Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa. 2006-2007

Risultati

Stage 0 (k = 0) Stage 1 (k = 1) Stage 2 (k = 2)

Stock in magazzino

Cost-to-go Quantità di merce da ordinare

Cost-to-go Quantità di merce da ordinare

Cost-to-go Quantità di merce da ordinare

0 4.9 1 3.3 1 1.7 1

1 3.9 0 2.3 0 0.7 0

2 3.35 0 1.82 0 0.9 0