20
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

Embed Size (px)

Citation preview

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