Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Dynamic Programming Chiara Mocenni Corso di laurea L1 in Ingegneria Gestionale e L2 in Ingegneria Informatica III ciclo
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Il problema Le decisioni vengono prese in periodi discreti Lesito di ciascuna decisione non è completamente predicibile ma può essere osservato prima che venga presa la successiva Lobiettivo è dunque quello di minimizzare un costo o di massimizzare una utilita, cioe ottimizzare una espressione che rappresenta lesito 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
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Lidea 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.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Le caratteristiche che compongono il problema sono: un sistema dinamico a tempo discreto del tipo x k+1 = f k (x k, u k, w k ) variabili aleatorie w k indipendenti che dipendono da x k e u k ; dei vincoli di controllo, ad esempio imponendo che u k assuma valori positivi o nulli; una funzione di costo additivo del tipo:
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa dove g k, k = 0,..., N sono funzioni; delle leggi ottimizzazione sul controllo, necessarie per la scelta di u k per ogni k ed ogni possibile valore di x k ;
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa k è lindice del tempo discreto; x k è lo stato del sistema e riassume le informazioni passate che sono rilevanti per lottimizzazione futura; u k è la variabile di controllo o di decisione da selezionare al tempo k conoscendo lo stato x k ; w k è una variable aleatoria; N è lorizzonte temporale o il numero di volte in cui viene presa la decisione.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa La soluzione del problema consiste in una successione di funzioni, chiamate leggi di controllo o politiche Dove k mappa gli stati x k nelle decisioni:
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Formalmente Dato uno stato iniziale x 0, il problema e quello di individuare una legge di controllo ammissibile che minimizza il funzionale di costo: con il vincolo che x k+1 = f k (x k, u k, w k ), k=0,1,...,N-1; le funzioni g k sono note.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Per un dato stato iniziale x 0, una legge di controllo ottima (una successione ottima di decisioni) * e quella che minimizza il costo corrispondente dove e linsieme di tutte le leggi di controllo.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Il costo ottimo corrispondente allo stato iniziale x 0 viene indicato con J * (x 0 ). Cioe J * e un funzionale che associa ad ogni stato iniziale x 0 il costo ottimo J * (x 0 ) e viene pertanto chiamato funzionale di costo ottimo.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Esempio Si considera il problema di fare lordine di un certo quantitativo di oggetti allinizio di ciascun degli N periodi così da soddisfare una domanda di mercato di tipo stocastico. Siano: –x k lo stock della merce disponibile in magazzino allinizio del k- esimo periodo; –u k lo stock ordinato ed immediatamente venduto allinizio del periodo k-esimo; –w k la richiesta di mercato durante il k-esimo periodo con una certa distribuzione di probabilità associata ed assumiamo che w 0, w 1, …, w N-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: x k+1 = x k + u k - w k
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Il costo della merce ad ogni periodo k è dato dalla somma di due contributi: il costo dellacquisto cu k, dove c è il costo per unità ordinata; un costo H(x k+1 ) che rappresenta la penalità per gli stock x k+1 > 0 alla fine del periodo (costo della merce in giacenza per eccesso di materiale in magazzino) o per x k+1 < 0 (costo per domanda non soddisfatta). Dallequazione dellevoluzione del sistema, possiamo scrivere il costo per periodo k come: cu k + H(x k + u k – w k ) e il valore atteso totale del costo su N periodi è dato da:
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Lobiettivo è quello di minimizzare il costo mediante unappropriata scelta di u 0, …, u N-1 soggetto al vincolo u k 0, per k = 0, …, N-1, senza attendere di vedere il livelli di domanda. Ovviamente sarebbe meglio poter posporre lordinazione di u k fino al tempo k, quando il livello corrente x k sarà noto. Possiamo allora raccogliere linformazione 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 lordine ma piuttosto nel trovare una regola ottima per la scelta dellordine u k in ciascun periodo k per ogni possibile valore dello stock x k.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Matematicamente il problema è quello di trovare una sequenza di funzioni μ k, k = 0, …, N-1, che mappano lo stock x k nellordine u k così da minimizzare il costo totale atteso. Il significato di μ k per ogni k e per ogni possibile valore di x k è il seguente: μ k (x k ) = quantità di merce che deve essere ordinata al tempo k se lo stock è x k
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa 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 x i 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.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Considerando il problema dellinventario, analizziamo lalgoritmo per la determinazione dellordine dellinventario ottimo partendo dallultimo periodo e procedendo a ritroso nel tempo (backward induction).
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Tempo N-1: si assume che allinizio del periodo N-1 lo stock disponibile sia x N-1. In tale periodo, chi fa linventario dovrebbe ordinare, senza preoccuparsi di quello che e avvenuto nel passato, un quantitativo u N-1 * = μ N-1 *(x N-1 ) che minimizza la somma del costo dellordine, della giacenza e della domanda non soddisfatta per lultimo periodo di tempo. Questo costo è uguale a E{cu N-1 + H(x N-1 + u N-1 – w N-1 )} calcolato su w N-1. Denotiamo J N-1 (x N-1 ) il minimo calcolato per u N-1 0 di questa quantità.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Tempo N-2: si assume che lo stock allinizio del periodo N-2 sia x N-2 e che il valore da ordinare sia u N-2 = μ N-2 *(x N-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{cu N-2 + H(x N-2 + u N-2 – w N-2 )} + E{J N-1 (x N-1 )} calcolato su w N-2 e sapendo che x N-1 = x N-2 + u N-2 – w N-2, il termine E{J N-1 (x N-1 )} diventa E{J N-1 (x N-2 + u N-2 – w N-2 )}.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Dunque, il costo ottimo per gli ultimi due periodi, sapendo di trovarsi nello stato x N-2, è dato da: in cui il minimo è calcolato per ogni stock x N-2.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Tempo k: lo stock è x k e deve essere ordinato u k 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 J k (x k ) denotano il valore ottimo del costo atteso per i rimanenti periodi quando si parte dal periodo k con valore iniziale x k e sono calcolate in modo ricorsivo indietro nel tempo, partendo dal periodo N-1 fino al periodo 0. Il valore J 0 (x 0 ) è il valore ottimo del costo atteso per il processo quando linventario iniziale è proprio x 0. Durante il calcolo della politica ottima di inventario, i valori {μ 0 *(x 0 ), μ 1 *(x 1 ),..., μ N-1 *(x N-1 )} sono ottenuti minimizzando J k (x k ) per ogni possibile valore di k e di x k.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Soluzione del problema dellinventario Consideriamo il problema dellinventario 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 X k+1 =max(0, x k + u k – w k )
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Dati del problema capacita massima di stock immagazzinato (x k +u k ) = 2, orizzonte temporale N = 3 periodi costo per una unita di prodotto c = 1, funzione di costo per periodo: H(x k +u k –w k )=max(0, x k +u k –w k ) + 3 max(0,w k –x k –u k ), costo nello stato finale = 0, lo stato iniziale x 0 e noto, la domanda w k ha sempre la stessa probabilita in ogni periodo: p(w k =0)=0.1, p(w k =1)=0.7, p(w k =2)=0.2
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Risultati Stage 0 (k = 0)Stage 1 (k = 1)Stage 2 (k = 2) Stock in magazzino Cost-to-goQuantità di merce da ordinare Cost-to-goQuantità di merce da ordinare Cost-to-goQuantità di merce da ordinare