






Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Programação dinâmica
Tipologia: Notas de estudo
1 / 12
Esta página não é visível na pré-visualização
Não perca as partes importantes!







Programação Dinâmica
Jorge P. J. Santos
1
Principais características:^ ( i )
Etapas
( ii )
Estados
( iii
)^ Decisões
( iv
)^ Princípio de Optimalidade
Dinâmica
tem
de
obedecer
a
este
princípio,
isto
é,
as
suas
características têm de ser tais que o conhecimento do estado correntedo
sistema
contenha
toda
a
informação
à
cerca
do
seu
prévio
comportamento, necessária à determinação do plano óptimo a partirdele.
Programação Dinâmica
Jorge P. J. Santos
2
( v )
“Backward”
“Forward”
( vi
)^ Recursividade
cada estado na etapa genérica
n
, dado o plano óptimo da etapa
seguinte, isto é, dado o plano óptimo para cada estado da etapa (
n +1).
Esta relação varia com o problema em causa.
( vii
)^ Notação
usual xn^
n^
( n^
sn^
n^
( n^
*^ x n
xn
dado
s^ n
f^
s^
x n^
n^ ,^ n
n
,^ n
para a função
objectivo se o sistema parte de um estado
sn
na etapa
n^
e se
toma a decisão
xn
f^
s^
x^
f^
s^
opt f
s
x
n^
n^
n^
n^
n^
x^
n^
n^
n
n
*^
* ≡^
xn
( viii
) Em todos os problemas de programação dinâmica usamos uma tabela da forma:
s^
f^
s *^ n
*x n
Programação Dinâmica
Jorge P. J. Santos
3
2
(^43)
7 4 6 32 4 4 1 5
(^14633 )
(^34)
Exemplo 1:
Determine o caminho mais curto entre o nó 1 e o nó 10 da seguinte
rede orientada:
Formulação em Programação Inteira 0-1: Sejam
o conjunto de nós da rede e
o conjunto de arcos da rede, isto é:
Se
x^
i j
= ij
se o arco ( , ) pertence ao caminho entre 1 e 10caso contrario
( i , j
Então o problema pode ser formulado do seguinte modo:
minimize z
i
ij xcij
sujeito a
∈
∈^
se
se
se 1 0 1
:
:^
i
i i
x
x
A i,j j
ji
A j,i j
ij
xij^
( i , j
custo
c^ ij
que leva
atravessar a arco (
i , j )
Programação Dinâmica
Jorge P. J. Santos
4
Formulação em Programação Dinâmica: Sejam
e}
, então o}
problema pode ser formulado em termos de programação dinâmica do seguintemodo:
Etapas:
Estados:
s^ n
é um elemento do conjunto
V^ n
-^
( n^
Decisão:
xn
é o nó a escolher na etapa
n ;
Recursividade:
-^ O custo do caminho mais curto entre o nó
sn
e o nó 10
*n xs V x n *n^
x f
c min s f^
nn n n
(^1) +
∈
,^ n
-^ O custo do caminho mais curto entre o nó
sn
e o nó 10 com
passagem por
xn
é dado por
f^
s^
x^
c^
f^
x
n^
n^
n^
s x
n^
n
n^ n
,^
*
+^1
-^ O custo do caminho mais curto entre o nó 10 e o nó 10 é pordefinição igual a zero, isto é,
( ) f^5
Programação Dinâmica
Jorge P. J. Santos
7
Formulação em Programação Dinâmica: Seja
cn
( xn
) o número de créditos obtidos quando o estudante dedica
xn
dias ao
estudo
do
curso
n
,^ então
o
problema
pode
ser
formulado
em termos
de
programação dinâmica do seguinte modo:
Etapas:
= 4 (4 decisões interrelacionadas quanto ao número de diasa dedicar a cada curso);
Estados:
sn
é o número de dias de estudo ainda disponíveis para as etapas
n ,
n +1,...,
Decisões:
xn
é o número de dias a dedicar ao curso (etapa)
n. Em todas
as etapas as decisões possíveis são 1, 2, 3 ou 4.
Recursividade:
-^ O número de créditos que o aluno obtém da etapa
n^
para a
última etapa sabendo que tem disponíveis
sn
dias e na etapa
n
toma a decisão
xn
é dado por
(^
)^
(^
)^
(^
)
f^
s^
x^
c^
x^
max
c^
x
n^
n^
n^
n^
n^
i^
i
i^ n
=^ (^4) ∑^ +^1
com
n
N ni
i^
s x^
∑=
-^ O número de créditos que o aluno obtém da etapa
n^
para a
última etapa sabendo tem disponíveis
s^ n
dias é dado por
(^
)^
(^
)
f^
s^
max
f^
s^
x
n^
n^
x^
n^
n^
n
n^
n
*
, ,...,s
=1 2
-^ O número de créditos que o aluno obtém na etapa 5 é pordefinição igual a zero, isto é,
( ) f^5
Nota - Destas relações podemos concluir que:
(^
)^
(^
)^
(^
)
f^
s^
x^
c^
x^
f^
s^
x
n^
n^
n^
n^
n^
n^
n^
n sn
*
1
1 1 2^4
Programação Dinâmica
Jorge P. J. Santos
8
Resolução:
Estados
= 1 n
= 2 n
= 3 n
= 4 n
possíveis
*^ f 1
*^ x 1
*^ f 2
*^ x 2
*^ f 3
*^ x 3
*f 4
*x 4
3 ou 4
Solução óptima:
s^1
x^
s^
s^
x
1
2
1
1
*^
*
x^
s^
s^
x
2
3
2
2
*^
*
x^
s^
s^
x
3
4
3
3
*^
*
x^4
*^ = O estudante deve dedicar 2 dias ao curso 1, 1 ao curso 2, 3 ao curso 3e 1 ao curso 4.
Programação Dinâmica
Jorge P. J. Santos
9
Exemplo 3:
Um projecto espacial governamental, que conduz investigação num
dado problema de engenharia, deverá estar resolvido antes de o homem partirpara Marte. Neste momento existem três equipas de investigação a ensaiar trêsabordagens
diferentes
de
solução.
Foram
feitas
estimativas
que
sob
as
circunstâncias actuais dão as probabilidades de não triunfarem:
equipa 1
equipa 2
equipa 3
com uma probabilidade total de falhanço de 0.192 ( = 0.
0.80). Fora
então tomada a decisão de destinar mais 2 cientistas de craveira ao projecto,entre as três equipas afim de baixar aquela probabilidade de falhar. Comodistribuir os dois cientistas por forma a minimizar a probabilidade total defalhanço, sabendo que as novas probabilidades são dadas pela seguinte tabela:
nº de novoscientistas
Equipa
Equipa
Equipa
Formulação em Programação Inteira 0-1: Seja
p^ ij
a probabilidade da equipa
j^ falhar quando é constituída por mais
i^ novos
cientistas (
i^ = 0,1,2;
j^ = 1,2,3). Se
x^
j^
i
= ij
se a equipa
tem
novos cientistas
caso contrario
i^ = 0,1,2;
j
Então o problema pode ser formulado do seguinte modo:
minimize z
p xij^
ij
i j^
∑ ∏
2 0 3 1
sujeito a
x^
x
j j
j j (^11) 3
2 3 2 1
=^
=
∑^
+^ ∑
xij ∑ i^ =
2 0
j^ = 1,2,
xij^
i^ = 0,1,2;
j^ = 1,2,
Programação Dinâmica
Jorge P. J. Santos
10
Formulação em Programação Dinâmica: Seja
p^ n
( xn
) a probabilidade de falhar a equipa
n^
se ela tiver
xn
novos cientistas,
então o problema pode ser formulado em termos de programação dinâmica doseguinte modo:
Etapas:
= 3 (3 decisões interrelacionadas quanto ao número de novos cientistas a atribuir a cada equipa de investigação);
Estados:
sn
é o número de novos cientistas ainda disponíveis para as etapas
n ,
n +1,...,
Decisões:
xn
é o número de novos cientistas colocados na equipa (etapa)
n. Em todas as etapas as decisões possíveis são 0, 1 ou
Recursividade:
A probabilidade de falhanço da etapa •
n^
para a última etapa
sabendo que tem disponíveis
sn
novos cientistas e na etapa
n
toma a decisão
xn
é dada por
(^
)^
(^
)^
(^
)
f^
s^
x^
p^
x^
min
p^
x
n^
n^
n^
n^
n^
i^
i
i^ n
=^ (^3) ∏^ +^1
com
n
N ni
i^
s x^
∑=
-^ A probabilidade de falhanço da etapa
n^
para a última etapa
sabendo que existem
sn^
novos cientistas é dada por
(^
)^
(^
)
f^
s^
min
f^
s^
x
n^
n^
x^
s^
n^
n^
n
n^
n
, ,...,
=0 1
-^ A probabilidade de falhanço na etapa 4 é por definição iguala um, isto é,
( ) f^4
Nota - Destas relações podemos concluir que:
(^
)^
(^
)^
(^
)
f^
s^
x^
p^
x^
f^
s^
x
n^
n^
n^
n^
n^
n^
n^
n sn
1
1 1 2^4
Programação Dinâmica
Jorge P. J. Santos
13
Formulação em Programação Dinâmica:
Etapas:
= 5 (5 decisões interrelacionadas correspondentes aos cincoanos de investimento);
Estados:
sn
é o capital disponível para investir no inicio da etapa
n
( n =1,...,5).
s^1
sn^
=^ p
n -
( xn
q^ n
sn -
-^ x
n -
i^ = 2,3,4,
Decisões:
xn
representa a quantia a investir na compra de equipamento I, em cada etapa
n^
( n =1,...,5).
Recursividade para a função Lucro Bruto:
-^ O Lucro Bruto obtido da etapa
n^
para a última etapa sabendo
que estão disponíveis
sn
u.m. e na etapa
n^
é investido
xn
u.m.
no equipamento 1 é dado por
(^
)^
(^
)^
(^
)^
(^
)
f^
s^
x^
p x
q^
s^
x^
g^
x^
g^
s^
x
n^
n^
n^
n^ n
n^
n^
n^
n^
n^
n
1
2
(^
)^
(^
)^
(^
)
(^
)
N ∑+= ni
i i i i i i
ii
x
x s g x g x s q
xp
maxi
1
2
1
-^ O Lucro Bruto obtido da etapa
n^
para a última etapa sabendo
que estão disponíveis
sn
u.m. é dado por
(^
)^
(^
)
f^
s^
max
f^
s^
x
n^
n^
x^
s^
x^
C^
n^
n^
n
n^
n
*^
≤^
≤^
≤^
≤
0
0
1 e
-^ O Lucro Bruto obtido da etapa 6 é por definição igual a zero,isto é,
( ) f^6
Nota - Destas relações podemos concluir que:
(^
)^
(^
)^
(^
)^
(^
)
f^
s^
x^
p x
q^
s^
x^
g^
x^
g^
s^
x
n^
n^
n^
n^ n
n^
n^
n^
n^
n^
n
1
2
(^
)
(^
)
f^
p x
q^
s^
x
n^
n^
n^
n^
n^
n
sn
1
1
Programação Dinâmica
Jorge P. J. Santos
14
Recursividade para a função Lucro Líquido:
O Lucro Líquido obtido da etapa
n
para a última etapa
sabendo que estão disponíveis
sn
u.m. e na etapa
n^
é investido
xn^
u.m. no equipamento 1 é dado por
(^
)^
(^
)^
(^
)
f^
s^
x^
g^
x^
g^
s^
x
n^
n^
n^
n^
n^
n
1
2
(^
)^
(^
)
(^
)
=^ ∑+ max
g^
x^
g^
s^
x
x^
i^
i^
i
N i n i
1
2
1
O Lucro Líquido obtido da etapa
n
para a última etapa
sabendo que estão disponíveis
sn
u.m. é dado por
(^
)^
(^
)
f^
s^
max
f^
s^
x
n^
n^
x^
s^
x^
C^
n^
n^
n
n^
n
*^
≤^
≤^
≤^
≤
0
0
1 e
-^ O Lucro Líquido obtido na etapa 6 é por definição igual aocapital resultante da venda dos equipamentos no último ano,isto é,
( )
(^
)
f^
p x
q^
s^
x
6
5 5
5
5
5
Nota - Destas relações podemos concluir que:
(^
)^
(^
)^
(^
)
f^
s^
x^
g^
x^
g^
s^
x
n^
n^
n^
n^
n^
n
1
2
(^
)
(^
)
f^
p x
q^
s^
x
n^
n^
n^
n^
n^
n
sn
1
1
Resolução usando a função Lucro Bruto: n^ = 5
(^
)^
(^
)^
(^
)^
(^
)^
( )
f^
s^
x^
p x
q^
s^
x^
g^
x^
g^
s^
x^
f
5
5
5
5 5
5
5
5
1
5
2
5
5
6
(^
)^
(^
)
5
5
5
5
5
5
. x
s^
x^
. x
s^
x
5
5
. x
s.
Programação Dinâmica
Jorge P. J. Santos
15
5
5
≤^
x^
s^
com
(^
)^
(^
)
s^
p x
q^
s^
x^
x^
s^
x^
x^
s
5
4
4
4
4
4
4
4
4
4
4
(^
)^
(^
)
{^
}^
{^
}
f^
s^
max
f^
x^
s^
max
x^
s
x^
s^
x^
s
5
5
0
5
5
5
0
5
5
5
5
5
*^
≤^
≤^
≤^
≤
(^
)^
(^
)
4
4
4
4
4
4
x^
s^
x^
s^
x^
s
∂^ f^5 x ∂^5
Em síntese temos n^
(^
)
f^
s^
x 5
5
∂^ f^5 ∂ x^5
x^5
*^ x 5
(^
) f^
s 5
5
x +1.2^5
s^5
x +0.7^4
s ]^4
x +0.7^4
s^4
x +0.98^4
s^4
n^ = 4
(^
)^
(^
)^
(^
)^
(^
)^
(^
)
f^
s^
x^
p x
q^
s^
x^
g^
x^
g^
s^
x^
f^
s
4
4
4
4 4
4
4
4
1
4
2
4
4
5
5
(^
)^
(^
)^
(^
)
4
4
4
4
4
4
4
4
. x
s^
x^
. x
s^
x^
x^
s
4
4
x^
s
4
4
≤^
x^
s^
com
(^
)^
(^
)
s^
p x
q^
s^
x^
x^
s^
x^
x^
s
4
3 3
3
3
3
3
3
3
3
3
(^
)^
(^
)
{^
}^
{^
}
f^
s^
max
f^
x^
s^
max
x^
s
x^
s^
x^
s
4
4
0
4
4
4
0
4
4
4
4
4
4
*^
≤^
≤^
≤^
≤
(^
)
3
3
3
3
x^
s^
x^
s
∂^ f^4 ∂ x^4
Em síntese temos n^
(^
)
f^
s^
x 4
4
∂^ f^4 ∂ x^4
x^4
*^ x 4
(^
) f^
s 4
4
x +2.38^4
s^4
x +0.5^3
s ]^3
x +1.19^3
s^3
Programação Dinâmica
Jorge P. J. Santos
16
n^ = 3
(^
)^
(^
)^
(^
)^
(^
)^
(^
)
f^
s^
x^
p x
q^
s^
x^
g^
x^
g^
s^
x^
f^
s
3
3
3
3 3
3
3
3
1
3
2
3
3
4
4
(^
)^
(^
)^
(^
)
3
3
3
3
3
3
3
3
. x
s^
x^
. x
s^
x^
x^
s
3
3
x^
s
3
3
≤^
x^
s^
com
(^
)^
(^
)
s^
p x
q^
s^
x^
x^
s^
x^
x^
s
3
2
2
2
2
2
2
2
2
2
2
(^
)^
(^
)
{^
}^
{^
}
f^
s^
max
f^
x^
s^
max
x^
s
x^
s^
x^
s
3
3
0
3
3
3
0
3
3
3
3
3
3
*^
≤^
≤^
≤^
≤
(^
)
2
2
2
2
x^
s^
x^
s
∂^ f^3 ∂ x^3
Em síntese temos n^
(^
)
f^
s^
x 3
3
∂^ f^3 ∂ x^3
x^3
*^ x 3
(^
) f^
x +2.39^3
s^3
x +0.1^2
s ]^2
x +0.239^2
s^2
n^ = 2
(^
)^
(^
)^
(^
)^
(^
)^
(^
)
f^
s^
x^
p x
q^
s^
x^
g^
x^
g^
s^
x^
f^
s
2
2
2
2 2
2
2
2
1
2
2
2
2
3
3
(^
)^
(^
)^
(^
)
2
2
2
2
2
2
2
2
. x .^ s
x^
. x
s^
x^
x^
s
2
2
x^
s
2
2
≤^
x^
s^
com
(^
)^
(^
)
s^
p x
q^
s^
x^
x^
s^
x^
s
2
1 1
1
1
1
1
1
1
1
(^
)^
(^
)
{^
}^
{^
}
f^
s^
max
f^
x^
s^
max
x^
s
x^
s^
x^
s
2
2
0
2
2
2
0
2
2
2
2
2
*^
≤^
≤^
≤^
≤
(^
)^
(^
)
1
1
1
s^
s^
s
∂^ f^2 ∂ x^2
Em síntese temos
Programação Dinâmica
Jorge P. J. Santos
19
item para obter um aceitável. A probabilidade de produzir um item aceitável é de½ e a de produzir um defeituoso é de ½. Assim, o número de aceitáveis dum lotede tamanho
terá uma distribuição binomial, isto é, a probabilidade de produzir
zero itens aceitáveis num lote de tamanho L é de
(^
L^ 1 ) 2
Sempre que a inspecção revela que completado um lote não há ainda um item aceitável, então o processo de produção deve ser recomeçado havendo umcusto fixo de 3 u. m. sempre que o processo de produção é iniciado sendo oscustos marginais de 1 u. m. por item. Devido a restrições temporais a fábrica nãopode executar mais do que três processos produtivos. Se no final do terceiroprocesso produtivo não for produzido um item aceitável, então o custo para ofabricante por perdas de receitas de vendas e custos de produção é de 16 u. m..
Determine o plano e o respectivo tamanho do lote para cada processo produtivo que minimize o custo total esperado. Formulação em Programação Dinâmica:
Etapas:
= 3 (os três processos de produção);
Estados:
contrario caso 0
etapes nas
aceitável item um
encontrado foi não se 1
n-
s^ n
Decisões:
xn
é o tamanho do lote na etapa
n.
Recursividade:
-^ O custo total esperado da etapa
n^
para a última etapa dado
sn
e^ x
é dado por n
(^
)^
( )
( )
( )
( ) 43 421
1 0
12
1
1 2
+^ =
+^
*n x
*n x n
n n^
f
f
x K x, f^
n
n (^
)^
( )
x^
f
n
x
n n 12
(^
)^
f^ n
-^ O custo total esperado da etapa
n^
para a última etapa dado
sn
é dado por
(por hipótese do problema)
Programação Dinâmica
Jorge P. J. Santos
20
(^
)^
(^
)
f^
s^
min
f^
s^
x
n^
n^
x^
s^
n^
n^
n
n^
n
, ,...,
=0 1
-^ O custo terminal no caso de não ter ocorrido itens aceitáveisé de 16 u. m., isto é,
( ) f^4
*^
Resolução:^ n^
(^
)^
(^ )
f^
x^
x^
x
3
3
3
12
3
s^3
x^3
(^
) f^
s 3
3 *^
3 ou 4
n^ = 2
(^
)^
(^ )
( )
f^
x^
x^
f x
2
2
2
12
3
2
s^2
x^2
(^
) f^
s 2
2 *^
7+1/
8+1/
9+1/
2 ou 3
n^ = 1
(^
)^
(^ )
( )
f^
x^
x^
f x
1
1
1
1 2
2
1
s^1
x^1
(^
) f^
s 1
1 *^
4+7/
5+7/
6+7/
7+1/
8+1/
9+1/
5+7/
Solução óptima:
x^1
x^2
ou 3
x^3
*^
Esquema de produção: •^
Devemos produzir 2 itens no primeiro processo de fabrico.
-^
Se nenhum é aceitável, devemos produzir 2 ou 3 no segundo processo defabrico.
-^
Se nenhum é aceitável, devemos produzir 3 ou 4 no terceiro processo de fabrico.
Programação Dinâmica
Jorge P. J. Santos
21
Exemplo 6 - Problema de Knapsack:
Uma fábrica recebe uma ordem de encomenda de papel de quatro tipos:
6 rolos de papel de 2.5 metros a 3.10 u. m. por rolo
-^
5 rolos de papel de 4.0 metros a 5.25 u. m. por rolo
-^
4 rolos de papel de 3.0 metros a 4.40 u. m. por rolo
-^
8 rolos de papel de 2.0 metros a 2.50 u. m. por rolo
Sabe-se que existem apenas 13 metros de papel e que se pode satisfazer parcialmente (em números inteiros) qualquer pedido. Quais os pedidos quedevem ser satisfeitos de modo a maximizar a receita total? Formulação em Programação Inteira: Sejam
rj
( j = 1,...,4) a receita da venda de um rolo do tipo
j ,^
q^ j^
( j^
= 1,...,4) o
comprimento de um rolo do tipo
j^
e^ u
o limite superior do papel que eu posso
gastar. Se
xj
( j^
= 1,...,4) é o número de encomendas de papel de cada tipo que
devem ser satisfeitas, então o problema pode ser formulado do seguinte modo:
maximize z
r xj^
j (^4) ∑ j =^1
sujeito a
q x
u j^
j ∑ j^ =
4 1 xj^
inteiros
j^ = 1,...,
xj^
j^ = 1,...,
Programação Dinâmica
Jorge P. J. Santos
22
Formulação em Programação Dinâmica:
Etapas:
= 4 (as diferentes ordens correspondentes aos diferentes tipos derolos de papel).
Estados:
sn
é a quantidade restante de papel deixada para ser processada da etapa
n^
para a primeira etapa. Assim
s^4
Decisões:
xn
é o número de rolos de papel a fabricar em cada etapa
n. Deste
modo, 0
xn^
≤^ u
onde n^
un
é número de rolos fisicamente possível
imposto pela disponibilidade de papel existente, isto é,
u^
n^
n n =
onde
é a quantidade de papel disponível e n^
L^ n
é o comprimento
de um rolo de papel do tipo
n. Assim,
sn -
sn^
-^ x
Ln n
n^ = 1,2,3,
Recursividade no sentido
“Forward”
-^ O lucro da etapa
n^
para a primeira etapa dado
s^ n
e^ x
é igual a n
(^
)^
(^
)
f^
s^
x^
r x
f^
s^
x L
n^
n^
n^
n^
n^
n^
n^
n^
n s^ n
−
− 1
1 1
n^ = 1,2,3,
-^ O lucro da etapa
n^
para a primeira etapa é igual a (^
)^
(^
)
f^
s^
max
f^
s^
x
n^
n^
x^
u^
n^
n^
n
n^
n
*^
≤^
≤ 0
n^ = 1,2,3,
-^ O lucro na etapa 0 é igual a zero, isto é,
( ) f^0