A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. Dr. Marcio Mattos Borges de Oliveira

Apresentações semelhantes


Apresentação em tema: "Prof. Dr. Marcio Mattos Borges de Oliveira"— Transcrição da apresentação:

1 Prof. Dr. Marcio Mattos Borges de Oliveira
Programação Dinâmica Prof. Dr. Marcio Mattos Borges de Oliveira

2 Programação Dinâmica 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

3 Introdução 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

4 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 1 2 x1 x2 x'1 x'2 = r2 r1 d2 d1

5 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

6 Exemplo 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?

7 Solução 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!

8 Programação Dinâmica 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

9 Programação Dinâmica 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

10 Programação Dinâmica 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.

11 Notação de Programação Dinâmica
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

12 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 A relação de recursão a seguir pode ser usada para operacionalizar o princípio de otimalidade: fn(xn) = MAX {rn(xn,dn) + fn -1(tn(xn , dn))} dn Um problema é resolvido começando-se no estágio 0 com a condição de limite f0(x0) = 0, e trabalhando backwards para o último estágio, N. Função de valor ótimo em n-1 Função de valor ótimo em n Variável de decisão Função de retorno em n

13 Três aplicações de Programação Dinâmica
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.

14 Três aplicações de Programação Dinâmica
O problema da mochila 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.

15 O problema da mochila – Caso do Avião
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 Peso (T) Valor($) A 2 18 B 4 25 C 5 30 D 3 20

16 Representação Matemática
Seja n = estágio em consideração xn= número de itens n a serem embarcados vn = valor do item tipo n wn = peso do item tipo n K = capacidade máxima de carga total

17 Formulação por Programação Dinâmica
Estágios: cada tipo de item é considerado um estágio Estados: A capacidade restante (em toneladas inteiras) disponível para alocação. Assim os estados são 0,1,2,….11. A decisão em cada estágio: quantas unidades de cada item devem ser incluídas na carga ótima 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

18 Estágio 1 – Item D (3t e $20) Estado s1 (ton disp.)
f1(s1) = v1x1 = 20x1 f1*(s1) x1=0 x1=1 x1=2 x1=3 1 2 3 20 4 5 6 40 7 8 9 60 10 11

19 Estágio 2 – Item C (5t e $30) Estado s2 (ton disp.)
f2(s2) = 30x2+f1*(s2-5x2) f2*(s2) x2=0 x2=1 x2=2 1 2 3 20 4 5 30 6 40 7 8 50 9 60 10 11 70

20 Estágio 3 – Item B (4t e $25) Estado s3 (ton disp.)
f3(s3) = 25x3+f2*(s3-4x3) f3*(s3) x3=0 x3=1 x3=2 1 2 3 20 4 25 5 30 6 40 7 45 8 50 9 60 55 10 65 11 70

21 Estágio 1 – Item A (2t e $18) Estado s4 (ton disp.)
f4(s4) = 18x4+f3*(s4-2x4) f4*(s1) x4=0 x4=1 x4=2 x4=3 x4=4 x4=5 11 70 78 81 84 92 90 Recuperando a Solução: Estágio 4: x4 = 4 unidades de A, com peso igual a 8t e valor igual a $72, sobraram dos 11t apenas 3t Estágio 3: x3 = 0 Estágio 2: x2 = 0 Estágio 1: x1 = 1 unidade de D, com peso igual a 3t e valor igual a $20 Valor ótimo igual a $92

22 Três aplicações de Programação Dinâmica
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.

23 Exemplo: Dicom Corporation
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 $ 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.

24 Exemplo: Dicom Corporation
Custo de Máximo Produção Nível de Demanda por Máquina Produção de Vendas Mês (em $ 's) por Mês (em Unid.) Agosto Setembro Outubro Novembro Determine um programa de produção ótimo de 4-meses para o Modelo de soldador 44/12.

25 Exemplo: Dicom Corporation
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 $ 's) podem ser inferidos: Custo Custo Capacid. Capacid. produto Manuten. Mês Dem. Produção Estoque Por Unid. Por unid (n) Dn Pn Wn Cn Hn

26 Exemplo: Dicom Corporation
Definição da Variável de Estado xn = número de soldadores em estoque no começo do mês n. x4 = 0 (uma vez que o soldador é novo, não haverá estoque no começo de agosto.) Definição da Variável de Decisão dn = quantidade de produção para o mês n.

27 Exemplo: Dicom Corporation
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

28 Exemplo: Dicom Corporation
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)

29 Exemplo: Dicom Corporation
Função de Retorno (continuação) rn(xn,dn) = Cn dn + Hn(xn + dn - Dn) Fornecendo: r1(x1,d1) = 50d1 + 5x1 - 15 r2(x2,d2) = 31d2 + 5x2 - 25 r3(x3,d3) = 23d3 + 5x r4(x4,d4) = 37d4 + 5x4 – 10

30 Exemplo: Dicom Corporation
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

31 Exemplo: Dicom Corporation
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

32 Exemplo: Dicom Corporation
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

33 Exemplo: Dicom Corporation
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).

34 Exemplo: Dicom Corporation
Estágio 1 (Novembro) Uma vez que f0(x0) = 0 é uma condição limitante: f1(x1) = Min r1(x1, d1) d1 Usando a expressão para r1(x1, d1) e restrições (1), (2), (3): f1(x1) = Min 5x d1 - 15 s.a x d1 > (1) x d1 < (2) d1 < (3) e, d1 > 0

35 Exemplo: Dicom Corporation
Valores Tabulados para 50d1 +5x1 –15 d1 x d1* f1(x1) Nota: Tendo x1 > 3 resultará em ter soldadores em estoque no final de Novembro, o que é indesejável.

36 Exemplo: Dicom Corporation
Estágio 2 (Outubro) f2(x2) = Min 5x2 + 31d f1(x1) d2 Dadas as restrições, o sub-problema é: f2(x2) = Min 5x2+ 31d f1(x2+ d2 - 5) s.a. x d2 > (1) x d2 < (2) d2 < (3) e, d2 > 0

37 Exemplo: Dicom Corporation
Valores Tabulados para 5x2 + 31d f1(x1) d2 x d2* f2(x2) x2+d2*-5 = x1 Nota: x2= 0 é impraticável.

38 Exemplo: Dicom Corporation
Estágio 3 (Setembro) f3(x3) = Min 5x3 + 23d f2(x2) d3 Dadas as restrições, o sub-problema é: f3(x3) = Min 5x3 + 23d f2(x3 + d3 - 1) s.a. x3 + d3 > (1) x3 + d3 < (2) d3 < (3) e d3 > 0

39 Exemplo: Dicom Corporation
Valores Tabulados para 5x3 + 23d f2(x3 + d3 -1) x d3* f3(x3) x3 + d3*-1 = x2 d3

40 Exemplo: Dicom Corporation
Estágio 4 (Agosto) f4(x4) = Min 5x4 + 37d f3(x3) d4 Dadas as restrições, o sub-problema é: f4(x4) = Min 5x4 + 37d f3(x4 + d4 - 2) s.a x4 + d4 > (1) x4 + d4 < (2) d4 < (3) e d4 > 0

41 Exemplo: Dicom Corporation
Valores Tabulados para 5x4 + 37d f3(x4 + d4 - 2) d4 x d4* f4 (x4 ) x4+d4*-2 = x3 Nota: Uma vez que Agosto começa com x4 = 0 de estoque disponível, calcule a tabela somente para x4 = 0.

42 Exemplo: Dicom Corporation
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 = $ Estoque dispo- nível começando Estágio Mês Produção (dn*) Próx. Mês xn-1 Agosto Setembro Outubro Novembro


Carregar ppt "Prof. Dr. Marcio Mattos Borges de Oliveira"

Apresentações semelhantes


Anúncios Google