Programação Estocástica
Disciplina ofertada pelo Prof. Alexandre Salles da Cunha para os Programas de Mestrado e de Doutorado em Ciência da Computação da UFMG.
Panorama do curso:
Em um primeiro momento, abordamos a modelagem de problemas de otimização sob condições de incerteza, enfatizando os benefícios conferidos ao tomador de decisão quando se incorpora flexibilidade aos modelos de tomada de decisão. A flexibilidade é decorrente de um elemento essencial em Problemas de Programação Estácastica, o recurso, isto é, a possibilidade de reagir à realização das variáveis aleatórias.
Após o tratamento da modelagem, nos concentramos no desenvolvimento de propriedades e algoritmos para Problemas de Programação Estocástica com suporte finito, isto é, problemas em que a incerteza (distribuição de probabilidades) pode ser caracterizada por um conjunto de cenários finito para as variáveis aleatórias do problema, cada cenário com sua respectiva probabilidade de ocorrência.
Problemas de Programação Estocástica com suporte finito, lineares ou lineares inteiros, de 2 ou mais estágios, como os aqui discutidos, podem ser entendidos como Problemas de Programação Linear e Linear Inteira de grande porte.
Assim sendo, os métodos e algoritmos que discutimos no curso derivam das técnicas de Programação Linear e Inteira, adequadas à resolução de problemas de grandes dimensões (número de variáveis e restrições): Algoritmos de Planos de Corte, Decomposição de Benders, Geração de Colunas e Relaxação Lagrangeana. Também adquire fundamental importância neste curso a Teoria de Dualidade, para que os problemas de Programação Estocástica que envolvem grande número de restrições e variáveis de decisão possam ser representados/formulados de forma implícita, por meio de cortes de otimalidade e de viabilidade.
Programa do curso:
Modelagem de problemas de otimização sob condições de incerteza.
Propriedades de Problemas de Programação Estocástica.
Geração de Cenários em Programação Estocástica.
Algoritmos:
Programação Linear Estocástica dois períodos
Programação Linear Estocástica (multi-período)
Programação Linear Inteira Estocástica
Métodos baseados em Simulação de Monte Carlo.
Aplicações de Programação Estocástica em Projeto de Redes.
Referências bibliográficas principais:
J.R. Birge e F. Louveaux. Introduction to Stochastic Programming, 2a Edição, Springer, 2011.
A.J. King e S. W. Wallace. Modeling with Stochastic Programming, Springer, 2012.
Observações:
O curso cobre os Capítulos 1 a 7 de Birge & Louveaux (2011) e os Capítulos 1 a 5 de King & Wallace (2012). Além disso, sugerimos a leitura de alguns artigos selecionados, também indicados abaixo.
Uma valiosa fonte de material bibliográfico, livros, artigos e software pode ser encontrada no site da Stochastic Programming Society.
Artigos sugeridos:
M. V. F. Pereira e L. M. V. G. Pinto. Multi-stage stochastic optimization applied to energy planning, Mathematical Programming, vol. 52. p. 359-375, 1991.
W. K. Mak, D. P. Morton e R. Kevin Wood. Nonte Carlo bounding techniques for determining solution quality in stochastic programs, Operations Research Letters, vol. 24, p. 47-56, 1999.
M. Gendreau, G. Laporte e René Séguin. Stochastic Vehicle Routing, European Journal of Operational Research, vol. 88, p. 3-12, 1996.
W.E. Hart, J. P. Watson e D. L. Woodruff. Pyomo: Modeling and solving mathematical programs in Python, Math. Programming Computation, vol. 3, p. 219-260, 2011.
Referências bibliográficas de apoio para Otimização Linear e Inteira de grande porte:
Laurence Wolsey. Integer Programming, Wiley Interscience, 1998.
D. Bertsimas e J. N. Tsitsiklis. Introduction to Linear Optimization, Athena Scientific, 1997.
R. K. Martin. Large Scale Linear and Integer Optimization, Kluwer Academic Publishers, 1998.
Slides do curso:
Algoritmos para Programação Linear Estocástica (L-Shaped linear, 2 estágios)
Algoritmos para Programação Linear Estocástica Multi-estágio (Nested Benders Decomposition)
Conteúdo on-line disponível no youtube:
Um conjunto de aulas foi gravado e disponibilizado na plataforma do youtube, como material de apoio para o curso de Programação Estocástica, lecionado no semestre 2020/2. A relação de aulas é apresentada abaixo.
Modelagem:
Fundamentos de Programação Estocástica:
Geração de Cenários:
Programação Linear Estocástica (2 Estágios, L-Shaped linear):
Programação Linear Estocástica Multi-estágio (Nested Benders Decomposition):
Programação Inteira Estocástica: