# Engenharia industrial/Programação dinâmica

A programação dinâmica é o estudo das condições que devem ser satisfeitas por um processo de decisão ótimo, escalado no tempo, e exploração dessas condições para determinar a melhor atuação (Wagner, 1986, p. 214).

## Aplicações

* Regras de abastecimento, indicando quando fazer o aprovisionamento de um artigo e em que quantidade.
* Doutrinas de sequenciação da produção e dimensionamento da força de trabalho aplicáveis a um ambiente com procura flutuante.
* Determinação do nível de existências de peças sobressalentes para garantir a utilização altamente eficiente de equipamento dispendioso.
* Processos de orçamentação para afetação de recursos limitados a novos empreendimentos.
* Seleção de meios publicitários para promover uma larga exposição do público ao produto de uma empresa.
* Plano ou busca sistemática para descobrir a localização de um recurso valioso.
* Métodos de sequenciação para reparações de rotina ou de revisão total de maquinaria complexa
* Estratégia a longo prazo para substituição de equipamento depreciável.

## Aplicabilidade

* Pode ser aplicada a problemas não-lineares de pequena escala e a problemas de valores inteiros.
* As aplicações mais frequentes tratam de problemas de reaprovisionamento, sequenciação da produção e certos processos do tipo regeneração, incluindo a substituição de equipamentos.
* Aplica-se a problemas envolvendo elementos probabilísticos e horizontes ilimitados.
* O modelo selecionado pode contemplar as considerações econômicas e tecnológicas mais significativas.

## Viabilidade computacional

* Vantagem sobre a enumeração completa de todas as possibilidades.
* A viabilidade depende criticamente da dimensão da variável de estado.
* Não existe uma forma canônica satisfatória para todos os problemas (nem mesmo para modelos finitos, discretos e determinísticos).
* Não existe um programa de computação eficiente único para tratar todos os problemas.
* A forma da recorrência é, em geral, suficientemente simples para que não seja muito difícil escrever um programa de computação para resolver o modelo em análise.
* Exceto em casos raros, é necessária uma abordagem computacional - pelo menos para eliminar o tédio dos cálculos.

## Análise de sensibilidade

* Devido às variações nos tipos de modelos a resolver, não existe uma técnica de análise de sensibilidade universalmente aplicável.
* A maior parte das questões de sensibilidade tendem a afetar vários custos e restrições, simultaneamente.
* As fórmulas necessárias para a análise têm que ser desenvolvidas para o problema específico.
* Com a variável tempo
** influência do horizonte de planeamento na escolha da decisão imediata correta.
* Condições iniciais
** nível de recursos disponíveis.
* Restrições
** limitações de capacidade.

## Ligações externas

* Dynamic programming: an introduction, David K. Smith e PASS Maths
* Dynamic Programming, Omer S. Benli
* tutOR, Moshe Sniedovich
* Dynamic Programming, Brian's Digest
* A Tutorial on Dynamic Programming, Michael A. Trick
* Dynamic Programming
* Dynamic Programming, L. Allison
* Dynamic Programming Algorithms, Paul E. Dunne
* 6.231: Dynamic Programming and Stochastic Control - Fall 2008, Dimitri P. Bertsekas
* Dynamic Programming, NIST
* Overview of ALATE's Work on Dynamic Programming
* Portal - The ACM Digital Library
* Search Results - Dynamic Programming, CiteSeer
* Dynamic Programming Bibliography, Gavin Cole