Вы находитесь на странице: 1из 12

Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J.

Santos

(v) Backward - O processo de resoluo comea por determinar o plano


ptimo para cada estado da ltima etapa at encontrar o plano ptimo
PROGRAMAO DINMICA para a etapa inicial. Esta a nica maneira correcta de proceder
relativamente a problemas cujas as etapas correspondem a perodos de
tempo. Se tal no for o caso, o processo de resoluo reversvel, ou
Principais caractersticas: seja poder-se- tambm usar o sentido Forward.

(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)

Formulao em Programao Inteira 0-1: Recursividade:

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

Se passagem por xn dado por

1 se o arco (i , j ) pertence ao caminho entre 1 e 10


xij = , (i,j) A. f n ( sn , xn ) = csn xn + f n*+1( xn )
0 caso contrario
Ento o problema pode ser formulado do seguinte modo:
O custo do caminho mais curto entre o n 10 e o n 10 por
definio igual a zero, isto ,
minimize z = cij xij
(i , j )A
f 5* (): = 0
1 se i = 1

sujeito a xij x ji = 0 se i N {1,10}
j :(i , j ) A j :( j ,i ) A 1 se i = 10

xij {0,1}, (i,j) A

3 4
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos

Resoluo: Exemplo 2: Um estudante de Engenharia Informtica dispe de 7 dias para


melhorar a sua preparao acadmica antes dos exames finais a 4 cursos
n = 4 (falta uma etapa para cumprir)
(cadeiras) e quer distribui-los de uma forma eficiente. Sabe que precisa de pelo
f 4 ( s4 , x4 ) = cs4 x4 + f 5* ()
menos 1 dia para cada curso, quer concentrar-se apenas num curso todo o dia e
x4 10 ( )
f 4* s4 x*4 deseja atribuir 1, 2, 3 e 4 dias a cada curso. Tendo obtido aprovao em
s4
8 3 3 10 Investigao Operacional, decide usar a Programao Dinmica para encontrar
9 4 4 10 uma distribuio ptima com o fim de maximizar o total de crditos a obter dos
n = 3 (faltam duas etapas para cumprir) cursos, partindo do conhecimento duma estimativa correcta do nmero de

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

Formulao em Programao Dinmica: Resoluo:


Estados n=1 n=2 n=3 n=4
Seja cn(xn) o nmero de crditos obtidos quando o estudante dedica xn dias ao
possveis f 1* x1* f 2* x*2 f 3* x*3 f 4* x*4
estudo do curso n, ento o problema pode ser formulado em termos de 1 ---- ---- ---- ---- ---- ---- 6 1
programao dinmica do seguinte modo: 2 ---- ---- ---- ---- 8 1 7 2
3 ---- ---- 13 1 10 2 9 3
Etapas: N = 4 (4 decises interrelacionadas quanto ao nmero de dias 4 ---- ---- 15 1 13 3 9 4
a dedicar a cada curso); 5 ---- ---- 18 1 14 3 ou 4 ---- ----
6 ---- ---- 19 1 ---- ---- ---- ----
Estados: sn o nmero de dias de estudo ainda disponveis para as 7 23 2 ---- ---- ---- ---- ---- ----
etapas n, n+1,..., N.
Soluo ptima:
Decises: xn o nmero de dias a dedicar ao curso (etapa) n. Em todas
as etapas as decises possveis so 1, 2, 3 ou 4. s1 = 7

Recursividade: x1* = 2 s2 = s1 x1* = 5


O nmero de crditos que o aluno obtm da etapa n para a
x*2 = 1 s3 = s2 x*2 = 4
ltima etapa sabendo que tem disponveis sn dias e na etapa n
x*3 = 3 s4 = s3 x*3 = 1
toma a deciso xn dado por

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

O nmero de crditos que o aluno obtm na etapa 5 por


definio igual a zero, isto ,

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

Formulao em Programao Dinmica:


Exemplo 3: Um projecto espacial governamental, que conduz investigao num
dado problema de engenharia, dever estar resolvido antes de o homem partir Seja pn(xn) a probabilidade de falhar a equipa n se ela tiver xn novos cientistas,
para Marte. Neste momento existem trs equipas de investigao a ensaiar trs ento o problema pode ser formulado em termos de programao dinmica do
abordagens diferentes de soluo. Foram feitas estimativas que sob as seguinte modo:
circunstncias actuais do as probabilidades de no triunfarem: Etapas: N = 3 (3 decises interrelacionadas quanto ao nmero de
equipa 1 0.40; equipa 2 0.60; equipa 3 0.80 novos cientistas a atribuir a cada equipa de investigao);
com uma probabilidade total de falhano de 0.192 ( = 0.40 0.60 0.80). Fora Estados: sn o nmero de novos cientistas ainda disponveis para as
ento tomada a deciso de destinar mais 2 cientistas de craveira ao projecto, etapas n, n+1,..., N.
entre as trs equipas afim de baixar aquela probabilidade de falhar. Como Decises: xn o nmero de novos cientistas colocados na equipa
distribuir os dois cientistas por forma a minimizar a probabilidade total de (etapa) n. Em todas as etapas as decises possveis so 0, 1 ou
falhano, sabendo que as novas probabilidades so dadas pela seguinte tabela: 2.
n de novos Equipa Equipa Equipa Recursividade:
cientistas 1 2 3 A probabilidade de falhano da etapa n para a ltima etapa
0 0.40 0.60 0.80
1 0.20 0.40 0.50 sabendo que tem disponveis sn novos cientistas e na etapa n
2 0.15 0.20 0.30
toma a deciso xn dada por
Formulao em Programao Inteira 0-1:
3 N
Seja pij a probabilidade da equipa j falhar quando constituda por mais i novos f n ( sn , xn ) = pn ( xn ) min pi ( xi ) com xi = s n
i = n +1 i =n
cientistas (i = 0,1,2; j = 1,2,3). Se
A probabilidade de falhano da etapa n para a ltima etapa
1 se a equipa j tem i novos cientistas
xij = i = 0,1,2; j = 1,2,3. sabendo que existem sn novos cientistas dada por
0 caso contrario
f n* ( sn ) = min f n ( sn , xn )
Ento o problema pode ser formulado do seguinte modo: xn =0,1,..., sn
3 2
minimize z = pij xij A probabilidade de falhano na etapa 4 por definio igual
j =1 i = 0
3 3
a um, isto ,
sujeito a x1 j + 2 x2 j = 2 f 4* (): = 1
j =1 j =1
2 Nota - Destas relaes podemos concluir que:
xij = 1, j = 1,2,3
i =0 f n ( sn , xn ) = pn ( xn ) f n*+1( sn xn )
1424 3
xij {0,1}, i = 0,1,2; j = 1,2,3 sn + 1

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;

- equipamento II: qt (C - x), 0 qt < 1.


x1* = 1 s2 = s1 x1* = 1
No fim de cada perodo t (neste caso um ano) a companhia reinveste o dinheiro
x2* = 0 s3 = s2 x2* = 1
proveniente das vendas na compra de novo equipamento. Este processo
x3* = 1 repetido nos prximos N anos (perodos) com as mesmas funes lucro g1 e g2.
Formule e resolva o problema considerando os seguintes dados para N = 5.
Assim, as equipas 1, 2 e 3 devem ter, respectivamente, 1, 0 e 1 novos t 1 2 3 4 5
cientistas. pt 0.6 0.9 0.4 0.5 0.9
qt 0.6 0.1 0.5 0.7 0.5

C = 10000 (u.m.), g1(z) = 0.5z, g2(z) = 0.7z

Formulao em Programao Linear:


Sejam C o capital inicial e Ct o capital disponvel para investir no perodo t
(t=1,2,3,4,5). Se representarmos por xt o capital investido na compra de
equipamento I no perodo t, ento o problema pode ser formulado do seguinte
modo:
N
maximize z = [g1 (xi ) + g 2 (Ci xi )]
i =1
sujeito a C1 = 10000
Ci = pi-1xi-1 + qi-1(Ci-1 - xi-1), i = 2,3,4,5
0 xi Ci, i = 1,2,3,4,5

11 12
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos

Formulao em Programao Dinmica: Recursividade para a funo Lucro Lquido:


Etapas: N = 5 (5 decises interrelacionadas correspondentes aos cinco O Lucro Lquido obtido da etapa n para a ltima etapa
anos de investimento); sabendo que esto disponveis sn u.m. e na etapa n investido
Estados: sn o capital disponvel para investir no inicio da etapa n xn u.m. no equipamento 1 dado por
(n=1,...,5). f n ( sn , xn ) = g1( xn ) + g2 ( sn xn ) +
s1 = C N
+ max ( g1( xi ) + g2 ( si xi ))
sn = pn-1(xn-1) + qn-1(sn-1 - xn-1), i = 2,3,4,5 xi i = n + 1
Decises: xn representa a quantia a investir na compra de equipamento O Lucro Lquido obtido da etapa n para a ltima etapa
I, em cada etapa n (n=1,...,5). sabendo que esto disponveis sn u.m. dado por
Recursividade para a funo Lucro Bruto:
f n* ( sn ) = max f n ( sn , xn )
O Lucro Bruto obtido da etapa n para a ltima etapa sabendo 0 x n sn e 0 x1 C

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 ) +

que esto disponveis sn u.m. dado por + f n*+1 ( pn xn + qn ( sn xn ))


144424443
sn + 1
f n* ( sn ) = max f n ( sn , xn )
0 xn sn e 0 x1 C

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 )

f 4* ( s4 ) = max { f 4 ( x4 , s4 )} = 0max { 0.68 x4 + 2.38s4 } . ( s2 x2 ) + 0.5x2 + 0.7( s2 x2 ) + (1912


= 0.9 x2 + 01 . x2 + 0.239 s2 )
0 x 4 s4 x s
4 4
= 2.512 x2 + 1039
. s2
= 2.38( 01
. x3 + 0.5s3 ) = 0.238 x3 + 119
. s3
0 x2 s2 com
f 4
<0
x 4 s2 = p1 x1 + q1( s1 x1 ) = 0.6 x1 + 0.6( s1 x1 ) = 0.6s1
Em sntese temos
f 2* ( s2 ) = max
0 x 2 s2
{ f 2 ( x2 , s2 )} = 0max
x s
{2.512 x2 + 1039
. s2 }
f 4
n f 4 ( s4 , x4 ) x 4
x4 x4* ( )
f 4* s4
2 2

= 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

1 -0.2x1+3.4306s1 < 0 [0,C] 0 3.4306C


Plano de Investimentos:
Capital a Investimentos Lucro
Anos investir Equipamento 1 Equipamento 2 Bruto
Quadro final para a funo Lucro Bruto: 1 10 000 0 10 000 13 000
2 6 000 6 000 0 8 400
3 5 400 0 5 400 6 480
f n x n* f n* ( sn ) 4 2 700 0 2 700 3 780
n f n ( sn , xn ) x n
xn
5 1 890 1 890 0 2 646
5 0.2x5+1.2s5 > 0 [0,-0.2x4+0.7s4] -0.2x4+0.7s4 -0.28x4+0.98s4 25 990 34 306
4 -0.68x4+2.38s4 < 0 [0,-0.1x3+0.5s3] 0 -0.238x3+1.19s3
3 -0.538x3+2.39s3 < 0 [0,0.8x2+0.1s2] 0 1.912x2+0.239s2 No final dos 5 anos temos:
2 2.512x2+1.039s2 >0 [0,0.6s1] 0.6s1 2.1306s1
1 -0.2x1+3.4306s1 <0 [0,C] 0 3.4306C Lucro Bruto = 34 306 Lucro Lquido = 34 306 - 25 990 = 8 316

Exemplo 5: Uma fbrica recebe um pedido para fornecer um produto muito


Quadro final para a funo Lucro Lquido:
particular com exigncia de qualidade e poder ter que produzir mais do que um

17 18
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos

item para obter um aceitvel. A probabilidade de produzir um item aceitvel de f n* ( sn ) = min f n ( sn , xn )


xn =0,1,..., sn
e a de produzir um defeituoso de . Assim, o nmero de aceitveis dum lote
de tamanho L ter uma distribuio binomial, isto , a probabilidade de produzir O custo terminal no caso de no ter ocorrido itens aceitveis
de 16 u. m., isto ,
L
zero itens aceitveis num lote de tamanho L de 1 2 . ( )
f 4* (1):= 16
Sempre que a inspeco revela que completado um lote no h ainda um
item aceitvel, ento o processo de produo deve ser recomeado havendo um Resoluo:
custo fixo de 3 u. m. sempre que o processo de produo iniciado sendo os
n=3
(2)
x3
custos marginais de 1 u. m. por item. Devido a restries temporais a fbrica no f 3 (1, x3 ) = K + x3 + 16 1
pode executar mais do que trs processos produtivos. Se no final do terceiro
s3 x3 0 1 2 3 4 5 6 ... f 3*( s3 ) x3*
processo produtivo no for produzido um item aceitvel, ento o custo para o 0 0 ... 0 0
fabricante por perdas de receitas de vendas e custos de produo de 16 u. m.. 1 16 12 9 8 8 8+1/2 9+1/4 ... 8 3 ou 4
Determine o plano e o respectivo tamanho do lote para cada processo
n=2
()
x2 *
f 2 (1, x2 ) = K + x2 + 1 f 3 (1)
produtivo que minimize o custo total esperado. 2
s2 x2 0 1 2 3 4 5 6 ... f 2* ( s2 ) x2*
Formulao em Programao Dinmica: 0 0 ... 0 0
Etapas: N = 3 (os trs processos de produo); 1 8 8 7 7 7+1/2 8+1/4 9+1/8 ... 7 2 ou 3

1 se no foi encontrado um item aceitvel nas etapes 1, 2, ..., n- 1 n=1


()
Estados: s n = x1 *
f1 (1, x1 ) = K + x1 + 1 f 2 (1)
0 caso contrario 2

Decises: xn o tamanho do lote na etapa n. s1 x1 0 1 2 3 4 5 6 ... f1* ( s1) x1*


1 7 4+7/2 5+7/4 6+7/8 7+1/16 8+1/32 9+1/64 ... 5+7/4 2
Recursividade:
O custo total esperado da etapa n para a ltima etapa dado sn Soluo ptima: x1* = 2 , x2* = 2 ou 3 , x3* = 3 ou 4
e xn dado por
Esquema de produo:
()
2
x

()
2
x
f n (1, x n ) = K + x n + 1 n f n*+1 (1) + 1 1 n f n*+1 (0 )
1424 3 Devemos produzir 2 itens no primeiro processo de fabrico.
=0 Se nenhum aceitvel, devemos produzir 2 ou 3 no segundo processo de
()
xn * (por hiptese do problema)
= K + xn + 1 f n +1(1) fabrico.
2 Se nenhum aceitvel, devemos produzir 3 ou 4 no terceiro processo de fabrico.
f n (0, ) = 0
O custo total esperado da etapa n para a ltima etapa dado sn
dado por

19 20
Programao Dinmica Jorge P. J. Santos Programao Dinmica Jorge P. J. Santos

Exemplo 6 - Problema de Knapsack:


Formulao em Programao Dinmica:
Uma fbrica recebe uma ordem de encomenda de papel de quatro tipos:
Etapas: N = 4 (as diferentes ordens correspondentes aos diferentes tipos de
6 rolos de papel de 2.5 metros a 3.10 u. m. por rolo
rolos de papel).
5 rolos de papel de 4.0 metros a 5.25 u. m. por rolo Estados: sn a quantidade restante de papel deixada para ser processada da
4 rolos de papel de 3.0 metros a 4.40 u. m. por rolo
etapa n para a primeira etapa. Assim s4 = 13.
8 rolos de papel de 2.0 metros a 2.50 u. m. por rolo
Decises: xn o nmero de rolos de papel a fabricar em cada etapa n. Deste
Sabe-se que existem apenas 13 metros de papel e que se pode satisfazer
modo, 0 xn un onde un nmero de rolos fisicamente possvel
parcialmente (em nmeros inteiros) qualquer pedido. Quais os pedidos que
imposto pela disponibilidade de papel existente, isto ,
devem ser satisfeitos de modo a maximizar a receita total?
F
un = n
Ln

Formulao em Programao Inteira: onde Fn a quantidade de papel disponvel e Ln o comprimento


de um rolo de papel do tipo n. Assim,
Sejam rj (j = 1,...,4) a receita da venda de um rolo do tipo j, qj (j = 1,...,4) o
sn-1 = sn - xnLn, n = 1,2,3,4
comprimento de um rolo do tipo j e u o limite superior do papel que eu posso
Recursividade no sentido Forward:
gastar. Se xj (j = 1,...,4) o nmero de encomendas de papel de cada tipo que
O lucro da etapa n para a primeira etapa dado sn e xn igual a
devem ser satisfeitas, ento o problema pode ser formulado do seguinte modo:
f n ( sn , xn ) = rn xn + f n*1( sn xn Ln ) , n = 1,2,3,4
14243
4 sn 1
maximize z = rj x j
j =1 O lucro da etapa n para a primeira etapa igual a

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

Resoluo: n=4 f 4 ( s4 , x4 ) = 2.50 x4 + f 3* ( s3 )


s4 0 1 2 3 4 5 6 7 8 9 10 11 12 13
n=1 f1 ( s1 , x1 ) = 310
. x1 x4
s1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 0 0 0 4.40 5.25 6.20 8.80 9.65 10.60 13.20 14.05 15.00 17.60 18.45
x1 1 -------- -------- 2.50 2.50 2.50 6.90 7.75 8.70 11.30 12.15 13.10 15.70 16.55 17.50
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 -------- -------- -------- -------- 5.00 5.00 5.00 9.40 10.25 11.20 13.80 14.65 15.60 18.20
1 -------- -------- -------- 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3 -------- -------- -------- -------- -------- -------- 7.50 7.50 7.50 11.90 12.75 13.70 16.30 17.15
2 -------- -------- -------- -------- -------- 6.20 6.20 6.20 6.20 6.20 6.20 6.20 6.20 6.20 4 -------- -------- -------- -------- -------- -------- -------- -------- 10.00 10.00 10.00 14.40 15.25 16.20
3 -------- -------- -------- -------- -------- -------- -------- -------- 9.30 9.30 9.30 9.30 9.30 9.30 5 -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 12.50 12.50 12.50 16.90
4 -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 12.40 12.40 12.40 12.40 6 -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 15.00 15.00
5 -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 15.50
( )
f 4* s4 0 0 2.50 4.40 5.25 6.90 8.80 9.65 11.30 13.20 14.05 15.70 17.60 18.45

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 2* 0 0 0 0 1 0 0 1 2 1 0 2 3 2 No ltimo quadro s precisamos dos valores da ltima coluna.


Se o limite superior para o consumo de papel for qualquer nmero
n=3 ( )
f 3 s3 , x3 = 4.40 x3 + f 2* s2 ( ) inferior ou igual que 13, as solues podem ser obtidas atravs dos
s3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 quadros anteriores. Em particular temos
x3
0 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 s4 x4* x3* x2* x1* f 4* ( s4 )
1 -------- -------- -------- 4.40 4.40 4.40 7.50 9.65 10.60 10.60 12.75 14.90 15.95 16.80 13 0 3 1 0 18.45
2 -------- -------- -------- -------- -------- -------- 8.80 8.80 8.80 11.90 14.05 15.00 15.00 17.25 12 0 4 0 0 17.60
3 -------- -------- -------- -------- -------- -------- -------- -------- -------- 13.20 13.20 13.20 16.30 18.45
11 1 3 0 0 15.70
4 -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 17.60 17.60
10 0 2 1 0 14.05
( )
f 3* s3 0 0 0 4.40 5.25 6.20 8.80 9.65 10.60 13.20 14.05 15.00 17.60 18.45

x 3* 0 0 0 1 0 0 2 1 1 3 2 2 4 3

23 24

Вам также может понравиться