Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação Dinâmica
Programação Dinâmica
Programao Dinmica
Prof. Srgio Fernando Mayerle
1.
INTRODUO
2.
TERMINOLOGIA
Programao Dinmica
Prof. Srgio Fernando Mayerle
3
4
4
4
2
6
8
3
2
D
3
4
4
O interesse neste problema no reside apenas em sua soluo, mas, tambm, em desenvolver
um mtodo que possa resolver outros problemas similares. Para tanto, ser apresentada, a
seguir, uma terminologia que ser usada nestes problemas.
Estado:
Estgio:
Ao:
Em cada estado existe um conjunto de aes viveis, das quais uma dever ser
escolhida e executada. No exemplo da figura 2.1, no estado C existem trs aes
viveis: ir para a cidade E, ir para a cidade F ou ir para a cidade G. Resolver o
problema de programao dinmica significa, dado um objetivo, achar a melhor
seqncia de aes.
Plano:
Retorno: O retorno algo que o sistema gera, sobre um estgio ou processo. No problema
da figura 2.1, o retorno a distncia percorrida entre uma cidade e a prxima. O
retorno usualmente, algo do tipo: lucro, custo, distncia, consumo de recursos,
etc.
Valor do Estado: O valor do estado uma funo dos retornos gerados, quando o sistema
evolui de um estado inicial para um estado final, atravs de um plano dado. No
caso do problema da viagem, o valor do estado, para um determinado plano,
corresponde distncia desta cidade at a cidade terminal. O valor de um estado
sob um plano timo o valor timo.
Programao Dinmica
Prof. Srgio Fernando Mayerle
Uma cidade
Estgio
Ao
Retorno
Valor do Estado
3.
3.1
2.1
3
4
4
4
4.1
2
6
3.2
1.1
2.2
0.1
8
3
2
3.3
1.2
3
4
4
2.3
2
Estgios
Remanescentes
Figura 3.1. O problema da viagem entre a cidade A e a cidade J, denotado pelas variveis de
estgio e estado.
Programao Dinmica
Prof. Srgio Fernando Mayerle
Usando esta representao, tm-se os seguintes estados, de acordo com cada estgio:
Estgio 0 = {(0,1)}
Estgio 1 = {(1,1); (1,2)}
Estgio 2 = {(2,1); (2,2); (2,3)}
Estgio 3 = {(3,1); (3,2); (3,3)}
Estgio 4 = {(4,1)}
Associado a cada estado (n, i ) , existe um conjunto K ni de aes viveis. Deste conjunto,
caber ao tomador de decises escolher a ao mais adequada, segundo um critrio
estabelecido. No caso do problema em questo, o critrio a ser usado a minimizao da
distncia. O conjunto K ni pode ser denotado genericamente por:
K ni = {1,2,..., k ,...k ni }
(3.1)
K12 = {1}
K 21 = {1,2}
K 22 = {1,2}
K 23 = {1,2}
K 31 = {1,2,3}
K 32 = {1,2,3}
K 33 = {1,2,3}
K 41 = {1,2,3}
No problema do viajante, em um estado (n, i ) , o estado sucessor ser (n 1, j ) , onde j ser
determinado a partir de uma ao k, pela equao:
j = k onde k K ni
(3.2)
(3.3)
Programao Dinmica
Prof. Srgio Fernando Mayerle
Estgio
Estado
Uma cidade
Ao
Retorno
Valor do Estado
(n, i )
k
r (n, i, k )
f (n, i )
4.
Em linhas gerais, a soluo do problema pode ser obtida atribuindo o valor zero ao estado
terminal, e voltando para estgios anteriores (1, 2, etc.), a fim de determinar em cada estado, a
melhor ao a ser executada.
Em detalhes, o mtodo pode ser delineado pelo seguinte algoritmo:
P0
P1
P2
P3
P4
P5
P6
P7
Programao Dinmica
Prof. Srgio Fernando Mayerle
se k = 1
se k = 2
Obviamente, entre as duas alternativas apresentadas, o melhor optar pela primeira cujo custo
total, at alcanar o estado final, o menor, e portanto f(2,1) = 6, que corresponde ao
tima k* = 1. Em outras palavras, no caso genrico tem-se:
f (n, i ) = Min [r (n, i, k ) + f (n 1, j )]
k K ni
(4.1)
(4.2)
(4.3)
O valor zero, atribudo aos estados terminais, pode ser adequadamente substitudo pelos
valores residuais do sistema, considerando cada estado no final de sua vida til. Em alguns
casos conveniente atribuir um valor que penalize o plano que contenha um determinado
estado terminal, caso este estado no seja desejvel.
Programao Dinmica
Prof. Srgio Fernando Mayerle
[r (3,1, k ) + f (2, k )]
k {1, 2,3}
Programao Dinmica
Prof. Srgio Fernando Mayerle
[r (3,3, k ) + f (2, k )]
f (3,3) = Min
k {1, 2,3}
[r (4,1, k ) + f (3, k )]
k {1,2,3}
4.1
3.3
2.1
1.1
0.1
Programao Dinmica
Prof. Srgio Fernando Mayerle
Estgio
Estado
Ao
Estado
Valor Estado
Retorno
Valor Estado
f (n-1,j)
r (n,i,k)
f (n,i)
11
10
10
15
11
12
10
14
11
Com base na tabela acima, pode-se obter a seqncia de decises timas, dadas pelas aes
timas de cada estado, resultando com isto a tabela 4.2 que contm apenas o plano timo.
Estgio
Estado
Ao
Estado
Valor Estado
Retorno
Valor Estado
f (n-1,j)
r (n,i,k)
f (n,i)
10
11
Programao Dinmica
Prof. Srgio Fernando Mayerle
10
5.
Considere um sistema que em um dado estgio passa do estado (n, i ) para ( n 1, j ) , sob a
ao k, e gera o retorno r (n, i, k ) . Considere, ainda, que An um plano genrico que
determina a seqncia de aes k n , k n 1 ,..., k1 . Suponha que todo o processo tenha m
estgios, e que se deseja maximizar a funo de retornos dos estgios, isto , que se deseja
obter o mximo valor de f (m, i ) definido por:
f (m, i ) = Max {r (m, im , k m ),..., r (n, in , k n ),..., r (1, i1 , k1 )}
Am W
(5.1)
onde W o conjunto de todos os planos que iniciam no estado (m, i ) . A fim de que este
mximo seja obtido, necessrio que as condies de separabilidade e de otimalidade,
discutidas a seguir, sejam satisfeitas.
Condio de Separabilidade
A condio de separabilidade possibilita a aplicao de recursividade, dado um plano fixo.
Seu enunciado o seguinte:
Para todo plano, o valor de cada estado pode ser necessariamente calculado
como uma funo do retorno do estgio imediato e do valor do estado
subseqente.
Seja o valor do estado (m, im ) , sob um plano Am denotado por f (m, im , Am ) . Ento:
f (m, im , Am ) = {r (m, im , k m ),..., r (n, in , k n ),..., r (1, i1 , k1 )}
(5.2)
Se a Condio de Separabilidade se aplica, ento, para cada estado (n, in ) e um dado plano
An pode-se escrever a equao (5.2) na forma:
f (n, in , An ) = { r (n, in , k n ), f (n 1, in1, An1 )}
(5.3)
f (n 1, in 1 , An 1 ) = { r (n 1, in 1 , k n 1 ),..., r (1, i1 , k1 )}
(5.4)
onde:
Programao Dinmica
Prof. Srgio Fernando Mayerle
(5.5)
11
f (m, im , Am ) =
b m n r (n, in , k n )
(5.6)
n =1
f (m, im , Am ) = b 0 r (m, im , k m ) +
f (m, im , Am ) = r (m, im , k m ) + b
m 1
b m n r (n, in , k n )
(5.7)
n =1
m 1
b m n 1 r (n, in , k n )
(5.8)
n =1
f (m, im , Am ) = r (m, im , k m ) + b f (m 1, im 1 , Am 1 )
(5.9)
(5.10)
Pode-se dizer que um plano A consiste de uma ao k, seguida de um plano A do estgio n-1.
Pode-se expressar isto pela equao:
An = k n + An 1
(5.11)
Tem-se ento:
f (n, in , An ) = f (n, in , k n + An 1 )
(5.12)
Seja An* 1 um plano timo para o estado (n 1, in 1 ) , sucessor de (n, in ) dado uma ao k n .
Assumindo maximizao, a condio de otimalidade requer que para qualquer estado (n, in ) ,
ao k n , e plano An 1 :
f (n, in , k n + An* 1 ) f (n, in , k n + An 1 )
Programao Dinmica
Prof. Srgio Fernando Mayerle
(5.13)
12
A inequao (5.13) a sentena algbrica que garante a condio de otimalidade para o caso
de maximizao. Para o caso de minimizao o sinal da inequao (5.13) ser invertido.
Exemplo - Maximizao de retornos com desconto para o Valor Presente
Se os retornos so descontados para o presente, por meio de um fator de desconto b para um
perodo (estgio), ento, o valor do estado (n, in ) , sob um plano dado An dado por:
f (n, in , kn + An 1) = r (n, in , kn ) + b f (n 1, in 1, kn 1)
(5.14)
(5.15)
6.
Programao Dinmica
Prof. Srgio Fernando Mayerle
(6.1)
j =1
13
Considerando, entretanto que se deseja maximizar os retornos, a expresso passa a ser escrita
na forma:
N
j =1
(6.2)
Pode-se, atravs de uma anlise mais abrangente, concluir que, no caso estocstico, o
problema de programao dinmica poder ser solucionado por um algoritmo iterativo, igual
ao apresentado no incio da seo 4. Basicamente a diferena entre o caso determinstico e o
caso estocstico esto na forma de calcular o valor do estado sob uma ao k qualquer, onde
neste caso o valor dever ser obtido atravs de uma expresso do tipo apresentado na equao
(6.1).
7.
IMPLANTAO COMPUTACIONAL
Todo problema de programao dinmica pode ser estruturado para ser resolvido com auxlio
de computadores digitais. Embora os sistemas desenvolvidos para tal fim sejam especficos
para cada problema, em linhas gerais a estrutura sempre a mesma. Na figura 7.1 mostrado
um fluxograma geral destes sistemas.
Considere um problema de programao dinmica com n estgios, N estados por estgio, e k
aes por estado. Ao resolver este problema, atravs do algoritmo apresentado na figura 7.1,
so executados, em cada iterao, k adies e k comparaes. O nmero total de operaes
para o caso determinstico, considerando cada adio e cada comparao como sendo uma
operao, 2nNk .
Se fosse utilizado um processo de enumerao explcita, teriam que ser analisados, no mesmo
problema, (n + 1) Nk n operaes, j que seriam Nk n combinaes possveis, cada uma das
quais com (n + 1) operaes.
Exemplificando, para n = N = k = 10, atravs do uso de Programao Dinmica seriam na
ordem de 2.000 operaes, enquanto que para o processo de enumerao explcita ter-se-ia na
ordem de 1,21 1013 operaes.
Entretanto, mesmo assim, o uso da Programao Dinmica limitado para problemas de porte
grande. Supondo que n = N = k = 1000, o nmero de operaes da ordem de 2 10 9 . Para
resolver tal problema seriam necessrias mais de 5 horas, considerando que cada operao
gasta 10 micro-segundos.
Programao Dinmica
Prof. Srgio Fernando Mayerle
14
Incio
Calcule os valores
dos estados terminais
Calcule o valor do
corrente estado e
ao
O valor do estado
obtido melhor que o
obtido anteriormente ?
No
Sim
No
a ltima ao ?
Sim
No
o ltimo estado ?
Sim
No
o ltimo estgio ?
Sim
Fim
Deve-se considerar ainda, que em muitos casos o clculo do valor do estado no uma
operao elementar de adio, mas obtido por meio de funes e operaes bem mais
complexas. Por outro lado, o tempo calculado no exemplo acima corresponde ao caso em que
a rede completa, o que no verdadeiro nos casos prticos, onde a rede tende a ser esparsa.
No algoritmo iterativo apresentado na figura 7.1, a ao tima e o valor de cada estado devem
ser armazenados. O total de memria requerido o dobro do nmero de estados, ou seja, so
necessrios 2nN locais de armazenamento. Em adio a este espao, tem-se ainda
necessidade de armazenar o programa e os dados do problema, mas este espao adicional
irrelevante. Note-se, contudo que apenas os valores de estado no estgio corrente e no estgio
Programao Dinmica
Prof. Srgio Fernando Mayerle
15
8.
n {10,9,8,...,1,0}
Estado: Nmero de linhas de produo em operao;
i {10,11,...,14}
O mximo nmero de linhas de produo necessrio para atender toda a demanda do
final do perodo de planejamento 14.
Ao: Nmero
k {0,1}
Dado que a taxa de crescimento da demanda de apenas 3,0% ao ano, e que a incluso
de uma linha a mais no processo de produo representa um aumento de capacidade
Programao Dinmica
Prof. Srgio Fernando Mayerle
16
produtiva da ordem de 10%, conclui-se que em nenhum ano ser necessrio implantar
mais do que 1 linha de produo para atender a demanda;
Valor presente dos lucros das vendas e investimentos a serem realizados a
partir do estado em questo, considerando que o melhor plano ser implantado;
Valor do Estado:
f (0, i ) = 0
i {10,11,...,14}
Retorno:
Funo de Transio:
j =i+k
Funo de Recorrncia:
f (n, i ) = Max
k Ki
K i = {k | 0 k min (1 ; 14 i ) }
Programao Dinmica
Prof. Srgio Fernando Mayerle
17
9.
Problema 01
Uma companhia possui um armazm no qual pode ser guardado determinado tipo de
mercadoria. No incio de cada ano o armazm pode estar cheio ou vazio. Se o armazm
estiver cheio, a companhia pode tomar as seguintes decises:
1. No comprar e no vender, deixando o armazm cheio para o incio do prximo ano;
2. Vender toda a mercadoria e adquirir estoque novo, deixando o armazm cheio no incio do
ano seguinte;
3. Vender toda a mercadoria e no comprar nada.
Se o armazm estiver vazio, a companhia poder:
1. No comprar;
2. Comprar o suficiente para encher o armazm.
Uma estimativa dos preos de compra e venda da mercadoria foi preparada e apresentada
abaixo:
Valores em US$ (mil)
Ano
Preo de Venda
10
13
18
14
11
Preo de Compra
11
13
15
15
11
Se o armazm estiver cheio durante um ano, sem movimento de estoque, a companhia tem um
custo de US$ 1.000.000,00. Determine o plano timo de compra e venda de mercadoria para
um perodo de planejamento de 5 anos, supondo que o armazm atualmente est cheio, e que
dever estar cheio no final deste perodo.
Problema 02
Resolva o problema anterior, supondo que os valores futuros so descontados com uma taxa
de 25% ao ano.
Problema 03
Em um processo de laminao, uma barra de metal de 10 cm de espessura prensada por trs
rolos sucessivos, at atingir uma espessura de 4 cm. O custo de operao de um destes rolos
depende da espessura da barra na entrada do rolo, e da reduo da espessura, conforme
mostrado no quadro abaixo:
Programao Dinmica
Prof. Srgio Fernando Mayerle
18
Custo do Processo
Reduo (cm)
Espessura
1
10
12
10
***
10
***
12
***
10
***
***
Fev
Mar
Abr
Mai
Jun
Jul
Barcos
Este construtor pode fabricar at quatro barcos por ms, e pode manter em estoque at trs
barcos. Se houver fabricao de barcos em um determinado ms, um custo de US$
400.000,00 1realizado, independente da quantidade produzida, alm do custo de fabricao
que de US$ 1.000.000,00 por barco produzido. O custo de manuteno de um barco em
estoque por um ms completo de US$ 100.000,00. Determine o plano timo de produo,
assumindo que o estoque inicial no incio de Fevereiro zero, e que o estoque no final de
Julho deve ser zero.
Problema 05
Um equipamento de um processo de produo inspecionado anualmente, podendo ser
reparado ou substitudo. O custo de manuteno e o valor residual do equipamento so
apresentados abaixo:
Idade (Anos)
Custo Manuteno
10
19
Problema 06
Uma fbrica pode produzir trs tipos de mercadorias denominadas por A, B e C, em
quantidades a serem determinadas. Cada produto necessita de matria-prima, da qual apenas 4
toneladas esto disponveis. A alocao de uma certa quantidade de matria-prima em um
certo produto resulta em um retorno, que apresentado no quadro abaixo. Determine as
quantidades timas a serem produzidas de cada mercadoria.
Alocao de
Tipo de Mercadoria
Matria Prima
(ton.)
10
17
11
19
11
11
Problema 07
Um mercador itinerante pode transportar no mximo 14 m3 de mercadorias em seu caminho.
Ele vende quatro diferentes mercadorias, denominadas por A, B, C e D, cujos volumes
unitrios so 1 m3, 3 m3, 4 m3 e 6 m3, respectivamente. O lucro esperado associado s diversas
quantidades de carga, por tipo de produto, apresentado abaixo.
Tipo de Produto
Nvel de
Carga
10
14
22
18
28
40
26
38
50
30
44
***
32
***
***
Quantos itens de cada mercadoria devero ser transportados, para que o retorno esperado seja
maximizado ?
Problema 08
A manuteno de uma instalao deve ser completada em 10 dias. A manuteno tem trs
estgios: terraplanagem, reparos e reconstruo, que devero ser realizados seqencialmente.
O tempo necessrio para a realizao de cada uma destas etapas, e o custo das mesmas,
dependem dos recursos empregados para a sua realizao, conforme mostra a tabela abaixo.
Programao Dinmica
Prof. Srgio Fernando Mayerle
20
Terraplanagem
18
17
Reparos
11
Reconstruo
20
15
Preo de
Quantidade
Unitrio
Venda
Encomendada
(mm)
(US$/m)
(US$/m)
(m)
15
20
15000
21
27
12000
34
45
6000
10
50
65
15000
12
68
89
8000
15
100
130
16000
20
163
212
9000
Bitola
Programao Dinmica
Prof. Srgio Fernando Mayerle
21
0,0
1,0
2,0
3,0
4,0
5,0
CUSTO BIMENSAL
1,0
2,0
4,0
7,0
11,0
16,0
10,0
10%
10%
10%
25%
10%
10%
11,0
40%
30%
40%
35%
35%
30%
12,0
40%
35%
30%
30%
40%
40%
13,0
10%
25%
20%
10%
15%
20%
7,0
15%
5%
20%
30%
30%
20%
8,0
35%
30%
40%
40%
35%
40%
9,0
40%
35%
30%
25%
30%
30%
5%
10%
10,0
10%
30%
10%
5%
(*) A afluncia est especificada em unidades equivalentes de energia.
Programao Dinmica
Prof. Srgio Fernando Mayerle
22