Vous êtes sur la page 1sur 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

B 3 5 A 4 C 8 3 D 2 4 4 6

E 4 2 F

2 H 4 J 3 I 5

1 3

4 4 G

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. 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. 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. 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.

Estgio:

Ao:

Plano:

Retorno: O retorno algo que o sistema gera, sobre um estgio ou processo. No problema da figura 2.1, o retorno a distncia percorrida entre uma cidade e a prxima. O retorno usualmente, algo do tipo: lucro, custo, distncia, consumo de recursos, etc. Valor do Estado: O valor do estado uma funo dos retornos gerados, quando o sistema evolui de um estado inicial para um estado final, atravs de um plano dado. No caso do problema da viagem, o valor do estado, para um determinado plano, corresponde distncia desta cidade at a cidade terminal. O valor de um estado sob um plano timo o valor timo.

Programao Dinmica Prof. Srgio Fernando Mayerle

Diferentes problemas sero estudados, sendo, entretanto, comuns a todos a estrutura da programao dinmica, que pode, para o exemplo apresentado ser assim descrita:
Estado Estgio Ao Retorno Valor do Estado Uma cidade Uma transio de uma cidade para a cidade adjacente Tomar uma rota a partir de uma cidade Distncia de uma cidade a cidade adjacente 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 3 4 4

2.1

2 4 2
1.1

5
4.1

4
0.1

3.2

6 8

2.2

1 3
1.2

3
3.3

4 4
2.3

3
Estgios

2
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 = { ,2,..., k ,...k ni } 1 (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 K 21 = { ,2} 1 K 31 = { ,2,3} 1 K 41 = { ,2,3} 1 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) K12 = { } 1 K 22 = { ,2} 1 K 32 = { ,2,3} 1 K 23 = { ,2} 1 K 33 = { ,2,3} 1

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 ) A equao (3.2) um exemplo simples de funo de transio. (3.3)

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 Estado Ao Retorno Valor do Estado

Uma transio de uma cidade para a cidade adjacente Uma cidade Tomar uma rota a partir de uma cidade Distncia de uma cidade a cidade adjacente 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 P1 P2 P3 P4 P5 P6 P7 Inicializar o problema (ler e preparar dados do problema); Atribuir aos estados terminais o valor zero; Repetir os passos 3, 4, 5 e 6 para cada estgio; Repetir os passos 4 ,5 e 6 para cada estado; Repetir os passos 5 e 6 para cada ao; Calcular o valor da ao para o estado corrente; Comparar o valor calculado com a melhor ao obtida anteriormente, mantendo a deciso sobre a melhor delas. 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 f (2,1) = r (2,1,2) + f (1,2) = 4 + 3 = 7 se k = 1 se k = 2

Obviamente, entre as duas alternativas apresentadas, o melhor optar pela primeira cujo custo total, at alcanar o estado final, o menor, e portanto f(2,1) = 6, que corresponde ao tima k* = 1. Em outras palavras, no caso genrico tem-se: f (n, i ) = Min [r (n, i, k ) + f (n 1, j )]
k K ni

(4.1)

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.
7

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
k {1, 2,3}

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

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: f (3,3) = Min


k {1, 2,3}

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

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


k {1,2,3}

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

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

n
0 1

i
1 1 2 1

k
1 1 1 2

j
1 1 1 2 1 2 1 2 1 2 3 1 2 3 1 2 3 1 2 3

f (n-1,j)
0 0 4 3 4 3 4 3 6 4 7 6 4 7 6 4 7 7 10 8

r (n,i,k)
4 3 2 4 2 1 3 5 2 3 4 4 6 8 2 4 4 5 4 3

f (n,i)
0 4 3 6 7 6 4 7 8 8 7 11 10 10 15 8 8 11 12 14 11

1 2

1 2 1

2 3 1

2 3 1

2 3 1

2 3

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

n
0 1

i
1 1 2 1

k
1 1 1 2 1 2 1 1 3

j
1 1 1 2 1 2 1 1 3

f (n-1,j)
0 0 4 3 4 4 6 6 8

r (n,i,k)
4 3 2 1 3 3 4 2 3

f (n,i)
0 4 3 6 4 7 7 10 8 11

2 3 1

2 3

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 )} onde: f (n 1, in 1 , An 1 ) = { r (n 1, in 1 , k n 1 ),..., r (1, i1 , k1 )} 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 ) (5.5) (5.4) (5.3)

Programao Dinmica Prof. Srgio Fernando Mayerle

11

f (m, im , Am ) =

n =1

b m n r (n, in , k n )
m 1 n =1

(5.6)

f (m, im , Am ) = b 0 r (m, im , k m ) +

b m n r (n, in , k n )

(5.7)

f (m, im , Am ) = r (m, im , k m ) + b

m 1 n =1

b m n 1 r (n, in , k n )

(5.8)

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 Tem-se ento: f (n, in , An ) = f (n, in , k n + An 1 ) (5.12) (5.11)

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

(5.13)

Programao Dinmica Prof. Srgio Fernando Mayerle

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

(5.14)

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

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


j =1

(6.1)

Programao Dinmica Prof. Srgio Fernando Mayerle

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 ?

Sim

No No a ltima ao ?

Atualize o valor do estado e anote a ao corrente como sendo a melhor para este estado

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 do Estado:

Valor presente dos lucros das vendas e investimentos a serem realizados a partir do estado em questo, considerando que o melhor plano ser implantado; 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;
Retorno:

Ganhos obtidos durante um ano qualquer, considerando os lucros das vendas e os investimentos realizados durante um ano; 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 Preo de Compra 1 10 11 2 13 13 3 18 15 4 14 15 5 11 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 9 8 7 6 5 4 4 4 4 4 5 7 10 2 6 6 7 10 10 12 *** 3 8 9 12 *** *** *** ***

*** 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 Barcos Fev 1 Mar 2 Abr 5 Mai 3 Jun 2 Jul 1

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) 1 7 10 2 3 5 3 9 2 4 6 0

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.) 0 1 2 3 A 0 10 17 19 B 0 6 7 11 C 0 8 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.
Nvel de Carga 1 2 3 4 5 A 1 2 3 4 5 Tipo de Produto B 10 18 26 30 32 C 14 28 38 44 *** D 22 40 50 *** ***

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 Reparos Reconstruo 18 11 20 4 17 8 15 6 8 7 9 8 6 5 8

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 Bitola Unitrio (mm) 5 6 8 10 12 15 20 (US$/m) 15 21 34 50 68 100 163 Venda (US$/m) 20 27 45 65 89 130 212 Encomendada (m) 15000 12000 6000 15000 8000 16000 9000 Preo de Quantidade

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.) CUSTO BIMENSAL 0,0 1,0 1,0 2,0 2,0 4,0 3,0 7,0 4,0 11,0 5,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 10,0 11,0 12,0 13,0 JAN / FEV MAR / ABR MAI / JUN 10% 40% 40% 10% 10% 30% 35% 25% 10% 40% 30% 20% JUL / AGO SET / OUT NOV / DEZ 25% 35% 30% 10% 10% 35% 40% 15% 10% 30% 40% 20%

DISTRIBUIO DE PROBABILIDADE DA AFLUNCIA DO RESERVATRIO (U.E.) AFLUNCIA (*) 7,0 8,0 9,0 JAN / FEV MAR / ABR MAI / JUN 15% 35% 40% 5% 30% 35% 20% 40% 30% JUL / AGO SET / OUT NOV / DEZ 30% 40% 25% 30% 35% 30% 5% 20% 40% 30% 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

Vous aimerez peut-être aussi