Академический Документы
Профессиональный Документы
Культура Документы
Santos
(i) Etapas - So os diferentes nveis naturais em que se pode dividir um (vi) Recursividade - uma relao funcional que identifica o plano ptimo para
problema. Em cada uma delas estabelece-se um plano de decises. cada estado na etapa genrica n, dado o plano ptimo da etapa
seguinte, isto , dado o plano ptimo para cada estado da etapa (n+1).
(ii) Estados - Cada etapa ter associado um determinado nmero de estados
Esta relao varia com o problema em causa.
(finito ou infinito, discreto ou contnuo dependendo da natureza do
problema). Em geral os estados so as vrias condies possveis nos (vii) Notao usual
quais o sistema se pode apresentar numa dada etapa. xn - varivel de deciso na etapa n (n = 1,...,N);
sn - elemento do conjunto de estados da etapa n (n = 1,...,N);
(iii) Decises - Segundo um determinada plano o seu efeito em cada etapa
transformar o estado corrente num outro estado associado etapa x*n - o valor ptimo de xn dado sn;
seguinte. Essa transformao pode eventualmente obedecer a uma f n ( sn , xn ) - contribuio das etapas n, n+1,..., N para a funo
distribuio de probabilidade, contudo os casos apresentados so de objectivo se o sistema parte de um estado sn na etapa n e se
carcter determinstico e no probabilstico.
toma a deciso xn;
(iv) Princpio de Optimalidade - Todo o problema resolvel por Programao
( )
fn sn ,x*n fn*( sn) = opt{ fn( sn ,xn )} - para todas as decises admissveis xn.
xn
Dinmica tem de obedecer a este princpio, isto , as suas
caractersticas tm de ser tais que o conhecimento do estado corrente
(viii) Em todos os problemas de programao dinmica usamos uma tabela da
do sistema contenha toda a informao cerca do seu prvio
forma:
comportamento, necessria determinao do plano ptimo a partir
dele. s f n* ( s) x*n
M M M
1 2
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
Exemplo 1: Determine o caminho mais curto entre o n 1 e o n 10 da seguinte Formulao em Programao Dinmica:
rede orientada:
Sejam V0 = {1}, V1 = {2,3,4}, V2 = {5,6,7}, V3 = {8,9} e V4 = {10}, ento o
7
2 5 1 problema pode ser formulado em termos de programao dinmica do seguinte
4
6 4
modo:
8
2 3
3 6
4 2 Etapas: N = 4;
1 3 6 3
10
4
3 4
Estados: sn um elemento do conjunto Vn-1 (n = 1,...,4);
9
4 1 3
3
4 5 7 custo cij que leva Deciso: xn o n a escolher na etapa n;
atravessar a arco (i,j)
Sejam V o conjunto de ns da rede e A o conjunto de arcos da rede, isto : O custo do caminho mais curto entre o n sn e o n 10
V = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} { }
f n* (sn ) = min cs n x n + f n*+1 ( xn ) , n = 4, 3, 2, 1.
x n Vn
A = {(1,2), (1,3), (1,4), (2,5), (2,6), (2,7), (3,5), (3,6), (3,7), (4,5),
(4,6), (4,7), (5,8), (5,9), (6,8), (6,9), (7,8), (7,9), (8,10), (9,10)} O custo do caminho mais curto entre o n sn e o n 10 com
3 4
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
f 3 ( s3 , x3 ) = cs3 x3 + f 4* ( x3 ) crditos a obter por cada curso, resultantes do tempo (em dias) dedicados de
acordo com a tabela
x3 8 9 f 3* ( s3 ) x*3
s3 n de dias curso
5 4 8 4 8 de estudo 1 2 3 4
6 9 7 7 9 1 3 5 2 6
7 6 7 6 8 2 5 5 4 7
3 6 6 7 9
n = 2 (faltam trs etapas para cumprir) 4 7 9 8 9
f 2 ( s2 , x2 ) = cs2 x2 + f 3* ( x2 ) Formulao em Programao Inteira 0-1:
x2 5 6 7 ( )
f 2* s2 x*2 Seja cij o nmero de crditos obtidos quando o estudante dedica i dias ao curso j
s2
2 11 11 12 11 5 ou 6 (i = 1,...,4; j = 1,...,4). Se
3 7 9 10 7 5 1 se o estudante dedica i dias ao estudo do curso j
4 8 8 11 8 5 ou 6 xij = i,j = 1,...,4.
0 caso contrario
n = 1 (faltam quatro etapas para cumprir) Ento o problema pode ser formulado do seguinte modo:
( )
f1 s1 , x1 = cs1 x1 + f 2* x1 ( )
4 4
x1 2 3 4 f1* ( s1 ) x1* maximize z = cij xij
s1 i =1 j =1
1 13 11 11 11 3 ou 4 4 4 4 4
sujeito a x1 j + 2 x2 j + 3x3 j + 4 x4 j = 7
Soluo ptima: j =1 j =1 j =1 j =1
4
135810 ou, 145810 ou, 146910.
xij = 1, j = 1,...,4
i =1
xij {0,1}, i = 1,...,4; j = 1,...,4
5 6
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
4 N x*4 = 1
f n ( sn , xn ) = cn ( xn ) + max ci ( xi ) com xi = s n
i = n +1 i =n
O estudante deve dedicar 2 dias ao curso 1, 1 ao curso 2, 3 ao curso 3
O nmero de crditos que o aluno obtm da etapa n para a
e 1 ao curso 4.
ltima etapa sabendo tem disponveis sn dias dado por
f n* ( sn ) = max f n ( sn , xn )
x n =1,2 ,...,sn
f 5* (): = 0
Nota - Destas relaes podemos concluir que:
f n ( sn , xn ) = cn ( xn ) + f n*+1( sn xn )
1424 3
sn + 1
7 8
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
9 10
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
Resoluo:
Exemplo 4: Uma determinada empresa investe determinado capital C na compra
Estados n=1 n=2 n=3
de dois tipos de equipamento (I e II). Se x a quantidade investida na compra de
possveis f 1* x1* f 2* x*2 f 3* x*3
equipamento do tipo I, o lucro correspondente no final de um ano g1(x) e o
0 0.192 0 0.48 0 0.80 0
1 0.096 1 0.30 0 0.50 1 lucro proveniente do investimento de C - x na compra de equipamento de tipo II
2 0.060 1 0.16 2 0.30 2
ser de g2(C - x). A poltica da empresa consiste em vender esse equipamento ao
Soluo ptima: fim de um ano. O retorno da venda desse equipamento no fim do perodo t :
s1 = 2 - equipamento I: pt x, 0 pt < 1;
11 12
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
que esto disponveis sn u.m. e na etapa n investido xn u.m. O Lucro Lquido obtido na etapa 6 por definio igual ao
no equipamento 1 dado por capital resultante da venda dos equipamentos no ltimo ano,
f n ( sn , xn ) = pn xn + qn ( sn xn ) + g1( xn ) + g2 ( sn xn ) + isto ,
N f 6* (): = p5 x5 + q5 ( s5 x5 )
+ max ( p i xi + q i (s i xi ) + g1 ( xi ) + g 2 (s i xi ))
xi i = n +1 Nota - Destas relaes podemos concluir que:
O Lucro Bruto obtido da etapa n para a ltima etapa sabendo f n ( sn , xn ) = g1( xn ) + g2 ( sn xn ) +
O Lucro Bruto obtido da etapa 6 por definio igual a zero, Resoluo usando a funo Lucro Bruto:
isto ,
n=5
f 6* (): = 0
Nota - Destas relaes podemos concluir que: f 5 ( s5 , x5 ) = p5 x5 + q5 ( s5 x5 ) + g1( x5 ) + g2 ( s5 x5 ) + f 6* ()
f n ( sn , xn ) = pn xn + qn ( sn xn ) + g1( xn ) + g2 ( sn xn ) +
= 0.9 x5 + 0.5( s5 x5 ) + 0.5x5 + 0.7( s5 x5 ) + 0
+ f n*+1 ( pn xn + qn ( sn xn ))
144424443 = 0.2 x5 + 12
. s5
sn + 1
13 14
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
0 x5 s5 com n=3
s5 = p4 x4 + q4 ( s4 x4 ) = 0.5x4 + 0.7( s4 x4 ) = 0.2 x4 + 0.7 s4 f 3 ( s3 , x3 ) = p3 x3 + q3 ( s3 x3 ) + g1( x3 ) + g2 ( s3 x3 ) + f 4* ( s4 )
f 5* ( s5 ) = max
0 x5 s5
{ f 5 ( x5 , s5 )} = 0max
x s
{0.2 x5 + 12. s5} = 0.4 x3 + 0.5( s3 x3 ) + 0.5x3 + 0.7( s3 x3 ) + ( 0.238 x3 + 119
. s3 )
5 5
= 0.538 x3 + 2.39 s3
= 0.2( 0.2 x4 + 0.7 s4 ) + 12
. ( 0.2 x4 + 0.7 s4 ) = 0.28 x4 + 0.98s4
0 x3 s3 com
f 5
>0
x 5 s3 = p2 x2 + q2 ( s2 x2 ) = 0.9 x2 + 01
. ( s2 x2 ) = 0.8 x2 + 01
. s2
Em sntese temos
f 3* ( s3 ) = max
0 x 3 s3
{ f 3 ( x3 , s3 )} = 0max
x s
{ 0.538 x3 + 2.39 s3}
f 5
n f 5 ( s5 , x5 )
x5
x5 x5* ( )
f 5* s5
3 3
= 2.39(0.8 x2 + 01
. s2 ) = 1912
. x2 + 0.239 s2
5 0.2x5+1.2s5 > 0 [0,-0.2x4+0.7s4] -0.2x4+0.7s4 -0.28x4+0.98s4
f 3
x 3
<0
n=4
Em sntese temos
f 4 ( s4 , x4 ) = p4 x4 + q4 ( s4 x4 ) + g1( x4 ) + g2 ( s4 x4 ) + f 5* ( s5 ) f 3
n f 3 ( s3 , x3 ) x3 x3* f 3* ( s3 )
x 3
= 0.5x4 + 0.7( s4 x4 ) + 0.5x4 + 0.7( s4 x4 ) + ( 0.28 x4 + 0.98s4 )
3 -0.538x3+2.39s3 < 0 [0,0.8x2+0.1s2] 0 1.912x2+0.239s2
= 0.68 x4 + 2.38s4
0 x4 s4 com n=2
s4 = p3 x3 + q3 ( s3 x3 ) = 0.4 x3 + 0.5( s3 x3 ) = 01
. x3 + 0.5s3 f 2 ( s2 , x2 ) = p2 x2 + q2 ( s2 x2 ) + g1( x2 ) + g2 ( s2 x2 ) + f 3* ( s3 )
= 2.512(0.6s1 ) + 1039
. (0.6s1 ) = 2.1306s1
4 -0.68x4+2.38s4 < 0 [0,-0.1x3+0.5s3] 0 -0.238x3+1.19s3
f 2
>0
x 2
Em sntese temos
15 16
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
f 2 x 2* f 2* ( s2 ) f n x n* f n* ( sn )
n f 2 ( s2 , x2 ) x 2
x2 n f n ( sn , xn ) x n
xn
2 2.512x2+1.039s2 > 0 [0,0.6s1] 0.6s1 2.1306s1 5 0.2x5+1.2s5 > 0 [0,-0.2x4+0.7s4] -0.2x4+0.7s4 -0.28x4+0.98s4
4 -0.48x4+1.68s4 < 0 [0,-0.1x3+0.5s3] 0 -0.168x3+0.84s3
n=1 3 -0.368x3+1.54s3 < 0 [0,0.8x2+0.1s2] 0 1.232x2+0.154s2
2 1.032x2+0.854s2 >0 [0,0.6s1] 0.6s1 1.1316s1
f1( s1 , x1 ) = p1 x1 + q1( s1 x1 ) + g1( x1 ) + g2 ( s1 x1 ) + f 2* ( s2 ) 1 -0.2x1+1.8316s1 <0 [0,C] 0 1.8316C
= 0.6 x1 + 0.6( s1 x1 ) + 0.5x1 + 0.7( s1 x1 ) + 2.1306s1
Soluo ptima:
= 0.2 x1 + 3.4306s1
s1 = 10000
0 x1 s1 com s1 = C = 10000
x1* = 0 s2 = 0.6s1 = 6000
f1* ( s1 ) = max
0 x1 s1
{ f1( x1, s1 )} = max
0 x1 s1
{ 0.2 x1 + 3.4306s1}
x2* = 0.6s1 = 6000 s3 = 0.8 x2* + 01
. s2 = 5400
= 3.4306C
f 1
x3* = 0 . x3* + 0.5s3 = 2700
s4 = 01
x1
<0
x4* = 0 s5 = 0.2 x4* + 0.7 s4 = 1890
Em sntese temos
x5* = 0.2 x4 + 0.7 s4
f 1
n f1 ( s1 , x1 ) x1
x1 x1* ( )
f 1* s1
17 18
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
19 20
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
4 f n* ( sn ) = max f n ( sn , xn ) , n = 1,2,3,4
sujeito a q j x j u 0 x n un
j =1
O lucro na etapa 0 igual a zero, isto ,
xj inteiros j = 1,...,4
f 0* (): = 0
xj 0 j = 1,...,4
21 22
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos
f1* ( s1 ) 0 0 0 3.10 3.10 6.20 6.20 6.20 9.30 9.30 12.40 12.40 12.40 15.50
x4* 0 0 1 0 0 1 0 0 1 0 0 1 0 0
x1* 0 0 0 1 1 2 2 2 3 3 4 4 4 5
Soluo ptima:
x4* = 0 s3 = s4 - 2x4 = 13
n=2 f 2 ( s2 , x2 ) = 5.25x2 + f1* ( s1 )
s2 x3* = 3 s2 = s3 - 3x3 = 4
0 1 2 3 4 5 6 7 8 9 10 11 12 13
x2
x2* = 1 s1 = s2 - 4x2 = 0
0 0 0 0 3.10 3.10 6.20 6.20 6.20 9.30 9.30 12.40 12.40 12.40 15.50
1 -------- -------- -------- -------- 5.25 5.25 5.25 8.35 8.35 11.45 11.45 11.45 14.55 14.55
x1* = 0 s0 = s1 - 2x1 = 0 Lucro total = 18.45
2 -------- -------- -------- -------- -------- -------- -------- -------- 10.50 10.50 10.50 13.60 13.60 16.70
3 -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 15.75 15.75
( )
f 2* s2 0 0 0 3.10 5.25 6.20 6.20 8.35 10.50 11.45 12.40 13.60 15.75 16.70 Observaes:
x 3* 0 0 0 1 0 0 2 1 1 3 2 2 4 3
23 24