Você está na página 1de 22

UNIVERSIDADE FEDERAL DE SANTA CATARINA

DEPARTAMENTO DE ENGENHARIA DE PRODUO E SISTEMAS

Programao Dinmica
Prof. Srgio Fernando Mayerle

1.

INTRODUO

Na anlise de muitos problemas operacionais, conveniente considerar a idia de um sistema,


que tem um nmero de estados possveis, e que evolui por estes estados. Por exemplo, num
problema de manuteno e substituio de equipamentos, a mquina pode ser o sistema, e um
estado pode ser definido por sua idade ou estado de conservao; na anlise de um problema
de manuteno de estoques pode ser considerado, como estado, os possveis nveis de estoque
de um dado item.
Um estado do sistema pode ser definido em termos de uma ou mais variveis discretas ou
contnuas. Em alguns casos essencial, ou adequado, considerar estados discretos, como por
exemplo no caso dos nveis de estoque, quando estes s podem variar em quantidades inteiras.
No caso de uma mquina, que se deteriora gradualmente, o espao de estados
essencialmente contnuo, mas, para fins de aplicao prtica, pode-se impor uma descrio
discreta dos estados. Assim, ao se decidir fazer o reparo ou substituio do equipamento,
razovel se pensar na substituio a cada trs, quatro ou cinco anos, sendo absurdo proliferar
estes prazos de anlise no nvel semanal.
Neste curso ser apresentado, preliminarmente, o conceito de programao dinmica com
variveis de estado discretas e perodo de otimizao finito. Em muitos problemas reais da
engenharia e das cincias sociais o sistema apresenta um estado inicial conhecido, sujeito a
leis de controle tambm conhecidas. Em outros casos, especialmente em problemas
operacionais, as leis de controle so sujeitas atuao da natureza. No primeiro caso, dizemos
que o problema determinstico, e no segundo estocstico.
No caso mais geral possvel, ser considerado um sistema com finitos estados, os quais
podero ser sucedidos por um certo nmero relevante de processos de transio. O
desenvolvimento do sistema ser controlado, ou ao menos influenciado, pelo tomador de
decises, que a cada estado escolhe, de um conjunto de aes viveis, aquela que lhe parea
mais conveniente. Com isto, uma seqncia de retornos - que podem ser: distncias
percorridas, tempo gasto, receitas, lucros, custos, prejuzos etc. - ser gerada. Ao tomador de
decises, interessa obter a seqncia de decises que, de alguma forma, otimize uma funo
dos retornos gerados pelo sistema.

2.

TERMINOLOGIA

O objetivo desta seo formalizar o sistema e a terminologia a ser adotada. Para


exemplificar, ser usado o problema de obteno do caminho de mnima distncia em uma
rede simples.
Na figura 2.1 apresentada uma rede viria, onde uma cidade qualquer representada por
uma letra. Os comprimentos das vias (custos) esto indicados (no est em escala). Um
homem deseja viajar da cidade A para a cidade J. Qual o caminho que ele dever seguir?

Programao Dinmica
Prof. Srgio Fernando Mayerle

3
4

4
4

2
6

8
3

2
D

3
4
4

Figura 2.1. Problema de obteno do caminho de mnima distncia entre as cidades A e J.

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:

Um estado uma configurao do sistema, e identificado por um rtulo que


indica suas propriedades. No problema apresentado na figura 2.1, um estado
uma cidade.

Estgio:

Programao dinmica diz respeito a sistemas que evoluem de um estado para


outro. Um estgio um passo singular, e corresponde transio do sistema de
um estado para o prximo adjacente. Na figura 2.1, o movimento do viajante, de
uma cidade para a prxima, corresponde ao estgio. Cada caminho de A para J
tem quatro estgios.

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:

Um plano um conjunto de aes, no qual para cada estado especificada uma


ao. Um plano timo o melhor conjunto de aes considerando o objetivo
fixado.

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

Diferentes problemas sero estudados, sendo, entretanto, comuns a todos a estrutura da


programao dinmica, que pode, para o exemplo apresentado ser assim descrita:
Estado

Uma cidade

Estgio

Uma transio de uma cidade para a cidade adjacente

Ao

Tomar uma rota a partir de uma cidade

Retorno

Distncia de uma cidade a cidade adjacente

Valor do Estado

Distncia de uma cidade at a cidade terminal, sob um determinado


plano

Tabela 2.1. Especificao do Problema

3.

USO DE REDES PARA REPRESENTAO DO PROBLEMA

A rede da figura 2.1 conveniente para a representao do problema apresentado. Pode-se,


entretanto, fazer uso de redes para representao de outros problemas que no dizem respeito
ao problema do viajante. Em outras palavras, esta estrutura pode ser usada para representao
de problemas menos bvios que o apresentado.
Em geral, o sistema pode ser representado por ns da rede, cujos arcos representam as
possveis transies, e os nmeros associados a cada arco representam os retornos.
Para generalizao desta representao, pode-se denotar os ns pelas variveis de estado e
estgio. Assim, ao invs de representar uma cidade pelo smbolo E, esta mesma cidade ser
representada por (2.1), indicando estarem faltando duas viagens (estgios) para a chegada na
cidade J e se trata da primeira alternativa (cidade) possvel do viajante ao se encontrar neste
estgio. Generalizando, o i-simo estado no estgio n denotado por (n, i ) .

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)

No problema do viajante, por exemplo, a identificao da k-sima ao com a cidade a ser


escolhida (viagem a ser realizada), pode ser feita com base em uma conveno pr-definida,
na qual as cidades so numeradas seqencialmente do NORTE para o SUL.
Assim, os conjuntos de aes viveis em cada estado sero os seguintes:
K 01 =
K11 = {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)

Em geral, o sucessor de um estado determinado a partir do estgio corrente, das variveis de


estado e da ao, por uma funo chamada de funo de transio t, representada por:
j = t (n, i, k )

(3.3)

A equao (3.2) um exemplo simples de funo de transio.

Programao Dinmica
Prof. Srgio Fernando Mayerle

Quando uma ao k escolhida em um estado (n, i ) , o retorno no corrente estgio


determinado, por uma funo r (n, i, k ) .
O valor do estado (n, i ) , sob um plano timo denotado por f (n, i ) , que a funo do valor
timo de cada estado.
A especificao do problema do viajante, considerando a nomenclatura que acabou de ser
apresentada a seguinte:

Estgio

Uma transio de uma cidade para a cidade adjacente

Estado

Uma cidade

Ao

Tomar uma rota a partir de uma cidade

Retorno

Distncia de uma cidade a cidade adjacente

Valor do Estado

Distncia de uma cidade at a cidade terminal, sob um


determinado plano

(n, i )
k

r (n, i, k )
f (n, i )

Tabela 3.1. Especificao do Problema

4.

SOLUO DO PROBLEMA PELO PROCESSO ITERATIVO

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

Inicializar o problema (ler e preparar dados do problema);

P1

Atribuir aos estados terminais o valor zero;

P2

Repetir os passos 3, 4, 5 e 6 para cada estgio;

P3

Repetir os passos 4 ,5 e 6 para cada estado;

P4

Repetir os passos 5 e 6 para cada ao;

P5

Calcular o valor da ao para o estado corrente;

P6

Comparar o valor calculado com a melhor ao obtida anteriormente, mantendo a


deciso sobre a melhor delas.

P7

Parar (apresentar a soluo tima).

Exemplificando a utilizao do algoritmo apresentado, considere o problema do viajante.

Programao Dinmica
Prof. Srgio Fernando Mayerle

Inicialmente, zerado o valor do estado (0,1), isto , faz-se f (0,1) = 0 1.


Considerando, ento, que o viajante se encontra no estgio 1, embora no se saiba se o mesmo
ir passar por (1,1), caso isto ocorra, ento s restar uma ao a ser tomada: ir para (0,1), e
este caminho tem um custo 4. Portanto, o valor do estado (1,1) 4. Outra hiptese a ser
considerada que, dado que o viajante se encontra no estado (1,2), a nica ao vivel
deslocar-se para o estado (0,1), percorrendo uma distncia 3, e este ser o valor do estado
(1,2). Resumindo:
f (1,1) = r (1,1,1) + f (0,1) = 4 + 0 = 4
f (1,2) = r (1,2,1) + f (0,1) = 3 + 0 = 3
Considerando, agora, o estgio 2, tem-se que o viajante poder se encontrar em trs estados
diferentes. No estado (2,1), duas decises podero ser tomadas: ir para o estado (1,1), com um
custo 2 at alcanar este estado, e a partir da ter um custo adicional 4 at o estado final
(Total: 2 + 4 = 6), ou ir para o estado (1.2), com um custo 4, e a partir deste estado alcanar o
estado final com um custo adicional 3 (Total: 4 + 3 = 7).
Resumindo:
f (2,1) = r (2,1,1) + f (1,1) = 2 + 4 = 6

se k = 1

f (2,1) = r (2,1,2) + f (1,2) = 4 + 3 = 7

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)

e substituindo j pela equao (3.3), tem-se:


f (n, i ) = Min [r (n, i, k ) + f (n 1, t (n, i, k ))]
k K ni

(4.2)

No caso especfico do problema do viajante, a equao acima ser:


f (n, i ) = Min [r (n, i, k ) + f (n 1, k )]
k K ni

(4.3)

Aplicando-se a equao (4.3) para o estado (2,1), tem-se:

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

f (2,1) = Min [ r (2,1, k ) + f (1, k ) ]


k {1,2}

f (2,1) = Min [ r (2,1,1) + f (1,1) ; r (2,1,2) + f (1,2) ]


ou simplesmente:
f (2,1) = Min [ 2 + 4 ; 4 + 3 ] = 6
onde o valor de estado obtido corresponde a ao tima k 2*,1 = 1 , como j havia sido
concludo anteriormente.
Procedimento idntico, se realizado para o estado (2,2), determina f(2,2):
f (2,2) = Min [r (2,2, k ) + f (1, k )]
k {1,2}

f (2,2) = Min [r (2,2,1) + f (1,1) ; r (2,2,2) + f (1,2)]


f (2,2) = Min [2 + 4 ; 1 + 3] = 4
com k 2*,2 = 2 .
Para o estado (2,3), com o uso da equao (4.3), obtm-se:
f (2,3) = Min [r (2,3, k ) + f (1, k )]
k {1,2}

f (2,3) = Min [r (2,3,1) + f (1,1) ; r (2,3,2) + f (1,2)]


f (2,3) = Min [3 + 4 ; 5 + 3] = 7
com k 2*,3 = 1 .
Realizando estes clculos tambm para o estado (3,1), tem-se:
f (3,1) = Min

[r (3,1, k ) + f (2, k )]

k {1, 2,3}

f (3,1) = Min [r (3,1,1) + f (2,1) ; r (3,1,2) + f (2,2) ; r (3,1,3) + f (2,3)]


f (3,1) = Min [2 + 6 ; 3 + 4 ; 4 + 7] = 7
com k3*,1 = 2 .
No estado (3,2), tem-se:

Programao Dinmica
Prof. Srgio Fernando Mayerle

f (3,2) = Min [r (3,2, k ) + f (2, k )]


k {1,2,3}

f (3,2) = Min [r (3,2,1) + f (2,1) ; r (3,2,2) + f (2,2) ; r (3,2,3) + f (2,3)]


f (3,2) = Min [4 + 6 ; 6 + 4 ; 8 + 7] = 10
com k3*,2 = 1 .
No estado (3,3), tem-se:

[r (3,3, k ) + f (2, k )]

f (3,3) = Min

k {1, 2,3}

f (3,3) = Min [r (3,3,1) + f (2,1) ; r (3,3,2) + f (2,2) ; r (3,3,3) + f (2,3)]


f (3,3) = Min [2 + 6 ; 4 + 4 ; 4 + 7] = 8
com k3*,3 = 1 .
Finalmente, no estado (4,1), tem-se:
f (4,1) = Min

[r (4,1, k ) + f (3, k )]

k {1,2,3}

f (4,1) = Min [r (4,1,1) + f (3,1) ; r (4,1,2) + f (3,2) ; r (4,1,3) + f (3,3)]


f (4,1) = Min [5 + 7 ; 4 + 8 ; 3 + 8] = 11
com k 4*,1 = 3 .
Estando, portanto, no estado inicial (4,1) o viajante dever ir para o estado (4 1, k 4*,1 ) , isto ,
para o estado (3,3), Nesta cidade, o viajante dever decidir em ir para o estado (3 1, k3*,3 ) ,
isto , para o estado (2,3), e a partir deste estado s restar uma ao possvel para ser
executada: ir para o estado (0,1). Esta seqncia de decises corresponde seguinte trajetria:

4.1

3.3

2.1

1.1

0.1

cujo custo total (3 + 2 + 2 + 4) = 11, que o valor encontrado para f (4,1) .


Este procedimento pode ser sistematizado atravs de tabelas, como a apresentada a seguir:

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

Tabela 4.1. Problema do Viajante: Clculos

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

Tabela 4.2 - Problema do Viajante: Plano timo

Programao Dinmica
Prof. Srgio Fernando Mayerle

10

5.

CONDIES DE VALIDAO DE MODELOS

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:

sendo e funes apropriadas.


Exemplo - 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 (m, i ) , sob um plano dado Am dado por:
f (m, im , Am ) = r (m, im , k m ) + b r (m 1, im 1 , k m 1 ) + ... +
+ b m n r (n, in , k n ) + ... + b m 1 r (1, i1 , k1 )

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)

A equao (5.9) da mesma forma que a equao (5.3), e portanto a condio de


separabilidade satisfeita.
Condio de Otimalidade
Considere novamente o problema apresentado na equao (5.1). A condio de separabilidade
requer que o valor de cada estado possa ser calculado recursivamente para um dado plano. No
processo iterativo no s se calculam os valores recursivamente como se descartam subplanos em cada estado. Para isto ser vlido a seguinte condio deve ser satisfeita:
Para cada estado e ao, o plano timo deve consistir de uma determinada ao
seguida do plano que timo para o estado sucessor.
Esta condio conhecida como Princpio de Otimalidade, enunciado por Richard Bellman
(Bellman 1957, 1962). Uma formulao algbrica da condio de otimalidade estabelecida a
seguir, considerando-se que pela condio de separabilidade tem-se, para cada plano A:
f (n, in , An ) = { r (n, in , k n ), f (n 1, in1, An1 )}

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

A condio de otimalidade exige que:


r (n, in , k n ) + b f (n 1, in 1 , An* 1 ) r (n, in , k n ) + b f (n 1, in 1 , An 1 )
ou, ainda, que:
b f (n 1, in 1 , An* 1 ) b f (n 1, in 1 , An 1 )

(5.15)

Considerando que b no-negativo, a inequao (5.15) sempre satisfeita.

6.

PROGRAMAO DINMICA ESTOCSTICA

At o presente momento, tem-se tratado neste curso de problemas determinsticos. Em


determinados casos, porm, a evoluo do sistema no depende somente do processo de
tomada de deciso. Aps a implantao de uma ao escolhida, em um determinado estgio,
agentes externos, sob os quais no se tem controle, atuam sobre o sistema, modificando sua
trajetria. Embora no se tenha controle sobre a mudana de trajetria do sistema, pode-se
conhecer a distribuio de probabilidade com que os agentes externos atuam sobre o sistema.
Suponha que no estado (n, i ) um conjunto de aes K n, i disponvel. Seja p (n, i, j , k ) a
probabilidade de ocorrer a transio para o estado (n 1, j ) , dado uma ao k K n, i .
Associado a ao k, poder existir um retorno r1 (n, i, k ) . Alm disto, ao atuarem os agentes
externos ao processo de tomada de deciso, outros retornos podero existir, digamos
r2 (n, i, j , k ) , definidos em funo do estado (n, i ) , da ao k escolhida, e da atuao dos
agentes externos.
Embora no seja possvel prever qual o valor de r2 (n, i, j , k ) , j que esta funo depende da
evoluo do sistema, pode-se, em funo da distribuio de probabilidades associada a estes
agentes, determinar o valor esperado destes retornos. Considerando que, transcorrido o
estgio, o sistema passar para o estado (n 1, j ) , ao qual tem-se associado um valor
esperado de estado dado por f (n 1, j ) , tem-se, para uma ao k especfica:
f (n, i ) = r1 (n, i, k ) +

Programao Dinmica
Prof. Srgio Fernando Mayerle

p(n, i, j, k ) [r2 (n, i, j, k ) + f (n 1, j )]

(6.1)

j =1

13

Considerando, entretanto que se deseja maximizar os retornos, a expresso passa a ser escrita
na forma:
N

f (n, i ) = Max r1 (n, i, k ) + p(n, i, j , k ) [r2 (n, i, j , k ) + f (n 1, j )]


k K n ,i

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

Para todos estgios

Para todos estados

Para todas aes

Calcule o valor do
corrente estado e
ao

O valor do estado
obtido melhor que o
obtido anteriormente ?

No

Sim

Atualize o valor do estado e


anote a ao corrente como
sendo a melhor para este
estado

No
a ltima ao ?

Sim
No
o ltimo estado ?

Sim
No
o ltimo estgio ?

Sim
Fim

Figura 7.1. Fluxograma genrico de um sistema de programao dinmica.

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

sucessor so necessrios na memria de acesso rpido (principal), sendo que os demais


valores podem ser mantidos em discos, fitas, ou outras unidades de acesso mais lento.

8.

DESENVOLVIMENTO DE UM PROBLEMA COMPLETO - CASO


DETERMINSTICO

AMPLIAO DE UMA INDSTRIA DE REFRIGERADORES


Uma empresa fabricante de refrigeradores est estudando a possibilidade de ampliar as suas
instalaes industriais, que est estruturada em linhas de produo. Atualmente, o seu sistema
produtivo conta com 10 linhas de produo em operao, sendo que cada uma delas pode
produzir mensalmente 2.000 refrigeradores.
No ltimo ano, foram vendidos 235.000 refrigeradores, existindo uma tendncia deste nmero
aumentar a uma taxa de 3,0% ao ano.
O lucro lquido que a empresa ganha com cada refrigerador vendido de US$ 10,25. Para que
uma nova linha de produo seja implantada, h necessidade de se investir US$ 105.000,00.
Estes valores vm se mantendo constantes nos ltimos 15 anos, e no se acredita que possam
vir a mudar nos prximos anos.
O tempo necessrio para a implantao de uma destas linhas de um ano, isto , tomando a
deciso de implantar uma ou mais linhas em um ano qualquer, as mesmas entraro em
produo no ano seguinte.
Formule um modelo de Programao Dinmica que maximize o lucro da empresa nos
prximos 10 anos, sabendo que Taxa de Mnima Atratividade (TMA) da empresa de 13% ao
ano.
FORMULAO DO MODELO DE PROGRAMAO DINMICA
Estgio: Nmero de anos que faltam para

completar o perodo de planejamento;

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

de linhas de produo a ser implantada em um determinado ano;

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}

Estes valores pressupem que ao final do perodo de planejamento a fbrica ser


desativada, e nenhum ganho adicional ser obtido;
Ganhos obtidos durante um ano qualquer, considerando os lucros das vendas e os
investimentos realizados durante um ano;

Retorno:

r (n, i, k ) = 10,25 Vendas11 n 105000 k

onde: Vendas11 n = Min 24000 i ; 235000 (1,03)11 n

Funo de Transio:

j =i+k
Funo de Recorrncia:

f (n, i ) = Max

k Ki

{ 1,065 r (n, i, k ) + 1,13 f (n 1, j ) }

Conjunto de Aes Viveis:

K i = {k | 0 k min (1 ; 14 i ) }

Programao Dinmica
Prof. Srgio Fernando Mayerle

17

9.

LISTA DE EXERCCIOS - FORMULAO DE MODELOS

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

***

***

*** Reduo no vivel tecnicamente

Determine o plano timo de produo deste processo.


Problema 04
Um construtor de barcos tem, em carteira, os pedidos apresentados na tabela abaixo para
serem atendidos no fim dos prximos meses.
Pedidos em Carteira
Ms

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

Valor Residual (Sucata)

10

O custo de um equipamento novo US$ 20.000.000,00. A vida til de toda a linha de


produo de 5 anos, e no fim deste perodo o equipamento sucateado. O equipamento
atualmente instalado ter trs anos de idade na prxima reviso. Determine o plano timo de
substituio deste equipamento.
Programao Dinmica
Prof. Srgio Fernando Mayerle

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

Custo em US$ (mil)


Tempo em dias
Etapas
2

Terraplanagem

18

17

Reparos

11

Reconstruo

20

15

Desenvolva um modelo de alocao do tempo disponvel entre as etapas desta manuteno.


Problema 09
Uma indstria que fabrica barras de ao tem as encomendas apresentadas no quadro abaixo:
Custo

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

Considerando que os clientes j se manifestaram pela aceitao de barras de bitola maior,


desde que vendidos pelo preo da bitola encomendada, e que a preparao do equipamento
para a produo de cada uma das bitolas acima custa US$ 1.650.000,00 (parada e manuteno
do forno), determine que bitolas devero ser produzidas, a fim de maximizar o lucro.
Problema 10
Em um jogo de televiso o participante deve abrir caixas que contm uma soma em dinheiro,
cuja distribuio de probabilidades uniforme entre US$ 0,00 e US$ 1.000.000,00. Ao abrir
uma caixa, a quantia pode ser aceita ou rejeitada. No caso de aceitao o jogo acaba e o
participante leva a quantia contida na caixa, e em caso contrrio, o participante abre outra
caixa. Este jogo tem quatro caixas. Quais as quantias que o participante deve aceitar ou
rejeitar quando da abertura de cada caixa ?
Problema 11
A concessionria de energia eltrica dispe de duas unidades geradoras, sendo uma hidrulica
e outra trmica (carvo), que abastecem o mercado local. O sistema de distribuio foi
concebido de forma a permitir que a demanda seja atendida por qualquer uma das duas

Programao Dinmica
Prof. Srgio Fernando Mayerle

21

unidades. O custo de operao da unidade hidrulica pode ser considerado desprezvel, se


comparado com os custos operacionais da unidade trmica, que esto apresentados abaixo.
CUSTO DE OPERAO BIMENSAL DA UNIDADE TRMICA (U.M.)
GERAO (U.E.)

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

Considere, ainda, a existncia de um custo associado ao dficit de energia eltrica da ordem


de 6 U.M./ U.E., a ser pago pela concessionria no caso de no dispor de energia suficiente
para abastecer o mercado (importao de energia de outras concessionrias interligadas ao
sistema). A energia demandada pelo mercado dever ser necessariamente atendida, a um
preo de 5 U.M. por U.E.
O consumo do mercado, bem como a afluncia ao reservatrio da unidade hidrulica, so
variveis aleatrias, cujas distribuies de probabilidade esto apresentadas nos quadros
abaixo.
DISTRIBUIO DE PROBABILIDADE DO CONSUMO (U.E.)
CONSUMO

JAN / FEV MAR / ABR MAI / JUN

JUL / AGO SET / OUT NOV / DEZ

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%

DISTRIBUIO DE PROBABILIDADE DA AFLUNCIA DO RESERVATRIO (U.E.)


AFLUNCIA (*)

JAN / FEV MAR / ABR MAI / JUN

JUL / AGO SET / OUT NOV / DEZ

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.

A capacidade do reservatrio, em unidades equivalentes de energia, de 15 U.E., e a


capacidade de produo bimestral de 10 U.E. A afluncia que exceder esta capacidade ser
vertida pela barragem, sem que haja aproveitamento energtico. A afluncia de um
determinado perodo, para fins de planejamento, somente poder ser considerada disponvel
no incio do perodo subseqente.
Pede-se:
a) a formulao de um modelo de programao dinmica para determinar a poltica tima de
operao, considerando uma taxa de mnima atratividade de 12 % ao ano.
b) a determinao, com ajuda do modelo formulado, da poltica tima de operao deste
sistema gerador de energia.
c) o valor mnimo a ser considerado pelo proprietrio da concessionria em caso de venda do
sistema.

Programao Dinmica
Prof. Srgio Fernando Mayerle

22

Você também pode gostar