Você está na página 1de 24

Programação Dinâmica (PD)

Pesquisa Operacional II
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.
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.
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.
• 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.
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.
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.
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!
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)}
Transição de estados em PD
Estágios: n n+1

sn+1 fn*(sn) = max ou min fn (sn, xn).


Decisão política: xn
fn (sn, xn) = csnxn + f*n+1(sn+1)
Contribuição (c)

sn

Relação recursiva para um


modelo aditivo.
Resolução de problemas de PD

xn fn(sn, xn)

sn ... ... f*n(sn) x*n(sn)

. . . . .
. . . . .
. . . . .
Exemplo 1: Problema do caminho
mais curto
• Problema da diligência (pag. 424 do livro)
Estágio 2
Estágio 1 7 Estágio 3 Estágio 4
B E 1
4 4 H
2 6 3

3 6
A 4 C 2 F J
4 3
3 4
4 1 3 I
D G 3
5

• Objetivo: determinar a rota que minimiza o custo


total.
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.
Resolvendo por Programação
Dinâmica
• n=4 x4 f4(s4, x4) = Cs4x4
s4 J f*4(s4) x*4(s4)
H 3 3 J
I 4 4 J

• n=3 s
x3 f3(s3, x3) = Cs3x3 + f*4(x3)
H I f*3(s) x*3
E 4 8 4 H
F 9 7 7 I
G 6 7 6 H
Resolvendo por Programação
Dinâmica
• n=2

x1 f1(s, x1) = csx1 + f*2(x1)


• n=1 s B C D f*1(s) x*1
A 13 11 11 11 C ou D
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.
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.
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 s n - xn
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.
Probabilidade de Falha
Novos Equipe
Cientistas 1 2 3
0 0,40 0,60 0,80
1 0,20 0,40 0,50
2 0,15 0,20 0,30
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.
n = 3:

n = 2:

n = 1:

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


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).
Lista de exercícios
• Livro Hillier e Lieberman.
Capítulo 10 – Programação Dinâmica
Pagina 456, exercícios nºs
10.2-1 (letras a e c), 10.2-2 (apenas letra b),
10.3-1

Você também pode gostar