Você está na página 1de 12

Programao Dinmica Jorge P. J.

Santos

1

PROGRAMAO DINMICA

Principais caractersticas:
(i) Etapas - So os diferentes nveis naturais em que se pode dividir um
problema. Em cada uma delas estabelece-se um plano de decises.
(ii) Estados - Cada etapa ter associado um determinado nmero de estados
(finito ou infinito, discreto ou contnuo dependendo da natureza do
problema). Em geral os estados so as vrias condies possveis nos
quais o sistema se pode apresentar numa dada etapa.
(iii) Decises - Segundo um determinada plano o seu efeito em cada etapa
transformar o estado corrente num outro estado associado etapa
seguinte. Essa transformao pode eventualmente obedecer a uma
distribuio de probabilidade, contudo os casos apresentados so de
carcter determinstico e no probabilstico.
(iv) Princpio de Optimalidade - Todo o problema resolvel por Programao
Dinmica tem de obedecer a este princpio, isto , as suas
caractersticas tm de ser tais que o conhecimento do estado corrente
do sistema contenha toda a informao cerca do seu prvio
comportamento, necessria determinao do plano ptimo a partir
dele.
Programao Dinmica Jorge P. J. Santos

2
(v) Backward - O processo de resoluo comea por determinar o plano
ptimo para cada estado da ltima etapa at encontrar o plano ptimo
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
seja poder-se- tambm usar o sentido Forward.
(vi) Recursividade - uma relao funcional que identifica o plano ptimo para
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).
Esta relao varia com o problema em causa.
(vii) Notao usual
x
n
- varivel de deciso na etapa n (n = 1,...,N);
s
n
- elemento do conjunto de estados da etapa n (n = 1,...,N);
x
n
*
- o valor ptimo de x
n
dado s
n
;
( ) f s x
n n n
, - contribuio das etapas n, n+1,..., N para a funo
objectivo se o sistema parte de um estado s
n
na etapa n e se
toma a deciso x
n
;
( )
( ) ( ) { }
f s x f s opt f s x
n n n n n
x
n n n
n
, ,
* *
= - para todas as decises admissveis x
n
.
(viii) Em todos os problemas de programao dinmica usamos uma tabela da
forma:
s
( ) f s
n
*
x
n
*

M M M
Programao Dinmica Jorge P. J. Santos

3
2
4
3
7
4
6
3
2
4
4
1
5
1
4
6
3
3
3
3
4
Exemplo 1: Determine o caminho mais curto entre o n 1 e o n 10 da seguinte
rede orientada:
2 5
8
1 3 6 10
9
4 7
Formulao em Programao Inteira 0-1:
Sejam V o conjunto de ns da rede e A o conjunto de arcos da rede, isto :
V = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
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)}
Se
x
i j
ij
=

1
0
se o arco ( , ) pertence ao caminho entre 1 e 10
caso contrario
, (i,j) A.
Ento o problema pode ser formulado do seguinte modo:
minimize z =
( )

A j , i
ij ij
x c
sujeito a
( ) ( )
{ }

=

=

=


10 se
10 1 se
1 se

1
0
1
: :
i
, N i
i
x x
A i , j j
ji
A j , i j
ij

x
ij
{0,1}, (i,j) A
custo c
ij
que leva
atravessar a arco (i,j)
Programao Dinmica Jorge P. J. Santos

4
Formulao em Programao Dinmica:
Sejam V
0
= {1}, V
1
= {2,3,4}, V
2
= {5,6,7}, V
3
= {8,9} e V
4
= {10}, ento o
problema pode ser formulado em termos de programao dinmica do seguinte
modo:
Etapas: N = 4;
Estados: s
n
um elemento do conjunto V
n-1
(n = 1,...,4);
Deciso: x
n
o n a escolher na etapa n;
Recursividade:
O custo do caminho mais curto entre o n s
n
e o n 10
( ) ( ) { }
n
*
n x s
V x
n
*
n
x f c min s f
n n
n n
1 +

+ = , n = 4, 3, 2, 1.
O custo do caminho mais curto entre o n s
n
e o n 10 com
passagem por x
n
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 por
definio igual a zero, isto ,
( ) f
5
0
*
= :
Programao Dinmica Jorge P. J. Santos

5
Resoluo:
n = 4 (falta uma etapa para cumprir)

( ) ( ) f s x c f
s x 4 4 4 5
4 4
,
*
= +

x
4
s
4

10 ( ) f s
4 4
*

*
x
4

8
9
3
4
3
4
10
10
n = 3 (faltam duas etapas para cumprir)

( ) ( ) f s x c f x
s x 3 3 3 4 3
3 3
,
*
= +

x
3
s
3

8 9 ( ) f s
3 3
*
x
3
*

5
6
7
4
9
6
8
7
7
4
7
6
8
9
8
n = 2 (faltam trs etapas para cumprir)

( ) ( ) f s x c f x
s x 2 2 2 3 2
2 2
,
*
= +

x
2
s
2

5 6 7 ( ) f s
2 2
*
x
2
*

2
3
4
11
7
8
11
9
8
12
10
11
11
7
8
5 ou 6
5
5 ou 6
n = 1 (faltam quatro etapas para cumprir)

( ) ( ) f s x c f x
s x 1 1 1 2 1
1 1
,
*
= +

x
1
s
1

2 3 4 ( ) f s
1 1
*
x
1
*

1 13 11 11 11 3 ou 4
Soluo ptima:
135810 ou, 145810 ou, 146910.
Programao Dinmica Jorge P. J. Santos

6
Exemplo 2: Um estudante de Engenharia Informtica dispe de 7 dias para
melhorar a sua preparao acadmica antes dos exames finais a 4 cursos
(cadeiras) e quer distribui-los de uma forma eficiente. Sabe que precisa de pelo
menos 1 dia para cada curso, quer concentrar-se apenas num curso todo o dia e
deseja atribuir 1, 2, 3 e 4 dias a cada curso. Tendo obtido aprovao em
Investigao Operacional, decide usar a Programao Dinmica para encontrar
uma distribuio ptima com o fim de maximizar o total de crditos a obter dos
cursos, partindo do conhecimento duma estimativa correcta do nmero de
crditos a obter por cada curso, resultantes do tempo (em dias) dedicados de
acordo com a tabela
n de dias curso
de estudo 1 2 3 4
1 3 5 2 6
2 5 5 4 7
3 6 6 7 9
4 7 9 8 9
Formulao em Programao Inteira 0-1:
Seja c
ij
o nmero de crditos obtidos quando o estudante dedica i dias ao curso j
(i = 1,...,4; j = 1,...,4). Se
x
i j
ij
=

1
0
se o estudante dedica dias ao estudo do curso
caso contrario
i,j = 1,...,4.
Ento o problema pode ser formulado do seguinte modo:
maximize z = c x
ij ij
j i = =

1
4
1
4

sujeito a x x x x
j
j
j
j
j
j
j
j
1
1
4
2
1
4
3
1
4
4
1
4
2 3 4 7
= = = =

+ + + =
x
ij
i =

=
1
4
1, j = 1,...,4
x
ij
{0,1}, i = 1,...,4; j = 1,...,4
Programao Dinmica Jorge P. J. Santos

7
Formulao em Programao Dinmica:
Seja c
n
(x
n
) o nmero de crditos obtidos quando o estudante dedica x
n
dias ao
estudo do curso n, ento o problema pode ser formulado em termos de
programao dinmica do seguinte modo:
Etapas: N = 4 (4 decises interrelacionadas quanto ao nmero de dias
a dedicar a cada curso);
Estados: s
n
o nmero de dias de estudo ainda disponveis para as
etapas n, n+1,..., N.
Decises: x
n
o nmero de dias a dedicar ao curso (etapa) n. Em todas
as etapas as decises possveis so 1, 2, 3 ou 4.
Recursividade:
O nmero de crditos que o aluno obtm da etapa n para a
ltima etapa sabendo que tem disponveis s
n
dias e na etapa n
toma a deciso x
n
dado por
( ) ( ) ( ) f s x c x max c x
n n n n n i i
i n
, = +
|
\

|
.
|
= +

1
4
com
n
N
n i
i
s x =

=

O nmero de crditos que o aluno obtm da etapa n para a
ltima etapa sabendo tem disponveis s
n
dias dado por
( ) ( ) f s max f s x
n n
x
n n n
n n
*
, ,...,s
, =
=1 2

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 s x c x f s x
n n n n n n n n
s
n
,
*
= +
+
+
1
1
12 4 3 4

Programao Dinmica Jorge P. J. Santos

8
Resoluo:
Estados n = 1 n = 2 n = 3 n = 4
possveis
f
1
*
x
1
*
f
2
*
x
2
*
f
3
*
x
3
*
f
4
*
x
4
*

1 ---- ---- ---- ---- ---- ---- 6 1
2 ---- ---- ---- ---- 8 1 7 2
3 ---- ---- 13 1 10 2 9 3
4 ---- ---- 15 1 13 3 9 4
5 ---- ---- 18 1 14
3 ou 4
---- ----
6 ---- ---- 19 1 ---- ---- ---- ----
7 23 2 ---- ---- ---- ---- ---- ----
Soluo ptima:
s
1
7 =
x s s x
1 2 1 1
2 5
* *
= = =
x s s x
2 3 2 2
1 4
* *
= = =
x s s x
3 4 3 3
3 1
* *
= = =
x
4
1
*
=

O estudante deve dedicar 2 dias ao curso 1, 1 ao curso 2, 3 ao curso 3
e 1 ao curso 4.
Programao Dinmica Jorge P. J. Santos

9
Exemplo 3: Um projecto espacial governamental, que conduz investigao num
dado problema de engenharia, dever estar resolvido antes de o homem partir
para Marte. Neste momento existem trs equipas de investigao a ensaiar trs
abordagens diferentes de soluo. Foram feitas estimativas que sob as
circunstncias actuais do as probabilidades de no triunfarem:
equipa 1 0.40; equipa 2 0.60; equipa 3 0.80
com uma probabilidade total de falhano de 0.192 ( = 0.40 0.60 0.80). Fora
ento tomada a deciso de destinar mais 2 cientistas de craveira ao projecto,
entre as trs equipas afim de baixar aquela probabilidade de falhar. Como
distribuir os dois cientistas por forma a minimizar a probabilidade total de
falhano, sabendo que as novas probabilidades so dadas pela seguinte tabela:
n de novos
cientistas
Equipa
1
Equipa
2
Equipa
3
0 0.40 0.60 0.80
1 0.20 0.40 0.50
2 0.15 0.20 0.30
Formulao em Programao Inteira 0-1:
Seja p
ij
a probabilidade da equipa j falhar quando constituda por mais i novos
cientistas (i = 0,1,2; j = 1,2,3). Se
x
j i
ij
=

1
0
se a equipa tem novos cientistas
caso contrario
i = 0,1,2; j = 1,2,3.
Ento o problema pode ser formulado do seguinte modo:
minimize z = p x
ij ij
i j = =

0
2
1
3

sujeito a x x
j
j
j
j
1
1
3
2
1
3
2 2
= =

+ =
x
ij
i =

=
0
2
1, j = 1,2,3
x
ij
{0,1}, i = 0,1,2; j = 1,2,3
Programao Dinmica Jorge P. J. Santos

10
Formulao em Programao Dinmica:
Seja p
n
(x
n
) a probabilidade de falhar a equipa n se ela tiver x
n
novos cientistas,
ento o problema pode ser formulado em termos de programao dinmica do
seguinte modo:
Etapas: N = 3 (3 decises interrelacionadas quanto ao nmero de
novos cientistas a atribuir a cada equipa de investigao);
Estados: s
n
o nmero de novos cientistas ainda disponveis para as
etapas n, n+1,..., N.
Decises: x
n
o nmero de novos cientistas colocados na equipa
(etapa) n. Em todas as etapas as decises possveis so 0, 1 ou
2.
Recursividade:
A probabilidade de falhano da etapa n para a ltima etapa
sabendo que tem disponveis s
n
novos cientistas e na etapa n
toma a deciso x
n
dada por
( ) ( ) ( ) f s x p x min p x
n n n n n i i
i n
, =
|
\

|
.
|
= +

1
3
com
n
N
n i
i
s x =

=

A probabilidade de falhano da etapa n para a ltima etapa
sabendo que existem s
n
novos cientistas dada por
( ) ( ) f s min f s x
n n
x s
n n n
n n
*
, ,...,
, =
=0 1

A probabilidade de falhano na etapa 4 por definio igual
a um, isto ,
( ) f
4
1
*
= :
Nota - Destas relaes podemos concluir que:
( ) ( ) ( ) f s x p x f s x
n n n n n n n n
s
n
,
*
=
+
+
1
1
12 4 3 4

Programao Dinmica Jorge P. J. Santos

11
Resoluo:
Estados n = 1 n = 2 n = 3
possveis
f
1
*
x
1
*
f
2
*
x
2
*
f
3
*
x
3
*

0 0.192 0 0.48 0 0.80 0
1 0.096 1 0.30 0 0.50 1
2 0.060 1 0.16 2 0.30 2
Soluo ptima:
s
1
2 =
x s s x
1 2 1 1
1 1
* *
= = =
x s s x
2 3 2 2
0 1
* *
= = =
x
3
1
*
=

Assim, as equipas 1, 2 e 3 devem ter, respectivamente, 1, 0 e 1 novos
cientistas.
Programao Dinmica Jorge P. J. Santos

12
Exemplo 4: Uma determinada empresa investe determinado capital C na compra
de dois tipos de equipamento (I e II). Se x a quantidade investida na compra de
equipamento do tipo I, o lucro correspondente no final de um ano g
1
(x) e o
lucro proveniente do investimento de C - x na compra de equipamento de tipo II
ser de g
2
(C - x). A poltica da empresa consiste em vender esse equipamento ao
fim de um ano. O retorno da venda desse equipamento no fim do perodo t :
- equipamento I: p
t
x, 0 p
t
< 1;
- equipamento II: q
t
(C - x), 0 q
t
< 1.
No fim de cada perodo t (neste caso um ano) a companhia reinveste o dinheiro
proveniente das vendas na compra de novo equipamento. Este processo
repetido nos prximos N anos (perodos) com as mesmas funes lucro g
1
e g
2
.
Formule e resolva o problema considerando os seguintes dados para N = 5.
t 1 2 3 4 5
p
t
0.6 0.9 0.4 0.5 0.9
q
t
0.6 0.1 0.5 0.7 0.5
C = 10000 (u.m.), g
1
(z) = 0.5z, g
2
(z) = 0.7z
Formulao em Programao Linear:
Sejam C o capital inicial e C
t
o capital disponvel para investir no perodo t
(t=1,2,3,4,5). Se representarmos por x
t
o capital investido na compra de
equipamento I no perodo t, ento o problema pode ser formulado do seguinte
modo:
maximize z = ( ) ( ) | |

=
+
N
i
i i i
x C g x g
1
2 1

sujeito a C
1
= 10000
C
i
= p
i-1
x
i-1
+ q
i-1
(C
i-1
- x
i-1
), i = 2,3,4,5
0 x
i
C
i
, i = 1,2,3,4,5
Programao Dinmica Jorge P. J. Santos

13
Formulao em Programao Dinmica:
Etapas: N = 5 (5 decises interrelacionadas correspondentes aos cinco
anos de investimento);
Estados: s
n
o capital disponvel para investir no inicio da etapa n
(n=1,...,5).
s
1
= C
s
n
= p
n-1
(x
n-1
) + q
n-1
(s
n-1
- x
n-1
), i = 2,3,4,5
Decises: x
n
representa a quantia a investir na compra de equipamento
I, em cada etapa n (n=1,...,5).
Recursividade para a funo Lucro Bruto:
O Lucro Bruto obtido da etapa n para a ltima etapa sabendo
que esto disponveis s
n
u.m. e na etapa n investido x
n
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
n i
i i i i i i i i
x
x s g x g x s q x p max
i 1
2 1

O Lucro Bruto obtido da etapa n para a ltima etapa sabendo
que esto disponveis s
n
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 definio igual a zero,
isto ,
( ) f
6
0
*
= :
Nota - Destas relaes 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
s
n
1
1
*
1 2 444 3 444

Programao Dinmica Jorge P. J. Santos

14
Recursividade para a funo Lucro Lquido:
O Lucro Lquido obtido da etapa n para a ltima etapa
sabendo que esto disponveis s
n
u.m. e na etapa n investido
x
n
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
i n
N
i
1 2
1

O Lucro Lquido obtido da etapa n para a ltima etapa
sabendo que esto disponveis s
n
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 Lquido obtido na etapa 6 por definio igual ao
capital resultante da venda dos equipamentos no ltimo ano,
isto ,
( ) ( ) f p x q s x
6 5 5 5 5 5
*
= + :
Nota - Destas relaes 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
s
n
1
1
*
1 2 444 3 444


Resoluo usando a funo 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
,
*
= + + + +
( ) ( ) = + + + + 0 9 05 05 0 7 0
5 5 5 5 5 5
. x . s x . x . s x
= + 0 2 12
5 5
. x s .
Programao Dinmica Jorge P. J. Santos

15
0
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
05 0 7 0 2 0 7 = + = + = + . . . .
( ) ( ) { } { } 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 5
0 2 12
*
, . . = = +


( ) ( ) = + + + = + 0 2 0 2 0 7 12 0 2 0 7 0 28 0 98
4 4 4 4 4 4
. . . . . . . . x s x s x s

f
x
5
5
0 >
Em sntese temos
n
( ) f s x
5 5 5
,

f
x
5
5
x
5
x
5
*
( ) f s
5 5
*

5 0.2x
5
+1.2s
5
> 0 |0,-0.2x
4
+0.7s
4
| -0.2x
4
+0.7s
4
-0.28x
4
+0.98s
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
,
*
= + + + +
( ) ( ) ( ) = + + + + + 05 0 7 05 0 7 0 28 0 98
4 4 4 4 4 4 4 4
. x . s x . x . s x x s . .
= + 0 68 2 38
4 4
. . x s
0
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
0 4 05 01 05 = + = + = + . . . .
( ) ( ) { } { } 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
0 68 2 38
*
, . . = = +


( ) = + = + 2 38 01 05 0 238 119
3 3 3 3
. . . . . x s x s

f
x
4
4
0 <
Em sntese temos
n
( ) f s x
4 4 4
,

f
x
4
4
x
4
x
4
*
( ) f s
4 4
*

4 -0.68x
4
+2.38s
4
< 0 |0,-0.1x
3
+0.5s
3
| 0 -0.238x
3
+1.19s
3

Programao Dinmica 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
,
*
= + + + +
( ) ( ) ( ) = + + + + + 0 4 05 05 0 7 0 238 119
3 3 3 3 3 3 3 3
. x . s x . x . s x x s . .
= + 0538 2 39
3 3
. . x s
0
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
0 9 01 08 01 = + = + = + . . . .
( ) ( ) { } { } 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
0538 2 39
*
, . . = = +


( ) = + = + 2 39 08 01 1912 0 239
2 2 2 2
. . . . . x s x s

f
x
3
3
0 <
Em sntese temos
n
( ) f s x
3 3 3
,

f
x
3
3
x
3
x
3
*
( ) f s
3 3
*

3 -0.538x
3
+2.39s
3
< 0 |0,0.8x
2
+0.1s
2
| 0 1.912x
2
+0.239s
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
,
*
= + + + +
( ) ( ) ( ) = + + + + + 0 9 01 05 0 7 1912 0 239
2 2 2 2 2 2 2 2
. x . s x . x . s x x s . .
= + 2 512 1039
2 2
. . x s
0
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
0 6 0 6 0 6 = + = + = . . .
( ) ( ) { } { } 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 2
2 512 1039
*
, . . = = +


( ) ( ) = + = 2 512 0 6 1039 0 6 21306
1 1 1
. . . . . s s s

f
x
2
2
0 >
Em sntese temos
Programao Dinmica Jorge P. J. Santos

17
n
( ) f s x
2 2 2
,

f
x
2
2
x
2
x
2
*
( ) f s
2 2
*

2 2.512x
2
+1.039s
2
> 0 |0,0.6s
1
| 0.6s
1
2.1306s
1


n = 1
( ) ( ) ( ) ( ) ( ) f s x p x q s x g x g s x f s
1 1 1 1 1 1 1 1 1 1 2 1 1 2 2
,
*
= + + + +
( ) ( ) = + + + + 0 6 0 6 05 0 7 21306
1 1 1 1 1 1 1
. x . s x . x . s x s .
= + 0 2 34306
1 1
. . x s
0
1 1
x s com s C
1
10000 = =
( ) ( ) { } { } f s max f x s max x s
x s x s
1 1
0
1 1 1
0
1 1
1 1 1 1
0 2 34306
*
, . . = = +


= 34306 . C

f
x
1
1
0 <
Em sntese temos
n
( ) f s x
1 1 1
,

f
x
1
1
x
1
x
1
*
( ) f s
1 1
*

1 -0.2x
1
+3.4306s
1
< 0 |0,C| 0 3.4306C


Quadro final para a funo Lucro Bruto:

n
( ) f s x
n n n
,

f
x
n
n
x
n
x
n
*
( ) f s
n n
*

5 0.2x
5
+1.2s
5
> 0 |0,-0.2x
4
+0.7s
4
| -0.2x
4
+0.7s
4
-0.28x
4
+0.98s
4

4 -0.68x
4
+2.38s
4
< 0 |0,-0.1x
3
+0.5s
3
| 0 -0.238x
3
+1.19s
3
3 -0.538x
3
+2.39s
3
< 0 |0,0.8x
2
+0.1s
2
| 0 1.912x
2
+0.239s
2
2 2.512x
2
+1.039s
2
> 0 |0,0.6s
1
| 0.6s
1
2.1306s
1

1 -0.2x
1
+3.4306s
1
< 0 |0,C| 0 3.4306C

Quadro final para a funo Lucro Lquido:
Programao Dinmica Jorge P. J. Santos

18
n
( ) f s x
n n n
,

f
x
n
n
x
n
x
n
*
( ) f s
n n
*

5 0.2x
5
+1.2s
5
> 0 |0,-0.2x
4
+0.7s
4
| -0.2x
4
+0.7s
4
-0.28x
4
+0.98s
4

4 -0.48x
4
+1.68s
4
< 0 |0,-0.1x
3
+0.5s
3
| 0 -0.168x
3
+0.84s
3

3 -0.368x
3
+1.54s
3
< 0 |0,0.8x
2
+0.1s
2
| 0 1.232x
2
+0.154s
2

2 1.032x
2
+0.854s
2
> 0 |0,0.6s
1
| 0.6s
1
1.1316s
1

1 -0.2x
1
+1.8316s
1
< 0 |0,C| 0 1.8316C

Soluo ptima:
s
1
10000 =
x
1
0
*
= s s
2 1
0 6 6000 = = .
x s
2 1
0 6 6000
*
. = = s x s
3 2 2
08 01 5400 = + = . .
*

x
3
0
*
= s x s
4 3 3
01 05 2700 = + = . .
*

x
4
0
*
= s x s
5 4 4
0 2 0 7 1890 = + = . .
*

x x s
5 4 4
0 2 0 7
*
. . = +

Plano de Investimentos:
Capital a Investimentos Lucro
Anos investir Equipamento 1 Equipamento 2 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
4 2 700 0 2 700 3 780
5 1 890 1 890 0 2 646
25 990 34 306

No final dos 5 anos temos:
Lucro Bruto = 34 306 Lucro Lquido = 34 306 - 25 990 = 8 316
Exemplo 5: Uma fbrica recebe um pedido para fornecer um produto muito
particular com exigncia de qualidade e poder ter que produzir mais do que um
Programao Dinmica Jorge P. J. Santos

19
item para obter um aceitvel. A probabilidade de produzir um item aceitvel de
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
zero itens aceitveis num lote de tamanho L de
( )
1
2
L
.
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
custo fixo de 3 u. m. sempre que o processo de produo iniciado sendo os
custos marginais de 1 u. m. por item. Devido a restries temporais a fbrica no
pode executar mais do que trs processos produtivos. Se no final do terceiro
processo produtivo no for produzido um item aceitvel, ento o custo para o
fabricante por perdas de receitas de vendas e custos de produo de 16 u. m..
Determine o plano e o respectivo tamanho do lote para cada processo
produtivo que minimize o custo total esperado.
Formulao em Programao Dinmica:
Etapas: N = 3 (os trs processos de produo);
Estados:

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

Decises: x
n
o tamanho do lote na etapa n.
Recursividade:
O custo total esperado da etapa n para a ltima etapa dado s
n

e x
n
dado por
( ) ( ) ( ) ( ) ( )
43 42 1
0
1
2
1
1
2
1
0 1 1 1
=
+ +
(

+ + + =
*
n
x
*
n
x
n n n
f f x K x , f
n n

( )
( ) = + +
+
K x f
n
x
n
n
1
2
1
1
*

( ) 0 0 = , f
n

O custo total esperado da etapa n para a ltima etapa dado s
n

dado por
(por hiptese do problema)
Programao Dinmica 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 no ter ocorrido itens aceitveis
de 16 u. m., isto ,
( ) f
4
1 16
*
:=
Resoluo:

n = 3
( )
( )
f x K x
x
3 3 3
1
2
1 16
3
, = + +

s
3

x
3
0 1 2 3 4 5 6 ...
( ) f s
3 3
*
x
3
*

0 0 ... 0 0
1 16 12 9 8 8 8+1/2 9+1/4 ... 8 3 ou 4

n = 2
( )
( )
( ) f x K x f
x
2 2 2
1
2
3
1 1
2
,
*
= + +

s
2

x
2
0 1 2 3 4 5 6 ...
( ) f s
2 2
*
x
2
*

0 0 ... 0 0
1 8 8 7 7
7+1/2 8+1/4 9+1/8
... 7 2 ou 3

n = 1
( )
( )
( ) f x K x f
x
1 1 1
1
2
2
1 1
1
,
*
= + +

s
1

x
1
0 1 2 3 4 5 6 ...
( ) f s
1 1
*
x
1
*

1 7
4+7/2 5+7/4 6+7/8 7+1/16 8+1/32 9+1/64
...
5+7/4
2
Soluo ptima: x
1
2
*
= , x
2
2
*
= ou 3, x
3
3 4
*
ou =
Esquema de produo:
Devemos produzir 2 itens no primeiro processo de fabrico.
Se nenhum aceitvel, devemos produzir 2 ou 3 no segundo processo de
fabrico.
Se nenhum aceitvel, devemos produzir 3 ou 4 no terceiro processo de fabrico.
Programao Dinmica Jorge P. J. Santos

21
Exemplo 6 - Problema de Knapsack:
Uma fbrica 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 nmeros inteiros) qualquer pedido. Quais os pedidos que
devem ser satisfeitos de modo a maximizar a receita total?

Formulao em Programao Inteira:
Sejam r
j
(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 x
j
(j = 1,...,4) o nmero de encomendas de papel de cada tipo que
devem ser satisfeitas, ento o problema pode ser formulado do seguinte modo:
maximize z = r x
j j
j =

1
4

sujeito a q x u
j j
j =


1
4

x
j
inteiros j = 1,...,4
x
j
0 j = 1,...,4

Programao Dinmica Jorge P. J. Santos

22
Formulao em Programao Dinmica:
Etapas: N = 4 (as diferentes ordens correspondentes aos diferentes tipos de
rolos de papel).
Estados: s
n
a quantidade restante de papel deixada para ser processada da
etapa n para a primeira etapa. Assim s
4
= 13.
Decises: x
n
o nmero de rolos de papel a fabricar em cada etapa n. Deste
modo, 0 x
n
u
n
onde u
n
nmero de rolos fisicamente possvel
imposto pela disponibilidade de papel existente, isto ,
u
F
L
n
n
n
=

(
(
(

onde F
n
a quantidade de papel disponvel e L
n
o comprimento
de um rolo de papel do tipo n. Assim,
s
n-1
= s
n
- x
n
L
n
, n = 1,2,3,4
Recursividade no sentido Forward:
O lucro da etapa n para a primeira etapa dado s
n
e x
n
igual a
( ) ( ) f s x r x f s x L
n n n n n n n n n
s
n
,
*
= +

1
1
1 2 4 3 4
, n = 1,2,3,4
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,4
O lucro na etapa 0 igual a zero, isto ,
( ) f
0
0
*
= :
Programao Dinmica Jorge P. J. Santos

23
Resoluo:

n = 1
( ) f s x x
1 1 1 1
310 , . =
s
1
x
1

0 1 2 3 4 5 6 7 8 9 10 11 12 13
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1
-------- -------- -------- 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3.10 3.10
2
-------- -------- -------- -------- -------- 6.20 6.20 6.20 6.20 6.20 6.20 6.20 6.20 6.20
3
-------- -------- -------- -------- -------- -------- -------- -------- 9.30 9.30 9.30 9.30 9.30 9.30
4
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 12.40 12.40 12.40 12.40
5
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 15.50
( ) f s
1 1
*

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
x
1
*

0 0 0 1 1 2 2 2 3 3 4 4 4 5


n = 2
( ) ( ) f s x x f s
2 2 2 2 1 1
525 , .
*
= +
s
2
x
2

0 1 2 3 4 5 6 7 8 9 10 11 12 13
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
2
-------- -------- -------- -------- -------- -------- -------- -------- 10.50 10.50 10.50 13.60 13.60 16.70
3
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 15.75 15.75
( ) f s
2 2
*

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
x
2
*

0 0 0 0 1 0 0 1 2 1 0 2 3 2

n = 3
( ) ( ) f s x x f s
3 3 3 3 2 2
4 40 , .
*
= +
s
3
x
3

0 1 2 3 4 5 6 7 8 9 10 11 12 13
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
1
-------- -------- -------- 4.40 4.40 4.40 7.50 9.65 10.60 10.60 12.75 14.90 15.95 16.80
2
-------- -------- -------- -------- -------- -------- 8.80 8.80 8.80 11.90 14.05 15.00 15.00 17.25
3
-------- -------- -------- -------- -------- -------- -------- -------- -------- 13.20 13.20 13.20 16.30 18.45
4
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 17.60 17.60
( ) f s
3 3
*

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
Programao Dinmica Jorge P. J. Santos

24

n = 4
( ) ( ) f s x x f s
4 4 4 4 3 3
2 50 , .
*
= +
s
4
x
4

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
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
2
-------- -------- -------- -------- 5.00 5.00 5.00 9.40 10.25 11.20 13.80 14.65 15.60 18.20
3
-------- -------- -------- -------- -------- -------- 7.50 7.50 7.50 11.90 12.75 13.70 16.30 17.15
4
-------- -------- -------- -------- -------- -------- -------- -------- 10.00 10.00 10.00 14.40 15.25 16.20
5
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 12.50 12.50 12.50 16.90
6
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- 15.00 15.00
( ) f s
4 4
*
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
x
4
*

0 0 1 0 0 1 0 0 1 0 0 1 0 0
Soluo ptima:
x
4
*
= 0 s
3
= s
4
- 2x
4
= 13
x
3
*
= 3 s
2
= s
3
- 3x
3
= 4
x
2
*
= 1 s
1
= s
2
- 4x
2
= 0
x
1
*
= 0 s
0
= s
1
- 2x
1
= 0 Lucro total = 18.45
Observaes:
No ltimo quadro s precisamos dos valores da ltima coluna.
Se o limite superior para o consumo de papel for qualquer nmero
inferior ou igual que 13, as solues podem ser obtidas atravs dos
quadros anteriores. Em particular temos
s
4

x
4
*
x
3
*
x
2
*
x
1
*
( ) f s
4 4
*

13 0 3 1 0 18.45
12 0 4 0 0 17.60
11 1 3 0 0 15.70
10 0 2 1 0 14.05

Você também pode gostar