Universita degli Studi di Siena Facolta di Ingegneria Dispense del corso di Sistemi di Supporto alle Decisioni I La Programmazione Dinamica Chiara Mocenni Corso di Laurea triennale in Ingegneria Gestionale Corso di Laurea Magistrale in Ingegneria Informatica A. A. 2008/2009
1 Introduzione In economics, the concept of states is analogue to the an agent s decision-set. At every time period, the agent being modelled chooses one decision from its decision-set. This decision affects the possibilities available to him in the next period. Following this process recursively, we have that the choices available to an agent at any point in time depend on the original state, and the choices made at every preceding time period... Juan Carlos Suarez Serrato (2006). In queste dispense si analizzano situazioni in cui un certo numero finito di decisioni viene preso in sequenza. Il risultato di ogni decisione non e completamente prevedibile, ma puo essere osservato prima che venga presa la decisione successiva. L obiettivo del problema decisionale consiste nel minimizzare un certo costo (una espressione matematica funzione di cio che e considerato desiderabile). Un aspetto cruciale e che le decisioni non possono essere viste in modo isolato poiche ognuna di esse deve bilanciare il desiderio di un basso costo attuale con la possibilita che nel futuro vi siano da sostenere inevitabilmente alti costi. Questa idea e bene modellata dal concetto di programmazione dinamica, in cui il decisore sceglie una opzione che minimizza la somma del costo nel periodo corrente e il miglior costo che ci si puo aspettare nei periodi futuri. 1
2 Definizioni e struttura del problema Il problema viene strutturato essenzialmente grazie alla presenza di un sistema dinamico, ed un funzionale di costo additivo rispetto al tempo. Il sistema dinamico e della forma: x k+1 = f k (x k, u k, w k ), k = 0, 1,...,N 1, (1) dove k e l indice temporale (discreto); x k e lo stato del sistema e riassume l informazione passata rilevante per l ottimizzazione futura; u k e il controllo o la decisione che deve essere selezionata al tempo k conoscendo lo stato x k ; w k e una variabile casuale, detta disturbo o rumore; N e l orizzonte temporale in cui viene applicato il controllo. Il funzionale di costo e additivo nel senso che un costo g k (x k, u k, w k ) viene sostenuto ad ogni periodo k ed il costo totale corrispondente ad ogni traiettoria possibile del sistema e g N (x N ) + N 1 k=0 g k (x k, u k, w k ), (2) dove g N (x N ) e il costo sostenuto nell ultimo periodo del processo. 2
Data la presenza di w k, il costo e in generale una variabile casuale e non puo essere ottimizzata completamente. Quindi il problema puo essere riformulato in termini di costo atteso E { g N (x N ) + N 1 k=0 g k (x k, u k, w k ) }, (3) dove il valore atteso e calcolato rispetto alla distribuzione congiunta delle variabili casuali coinvolte nel processo. 3 L esempio del controllo delle scorte Supponiamo di dover ordinare una certa quantita di prodotto all inizio di ognuno degli N periodi di interesse per soddisfare una domanda descritta da un processo stocastico. Denotiamo x k lo stock disponibile all inizio del k-esimo periodo; u k lo stock ordinato (ed immediatamente venduto) all inizio del k-esimo periodo; w k la domanda durante il k-esimo periodo con una certa distribuzione di probabilita. Assumiamo che w 0, w 1,...,w N 1 siano delle variabili casuali e che la domanda in eccesso sia considerata lavoro arretrato che viene evaso non appena siano disponibili nuove scorte. Dunque lo stock evolve secondo la seguente legge dinamica a tempo discreto: 3
x k+1 = x k + u k w k, (4) dove gli stock negativi corrispondono al lavoro arretrato. Il sistema e rappresentato nella figura 1 w k Domanda al periodo k x k Stock al periodo k Sistema di controllo delle scorte Stock al periodo k+1 x k+1 = x k +u k -w k u k Stock ordinato al periodo k Costo al periodo k c u k + H(x k+1 ) Figura 1: Diagramma del sistema del controllo delle scorte. Il costo sostenuto ad ogni periodo k e composto da due contributi, uno e il costo d acquisto cu k, dove c e il costo di una unita di prodotto, e un costo H(x k+1 ) che rappresenta la penalita sia per gli stock positivi x k+1 > 0 alla fine del periodo (costi per eccesso di scorte), che per gli stock negativi 4
x k+1 < 0 (costi per domanda non soddisfatta). Usando l equazione (3), possiamo scrivere il costo al periodo k come segue cu k + H(x k + u k w k ), (5) e il costo totale atteso su N periodi come E { N 1 k=0 cu k + H(x k + u k w k ) }. (6) L obiettivo qui e minimizzare questo costo scegliendo ordini appropriati u 0, u 1,...,u N 1 soggetti a vincoli naturali, quali u k 0, k = 0, 1,..., N 1. Una possibilita sarebbe quella di scegliere al tempo iniziale tutti gli ordini senza aspettare di conoscere i livelli successivi della domanda. Una scelta migliore e invece quella di aspettare di decidere sugli ordini fino al tempo k, quando e noto anche il livello dello stock. Questo modo di operare, adatto a decisioni sequenziali, dipende dall informazione disponibile al momento di prendere la k-esima decisione e prende il nome di programmazione dinamica. Cio implica che non siamo realmente interessati a selezionare valori numerici ottimi per gli ordini delle scorte, ma piuttosto a trovare una regola ottima per scegliere, ad ogni periodo k, un ordine u k per ogni possibile valore dello stock x k. Matematicamente il problema e quello di individuare una sequenza di funzioni µ k, k = 0, 1,..., N 1, che mappano gli stock x k negli ordini u k in modo da minimizzare il costo totale atteso. Il significato di µ k e che, per 5
ogni k e per ogni possibile valore di x k : e x k. µ k (x k ) = quantita che deve essere ordinata al tempo k se lo stock La sequenza π = {µ 0, µ 1,...,µ N 1 } viene anche chiamata legge di controllo o politica. Per ogni π, il costo corrispondente per uno stock iniziale fissato x 0 e : J π (x 0 ) = E { N 1 k=0 cµ k (x k ) + H[x k + µ k (x k ) w k ] }, (7) e l obiettivo e minimizzare J π (x 0 ) per un dato x 0 su tutti i π ammissibili. Nel sistema dinamico discreto (3) lo stato x k e un elemento di uno spazio S k, il controllo u k e un elemento di uno spazio C k e il disturbo w k e un elemento di uno spazio di variabili casuali D k. Il controllo u k e vincolato ad assumere valori in un sottoinsieme U k (x k ) di C k, che dipende dallo stato corrente x k [u k U k (x k ) per ogni x k S k e k]. La variabile casuale di disturbo w k e caratterizzata da una misura di probabilita P k ( x k, u k ) che puo dipendere esplicitamente da x k e u k ma non dai valori dei disturbi precedenti w k 1,...,w 0. Consideriamo la classe delle leggi di controllo o politiche che consiste in una sequenza di funzioni π = {µ 0, µ 1,...,µ N 1 } dove µ k mappa gli stati x k nei controlli u k = µ(x k ) e tali che µ k (x k ) U k (x k ) per ogni x k S k. Tali leggi di controllo sono dette ammissibili. Dato uno stato iniziale x 0, il problema e quello di trovare una legge di controllo ammissibile π = {µ 0, µ 1,...,µ N 1 } che minimizza il funzionale di costo 6
{ E J π (x 0 ) = g N (x N ) + w k, k = 0,..., N 1 soggetto ai vincoli N 1 k=0 cµ k (x k ) + H[x k + µ k (x k ) w k ] (8) } x k+1 = f k [x k, µ k (x k ), w k ], k = 0, 1,..., N 1. (9) Le funzioni di costo g k, k = 0, 1,..., N 1 sono date. Dato uno stato iniziale x 0, una legge di controllo ottimo π e tale da minimizzare il costo corrispondente J π (x 0 ) = min π Π J π(x 0 ), (10) dove Π e l insieme di tutte le leggi di controllo ammissibili. Il costo ottimo corrispondente a x 0 sara denotato da J (x 0 ) e sara tale che J (x 0 ) = min π Π J π(x 0 ). (11) Vediamo J come una funzione che associa ad ogni stato iniziale x 0 il costo ottimo J (x 0 ) e la chiamiamo la funzione di costo ottimo o optimal value function. 3.1 L algoritmo di Programmazione Dinamica La programmazione dinamica si basa sul principio di ottimalita. Il nome e dovuto a Bellman, che ha introdotto questa idea. Il principio di ot- 7
timalita stabilisce che, data una legge di controllo ottimo del tipo π = {µ 0, µ 1,...,µ N 1 }, se si considera il sotto-problema in cui ci troviamo nello stato x i al tempo i e vogliamo minimizzare il costo in avanti fino al tempo N E { g N (x N ) + N 1 k=i cµ k (x k ) + H[x k + µ k (x k ) w k ] }, (12) allora la legge di controllo troncata {µ i, µ i+1,...,µ N 1 } e anch essa ottima per il sotto-problema. Infatti, se la legge di controllo del sotto-problema non fosse ottima dovremmo essere capaci di ridurre il costo ulteriormente considerando una politica ottima da applicare al sotto-problema una volta raggiunto i (vedi la Figura 2 per un esempio sul principio di ottimalita ). Milano Firenze Se la strada piu breve da Milano a Roma passa da Firenze, allora il tratto da Firenze a Roma e a sua volta la strada piu breve da Firenze a Roma. Roma Figura 2: Il principio di ottimalita. 8
Riferimenti bibliografici [1] Dimitri P. Bertsekas Dynamic Programming Prentice-Hall, 1987. 9