PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

20
PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS

Transcript of PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

Page 1: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

PROGRAMAÇÃO DINÂMICA

27 de maio de 2014

OTIMIZAÇÃO DE SISTEMAS DISCRETOS

Page 2: 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 x1 ... xN 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.

xox2 xNxN-1xN-2

1 2 Nx1

N -1

PROGRAMAÇÃO DINÂMICA

Page 3: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

PROGRAMAÇÃO DINÂMICA

Método criado por Richard Bellman para a otimização de sistemas em estágios.

x*o

1 2 NN -1x1 x2 xNxN-1xN-2

Aplicações na Engenharia Químicabaterias de reatores, extratores, torres de destilação, etc...

Page 4: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

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

1 2 NN -1

x1o x2

o xNoxN-1

oxN-2o

Todo xi está com o seu valor ótimo

Page 5: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

1 2

Q = 10.000 kgA/h

xo = 0,02 kgAB/kgA

W1 W2

X1 kgAB/kgA X2 kgAB/kgA

y1 kgAB/kgA y2 = kgAB/kgA

3

W3

y3 = kgAB/kgA

X3 kgAB/kgA

Exemplo: 3 extratores em série

Page 6: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

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 (xo, x1, x2, x3) = 4.000 (0,02 – x3) – 25 (0,02 / x1 – x1 / x2 – x2 / x3 – 3)

L / x1 = 0 x2 = 50 x12

L / x2 = 0 x3 = x22 / x1

L / x3 = 0 x1o = 0,01495 x2

o = 0,01118 x3o = 0,008359

W1o = W2

o = W3o = 843,7

Lo (xo, x1, x2, x3) = 21,3 $/h

1 2

Q = 10.000 kgA/h

xo = 0,02 kgAB/kgA

W1o = 843,7 kgB/h W2

o = 843,7 kgB/h

x1o = 0,015

kgAB/kgAx2

o = 0,011 kgAB/kgA

y1 = 0,0598 kgAB/kgA y2 = 0,04472 kgAB/kgA

3

W3o = 843,7 kgB/h

y3 = 0,03344 kgAB/kgA

x3o = 0,0084

kgAB/kgA

Page 7: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

1 2

Q = 10.000 kgA/h

xo = 0,02 kgAB/kgA

W1o = 843,7 kgB/h W2

o = 843,7 kgB/h

X1o = 0,015

kgAB/kgAx2

o = 0,011 kgAB/kgA

y1 = 0,0598 kgAB/kgA y2 = 0,04472 kgAB/kgA

3

W3o = 843,7 kgB/h

y3 = 0,03344 kgAB/kgA

x3o = 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 !

1 2

Q = 10.000 kgA/h

xo = 0,02 kgAB / kgA

W1 = 1.972 kgB/h W2 = 843,7 kgB/h

x1 = 0,01118 kgAB/kgA

x2 = 0,008359 kgAB/kgA

y1 = 0,04472 kgAB/kgA y2 = 0,03344 kgAB/kgA

3

W2 = 391,2 kgB/h

y3 = 0,02891 kgAB/kgA

x3 = 0,007228

kgAB/kgA

Page 8: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

Solução Ótima: cada Estágio abre mão do seu lucro máximo em favor dolucro máximo do sistema

A outra Solução: cada Estágio busca o seu lucro máximo ignorando os Estágios seguintes.

1 2

Q = 10.000 kgA/h

xo = 0,02 kgAB / kgA

W1 = 1.972 kgB/h W2 = 843,7 kgB/h

x1 = 0,01118 kgAB/kgA

x2 = 0,008359 kgAB/kgA

y1 = 0,04472 kgAB/kgA y2 = 0,03344 kgAB/kgA

3

W2 = 391,2 kgB/h

y3 = 0,02891 kgAB/kgA

x3 = 0,007228

kgAB/kgA

Lo' (xo, x1, x2, x3) = L1o' (xo, x1) + L2

o' (x1, x2) + L3o' (x2, x3) = 15,6 + 2,8 + 0,6 = 19 $/h

1 2

Q = 10.000 kgA/h

xo = 0,02 kgAB/kgA

W1o = 843,7 kgB/h W2

o = 843,7 kgB/h

X1o = 0,015

kgAB/kgAx2

o = 0,011 kgAB/kgA

y1 = 0,0598 kgAB/kgA y2 = 0,04472 kgAB/kgA

3

W3o = 843,7 kgB/h

y3 = 0,03344 kgAB/kgA

x3o = 0,0084

kgAB/kgA

Lo (xo, x1, x2, x3) = 4.000 (0,02 – x3o) – 25 (0,02 / x1

o – x1o

/ x2o –x2

o/ x3o – 3) = 21,3 $/h

Page 9: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

A forma correta de executar as buscas univariáveis levando em conta os estágios a jusante, é através da

PROGRAMAÇÃO DINÂMICA

Page 10: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

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

Page 11: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

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.

1 2

Q = 10.000 kgA/h

xo = 0,02 kgAB/kgA

W1 W2

X1 ? kgAB/kgA X2 ? kgAB/kgA

y1 kgAB/kgA y2 = kgAB/kgA

3

W3

y3 = kgAB/kgA

X3 ? kgAB/kgA

Page 12: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

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.

1 2

Q = 10.000 kgA/h

xo = 0,02 kgAB/kgA

W1 W2

X1o kgAB/kgA X2

o kgAB/kgA

y1 kgAB/kgA y2 = kgAB/kgA

3

W3

y3 = kgAB/kgA

X3o kgAB/kgA

Page 13: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

L (xo, x1, x2, x3) = L1 (xo, x1) + L2 (x1, x2) + L3 (x2, x3)

L1 (xo, x1) = 105 – 4.000 x1 – 0,5 / x1

L2 (x1, x2) = 25 + 4.000 x1 – 4.000 x2 – 25 x1 / x2

L3 (x2, x3) = 25 + 4.000 x2 – 4.000 x3 – 25 x2 / x3

Otimização do Estágio 3 para o valor ótimo de volta ainda desconhecido x2# :

dL3/dx3 = - 4.000 + 25 x2# / x3

2 = 0x3

o = 0,0791 x2#

L3o = 25 + 4.000 x2

# - 632,46 x2#

EXEMPLO: 3 extratores em série

xo*

1x1

W1

y1

2x2

W2

y2

3x3

W3

y3

Assim , fica garantido que o Estágio 3 será ótimo para qualquer valor de x2.

Explicitando o lucro proporcionado por cada estágio:

Page 14: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

Otimização dos Estágios 2 + 3 para o valor ótimo de volta ainda desconhecido x1#

(aproveitando L3o ):

dL23/dx2 = 25 x1# / x2

2 – (1/2)(632,46 / x2#) = 0

x2o = 0,1843 x1

# 2/3 L23

o = 50 + 4.000 x1# – 407,2 x1

# 1/3

xo*

1x1

W1

y1

2x2

W2

y2

3x3

W3

y3

Do passo anterior:x3

o = 0,0791 x2 L3

o = 25 + 4.000 x2 - 632,46 x2

L23 = L2 (x1, x2) + L3o = [25 + 4.000 x1

# – 4.000 x2 – 25 x1# / x2] +

[25 + 4.000 x2 - 632,46 x2 ]

L23 = 50 + 4.000 x1# - 25 x1

# / x2 – 632,46 x2

Assim , fica garantido que os Estágios 2 e 3 serão ótimos para qualquer valor de x1.

Page 15: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

xo*

1x1

W1

y1

2x2

W2

y2

3x3

W3

y3

Do passo anterior:x2

o = 0,1842 x12/3

L23o = 50 + 4.000 x1 – 407,2 x1

1/3

Otimização dos Estágios 1 + 2 + 3 para a constante xo ( aproveitando L23o ):

L123 = L1 (xo, x1) + L23o = [105 – 4.000 x1 – 0,5 / x1] + [50 + 4.000 x1 – 407,2 x1

1/3 ]

L123 = 155 – 0,5/x1 – 407,2 x11/3

dL123/dx1 = 0,5 / x12 – 135,7 x1

-2/3 = 0

Retornando, no sentido do fluxo:

x1o = 0,015 : W1

o = 843,7 kg/h

L123o = Lo = 21,2 $/a

x2o = 0,01842 x1

2/3 = 0,01118 : W2o = 843,7 kg/h

x3o = 0,07905 x2 = 0,008365 : W3

o = 843,7 kg/h

Page 16: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

DESENVOLVIMENTO LITERAL

Page 17: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

Primeiro passo: otimiza-se o estágio 3 para um valor hipotético x2

# .

xo*

1x1

W1

y1

2x2

W2

y2

3x3

W3

y3

L (x1, x2, x2) = L1 (xo, x1) + L2 (x1, x2) + L3 (x2, x3)

x2#

ETAPA PREPARATÓRIA

A função objetivo a maximizar é L3 (x2#, x3 ) e a variável de projeto é x3.

Busca univariável em x3. Obtem-se x3

o (x2# ) e L3

o (x2# ) , ambos função de x2

#. L3

o (x2# ) será usado no passo seguinte.

x3o (x2

# ) fica agurdando o resultado x2o a ser determinado na etapa na volta.

Page 18: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

xo*

1x1

W1

y1

2x2

W2

y2

3x3

W3

y3

L (x1, x2, x2) = L1 (xo, x1) + L2 (x1, x2) + L3 (x2, x3)

A função objetivo a maximizar é L23 (x1#, x2, x3 ) = L2 (x1

#, x2) + L3 (x2, x3). Porém, para qualquer valor de x2, já se conhece o valor máximo de L3 . Então, a função objetivo fica: L23 (x1

#, x2 ) = L2 (x1#, x2) + L3

o(x2) e a variável de projeto fica sendo x2. Busca univariável em x2 . Obtem-se x2

o (x1# ) e L23

o (x1# ) , ambos função de x1

#. L23

o (x1# ) será usado no passo seguinte.

x2o (x1

# ) fica aguardando x1o (x1

# ) a ser determinado na etapa de na volta.

x1#

ETAPA PREPARATÓRIA

Segundo passo: otimizam-se os estágios 2 e 3, em conjunto, para um valor hipotético x1

#.

Page 19: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

A função objetivo a maximizar é L123 (xo , x1 , x2, x3 ) = L1 (xo, x1) + L2 (x1, x2) + L3 (x2, x3). Porém, para qualquer valor de x1, já se conhece o valor máximo de L23 . Então, a função objetivo fica: L123 (xo, x1 ) = L1 (xo, x1) + L23

o (x1) e a

variável de projeto fica sendo x1. Busca univariável em x1 . Obtem-se x1

o e L123o , ambos função de xo.

xo*

1x1

W1

y1

2x2

W2

y2

3x3

W3

y3

L (x1, x2, x2) = L1 (xo, x1) + L2 (x1, x2) + L3 (x2, x3)

Quarto passo: regenera-se a solução final voltando com os valores de x1

o e x2o e x3

o

ETAPA PREPARATÓRIA

Terceiro passo: otimizam-se os estágios 1, 2 e 3, em conjunto, para o valor fixo xo

*.

Page 20: PROGRAMAÇÃO DINÂMICA 27 de maio de 2014 OTIMIZAÇÃO DE SISTEMAS DISCRETOS.

A solução analítica se torna inviável para problemas de grande porte.

Os resultados intermediários de Lo e xio 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 Lo são usados durante a pré-otimização

Os de xio são usados no caminho de volta