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

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

1 1 Slide Programação Dinâmica Prof. Dr. Alexandre Pereira Salgado Junior.

Apresentações semelhantes


Apresentação em tema: "1 1 Slide Programação Dinâmica Prof. Dr. Alexandre Pereira Salgado Junior."— Transcrição da apresentação:

1 1 1 Slide Programação Dinâmica Prof. Dr. Alexandre Pereira Salgado Junior

2 2 2 Slide Programação Dinâmica n n Introdução n n Avaliação da Programação Dinâmica n n Anotação de Programação Dinâmica n n Recursão backwards

3 3 3 Slide Introdução n n Aplicável a sistemas seriados, lineares ou não, contínuos ou discretos n n Sistemas seriados: são aqueles em que as variáveis de estado na saída de um elemento representam as entradas ao elemento seguinte n n Ex: processos

4 4 4 Slide n n = estágio n x n = variável de estado - entrada n x’ n = variável de estado - saída n d n = variável de decisão n r n = retorno 12 x1x1 x2x2 x' 1 x' 2 = r2r2 r1r1 d2d2 d1d1

5 5 5 Slide n n Pode ser usada na solução de muitos problemas de otimização n n 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 n n Muito empregada na solução de problemas de redes, de estoque e de alocação de recursos

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

7 7 7 Slide Solução n n Se eu tiver certeza que será a vez do meu oponente quando estiver sobrando 1 fósforo, eu 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 8 8 Slide 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.

9 9 9 Slide Problema da rota mais curta n Considere a rede na qual se apresenta o custo entre as rotas 123 56 A$ 20$ 25$ 303 $ 20 46 5B 1$ 30$ 404$ 5$ 20 45 B 2 $ 305$ 10 B 6$ 25

10 10 Slide Problema da rota mais curta A B 6 4 3 1 20 30 20 30 40 25 2 5 20 25 10 20 30 5

11 11 Slide Problema da rota mais curta A B 6 4 3 1 20 30 20 30 40 25 2 5 20 25 10 20 30 5 [$10] [$45] [$35] [$40] [$60] [$25] [$15] n Processo Backwards

12 12 Slide Problema da rota mais curta A B 6 4 3 1 20 30 20 30 40 25 2 5 20 25 10 20 30 5 [$10] [$45] [$35] [$40] [$60] [$25] [$15] n Processo Backwards

13 13 Slide EXERCÍCIO A B 8 6 4 2 45 50 30 10 35 30 40 3 5 25 10 5 1 7 50 20 15 30 15

14 14 Slide Programação Dinâmica n n Avaliação da Programação Dinâmica n n Anotação de Programação Dinâmica n n Recursão backwards

15 15 Slide Programação Dinâmica 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 n n Para aplicar PD com sucesso, o problema original deve ser visto como um problema de decisão multi-estágio n n Definir as fases de um problema de PD às vezes é óbvio, mas algumas vezes isto requer raciocínio sutil

16 16 Slide 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 n n 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.

17 17 Slide Notação de Programação Dinâmica n n Em cada estágio, n, do programa dinâmico, há: uma variável de estado, x n uma variável de decisão ótima, d n, n n Para cada valor de x n e d n no estágio n, há: um valor de função de retorno, r n ( x n, d n ) n n O output do processo no estágio n é: a variável de estado para o estágio n- 1, x n- 1 x n- 1 é calculado por uma função de transformação de estágio, t n ( x n, d n ) n n A função de valor ótimo, f n ( x n ), é o retorno cumulativo começando no estágio n no estado x n e procedendo para o estágio 1 sob uma estratégia ótima

18 18 Slide n Geralmente, um problema de PD é resolvido começando-se do estágio final e trabalhando para o estagio inicial, processo chamado de n 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 operacionalizar o princípio de otimalidade: f n ( x n ) = MAX { r n ( x n, d n ) + f n -1 ( t n ( x n, d n ))} f n ( x n ) = MAX { r n ( x n, d n ) + f n -1 ( t n ( x n, d n ))} d n d n n Um problema é resolvido começando-se no estágio 0 com a condição de limite f 0 ( x 0 ) = 0, e trabalhando backwards para o último estágio, N. Recursão Backwards Função de valor ótimo em n-1 Variável de decisão Função de valor ótimo em n Função de retorno em n

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

20 20 Slide Problema das Equipes em Centros de Saúde

21 21 Slide

22 22 Slide

23 23 Slide Zero em A e 5 em B 2 em A e 3 em B 1 em A, 3 em B e 1 em C 3 em A, 1 em B e 1 em C...

24 24 Slide Resposta (Não é Backwards) A = 1 (20), B = 3 (30) C = 1 (10) Total * = 60 Muda

25 25 Slide EXERCÍCIO 1

26 26 Slide n Sete equipes de saúde devem ser distribuídas a quatro regiões distintas. Determine quantas equipes devem ser deslocadas para cada localidade, visando maximizar o número de vidas salvas, sabendo-se que: Os valores interiores da tabela representam o número de vidas salvas em milhares (que varia em função da quantidade de equipes na região) Os valores interiores da tabela representam o número de vidas salvas em milhares (que varia em função da quantidade de equipes na região) Ficou determinado o número mínimo de uma equipe por região Ficou determinado o número mínimo de uma equipe por região Exercício 2

27 27 Slide

28 28 Slide O problema da mochila – Caso do Avião n 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. ItemPeso (T)Valor($) A218 B425 C530 D320

29 29 Slide Representação Matemática n n Seja n n n = estágio em consideração n n x n = número de itens n a serem embarcados n n v n = valor do item tipo n n n w n = peso do item tipo n n n K = capacidade máxima de carga total

30 30 Slide Formulação por Programação Dinâmica n n Estágios: cada tipo de item é considerado um estágio n n Estados: A capacidade restante (em toneladas inteiras) disponível para alocação. Assim os estados são 0,1,2,….11. n n A decisão em cada estágio: quantas unidades de cada item devem ser incluídas na carga ótima n n Relação de recursão: a relação de recursão para este problema é: f n * (s n ) = max xn [v n x n +f n-1 * (s s -w n x n )] Onde: s n = quantidade de peso disponível para alocação no estágio n v n x n = ganho deste estágio f n * (s n ) = valor ótimo a partir do estágio n para o estado s n f n-1 * (s s -w n x n ) = valor ótimo do estágio anterior

31 31 Slide Estágio 1 – Item D (3t e $20) Estado s 1 (ton disp.) f 1 (s 1 ) = v 1 x 1 = 20x 1 f 1 *(s1) x 1 =0 x 1 =1 x 1 =2 x 1 =3 000 100 200 302020 402020 502020 60204040 70204040 80204040 9020406060 10020406060 11020406060

32 32 Slide Estágio 2 – Item C (5t e $30) Estado s 2 (ton disp.) f 2 (s 2 ) = 30x 2 +f 1 * (s 2 -5x 2 ) f 2 *(s 2 ) x 2 =0 x 2 =1 x 2 =2 000 100 200 32020 42020 5203030 6403040 7403040 8405050 9605060 1060506060 1160706070

33 33 Slide Estágio 3 – Item B (4t e $25) Estado s 3 (ton disp.) f 3 (s 3 ) = 25x 3 +f 2 * (s 3 -4x 3 ) f 3 *(s 3 ) x 3 =0 x 3 =1 x 3 =2 000 100 200 32020 4202525 5302530 6402540 7404545 850455050 960555060 1060655065 1170657070

34 34 Slide Estágio 1 – Item A (2t e $18) Estado s 4 (ton disp.) f 4 (s 4 ) = 18x 4 +f 3 * (s 4 -2x 4 )f 4 *(s1) x 4 =0x 4 =1x 4 =2x 4 =3x 4 =4x 4 =5 1170788184929092 Recuperando a Solução: Estágio 4: x 4 = 4 unidades de A, com peso igual a 8t e valor igual a $72, sobraram dos 11t apenas 3t 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 3t e valor igual a $20 Valor ótimo igual a $92


Carregar ppt "1 1 Slide Programação Dinâmica Prof. Dr. Alexandre Pereira Salgado Junior."

Apresentações semelhantes


Anúncios Google