Programmazione stocastica

Indice dei contenuti

    La programmazione stocastica è un’area della ricerca operativa che ottimizza decisioni quando alcuni dati sono incerti e descritti da scenari o distribuzioni di probabilità. A differenza di un modello deterministico, non assume un unico valore futuro per domanda, prezzi, tempi, guasti o disponibilità: li rappresenta come variabili aleatorie.

    Nel modello a due stadi, una decisione x viene presa prima di osservare l’incertezza. Dopo la realizzazione dello scenario \xi, si prende una decisione correttiva y(\xi):

    \min_x\left\{c^Tx+\mathbb E_\xi[Q(x,\xi)]\right\}.

    dove:

    Q(x,\xi)= \min_y\{q(\xi)^Ty:\ W(\xi)y=h(\xi)-T(\xi)x,\ y\ge0\}

    Il primo stadio rappresenta decisioni irreversibili o costose da cambiare; il secondo stadio rappresenta adattamenti e correzioni. La funzione Q(x,\xi) è detta funzione di ricorso: misura il costo ottimale della reazione allo scenario osservato.

    Scenari e valore atteso

    In pratica, la distribuzione di \xi viene spesso approssimata da un insieme finito di scenari \xi_s con probabilità p_s:

    \mathbb E_\xi[Q(x,\xi)] \simeq \sum_s p_s Q(x,\xi_s).

    La qualità del modello dipende molto dalla costruzione degli scenari. Scenari troppo pochi non rappresentano bene il rischio; scenari troppi rendono il problema grande e costoso da risolvere.

    Il criterio più semplice minimizza il costo atteso, cioè un valore atteso. In applicazioni reali si aggiungono spesso vincoli di probabilità, penalità per eventi estremi o misure di rischio quando la media non basta.

    Esempi applicativi

    La programmazione stocastica è usata in pianificazione della produzione, gestione scorte, reti logistiche, energia, finanza, manutenzione, portafogli di investimento e progettazione di infrastrutture. Per esempio, un’azienda può decidere oggi quanta capacità produttiva installare e domani, dopo aver osservato la domanda, quanto produrre, acquistare o esternalizzare.

    Differenza da ottimizzazione robusta

    La programmazione stocastica richiede probabilità credibili degli scenari e ottimizza in genere un criterio atteso. L’ottimizzazione robusta usa invece insiemi di incertezza e cerca soluzioni valide anche nei casi sfavorevoli, senza necessariamente assegnare probabilità.

    Non c’è una scelta universalmente migliore. La programmazione stocastica è adatta quando i dati storici o previsionali consentono una distribuzione plausibile; l’approccio robusto è preferibile quando le probabilità sono fragili o gli errori estremi sono molto costosi.

    Un errore comune è trattare lo scenario medio come se fosse equivalente al problema stocastico. In generale, ottimizzare per il valore medio dei dati non equivale a ottimizzare il valore atteso delle decisioni correttive.

    Vedi anche: Programmazione lineare, Decisioni in incertezza.

    Ultimo aggiornamento: