Programação Estocástica
Programação Estocástica (do inglês, stochastic programming) é um ramo da programação matemática que desenvolve modelos e métodos para resolver problemas de otimização em condições de incerteza, onde alguns parâmetros do modelo não são conhecidos com exatidão, mas são representados como variáveis aleatórias com distribuições de probabilidade conhecidas ou estimadas[1][2].
Diferentemente dos problemas determinísticos, onde todos os dados são considerados constantes conhecidas, a programação estocástica tem como objetivo encontrar uma solução (ou uma política de tomada de decisão) que seja ótima em algum sentido estatístico. Mais frequentemente, isso significa minimizar ou maximizar a esperança matemática da função objetivo[1]. A ideia central é encontrar uma política de decisão que seja a melhor "em média" para todas as possíveis realizações dos parâmetros aleatórios, o que é especialmente relevante para problemas onde as decisões são tomadas repetidamente em condições semelhantes (por exemplo, no gerenciamento de estoques ou sistemas de energia)[3].
Formulação Matemática do Problema
De forma geral, um problema de programação estocástica pode ser formulado como: onde:
- — o vetor de variáveis de decisão (soluções) que precisa ser determinado.
- — o conjunto de soluções viáveis para , definido por restrições determinísticas.
- — o vetor aleatório que representa os parâmetros incertos do problema (por exemplo, demanda, preços, condições climáticas).
- — a função objetivo, cujo valor depende tanto da decisão tomada quanto da realização do vetor aleatório .
- — o operador de esperança matemática, calculado sobre a distribuição de probabilidade do vetor .
Um princípio crucial que fundamenta os modelos estocásticos multiestágio é o princípio da não antecipação (do inglês, non-anticipativity principle). Ele afirma que as decisões tomadas em qualquer estágio podem depender apenas das informações disponíveis até aquele momento e não podem "olhar para o futuro"[2].
Problema de Dois Estágios com Recurso
O modelo mais comum é o problema de dois estágios com recurso (do inglês, two-stage stochastic program with recourse)[1]. O processo de tomada de decisão é dividido em dois estágios:
- Primeiro estágio: Uma decisão "aqui e agora" (here-and-now) é tomada — o vetor é determinado. Essa decisão deve ser tomada antes que a realização específica do vetor aleatório seja conhecida.
- Segundo estágio: Após a ocorrência do evento aleatório, uma decisão corretiva ou de recurso (recourse decision) é tomada — o vetor , que visa minimizar as consequências negativas ou aproveitar as oportunidades favoráveis resultantes da combinação da decisão do primeiro estágio e do resultado .
Matematicamente, um problema de programação linear estocástica de dois estágios é formulado da seguinte maneira: sujeito às restrições do primeiro estágio: . Aqui, é a função de recurso (recourse function), que representa o valor ótimo do problema do segundo estágio: onde é um vetor aleatório que inclui os parâmetros e ; enquanto e são parâmetros determinísticos[2].
Propriedades e Teoremas Fundamentais
- Convexidade: Um dos resultados fundamentais da teoria é que, para um problema de programação linear estocástica de dois estágios, a função de recurso esperada é uma função convexa. Essa propriedade é de grande importância, pois garante que o problema geral do primeiro estágio seja um problema de programação convexa, para o qual existem métodos eficientes de solução e o ótimo global coincide com o ótimo local[1].
- Equivalente determinístico: Se o vetor aleatório tem um número finito de realizações possíveis (cenários) com probabilidades , o problema de programação estocástica pode ser reformulado como um único e grande problema de otimização determinística. Nesse caso, a esperança matemática é substituída por uma soma ponderada sobre todos os cenários. No entanto, o tamanho desse problema cresce linearmente com o número de cenários, o que leva à "maldição da dimensionalidade" e torna essa abordagem computacionalmente inviável para um grande número de cenários[2].
Comparação com a Otimização Robusta
A programação estocástica é uma das várias abordagens para otimização em condições de incerteza. Sua principal diferença em relação à otimização robusta reside na forma como a incerteza é modelada e no critério de otimalidade[4].
| Critério | Otimização Estocástica | Otimização Robusta |
|---|---|---|
| Representação da incerteza | Parâmetros são variáveis aleatórias com uma distribuição de probabilidade conhecida | Parâmetros pertencem a um conjunto de incerteza definido, sem necessidade de distribuição |
| Critério de otimalidade | Otimização da esperança matemática da função objetivo | Otimização para o pior caso (minimax) |
| Natureza da solução | Uma política ótima "em média", que pode ser inviável para cenários raros | Uma solução garantidamente viável para todas as realizações; pode ser conservadora |
Exemplos
- Problema do jornaleiro (do inglês, newsvendor problem): Um problema clássico de gerenciamento de estoque onde um vendedor deve decidir a quantidade de um produto a ser comprada sem conhecer a demanda futura exata. A decisão equilibra o risco de perdas por excesso de estoque e o risco de lucro perdido por falta de produto.
- Problema do fazendeiro: Um fazendeiro decide quantos acres de terra alocar para diferentes culturas em uma área total, sem saber as condições climáticas futuras que afetarão o rendimento das colheitas. Depois que o clima se torna conhecido, o fazendeiro pode tomar ações corretivas (por exemplo, vender o excesso de colheita ou comprar o que faltou no mercado)[5].
Ver também
- Programação matemática
- Pesquisa operacional
- Otimização robusta
- Programação dinâmica
- Teoria de controle
Notas
- ↑ 1.0 1.1 1.2 1.3 Shapiro, A., Dentcheva, D., & Ruszczyński, A. (2009). Lectures on Stochastic Programming: Modeling and Theory. Society for Industrial and Applied Mathematics (SIAM).
- ↑ 2.0 2.1 2.2 2.3 Birge, J. R., & Louveaux, F. (2011). Introduction to Stochastic Programming (2nd ed.). Springer Science+Business Media.
- ↑ "Programação estocástica". Wikipédia. [1]
- ↑ Gorissen, B. L., Yanıkoğlu, İ., & den Hertog, D. (2015). A practical guide to robust optimization. Omega, 53, 124-137.
- ↑ Bricker, D. L. SLPwR: Farmer Problem. University of Iowa. [2]