Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fernando Nogueira
Programao Dinmica
A Programao Dinmica procura resolver o problema de otimizao atravs da anlise de uma seqncia de problemas mais simples do que o problema original. A resoluo do problema original de N variveis caracterizado pela determinao de uma varivel e pela resoluo de um problema que possua uma varivel a menos (N-1). Este por sua vez resolvido pela determinao de uma varivel e pela resoluo de um problema de N-2 variveis e assim por diante. O problema a ser resolvido do tipo: -existem N atividades ou estgios numerados de 1 a N. -Xi a quantidade de recursos colocados nas atividades ou estgios i (X i 0) -gi(Xi) a funo que representa o ganho ou o retorno devido a colocao de Xi recursos na atividade i, Q = x1 + x2 + ... + xN a quantidade total de recursos disponveis. -O objetivo determinar a distribuio de recursos Xi que maximiza o ganho total. R(X1, X2,...,XN) = g1(X1) + g2(X2) + ...gN(XN). considerando que as atividades so independentes e os ganhos gi sejam aditivos.
Fernando Nogueira
Programao Dinmica
fN(Q) representa o ganho mximo devido distribuio de Q quantidades de recursos nas N atividades. Condio Inicial a)gi(0) = 0 para cada atividade i (ganho nulo para zeros recursos distribudos). b)fN(0) = 0 para N = 1,2,... (se o total Q de recursos nulo, o ganho mximo tambm nulo). c)f1(Q) = g1(Q) se existir N = 1 atividade, ento R(X1) = g1(X1). Relao de Recorrncia entre fN(Q) e fN-1(Q) Ao atribuir a quantidade X N (0 X N Q ) de recursos atividade N, restaro Q-XN recursos a serem distribudos nas N-1 atividades restantes e o ganho mximo proveniente dessas N-1 atividades pode ser expresso por fN-1(Q-XN). Sendo assim, o ganho total das N atividades pode ser expresso por:
g N (X N ) + f N 1 (Q X N )
Fernando Nogueira Programao Dinmica 3
e se escolhermos XN, que maximize esse ganho, teremos o valor fN(Q) do ganho mximo devido aplicao de Q recursos em N atividades. Temos ento a relao fundamental da Programao Dinmica, dada por:
f N (Q ) = 0 Max XN Q
{g N (X N ) + f N 1 (Q X N )}para
N = 2,3,...
para N = 1 f1 (Q ) = g1 (Q )
Exemplo : Problema de Investimento de Capital Q = $6,00 unidades de capital disponvel N = 3 atividades diferentes para investimento e as funes de ganho gi(Xi) dadas pelo quadro abaixo:
f1 (1) = g1 (1) = 15
Obteno da funo f2(Q) da atividade 2 fN(Q) para N=2 Para Q = 0, f2(0) = 0 pela condio inicial (b)
Para Q = 1, f 2 (1) = 0 Max 1 X2
{g 2 (X 2 ) + f1 (1 X 2 )}
{g 2 (X 2 ) + f1 (2 X 2 )}
Programao Dinmica 5
{g 2 (X 2 ) + f1 (3 X 2 )}
Prosseguindo, pode-se encontrar: Para Q = 4, f2(4) = 95, para X2 = 1 Para Q = 5, f2(5) = 120, para X2 = 2 Para Q = 6, f2(6) = 140, para X2 = 3
Fernando Nogueira Programao Dinmica 6
{g 3 (X 3 ) + f 2 (2 X 3 )}
Fernando Nogueira
Programao Dinmica
Ganho Mximo do Investimento Na coluna f3(Q) obtm-se como ganho mximo correspondente ao investimento nas 3 atividades, o valor $146,00, para Q = 6. A distribuio : a) para a atividade 3: X3 = $1,00 f3(Q) = 146 e subtraindo o ganho g3(1) = 26 (do quadro de ganhos) restam ainda 146-26 = 120 unidades que correspondem ao ganho da aplicao de Q = 5 unidades nas outras 2 atividades.
b) para a atividade 2, o ganho de 120 unidades corresponde a aplicao de X2 = 2 unidades na atividade e c) para a atividade 1, restam, portanto, Q-X3-X2 = 3 unidades a serem aplicadas. Portanto, X1 = 3.
Soluo tima X1 = 3 com g1(3) = 80, X2 = 2 com g2(2) = 40, X3 = 1 com g3(1) = 26 e R = g1 + g2 + g3 = $146,00
Fernando Nogueira
Programao Dinmica
Max
c x
i =1 i
n w i x i L i=1 x {0,1} i
Cdigo MPL para o exemplo da figura MAX 4X1 + 2X2 + 10X3 + 1X4 + 2X5 SUBJECT TO 12X1 + 1X2 + 4X3 + 1X4 + 2X5 <= 15; BINARY X1 X2 X3 X4 X5
Fernando Nogueira
Programao Dinmica
Outra verso deste problema quando as variveis de controle no so binrias, mas sim inteiras (neste caso a soluo ir determinar quantas unidades de cada produto sero colocados na mochila):
Max
c x
i =1 i
n w i x i L i =1 x 0 e i
Outra verso deste problema quando as variveis de controle so reais, limitadas por valores mximos bi (neste caso a soluo ir determinar a quantidade (grandeza contnua) de cada produto que ser colocado na mochila):
Max
c x
i =1 i
n w i x i L i =1 0 x b i i
Fernando Nogueira Programao Dinmica 10
Exemplo Um navio pode carregar 4 toneladas. Existem 3 itens. A seguinte tabela fornece o peso unitrio wi em toneladas e o retorno unitrio ci em $ para cada item i. Como o navio deve ser carregado para maximizar o retorno total?
Item i 1 2 3 wi 2 3 1 ci 31 47 14
Uma vez que os pesos wi e o peso mximo que o navio pode carregar W so inteiros, as variveis xi devem ser somente inteiras tambm.
Fernando Nogueira
Programao Dinmica
11
Porque w3 = 1, o nmero mximo de itens 3 que o navio pode carregar 4/1 = 4, que significa que os valores de m3 so 0,1,2,3,4. Uma alternativa m3 vivel somente se
w 3m 3 x 3
x3 0 1 2 3 4
m3=0 0 0 0 0 0
m3=1 --14 14 14 14
m3=2 ----28 28 28
m3=3 ------42 42
m3=4 --------56
f3(x3) 0 14 28 42 56
m3 0 1 2 3 4
12
Fernando Nogueira
Programao Dinmica
47m2+f3(x2-3m2) x2 0 1 2 3 4 m2=0 0+0=0 0+14=14 0+28=28 0+42=42 0+56=56 m2=1 ------47+0=47 47+14=61
Fernando Nogueira
Programao Dinmica
13
Fernando Nogueira
Programao Dinmica
14
Soluo tima
m1 = 2, m2 = 0, m3 = 0 Z = $62,00
Fernando Nogueira
Programao Dinmica
15