Programação Dinâmica: Modelos Determinísticos Prof. Fernando Augusto Silva Marins Departamento de Produção Faculdade de Engenharia Campus de Guaratinguetá UNESP www.feg.unesp.br/~fmarins fmarins@feg.unesp.br
Introdução Útil em processos de decisão sequencial / multiestágio / com muitas variáveis interdependentes. Histórico: Wald (950) - decisão sequencial Dvoretzy, Kiefer & Wolfowitz (952) - estoques Bellman (década de 50) - artigos, livros. Idéia: obter uma série de problemas com um único estágio e um número menor de variáveis. 2
Princípio da Otimalidade da Programação Dinâmica A aplicação da Programação Dinâmica-PD baseia-se fundamentalmente naquele que é conhecido como Princípio de Otimalidade de Bellman: Uma política de decisões ótimas só pode ser formada por subpolíticas ótimas : A verificação da validade desse princípio é intuitiva: basta considerar uma subpolítica tomada de uma decisão ótima; se essa subpolítica não for ótima, eiste outra subpolítica melhor, a qual, completa pelo restante da política considerada, poderá melhorar esta, o qual contraria a hipótese efetuada. 3
Introdução Eemplos da PD: Problema da viagem Problema da produção (contínua)/ estocagem Problema da sobrevivência Problema da Viagem com Custos Terminais Problema da produção (discreta)/ estocagem 4
Problema da Viagem Viajante sai da cidade A com destino a cidade J. Qual a trajetória de menor custo de transporte? 5
Problema da Viagem Solução sobre o Grafo, partindo da Cidade Destino J e considerando o Custo Remanescente Mínimo de cada Cidade até J. Custo mínimo da viagem entre as cidades A e J= 20 6
Estágios Elementos importantes em modelos de PD: ilustração com o Problema da Viagem (instante de início/término de uma viagem - = 0,, 2, 3, 4) Estado (cidade onde o viajante está num dado estágio - eemplo: no estágio 3 há os estados viáveis h, i) Decisão (para ir de uma cidade à outra - de outro estágio - o viajante deve tomar uma decisão admissível) Custos (elementares) da tomada de decisão (quanto custa para ir de uma cidade à outra) Critério ou Objetivo (como comparar trajetórias alternativas para o viajante - eemplo: Min custo total da viagem) 7
Elementos importantes em modelos de PD: ilustração com o Problema da Viagem Estilos de resolução - Bacward: fiar o último estado = objetivo estabelecido - uso em operação de sistemas. - Forward: fiar o estado inicial = condições iniciais conhecidas - uso em planejamento. Recuperação da trajetória - percorrer o grafo no sentido contrário (Bactracing) utilizado para os cálculos efetuados (obter as cidades intermediárias que compõem a trajetória ótima até a Cidade J a partir da Cidade A). 8
Problema de Produção Contínua Horizonte de planejamento: 3 meses Estoque inicial e final: nulos Custo unitário de estoque: $ 4 Custo de produção: C i (P i ) = 50P i + 0,2P 2 i Demandas: ª mês - 40 (D ) 2ª mês - 60 (D 2 ) 3ª mês - 80 (D 3 ) Resolução: Bacward P P 2 P 3 X 0 = 0 X X 2 2 3 X 3 = 0 D =40 D 2 =60 D 3 = 80 9
Problema de Produção Contínua Inicialização: f 3 (X 3 )= 4X 3 =0 Estágio 3: X 3 =X 2 + P 3 - D 3 ou P 3 = 80 - X 2 (A) f 2 (X 2 )= min [4X 2 +C 3 (P 3 )+f 3 ( 3 )]= [4X 2 + 50(80 - X 2 )+0,2(80 -X 2 ) 2 ] P 3 f 2 (X 2 ) = 0,2 2 2-78 2 + 5280 0
Problema de Produção Contínua Estágio 2: X 2 =X + P 2 - D 2 ou X 2 = X + P 2-60 (B) f (X ) = min P2 [4X + C 2 (P 2 ) + f 2 (X 2 )]= = min P2 [4X + 50P 2 + 0,2P 2 2 + 0,2X 2 2 78X 2 +5280] = () Encontrar P 2 responsável por f ( ) e fazer a substituição em (): Assim: P 2 *= d( ) X2 X P2 60 e calcular 0, para P2 P2 * dp 30 X 2 (C) 2 f( X ) 0, X 72 X 2 8990
Estágio : Problema de Produção Contínua X X P D ou X P 0-40 (D) f 0 min P ( X 0 50 ) P min P 0, 2 4 P 2 X 0 C 0, X ( 2 P ) 72 f X ( X ) 8990 = (2) Substituindo X = P - 40 em (2) e calculando d ( 2 dp ) 0, com P P * Tem-se: P *= 50 e f 0 (X 0 ) =.280 (Custo mínimo) 2
Problema de Produção Contínua Recuperação da trajetória: P *= 50, usando (D): X = 50 40 = 0 X =0, usando (C): 30 0 P2 * 60 X 2 0 60 60 2 0 X 2 =0, usando (A): P 3 *= 80 0 = 70 Portanto deve-se produzir 50 unidades no mês, 60 unidades no mês 2 e 70 unidades no mês 3. O custo mínimo total será de $.280 - f 0 ( 0 )
Recursão não aditiva: ao invés de somar deve-se multiplicar os custos elementares Eemplo: Um estudante deve fazer 3 eames, matemática, física e química, e não pode ser reprovado em nenhum deles. Conhece-se as probabilidades dele ser reprovado em cada eame em função do número de horas de estudo que ele dedique ao assunto. O aluno deseja escolher o número de horas que deverá estudar de cada assunto para minimizar a probabilidade de reprovação, sendo que ele tem um número determinado de horas disponíveis para esta preparação. 4
Problema do estudante: 8 horas disponíveis Horas de Estudo/Disciplina e Probabilidade de ser reprovado Horas de Estudo Matemática Física Química 0 0,9,0 0,95 0,8 0,9 0,85 2 0,6 0,8 0,65 3 0,3 0,5 0,4 4 0,25 0,3 0,2
Recursão não aditiva: Problema de Sobrevivência A macaca Chita avisou a Tarzan que Jane se encontra prisioneira na cidade dos Gorilas. Antes de seguir em encontro de Jane, Tarzan considerou todas às trajetórias de cipós disponíveis, e os seus perigos no grafo adiante, onde os valores numéricos representam (em %) a probabilidade de vir a ser morto por algum animal selvagem. 20 B A 0 5C 7 D 0 20 25 5 5 E F 20 35 6 2 G H 5 20 0 J I 6
Problema de Sobrevivência Sabendo que Tarzan foi educado na Inglaterra e que, portanto, sabe Programação Dinâmica e não perderá a fleugma numa situação como essa, determine qual será a sua trajetória. Resolução sobre o grafo: Forward. O objetivo é maimizar a probabilidade de Tarzan chegar vivo até Jane = produto das probabilidades de sobrevivência de Tarzan, nas rotas intermediárias entre A e J por ele utilizadas. 7
Os números acima de cada nó do grafo abaio correspondem a probabilidade de Tarzan saindo de A chegar a esse nó vivo. Eemplificando, na Figura abaio, a probabilidade de Tarzan atingir vivo o nó E é de 85,6%, e até o nó H essa probabilidade cai para 59,3%, e assim por diante. No destino final em J, a probabilidade é 67,7%. A solução do problema será Tarzan usar a rota abaio, que permitirá a ele a chance máima de 67,7% de chegar até Jane: 00% A 80% B 90% C 83% D 85,6 % E 70,6 % F 68,4 % G 59,3 % H 75,3 % I 67,7 % J A C E I J 8
Custos Terminais CT: O enfoque é o mesmo já apresentado. 7 8 A 4 5 3 B 3 C 9 D 6 4 8 8 7 9 E 3 F 8 G 0 9 2 3 6 3 H 5 I 5 8 7 9 2 K 0 J L 5 4 6 A C E H K 9
Problema de Produção Discreta com Estocagem Meta: Obter a programação da produção da fábrica com menor custo de produção e estocagem. Dados: Estoque inicial = 500, estoque final (5 mês) = 0. Produz lotes de 500 peças ao custo de $ 500 ou Lotes de 000 peças ao custo de $800. Custo de estocagem mensal/peça = $ 0,2. Previsão de vendas Mês 2 3 4 5 Vendas 500 000 500 500 500 20
Problema de Produção Discreta com Estocagem Resolução: Bacward. X i = Variável de Estado = Estoque ao final do mês i. P i = Decisão = Quanto produzir no mês i. D i = Demanda no mês i = Previsão de vendas no mês i. Estágios: estão associados a cada mês ( = 0,, 2, 3, 4). Modelo de Programação Dinâmica: 2
Problema de Produção Discreta com Estocagem Funções de custo do modelo: C(P)= Custo produção, CA()=Custo armazenagem. C( P) $ 0, SE P = 0 $ 500, SE P = 500, $ 800, SE P = 000 CA(X) = O,2 X Equação de transição de estado: X i- + P i = X i + D i para cada mês i. Definindo: F i (X i, P i+ ) = Custo Remanescente a partir do mês i. f i ( i ) = Custo Remanescente Mínimo a partir do mês i. Assim tem-se a Função objetivo: f i (X i ) = Min (F i (X i, P i+ )) = Min (C i (P i+ ) + 0,2X i + f i+ (X i+ )). p i+ p i+ 22
P 5 23 Problema de Produção Discreta com Estocagem Análise Sequencial dos Estágios do Modelo - Ver resolução completa na planilha PD - prod e estocagem discreta - Inicialização: X 5 = 0 e f 5 (X 5 ) = 0. Estágio 4 (Mês 5): Equação de transição: X 5 = X 4 + P 5 - D 5 X 4 = 5 0 0 - P 5. f 4 (X 4 ) = Min F 4 (X 4, P 5 ) = Min [C 4 (P 5 ) + 0,2X 4 + f 5 (X 5 )] P 5 P 5 f 4 (X 4 ) =Min[C 4 (P 5 )+0,2(500 - P 5 ) + 0]. Considerar cada (X 4,P 5 ).
Estágio 3 (Mês 4) - Equação de transição : X 4 = X 3 + P 4 - D 5 X 3 = X 4 + 5 0 0 - P 4. f 3 ( X 3 ) = Min F 3 (X 3, P 4 ) = Min [C 3 (P 4 ) + 0,2X 3 + f 4 (X 4 )] P 4 P 4 f 3 (X 3 ) =Min[C 3 (P 4 ) + 0,2(X 4 + 500 - P 4 ) + f 4 (X 4 )] P 4 Fazer para os valores viáveis de X 4 e usando os f 4 (X 4 ) do estágio analisado anteriormente Este processo continua até o estágio 0 (mês ) Ver resolução completa na planilha PD - prod e estocagem discreta
Problema de Produção Discreta com Estocagem Análise Sequencial dos Estágios do Modelo Estágio 0 (Mês ): Equação de transição: X = X 0 + P - D X = P. Ver resolução completa na planilha PD - prod e estocagem discreta
Problema de Produção Discreta com Estocagem Análise Sequencial dos Estágios do Modelo f 0 (X 0 ) = Min F 0 (X 0, P ) = Min [C 0 (P ) + 0,2X 0 + f (X )] P P A partir de X e f (X ) tem-se: f 0 (X 0 ) = 3300, P = 0, X 0 = 500. Recuperação da trajetória (Programação da Produção) Mês 2 3 4 5 Produção 0 000 500 000 000 Custo mínimo = $ 3300 Ver resolução completa na planilha PD - prod e estocagem discreta 26
Princípio da Otimalidade e a Formalização da Programação Dinâmica A aplicação da Programação Dinâmica-PD baseia-se fundamentalmente naquele que é conhecido como Princípio de Otimalidade de Bellman: Uma política de decisões ótimas só pode ser formada por subpolíticas ótimas : A verificação da validade: Considere uma subpolítica da política de tomada de decisão ótima; Se essa subpolítica não for ótima, eiste outra subpolítica melhor, a qual, completada pelo restante da política considerada, poderia melhorar a solução ótima; 27 Isto contraria a hipótese efetuada o que verifica a validade do Princípio.
Princípio da Otimalidade e a Formalização da Programação Dinâmica Como visto nos eemplos, eistem certos elementos que devemos identificar num problema a ser resolvido pela PD. Essa identificação nem sempre é fácil, e depende mesmo de uma certa eperiência na área por parte do analista de Pesquisa Operacional. Admitindo que essa etapa já foi cumprida, foram determinadas: as decisões, os estágios, os estados, os custos elementares e a equação de transição (interligação entre os estágios). 28
Assim, pode-se montar um modelo sequencial: u 0 u u U + U n- X 0 X X 2... X X X 0 K + +2... X n- K+ N- X n C 0 ( 0,u 0 ) C (,u ) C (,u ) C + ( +,u + ) C N- ( N-,u n- ) min X i = Variável de Estado no início do Estágio i. u i = Decisão tomada no Estágio i, quando o Estado era i. Ela leva o sistema ao Estado i+ do Estágio i+, C i ( i,u i ) = Custo elementar da decisão u i. Equação de transição: + =g (,u ) N 0 C (,u ), S.a : X g (,u,u U ) para 0,,2,..., X =conjunto dos estados viáveis no estágio ; U = conjunto das decisões admissíveis no 29 estágio, quando o estado é (N - )
Formalização da Programação Dinâmica O problema geral, muitas vezes, pode ser resolvido globalmente determinando-se uma solução por algum método de otimização. Na PD divide-se o problema global de encontrar N decisões ótimas (uma para cada estágio), em N subproblemas com uma única decisão a ser otimizada em cada um deles. O enfoque da resolução será o de Bacward, mas vale também para Forward, bastando definir convenientemente a função objetivo de cada subproblema. 30
Formalização da Programação Dinâmica A função objetivo para o estágio : Se a Propriedade de Decomponibilidade é válida, tem-se: Usando a definição da função objetivo para o estágio +, pode-se obter a equação de recorrência para cálculo de f ( ) como função de f + ( + ) que, como optou-se pela resolução de Bacward, já terá sido determinada. 3 N i i i i ),u ( C min ) ( f N i i i i,u u u N i i i i,u u ),u ( C min ),u ( C min ),u ( C ),u ( C min ) ( f un,..., un,...,
Formalização da Programação Dinâmica Assim tem-se como Subproblema do estágio. 32 conhecida ) ( f U,u X ),u ( g : s.a ) ( f ),u ( C min ) ( f u A técnica consiste em otimizar f N- (X N- ) considerando as condições finais de X N. Calcular cada f i ( i ) sobre os estágios i = (N-2),..., 2,,0, obtendo a política de decisões completa para o problema: u * 0, u*, u* N-, e o valor da função objetivo do sistema global, F 0 ( 0 ).
Formalização da Programação Dinâmica Para determinar a sequência de estados ocupados pelo sistema (Recuperação da trajetória) nos diversos estágios admitidos, basta seguir o sentido inverso dos cálculos efetuados, isto é, fazer com 0 e u * 0 determinar-se, com e u * determina-se 2, e assim por diante até N. Deve-se notar que não serão eigidos cálculos adicionais para a recuperação da trajetória ótima, pois estes já foram efetuados quando da obtenção dos f ( ) 33