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

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

Programação Dinâmica (PD)

Apresentações semelhantes


Apresentação em tema: "Programação Dinâmica (PD)"— Transcrição da apresentação:

1 Programação Dinâmica (PD)
Pesquisa Operacional II

2 Programação Dinâmica A Programação Dinâmica consiste na decomposição do problema original em uma sequência de problemas menores e mais simples de serem resolvidos.

3 Conceitos básicos Decisões (xn): em cada estágio, a partir das informações contidas inicialmente, escolhem-se as melhores decisões. O efeito da decisão política é transformar o estado do estágio atual em um estado do próximo estágio.

4 Definições Preliminares
Estágios (n): O problema é dividido em estágios, com a necessidade de se tomar uma decisão política a cada estágio. Estados (sn): Cada estágio tem um número associado de estados, que representam as várias condições possíveis dentro de um estágio do problema. Ou seja, os estados são as informações contidas em cada estágio, necessárias para a tomada de decisões.

5 Programação Dinâmica pode ser determinística ou probabilística.
PD determinística: o estado do próximo estágio é unicamente determinado pela decisão política do estágio atual. PD probabilística: o estado seguinte depende de alguma distribuição de probabilidade.

6 Princípio de otimalidade de Bellman
Dado o estado atual, a decisão ótima para cada estágio remanescente não depende das decisões tomadas em estágios anteriores. Assim, a decisão ótima para cada estágio seguinte depende somente do estado atual, não importando o que aconteceu anteriormente. Por exemplo, suponha que o caminho mais curto entre a UNIRIO e a UFRJ seja conhecido e esse caminho passa necessariamente pela Central do BR. Consequentemente, o caminho mais curto entre a UNIRIO e a UFRJ deve incluir o caminho mais curto entre a Central do BR e a UFRJ.

7 Processo de solução da PD
Para encontrar a solução ótima de um modelo de PD pelo processo backward, determina-se a solução ótima de cada estado, iniciando pelo último estágio até encontrar a solução ótima dos estados no estágio inicial.

8 Recursividade No processo de solução utiliza-se uma equação recursiva que identifica a solução ótima para cada estado de um estágio n qualquer, dada a solução ótima para cada estado do estágio seguinte n + 1. Essa função varia de acordo com o problema estudado!

9 Notações N – número de estágios
n - rótulo do estágio atual (n = 1, ..., N) sn – estados do estágio n xn – variável de decisão no estágio n x*n (sn) – valor ótimo de xn dado sn. fn (sn, xn) – função objetivo acumulada na forma recursiva dos estágios n, n + 1, ..., N, se o sistema parte de um estado sn no estágio n e toma a decisão xn. fn*(sn) = max ou min {fn (sn, xn)}

10 Transição de estados em PD
Estágios: n n + 1 sn+1 fn*(sn) = max ou min fn (sn, xn). fn (sn, xn) = csnxn + f*n+1(sn+1) Decisão política: xn Contribuição (c) sn Relação recursiva para um modelo aditivo.

11 Resolução de problemas de PD
sn xn fn(sn, xn) f*n(sn) x*n(sn) ...

12 Exemplo 1: Problema do caminho mais curto
Problema da diligência (pag. 424 do livro) Objetivo: determinar a rota que minimiza o custo total. Estágio 2 Estágio 3 Estágio 1 7 Estágio 4 1 B E 4 H 4 6 3 2 3 6 4 C 2 J A F 3 4 3 4 1 4 3 I D G 3 5

13 Resolvendo por Programação Dinâmica
Temos os estágios n = 1, 2 , 3, 4 Em cada estágio, os estados (sn) representam as informações iniciais (nós de saída) e as decisões (xn) representam o destino imediato (nós de entrada) no estágio n. Faça que fn (sn, xn) seja o custo total da melhor escolha como um todo para os estágios restantes, dado que o objeto se encontre no estado sn, pronto para iniciar o estágio n e selecione xn como seu destino imediato.

14 Resolvendo por Programação Dinâmica

15 Resolvendo por Programação Dinâmica

16 Resolvendo por Programação Dinâmica
As rotas ótimas para o Problema da Diligência são: A – C – E – H – J A – D – E – H – J A – D – F – I – J.

17 Exemplo 2 – Problema do Esforço da Distribuição
Característica: há apenas um tipo de recurso que deve ser alocado a uma série de atividades. O objetivo é determinar como distribuir de forma mais eficiente o recurso entre as atividades.

18 Exemplo 2 – Problema do Esforço da Distribuição
Formulação: Estágio n = atividade n (n = 1, ..., N). xn = quantidade do recurso alocado à atividade n. Estado sn = quantidade do recurso ainda disponível para alocação para as atividades restantes. Estágio: n n + 1 xn Estado: sn sn - xn

19 Exemplo 2 – Problema do Esforço da Distribuição
Situação: Há três equipes de pesquisa para solucionar um problema de engenharia. A probabilidade de que as respectivas equipes - 1, 2 e 3 – não serão bem sucedidas é de, respectivamente, 40%, 60% e 80%. Como o objetivo é minimizar a probabilidade de falha, foram designados mais dois cientistas. O problema é determinar como alocar os dois cientistas adicionais para minimizar a probabilidade de que todas as equipes vão falhar.

20

21 Exemplo 2 – Problema do Esforço da Distribuição
Formulação: Estágio n = equipe n (n = 1, 2,3). xn = nº de cientistas adicionais alocados à equipe n. Estado sn = nº de novos cientistas ainda disponíveis para alocação às equipes restantes. fn (sn, xn) = pn(xn).f*n+1(sn- xn), para n = 1, 2,3 pn(xn) = probabilidade de falha para a equipe n caso lhe seja designada xn cientistas adicionais.

22 n = 3: n = 2: n = 1: Sol. Ótima: x*1 = 1, x*2 = 0 e x*3 = 1.

23 Problema de dimensionalidade
O aumento no número de variáveis de estado aumenta os cálculos em cada estado, pois temos que realizar todas as possíveis combinações de variáveis de estado. Em termos computacional, o número de cálculo pode se impraticável. Essa dificuldade de cálculo é chamada maldição da dimensionalidade. (ver exemplo 5 cap. 10, Hillier e Lieberman).

24 Lista de exercícios Livro Hillier e Lieberman.
Capítulo 10 – Programação Dinâmica Pagina 456, exercícios nºs (letras a e c), (apenas letra b),


Carregar ppt "Programação Dinâmica (PD)"

Apresentações semelhantes


Anúncios Google