Programao Dinmica Prof Dr Marcio Mattos Borges de
Programação Dinâmica Prof. Dr. Marcio Mattos Borges de Oliveira © 2003 Thomson. TM/South-Western Slide 1
Programação Dinâmica n n n Introdução Avaliação da Programação Dinâmica Anotação de Programação Dinâmica Recursão backwards 3 aplicações de Programação Dinâmica Um problema de Produção e Controle de Estoque © 2003 Thomson. TM/South-Western Slide 2
Introdução n n n Aplicável a sistemas seriados, lineares ou não, contínuos ou discretos, estocásticos ou determinísticos Sistemas seriados: são aqueles em que as variáveis de estado na saída de um elemento representam as entradas ao elemento seguinte Ex: processos © 2003 Thomson. TM/South-Western Slide 3
r 2 r 1 x 1 1 x'1 = x 2 d 1 n n n 2 x'2 d 2 n = estágio xn= variável de estado - entrada x’n= variável de estado - saída dn = variável de decisão rn = retorno © 2003 Thomson. TM/South-Western Slide 4
n n n Pode ser usada na solução de muitos problemas de otimização Na maioria das aplicações, trabalha-se do final para o início do problema (backwards), transformando um problema complexo em uma série de problemas menores, mais fáceis de se resolver Muito empregada na solução de problemas de redes, de estoque e de alocação de recursos © 2003 Thomson. TM/South-Western Slide 5
Exemplo n Suponha que há 30 fósforos sobre uma mesa. Eu começo a pegar 1, 2 ou três fósforos. Então meu oponente deve pegar 1, 2 ou 3 fósforos. O jogador que pegar o último palito é o perdedor. Como eu, como primeiro jogador, posso ter certeza que ganharei o jogo? © 2003 Thomson. TM/South-Western Slide 6
Solução n Se eu tiver certeza que será a vez do meu oponente quando estiver sobrando 1 fósforo, eu certamente vencerei. Trabalhando um passo backward, se eu puder ter certeza que será a vez do meu oponente quando sobrarem 5 fósforos, então eu vencerei. A razão disso é que independentemente do que ele faça quando sobrarem 5 fósforos, eu posso ter certeza que quando for a sua próxima jogada, somente 1 fósforo sobrará. Por exemplo, suponha que é a vez do meu oponente quando ainda há 5 fósforos. Se o meu oponente pegar 2 fósforos, eu pegarei dois fósforos, deixando-o com um fósforo e a certeza de perda. Similarmente, se eu puder forçar meu oponente a jogar quando há 5, 9, 13, 17, 21, 25 ou 29 fósforos, eu estou certo da vitória. Assim, eu não posso perder se eu pegar 30 – 29 = 1 fósforo em minha primeira jogada. Então eu simplesmente tenho que me assegurar de deixar o meu oponente sempre com 29, 25, 21, 17, 13, 9 ou 5 fósforos na sua vez. Note que resolvemos essa charada trabalhando backward do final do problema para o começo. Tente resolver esse problema sem trabalhar backward! © 2003 Thomson. TM/South-Western Slide 7
Programação Dinâmica n n n Avaliação da Programação Dinâmica Anotação de Programação Dinâmica Recursão backwards 3 aplicações de Programação Dinâmica Um problema de Produção e Controle de Estoque © 2003 Thomson. TM/South-Western Slide 8
Programação Dinâmica n n n Programação dinâmica (PD) é uma abordagem para a solução de problemas que permite a decomposição do problema original numa série de sub-problemas menores Para aplicar PD com sucesso, o problema original deve ser visto como um problema de decisão multi-estágio Definir as fases de um problema de PD às vezes é óbvio, mas algumas vezes isto requer raciocínio sutil © 2003 Thomson. TM/South-Western Slide 9
Programação Dinâmica n n O poder de PD reside no fato de que é necessário resolver apenas uma pequena porção de todos os subproblemas, devido ao princípio de Bellman de otimalidade O princípio de Bellman estabelece que independentemente de quais decisões forem tomadas nos estágios anteriores, se a decisão a ser feita no estágio n fizer parte de uma solução ótima global, então a decisão feita no estágio n deve ser ótima para todas os estágios restantes. © 2003 Thomson. TM/South-Western Slide 10
Notação de Programação Dinâmica n n Em cada estágio, n, do programa dinâmico, há: • uma variável de estado, xn • uma variável de decisão ótima, dn, Para cada valor de xn e dn no estágio n, há: • um valor de função de retorno, rn(xn, dn) O output do processo no estágio n é: • a variável de estado para o estágio n-1, xn-1 • xn-1 é calculado por uma função de transformação de estágio, tn(xn, dn) A função de valor ótimo, fn(xn), é o retorno cumulativo começando no estágio n no estado xn e procedendo para o estágio 1 sob uma estratégia ótima © 2003 Thomson. TM/South-Western Slide 11
Recursão Backwards Geralmente, um problema de PD é resolvido começando-se do estágio final e trabalhando para o estagio inicial, processo chamado de recursão backwards n A relação de recursão a seguir pode ser usada para o princípio de otimalidade : de valor ótimo Funçãooperacionalizar de valor ótimo em n n n em n-1 fn(xn) = MAX {rn(xn, dn) + fn -1(tn(xn , dn))} dn Variável de decisão Um problema é resolvido começando-se noretorno estágio 0 com a Função de em nbackwards para o condição de limite f 0(x 0) = 0, e trabalhando último estágio, N. © 2003 Thomson. TM/South-Western Slide 12
Três aplicações de Programação Dinâmica n Problema da rota mais curta Para resolver um problema de rota mais curta usando programação dinâmica, deve-se considerar a rede como uma série de estágios com um único subconjunto de nós que correspondem a cada estágio. As variáveis de estado correspondem aos diferente nós em cada estágio. © 2003 Thomson. TM/South-Western Slide 13
Três aplicações de Programação Dinâmica n O problema da mochila busca determinar o número ótimo de cada N itens (que não deve ser fracionário) para maximizar o benefício, sujeito a uma restrição de capacidade global. Para resolver um problema de mochila usando a programação dinâmica, as fases correspondem aos artigos diferentes que são colocados na mochila. As variáveis de estado correspondem à capacidade disponível no estágio. © 2003 Thomson. TM/South-Western Slide 14
O problema da mochila – Caso do Avião n Quatro tipos de itens podem ser carregados num avião. A disponibilidade de cada tipo é ilimitada. Os pesos e os valores de cada um dos itens estão na tabela abaixo. Diga quais itens e em quais quantidades devem ser carregados no avião. A capacidade do avião é de 11 toneladas. O Objetivo é maximizar o valor transportado. Item A B C D © 2003 Thomson. TM/South-Western Peso (T) 2 4 5 3 Valor($) 18 25 30 20 Slide 15
Representação Matemática Seja n n = estágio em consideração n xn= número de itens n a serem embarcados n vn = valor do item tipo n n wn = peso do item tipo n n K = capacidade máxima de carga total n © 2003 Thomson. TM/South-Western Slide 16
Formulação por Programação Dinâmica Estágios: cada tipo de item é considerado um estágio n Estados: A capacidade restante (em toneladas inteiras) disponível para alocação. Assim os estados são 0, 1, 2, …. 11. n A decisão em cada estágio: quantas unidades de cada item devem ser incluídas na carga ótima n Relação de recursão: a relação de recursão para este problema é: fn*(sn) = maxxn[vnxn+fn-1*(ss-wnxn)] Onde: sn= quantidade de peso disponível para alocação no estágio n vnxn = ganho deste estágio fn*(sn) = valor ótimo a partir do estágio n para o estado sn fn-1*(ss-wnxn) = valor ótimo do estágio anterior n © 2003 Thomson. TM/South-Western Slide 17
Estágio 1 – Item D (3 t e $20) Estado s 1 (ton disp. ) f 1(s 1) = v 1 x 1 = 20 x 1 x 1=0 x 1=1 x 1=2 f 1*(s 1) x 1=3 0 0 0 1 0 0 2 0 0 3 0 20 20 4 0 20 20 5 0 20 20 6 0 20 40 40 7 0 20 40 40 8 0 20 40 40 9 0 20 40 60 60 10 0 20 40 60 60 11 0 20 40 60 60 © 2003 Thomson. TM/South-Western Slide 18
Estágio 2 – Item C (5 t e $30) Estado s 2 (ton disp. ) f 2(s 2) = 30 x 2+f 1*(s 2 -5 x 2) x 2=0 x 2=1 f 2*(s 2) x 2=2 0 0 0 1 0 0 2 0 0 3 20 20 4 20 20 5 20 30 30 6 40 30 40 7 40 30 40 8 40 50 50 9 60 50 60 10 60 50 60 60 11 60 70 © 2003 Thomson. TM/South-Western Slide 19
Estágio 3 – Item B (4 t e $25) Estado s 3 (ton disp. ) f 3(s 3) = 25 x 3+f 2*(s 3 -4 x 3) x 3=0 x 3=1 f 3*(s 3) x 3=2 0 0 0 1 0 0 2 0 0 3 20 20 4 20 25 25 5 30 25 30 6 40 25 40 7 40 45 45 8 50 45 50 50 9 60 55 50 60 10 60 65 50 65 11 70 65 70 70 © 2003 Thomson. TM/South-Western Slide 20
Estágio 1 – Item A (2 t e $18) Estado s 4 (ton disp. ) 11 f 4(s 4) = 18 x 4+f 3*(s 4 -2 x 4) f 4*(s 1) x 4=0 x 4=1 x 4=2 x 4=3 x 4=4 x 4=5 70 78 81 84 92 90 92 Recuperando a Solução: Estágio 4: x 4 = 4 unidades de A, com peso igual a 8 t e valor igual a $72, sobraram dos 11 t apenas 3 t Estágio 3: x 3 = 0 Estágio 2: x 2 = 0 Estágio 1: x 1 = 1 unidade de D, com peso igual a 3 t e valor igual a $20 TM/South-Western Valor ótimo igual a $92 © 2003 Thomson Slide 21
Três aplicações de Programação Dinâmica n Problemas de controle de produção e estoque Em problemas de controle de produção e estoque, os estágios correspondem a períodos de tempo e as variáveis de estado geralmente se referem às quantidades de estoque disponíveis no começo de cada estágio. © 2003 Thomson. TM/South-Western Slide 22
Exemplo: Dicom Corporation n Problema de controle de produção e estoque A Dicom Corporation deseja determinar um programa de produção para seu novo Modelo 44/12 de soldador robótico. Por causa de diferenças em disponibilidade de peças e capacidade de produção, o custo de produzir as máquinas variará de mês a mês. O custo de manutenção para cada soldador não vendido, ainda em estoque no término do mês, é de $500. 000. A política da corporação prevê que o número máximo de soldadores deixados em estoque ao término de qualquer mês é 8. Dados adicionais aparecem no próximo slide. © 2003 Thomson. TM/South-Western Slide 23
Exemplo: Dicom Corporation Custo de Máximo Produção Nível de Demanda por Máquina Produção de Vendas Mês (em $100. 000's) por Mês (em Unid. ) Agosto 32 4 2 Setembro 18 3 1 Outubro 26 4 5 Novembro 45 5 3 Determine um programa de produção ótimo de 4 meses para o Modelo de soldador 44/12. © 2003 Thomson. TM/South-Western Slide 24
Exemplo: Dicom Corporation n Problema de Programação Dinâmica de 4 -estágios Trabalhando backwards, faça o estágio 1 corresponder a novembro, estágio 2 a outubro etc. Os dados a seguir (custos em $100. 000's) podem ser inferidos: Mês (n) 1 2 3 4 Custo Capacid. produto Manuten. Dem. Produção Estoque Por Unid. Por unid Dn Pn Wn Cn Hn 3 5 1 2 5 4 3 4 © 2003 Thomson. TM/South-Western 8 8 45 26 18 32 5 5 Slide 25
Exemplo: Dicom Corporation n Definição da Variável de Estado xn = número de soldadores em estoque no começo do mês n. x 4 = 0 (uma vez que o soldador é novo, não haverá estoque no começo de agosto. ) n Definição da Variável de Decisão dn = quantidade de produção para o mês n. © 2003 Thomson. TM/South-Western Slide 26
Exemplo: Dicom Corporation n Função de Transformação de Estágio Então, os estágios de transformação para os meses 0 até 4 podem ser definidos por: (Estoque do mês anterior) + (Produção deste mês) - (Demanda deste mês) xn-1 = xn + dn - Dn © 2003 Thomson. TM/South-Western Slide 27
Exemplo: Dicom Corporation n Função de Retorno rn(xn, dn) = (custo de Prod. ) + (custo de Manut. ) para o mês n Custo de Produção = (custo de Produção por unid. ) x (Número de unid. produzidas no mês n) Custo de Manutenção = (custo de Manut. por unid. ) x (Estoque final para o mês n) Daí, rn(xn, dn) = Cn dn + Hn(xn + dn - Dn) © 2003 Thomson. TM/South-Western Slide 28
Exemplo: Dicom Corporation n Função de Retorno (continuação) rn(xn, dn) = Cn dn + Hn(xn + dn - Dn) Fornecendo: r 1(x 1, d 1) = 50 d 1 + 5 x 1 - 15 r 2(x 2, d 2) = 31 d 2 + 5 x 2 - 25 r 3(x 3, d 3) = 23 d 3 + 5 x 3 - 5 r 4(x 4, d 4) = 37 d 4 + 5 x 4 – 10 © 2003 Thomson. TM/South-Western Slide 29
Exemplo: Dicom Corporation n Restrições em xn e dn • Restrição (1) Uma vez que ordem em espera não é permitida, deve-se estar apto a alcançar a demanda de vendas em qualquer mês. xn + dn > Dn © 2003 Thomson. TM/South-Western Slide 30
Exemplo: Dicom Corporation n Restrições em xn e dn (continuação) • Restrição (2) Uma vez que há uma estocagem máxima de Wn em cada estágio n, o estoque total no final de qualquer mês não pode exceder Wn. xn + dn - Dn < Wn ou xn + dn < Wn + Dn © 2003 Thomson. TM/South-Western Slide 31
Exemplo: Dicom Corporation n Restrições em xn e dn (continuação) • Restrição (3) A quantidade produzida em qualquer mês não pode exceder a capacidade de produção para aquele mês. dn < Pn © 2003 Thomson. TM/South-Western Slide 32
Exemplo: Dicom Corporation n Função do Valor Ótimo fn(xn) = retorno ótimo (custo mínimo) para os estágios 1 até n dado um estágio inicial n com xn soldadores em estoque fn(xn) = Min {rn(xn , dn) + fn -1(xn -1)} dn onde dn é forçado pelas restrições (1), (2), e (3). © 2003 Thomson. TM/South-Western Slide 33
Exemplo: Dicom Corporation n Estágio 1 (Novembro) Uma vez que f 0(x 0) = 0 é uma condição limitante: f 1(x 1) = Min r 1(x 1, d 1) d 1 Usando a expressão para r 1(x 1, d 1) e restrições (1), (2), (3): f 1(x 1) = Min 5 x 1 + 50 d 1 - 15 s. a. x 1 + d 1 > 3 x 1 + d 1 < 11 d 1 < 5 e, d 1 > 0 © 2003 Thomson. TM/South-Western (1) (2) (3) Slide 34
Exemplo: Dicom Corporation n Valores Tabulados para 50 d 1 +5 x 1 – 15 1 d 1 2 3 x 1 0 0 1 2 3 135 90 140 45 95 145 0 50 100 150 4 5 185 190 195 200 235 240 245 250 d 1* f 1(x 1) 3 2 1 0 135 90 45 0 Nota: Tendo x 1 > 3 resultará em ter soldadores em estoque no final de Novembro, o que é indesejável. © 2003 Thomson. TM/South-Western Slide 35
Exemplo: Dicom Corporation n Estágio 2 (Outubro) f 2(x 2) = Min 5 x 2 + 31 d 2 -25 + f 1(x 1) d 2 Dadas as restrições, o sub-problema é: f 2(x 2) = Min 5 x 2+ 31 d 2 -25 + f 1(x 2+ d 2 - 5) s. a. x 2+ e, © 2003 Thomson. TM/South-Western d 2 > 5 (1) d 2 < 13 (2) d 2 < 4 (3) d 2 > 0 Slide 36
Exemplo: Dicom Corporation n Valores Tabulados para 5 x 2 + 31 d 2 -25 + f 1(x 1) x 2 1 2 3 4 5 6 7 8 0 1 d 2 2 187 161 147 135 121 107 95 81 67 55 41 15 3 213 173 133 93 4 239 199 159 119 d 2* f 2(x 2) x 2+d 2*-5 = x 1 4 4 3 2 1 0 239 199 159 119 93 67 41 15 0 1 2 3 3 3 Nota: x 2= 0 é impraticável. © 2003 Thomson. TM/South-Western Slide 37
Exemplo: Dicom Corporation n Estágio 3 (Setembro) f 3(x 3) = Min 5 x 3 + 23 d 3 - 5 + f 2(x 2) d 3 Dadas as restrições, o sub-problema é: f 3(x 3) = Min 5 x 3 + 23 d 3 - 5 + f 2(x 3 + d 3 - 1) s. a. x 3 + d 3 > x 3 + d 3 < e d 3 > © 2003 Thomson. TM/South-Western 1 9 3 0 (1) (2) (3) Slide 38
Exemplo: Dicom Corporation n Valores Tabulados para 5 x 3 + 23 d 3 - 5 + f 2(x 3 + d 3 -1) x 3 0 1 2 3 4 5 6 7 8 0 244 209 174 139 118 97 76 1 263 227 192 157 136 115 94 73 d 3 2 3 d 3* 280 245 210 175 154 133 112 91 263 228 193 172 151 130 109 3 3 3 3 1 1 © 2003 Thomson. TM/South-Western f 3(x 3) x 3 + d 3*-1 = x 2 263 228 193 172 151 130 109 91 73 2 3 4 5 6 7 8 8 8 Slide 39
Exemplo: Dicom Corporation n Estágio 4 (Agosto) f 4(x 4) = Min 5 x 4 + 37 d 4 - 10 + f 3(x 3) d 4 Dadas as restrições, o sub-problema é: f 4(x 4) = Min 5 x 4 + 37 d 4 - 10 + f 3(x 4 + d 4 - 2) s. a. © 2003 Thomson. TM/South-Western x 4 + d 4 > 2 (1) x 4 + d 4 < 10 (2) d 4 < 4 (3) e d 4 > 0 Slide 40
Exemplo: Dicom Corporation n Valores Tabulados para 5 x 4 + 37 d 4 - 10 + f 3(x 4 + d 4 - 2) x 4 0 0 1 d 4 2 3 4 327 329 331 d 4* f 4 (x 4 ) x 4+d 4*-2 = x 3 2 327 0 Nota: Uma vez que Agosto começa com x 4 = 0 de estoque disponível, calcule a tabela somente para x 4 = 0. © 2003 Thomson. TM/South-Western Slide 41
Exemplo: Dicom Corporation n Resumo da Solução Trabalhando backwards através das tabelas, pode-se determinar a solução ótima que fornece o custo mínimo de $327 x 100. 000 = $32. 700. 000. Estágio Mês 4 3 2 1 Agosto Setembro Outubro Novembro © 2003 Thomson. TM/South-Western Estoque disponível começando Produção (dn*) Próx. Mês xn-1 2 3 4 2 0 2 1 0 Slide 42
- Slides: 42