PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS
Considere um sistema constituido de N estágios em série. O dimensionamento deste sistema é um problema de otimização com G = N graus de liberdade tendo x 1... x N como variáveis de projeto Uma forma de conduzir a otimização consiste um realizar uma busca multivariável por um dos métodos conhecidos (H&J, por exemplo). Uma outra forma consiste em realizar N buscas univariáveis. xoxo x2x2 xNxN x N-1 x N-2 12N x1x1 N -1 PROGRAMAÇÃO DINÂMICA
Método criado por Richard Bellman para a otimização de sistemas em estágios. x*ox*o 12NN -1 x1x1 x2x2 xNxN x N-1 x N-2 Aplicações na Engenharia Química baterias de reatores, extratores, torres de destilação, etc...
Base do Método PRINCÍPIO DO ÓTIMO “Optimality Principle” (Bellman) "Para que um sistema em estágios em série seja ótimo é necessário que ele seja ótimo de qualquer estágio em diante". x*ox*o 12NN -1 x1ox1o x2ox2o xNoxNo x N-1 o x N-2 o Todo x i está com o seu valor ótimo
12 Q = kgA/h x o = 0,02 kgAB/kgA W1W1 W2W2 X 1 kgAB/kgAX 2 kgAB/kgA y 1 kgAB/kgAy 2 = kgAB/kgA 3 W3W3 y 3 = kgAB/kgA X 3 kgAB/kgA Exemplo: 3 extratores em série
A solução ótima A solução ótima pode ser obtida pelo método analítico, maximizando o Lucro do processo completo. Incorporando as equações ordenadas ao Lucro: L (x o, x 1, x 2, x 3 ) = (0,02 – x 3 ) – 25 (0,02 / x 1 – x 1 / x 2 – x 2 / x 3 – 3) L / x 1 = 0 x 2 = 50 x 1 2 L / x 2 = 0 x 3 = x 2 2 / x 1 L / x 3 = 0 x 1 o = 0,01495 x 2 o = 0,01118 x 3 o = 0, W 1 o = W 2 o = W 3 o = 843,7 L o (x o, x 1, x 2, x 3 ) = 21,3 $/h 12 Q = kgA/h x o = 0,02 kgAB/kgA W 1 o = 843,7 kgB/hW 2 o = 843,7 kgB/h x 1 o = 0,015 kgAB/kgA x 2 o = 0,011 kgAB/kgA y 1 = 0,0598 kgAB/kgAy 2 = 0,04472 kgAB/kgA 3 W 3 o = 843,7 kgB/h y 3 = 0,03344 kgAB/kgA x 3 o = 0,0084 kgAB/kgA
12 Q = kgA/h x o = 0,02 kgAB/kgA W 1 o = 843,7 kgB/hW 2 o = 843,7 kgB/h X 1 o = 0,015 kgAB/kgA x 2 o = 0,011 kgAB/kgA y 1 = 0,0598 kgAB/kgAy 2 = 0,04472 kgAB/kgA 3 W 3 o = 843,7 kgB/h y 3 = 0,03344 kgAB/kgA x 3 o = 0,0084 kgAB/kgA Este sistema é ótimo a partir de qualquer estágio Outra solução: este sistema não é ótimo a partir de estágio algum ! 12 Q = kgA/h x o = 0,02 kgAB / kgA W 1 = kgB/hW 2 = 843,7 kgB/h x 1 = 0,01118 kgAB/kgA x 2 = 0, kgAB/kgA y 1 = 0,04472 kgAB/kgAy 2 = 0,03344 kgAB/kgA 3 W 2 = 391,2 kgB/h y 3 = 0,02891 kgAB/kgA x 3 = 0, kgAB/kgA
Solução Ótima: cada Estágio abre mão do seu lucro máximo em favor do lucro máximo do sistema A outra Solução: cada Estágio busca o seu lucro máximo ignorando os Estágios seguintes. 12 Q = kgA/h x o = 0,02 kgAB / kgA W 1 = kgB/hW 2 = 843,7 kgB/h x 1 = 0,01118 kgAB/kgA x 2 = 0, kgAB/kgA y 1 = 0,04472 kgAB/kgAy 2 = 0,03344 kgAB/kgA 3 W 2 = 391,2 kgB/h y 3 = 0,02891 kgAB/kgA x 3 = 0, kgAB/kgA L o' (x o, x 1, x 2, x 3 ) = L 1 o' (x o, x 1 ) + L 2 o' (x 1, x 2 ) + L 3 o' (x 2, x 3 ) = 15,6 + 2,8 + 0,6 = 19 $/h 12 Q = kgA/h x o = 0,02 kgAB/kgA W 1 o = 843,7 kgB/hW 2 o = 843,7 kgB/h X 1 o = 0,015 kgAB/kgA x 2 o = 0,011 kgAB/kgA y 1 = 0,0598 kgAB/kgAy 2 = 0,04472 kgAB/kgA 3 W 3 o = 843,7 kgB/h y 3 = 0,03344 kgAB/kgA x 3 o = 0,0084 kgAB/kgA L o (x o, x 1, x 2, x 3 ) = (0,02 – x 3 o ) – 25 (0,02 / x 1 o – x 1 o / x 2 o –x 2 o / x 3 o – 3) = 21,3 $/h
A forma correta de executar as buscas univariáveis levando em conta os estágios a jusante, é através da PROGRAMAÇÃO DINÂMICA
De uma forma simplificada, pode-se dizer que a solução por Programação Dinâmica é obtida em duas fases: Fase de Ida Fase de Volta
Fase de Ida: o sistema é percorrido no sentido inverso ao do fluxo, do último ao primeiro Estágio. Nesta fase, cada estágio é “consultado” quanto à sua participação na solução ótima, ficando preparado o caminho de volta. 12 Q = kgA/h x o = 0,02 kgAB/kgA W1W1 W2W2 X 1 ? kgAB/kgAX 2 ? kgAB/kgA y 1 kgAB/kgAy 2 = kgAB/kgA 3 W3W3 y 3 = kgAB/kgA X 3 ? kgAB/kgA
Fase de Volta: o sistema é percorrido no sentido do fluxo, do primeiro para o último Estágio. Nesta fase, a solução ótima vai sendo produzida, de estágio a estágio, utilizando as informações colhidas na Fase de Ida. 12 Q = kgA/h x o = 0,02 kgAB/kgA W1W1 W2W2 X 1 o kgAB/kgAX 2 o kgAB/kgA y 1 kgAB/kgAy 2 = kgAB/kgA 3 W3W3 y 3 = kgAB/kgA X 3 o kgAB/kgA
L (x o, x 1, x 2, x 3 ) = L 1 (x o, x 1 ) + L 2 (x 1, x 2 ) + L 3 (x 2, x 3 ) L 1 (x o, x 1 ) = 105 – x 1 – 0,5 / x 1 L 2 (x 1, x 2 ) = x 1 – x 2 – 25 x 1 / x 2 L 3 (x 2, x 3 ) = x 2 – x 3 – 25 x 2 / x 3 Otimização do Estágio 3 para o valor ótimo de volta ainda desconhecido x 2 # : dL 3 /dx 3 = x 2 # / x 3 2 = 0 x 3 o = 0,0791 x 2 # L 3 o = x 2 # - 632,46 x 2 # EXEMPLO: 3 extratores em série xo*xo* 1 x1x1 W1W1 y1y1 2 x2x2 W2W2 y2y2 3 x3x3 W3W3 y3y3 Assim, fica garantido que o Estágio 3 será ótimo para qualquer valor de x 2. Explicitando o lucro proporcionado por cada estágio:
Otimização dos Estágios para o valor ótimo de volta ainda desconhecido x 1 # (aproveitando L 3 o ): dL 23 /dx 2 = 25 x 1 # / x 2 2 – (1/2)(632,46 / x 2 # ) = 0 x 2 o = 0,1843 x 1 # 2/3 L 23 o = x 1 # – 407,2 x 1 # 1/3 xo*xo* 1 x1x1 W1W1 y1y1 2 x2x2 W2W2 y2y2 3 x3x3 W3W3 y3y3 Do passo anterior: x 3 o = 0,0791 x 2 L 3 o = x ,46 x 2 L 23 = L 2 (x 1, x 2 ) + L 3 o = [ x 1 # – x 2 – 25 x 1 # / x 2 ] + [ x ,46 x 2 ] L 23 = x 1 # - 25 x 1 # / x 2 – 632,46 x 2 Assim, fica garantido que os Estágios 2 e 3 serão ótimos para qualquer valor de x 1.
xo*xo* 1 x1x1 W1W1 y1y1 2 x2x2 W2W2 y2y2 3 x3x3 W3W3 y3y3 Do passo anterior: x 2 o = 0,1842 x 1 2/3 L 23 o = x 1 – 407,2 x 1 1/3 Otimização dos Estágios para a constante x o ( aproveitando L 23 o ): L 123 = L 1 (x o, x 1 ) + L 23 o = [105 – x 1 – 0,5 / x 1 ] + [ x 1 – 407,2 x 1 1/3 ] L 123 = 155 – 0,5/x 1 – 407,2 x 1 1/3 dL 123 /dx 1 = 0,5 / x 1 2 – 135,7 x 1 -2/3 = 0 Retornando, no sentido do fluxo: x 1 o = 0,015 : W 1 o = 843,7 kg/h L 123 o = L o = 21,2 $/a x 2 o = 0,01842 x 1 2/3 = 0,01118 : W 2 o = 843,7 kg/h x 3 o = 0,07905 x 2 = 0, : W 3 o = 843,7 kg/h
DESENVOLVIMENTO LITERAL
Primeiro passo: otimiza-se o estágio 3 para um valor hipotético x 2 #. xo*xo* 1 x1x1 W1W1 y1y1 2 x2x2 W2W2 y2y2 3 x3x3 W3W3 y3y3 L (x 1, x 2, x 2 ) = L 1 (x o, x 1 ) + L 2 (x 1, x 2 ) + L 3 (x 2, x 3 ) x2#x2# ETAPA PREPARATÓRIA A função objetivo a maximizar é L 3 (x 2 #, x 3 ) e a variável de projeto é x 3. Busca univariável em x 3. Obtem-se x 3 o (x 2 # ) e L 3 o (x 2 # ), ambos função de x 2 #. L 3 o (x 2 # ) será usado no passo seguinte. x 3 o (x 2 # ) fica agurdando o resultado x 2 o a ser determinado na etapa na volta.
xo*xo* 1 x1x1 W1W1 y1y1 2 x2x2 W2W2 y2y2 3 x3x3 W3W3 y3y3 L (x 1, x 2, x 2 ) = L 1 (x o, x 1 ) + L 2 (x 1, x 2 ) + L 3 (x 2, x 3 ) A função objetivo a maximizar é L 23 (x 1 #, x 2, x 3 ) = L 2 (x 1 #, x 2 ) + L 3 (x 2, x 3 ). Porém, para qualquer valor de x 2, já se conhece o valor máximo de L 3. Então, a função objetivo fica: L 23 (x 1 #, x 2 ) = L 2 (x 1 #, x 2 ) + L 3 o (x 2 ) e a variável de projeto fica sendo x 2. Busca univariável em x 2. Obtem-se x 2 o (x 1 # ) e L 23 o (x 1 # ), ambos função de x 1 #. L 23 o (x 1 # ) será usado no passo seguinte. x 2 o (x 1 # ) fica aguardando x 1 o (x 1 # ) a ser determinado na etapa de na volta. x1#x1# ETAPA PREPARATÓRIA Segundo passo: otimizam-se os estágios 2 e 3, em conjunto, para um valor hipotético x 1 #.
A função objetivo a maximizar é L 123 (x o, x 1, x 2, x 3 ) = L 1 (x o, x 1 ) + L 2 (x 1, x 2 ) + L 3 (x 2, x 3 ). Porém, para qualquer valor de x 1, já se conhece o valor máximo de L 23. Então, a função objetivo fica: L 123 (x o, x 1 ) = L 1 (x o, x 1 ) + L 23 o (x 1 ) e a variável de projeto fica sendo x 1. Busca univariável em x 1. Obtem-se x 1 o e L 123 o, ambos função de x o. xo*xo* 1 x1x1 W1W1 y1y1 2 x2x2 W2W2 y2y2 3 x3x3 W3W3 y3y3 L (x 1, x 2, x 2 ) = L 1 (x o, x 1 ) + L 2 (x 1, x 2 ) + L 3 (x 2, x 3 ) Quarto passo: regenera-se a solução final voltando com os valores de x 1 o e x 2 o e x 3 o ETAPA PREPARATÓRIA Terceiro passo: otimizam-se os estágios 1, 2 e 3, em conjunto, para o valor fixo x o *.
A solução analítica se torna inviável para problemas de grande porte. Os resultados intermediários de L o e x i o são lançados em gráficos ou tabelas. Procedimento numérico alternativo A pré-otimização de cada estágio se dá para um conjunto discreto de valores da variável de entrada. Ver ProgramaçãoDinâmica.xls Os de L o são usados durante a pré-otimização Os de x i o são usados no caminho de volta