Escolar Documentos
Profissional Documentos
Cultura Documentos
PQI-5779:
OTIMIZAÇÃO
DE PROCESSOS
QUÍMICOS
2016
ÍNDICE
I. OTIMIZAÇÃO DE PROCESSOS QUÍMICOS 1
I.1. Formulação Conceitual de Programação Matemática 3
I.2. Representação de Problemas Inteiros Mistos 9
I.3. Modelos e Estratégias para Representações em Redes 12
V. PROGRAMAÇÃO LINEAR 52
V.1. Método Simplex 55
V.1.1. Princípios 55
V.1.2. Procedimento básico 58
V.1.3. Algoritmo 59
V.2. Método de Karmarkar 61
V.2.1. Princípios 61
V.2.2. Procedimento básico 62
V.2.3. Algoritmo 63
V.3. Exemplos de aplicações de programação linear 64
VI. PROGRAMAÇÃO NÃO-LINEAR 69
VI.1 Condições de Otimalidade para o NLP 71
VI.2. Algoritmos 71
VI.2.1. Programação linear sucessiva (SLP) 72
VI.2.2. Métodos de gradiente reduzido (GRG) 73
VI.2.3. Programação quadrática sucessiva (SQP) 76
VI.3. Diretrizes para Formulação de Modelos NLP 77
VI.4. Modelos com Funções Implícitas (caixa preta) 78
VI.5. Softwares Disponíveis para NLP 79
VI.6. Exemplo de Validação de Solvers NLP 81
REFERÊNCIAS 125
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Sob um ponto de vista prático, pode-se definir o termo otimização como: dado um sistema ou
processo, encontrar a melhor solução para o mesmo respeitando restrições estabelecidas. Para
quantificar o termo “melhor” é necessária inicialmente uma função objetivo que serve como
um indicador da qualidade de uma solução em particular. Objetivos típicos para o projeto de
processos incluem custo operacional e fixo, rendimento ou qualidade de produtos, lucro total,
impacto ambiental, etc.
De modo a influenciar esta função objetivo (e também as restrições) são definidas as variáveis
do problema. Estas podem representar fisicamente tamanhos de equipamentos e condições de
operação (por exemplo, pressões, temperaturas e vazões). Finalmente, os limites da operação
do processo, pureza dos produtos, validade dos modelos e relações entre as variáveis do
problema devem ser consideradas como restrições no processo. Normalmente as variáveis
podem ser classificadas como variáveis de decisão que representam os graus de liberdade na
otimização e as variáveis dependentes que podem ser calculadas a partir das restrições.
Em muitos casos, a tarefa de encontrar uma melhor solução pela manipulação das variáveis de
decisão é executada por tentativa e erro (através de estudos de casos). No entanto, com métodos
de otimização o interesse é utilizar uma abordagem sistemática para encontrar a melhor solução
da forma mais eficiente possível.
1
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
5) Ajuste de modelos: minimizar o desvio entre dados experimentais e valores preditos pelo
modelo matemático através do ajuste de parâmetros.
Abordagens:
1) Viabilidade: determinar uma solução que satisfaça todas as restrições do problema
(especificações funcionais, restrições físicas etc.) sem o uso de um critério de avaliação (função
objetivo).
espaço de alternativas
(superestrutura)
função objetivo
Síntese Avaliação
Sistema
Análise
modelo matemático
e restrições
As etapas mostradas são:
ANÁLISE: simulação de modelos quantitativos (algébrico / diferencial / Booleano)
AVALIAÇÃO: medida algébrica por um critério de avaliação
ESPAÇO DE ALTERNATIVAS: representação bem definida dos componentes do
sistema / Superestrutura
2
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
3. Resolver problema.
Método de solução?
O processo de síntese é iterativo por natureza e envolve decisões de natureza contínua e discreta.
Como exemplo, considere um sistema cujas especificações funcionais são conhecidas. As
questões fundamentais abordadas através da síntese são:
1. Quais componentes devem integrar um sistema?
2. Como interconectar os componentes?
3. Quais os valores das variáveis e processo?
min f(x,y)
x, y
sujeito a: h(x,y) = 0
g(x,y) ≤ 0
x X
y Y
Variáveis:
x vetor de variáveis contínuas n
y vetor de decisões discretas d
Análise:
a) Modelo de desempenho
hmx1 vetor de equações m (com m < n)
Avaliação:
Função objetivo
f função escalar a ser minimizada
3
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Função objetivo
Variáveis
Classe e restrições Algumas opções de solução OBS
(x e y)
(f, g e h)
LP
- Simplex
Linear contínuas Solução (vértice
- Métodos de ponto interior
Programming da região viável)
MILP lineares é o ótimo global,
contínuas - Branch-and-bound pois o problema
Mixed-Integer
e - Planos cortantes (Branch-and- é convexo
Linear
discretas cut)
Programming
- Condições de KKT
NLP
- Gradiente reduzido generalizado
Non-Linear contínuas Solução é um
- Programação quadrática
Programming ótimo local. Será
lineares e sucessiva
o ótimo global se
MINLP não-lineares o problema for
contínuas - Aproximação externa
Mixed-Integer convexo.
e - Decomposição de Benders
Non-Linear
discretas generalizada
Programming
Problemas de maximização?
Basta minimizar a função multiplicada por –1
max f min –f
min(f1) f1
4
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
f2
min(f2)
min(f1) f1
Análise de sensibilidade
Dada a natureza determinística da programação matemática, é importante avaliar como
incertezas nos parâmetros do problema afetam a solução ótima. Na análise de
sensibilidade, provoca-se alterações no parâmetro incerto e otimiza-se novamente o
problema. Graficando ou tabulando os resultados de objetivo otimizado (f*) e das
variáveis independentes otimizadas (x*) em função do valor do parâmetro, pode-se
avaliar a sensibilidade da solução ótima com relação à incerteza.
5
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Embora bastante simples, este problema é útil para consolidar conceitos importantes de
otimização com programação matemática.
Considere agora uma restrição adicional (perfil conservador), em que um valor mínimo de R$
200,00 deve ser investido em poupança:
g3(x): –x1 + 200 ≤ 0
6
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Considere agora uma outra restrição adicional (investidor com perfil diversificado), em que um
valor mínimo de R$ 200,00 deve ser investido em cada aplicação:
g4(x): –x2 + 200 ≤ 0
u1 u2 u1
100 cm
7
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Formulação MINLP:
min z = CJ . [2 + y] + CB. [ 100.u2 + 2.(141,4).u1 ]
u1, u2, y
Sujeito a: 100.δ1 –0,5.E.r1 –0,5.E.r2 =0
100.δ2 –E.r2 =0
100.δ3 +0,5.E.r1 –0,5.E.r2 =0
E.u1.r1 –2000 =0
E.(u1 +2.u2).r2 –2000 =0
δi – 20 ≤0 i = 1, 2, 3
–δi – 15 ≤0 i = 1, 2, 3
u2 – u2u . y ≤0
y {0, 1}
u1, u2 ≥ 0
8
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Na representação em árvore, qualquer sequência é dada por um caminho que vai do nó raiz até
um nó terminal. Note na figura que há separadores repetidos (A/B, B/C e C/D). A árvore tem
14 nós e o número total de alternativas é cinco (nós terminais).
B C
A C D
B D
C
D B B
C C
D
A A
B B A C
C C B D
D D
A
B B
A C C
B
C A
D B A
C B
Se a duplicação de nós for evitada, tem-se a representação abaixo. Não se observa mais uma
árvore, mas sim uma representação em rede (superestrutura) que pode ser interpretada como
um fluxograma de processo contendo todos os separadores conectados. Na rede pode haver
9
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
mais de uma saída e mais de uma entrada em cada nó. É possível representar reciclos e o caso
de separadores arranjados em paralelo.
B C
A C D
B D
C
D B
C
D
A A
B B B
C C C
D D
A
B
A C
B
C A
D B A
C B
Esta superestrutura contempla mais opções do que a árvore anteriormente elaborada. Se a cada
separador for atribuída uma variável binária SIM(1) ou NÃO(0), esta superestrutura geraria
uma árvore com 210 = 1.024 opções, contra apenas 5 da árvore anterior. Entretanto, grande parte
das opções é inviável, ou seja, são combinações que não conseguiriam separar a mistura de
componentes.
recuperação purga
de H2
N2
separador
compressor reator NH3
H2 de NH3
Separação
membrana
Sem recupe-
Flash ração de H2
condensação
Separação
membrana
Reator
multibed Absorção
destilação Sem recupe-
ração de H2
Separação
Flash membrana
Reator condensação
tubular Sem recupe-
ração de H2
Absorção
destilação Separação
membrana
Sem recupe-
ração de H2
10
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Na representação em árvore, um caminho desde o nó raiz até um nó terminal define uma solução
completa. A árvore tem 3 primitivas e apresenta 23 = 8 opções diferentes.
purga
água
Reator
N2 multibed
H2 água
Reator
tubular
NH3
A superestrutura abrange todas as soluções possíveis. A cada parte do fluxograma é atribuída
uma variável binária SIM(1) ou NÃO(0). Soluções são obtidas “apagando” partes do
fluxograma. Segue um exemplo de solução possível, com reator multibed, condensação flash e
separação por membranas:
purga
N2
H2
Reator
tubular
NH3
11
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Ao representar um problema por uma superestrutura (rede), este problema deve ser decomposto
em decisões discretas simples que permitam a criação de uma árvore de busca sequencial
associada a esta superestrutura.
A formulação geral é aquela apresentada na seção I.1 e o método de solução será função da
estrutura do problema e sua classe.
No exemplo que segue, um problema de seleção de reatores (escolhas discretas SIM e NÃO) é
formulado e resolvido primeiramente com um problema NLP (programação não linear) e depois
como um problema MILP (programação linear inteira mista). Um mesmo problema de
otimização pode ser modelado de formas diferentes.
x1 Reator 1 z1
Conversão = 80,0 %
Custo ($/h): 5,5.x10,6
x0 z0
x2 Reator 2 z2
Conversão = 66,7 %
Custo ($/h): 4,0.x20,6
Em uma primeira abordagem este problema será modelado com um NLP (programação não
linear), sem o uso de variáveis discretas para representar as decisões de uso dos reatores.
12
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Modelagem do processo:
x0 = x1 + x2 balanço de A na derivação
z0 = z1 + z2 balanço de B na mistura
z1 = 0,800.x1 conversão no reator 1
z2 = 0,667.x2 conversão no reator 2
Restrição de demanda:
z0 = 10 (poderia ser formulado também como z0 ≥ 10)
Formulação NLP:
min c = 5,5.x10,6 + 4,0.x20,6 + 5,0.x0
s.a.: x0 – x1 – x2 =0
z0 – z1 – z2 =0
z1 – 0,800.x1 = 0
z2 – 0,667.x2 = 0
z0 – 10 =0
x0, x1, x2, z0, z1, z2 ≥ 0, 1
O gráfico de c(x2) indica a existência de dois pontos de mínimo custo (I e II) e um ponto de
máximo custo (III):
102
100
III
98
96
II
94
c
92
90
88 I
86
84
0 2 4 6 8 10 12 14 16
x2
13
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Na solução ótima global (ponto I) utiliza-se apenas o reator 1 com um custo otimizado c* = 87,5
$/h. Se o problema NLP fosse resolvido por um método iterativo, a convergência poderia ser
para os pontos I ou II dependendo do ponto inicial adotado. Na resolução de NLPs, ótimos
obtidos são sempre locais até que se prove o contrário.
Alternativamente este mesmo problema foi modelado como um MILP (programação linear
inteira mista). O primeiro passo foi a criação de variáveis binárias para representar as escolhas
dos reatores:
y1 = 1, se o reator 1 for utilizado y2 = 1, se o reator 2 for utilizado
0, caso contrário 0, caso contrário
As vazões de alimentação podem ser associadas a estas variáveis através das seguintes
restrições lógicas lineares:
0 ≤ x1 20.y1 se reator 1 é usado: 0 x1 20; caso contrário x1 = 0
0 ≤ x2 20.y2 se reator 2 é usado: 0 x2 20; caso contrário x2 = 0
em que o parâmetro 20 foi adotado como um limite superior aceitável para as vazões.
Esta estratégia é conhecida como big-M, em que o “grande M” é o limite superior para a
variável controlada:
0 ≤ x M.y
Dependendo do valor da binária y, a variável real x pode assumir um valor fixo nulo ou pode
ficar livre para variar entre 0 e M.
Os únicos termos não lineares de todo o problema são os custos operacionais. Fazendo o gráfico
das funções c1(x1) e c2(x2), nota-se que elas podem ser linearizadas:
40 40
20 20
10 10
0 0
0 5 10 15 20 0 5 10 15 20
Entretanto, o custo deve ser nulo quando o reator não for selecionado (y = 0). Esta condição
pode ser satisfeita de forma linear alterando as equações para:
Reator 1 c1 = 7,5.y1 + 1,4.x1
Reator 2 c2 = 5,5.y2 + 1,0.x2
Note que, se y1 = 0, então tem-se x1 = 0 pelo big-M e c1 = 0 pela equação acima. Caso y1 = 1,
tem-se 0 ≤ x1 ≤ 20 e c1 = 7,5 + 1,4.x1. O mesmo raciocínio vale para o reator 2.
14
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Pode-se incluir uma restrição lógica adicional para garantir que ao menos um dos reatores será
escolhido na otimização:
y1 + y2 1
Uma estrutura em árvore pode ser elaborada para representar as decisões binárias e uma
estratégia de enumeração exaustiva pode ser usada para determinar a solução ótima. A árvore
fornece quatro soluções para as variáveis discretas: y = [0 0], [0 1], [1 0] e [1 1], sendo que a
solução [0 0] é inviável. Representando a enumeração exaustiva das opções discretas na árvore:
inviável
y2 = 0
y1 = 0 y2 = 1 c* = 95,4
y2 = 0 c* = 87,5
y1 = 1
y2 = 1 c* = 93,0
Para y = [0 1], x1 = 0 e a única solução é usar o reator 2: c* = 95,4 $/h e x2* = 15,0 kmolA/h
Para y = [1 0], x2 = 0 e a única solução é usar o reator 1: c* = 87,5 $/h e x1* = 12,5 kmolA/h
Para y = [1 1], tem-se o LP abaixo com um grau de liberdade
min c = 13,0 + 6,4.x1 + 6,0.x2
s.a. 0,800.x1 + 0,667.x2 = 10
0 ≤ x1, x2 20
15
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
ou
min c = 93,0 + 0,667.x2
s.a. 0 ≤ x2 20
cuja solução ótima é o menor valor de x2, ou seja, c* = 93,0 $/h e x* = [12,5 0,0] kmolA/h
Tem-se como solução ótima do problema (neste caso, global, pois todas as opções foram
exploradas) usar o reator 1 com custo otimizado c* = 87,5 $/h. Note que as soluções para y = [0
1] e [1 0] na árvore acima correspondem aos pontos II e I, respectivamente, na solução gráfica
do problema escrito como um NLP.
16
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Nomenclatura:
Escalar x
Vetor coluna x
Matriz X
Uma matriz pode ser representada por uma série de vetores coluna:
A = [ c1 c2 … cn ]
se ciT.cj = 0 para i ≠ j A é ortogonal
além disso se ciT.ci = 1 A é ortonormal ou normalizada
Autovalores:
As raízes λ’i do seguinte polinômio são os autovalores da matriz quadrada A
A.x = λ’.x , x0
det( A – λ’ I ) = 0
em que I é a matriz identidade.
Diferenciação de funções:
Gradiente de f(x) :
T
f f f f
f
x x1 x2 xn
17
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Jacobiano de h(x):
h1 h1 h1
x
x2 xn
1
h h2 h2
h 2
J h x x x2 xn
x 1
h hm hm
m
x1 x2 xn
Hessiano de f(x):
2 f 2 f 2 f
x x
21 1 x1 x2 x1 xn
f 2 f 2 f
H f x 2 f x x x x2 x2
x2 xn
2 1
2
f f f
2 2
xn x1 xn x2 xn xn
II.2. PRELIMINARES
min f(x)
sujeito a: h(x) = 0 m equações
g(x) ≤ 0 r inequações
x n n variáveis
A região viável do problema é o espaço F que contém toda as soluções que satisfazem as
restrições h e g:
F = { x | x n , h ( x ) = 0, g ( x ) ≤ 0}
18
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
x2 g1= 0 NGL = 1
x2
NGL = 2
g1= 0
g2= 0
F
g2= 0
g4= 0 F g3= 0
h1= 0
x1 g5= 0 x1
x2 NGL = 3 x2 NGL = 2
g3= 0 g1= 0
g1= 0
F h1= 0
g2= 0
F
x1 x1
x3 x3
Uma função f ( x ) é convexa se, e somente se, para quaisquer xa, xb:
f [α. x a + (1–α). x b ] ≤ α. f ( x a ) + (1–α). f ( x b ) , α [0,1]
como mostra exemplo em 1, abaixo à esquerda:
f contínua x2 f(x1,x2)
decrescente 20
15
f(xa) convexa 0
5
10
5 15
10
20 contínua
f(xb) bimodal
não-convexa
xa xb x x1
19
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Importante: Se h(x) = 0 é linear e g(x) ≤ 0 é convexa (linear ou não linear), então F é uma região
viável convexa.
min f(x)
sujeito a: x n
com f(x) C2 (conjunto das funções que podem ser diferenciadas duas vezes).
20
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Desprezando os termos de ordem superior da série e sabendo que f(x*) = 0, temos esta
aproximação:
f(x*+x) – f(x*) = ½.(xT).H(f(x*)).x
da função em x*.
Propriedades:
a) H é positiva definida autovalores de H são positivos (λ’i > 0).
b) H é positiva semi-definida autovalores de H são não negativos (λ’i ≥ 0).
c) f(x) é estritamente convexa H(x) é positiva definida x.
Se f(x) é estritamente convexa e possui um ponto estacionário x*, então este ponto é um mínimo
global. Caso contrário, x* será um mínimo local.
OBS:
Uma condição N é necessária para um resultado R se R N.
Uma condição S é suficiente para um resultado R se S R.
Uma condição T é necessária e suficiente para R se T R ou R T.
min f(x)
sujeito a: hm1(x) = 0 f(x), h(x) C2
x n
j 1
Segue abaixo um exemplo para ilustrar a interpretação geométrica da dependência linear entre
f(x) e hj(x) no ponto mínimo x*. A função objetivo é convexa e tem-se uma restrição de
igualdade linear no espaço 2. A linha pontilhada sobre o cone representa a região viável do
problema.
21
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
f h(x1,x2)=0 x2
h
f
x*
f(x1,x2) h
*
x
x1
x2 f
x1
Considerando λ0 = 1, então:
f(x*) + Σ λj.hj(x*) = 0 ou .λ = 0
f(x) + J h x
* T
hx 0
*
viabilidade
Estas condições formam um sistema com n+m equações e n+m incógnitas e sua solução fornece
o ponto extremo x* e os respectivos multiplicares de Lagrange λ.
22
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
min f(x)
sujeito a: g r 1 (x) ≤ 0 f(x), g(x) C2
x n
.g x 0
*
b) j j condição de complementaridade
j 0
g(x)=0
g(x)=0
g(x)=0 x* x*
x*
x1 x1 x1
No exemplo ilustrativo abaixo em 2, g1 e g2 são restrições ativas (µ1, µ2 > 0) e g3 é uma
restrição inativa (µ3 = 0). Neste caso a dependência dos gradientes é expressa como:
µ0.f(x*) + µ1.g1(x*) + µ2.g2(x*) = 0
Note que o gradiente de f aponta na direção de f crescente e que o gradiente de gj aponta na
direção de ampliação da região viável.
x2 g2 g3
g1
x* f
g2
f
g1
x1
23
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
j.gj(x ) = 0
*
j ≥ 0
Note que como j = 0 para restrições inativas, temos condições semelhantes àquelas obtidas
para o problema de otimização com restrições de igualdade, ou seja, condições estacionárias do
Langrangeano:
L(x,) = f(x) + Σ j.gj(x) xL(x*,) = 0
.g x 0
*
j j complementaridade
j 0
Estas condições formam um sistema com n+r equações e n+r incógnitas, mas sua solução não
é trivial, pois desconhece-se quais restrições são ativas e quais são inativas no ponto ótimo. Sua
solução fornece o ponto extremo x* e os respectivos multiplicares de Kuhn-Tucker .
j 1
Assumindo que gk = 0 (k = 1, 2, ... r, com k j), ou seja, apenas uma restrição gj sofre variação:
f *
f* + j.gj = 0 j
g
j gk 0,k j
24
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Como µj > 0, obtemos como resultado ∂f* = –µj.∂gj < 0, ou seja, o valor da função objetivo é
reduzido, seguindo na direção de minimização.
Para uma restrição inativa µj = 0 e alterações em gj(x) não terão impacto sobre o valor de f*.
Condições de KKT
1- Dependência linear dos gradientes: xL(x*,λ,) = 0
m r
f x j .h j x j .g j x 0
* * *
j 1 j 1
j : multiplicadores de Lagrange
j : multiplicadores de Kuhn-Tucker
3 - Condições de complementaridade
j.gj(x*) = 0 1≤j≤r
j ≥ 0 requisito para minimização
25
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Se f(x) é convexa e a região viável F é também convexa então, para um mínimo local x*, as
condições de KKT são necessárias e suficientes para o mínimo global.
EXEMPLO:
Verifique se o ponto xb = [4,47 40]T é o ótimo global para o seguinte problema:
Por inspeção gráfica, verifica-se que a região viável contida entre as parábolas não é convexa.
Identifica-se dois mínimos locais (xa e xb) e um ponto estacionário (xc). Estes três pontos
satisfazem as condições de KKT. O mínimo global é o ponto xb com f(xb) = –7,89.
60
-20
-10
50
f =0
xa xb
40 10
20
x2
30
30 g2
xc
20 40
50
10
60 g1
0
-5 -4 -3 -2 -1 0 1 2 3 4 5
x1
- Verificação das condições de Kuhn-Tucker no ponto xb:
f(xb) + 1.g1(xb) + 2.g2(xb) = 0
1.g1(xb) = 0 com 1 > 0 (restrição ativa)
2.g2(xb) = 0 com 2 > 0 (restrição ativa)
26
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Analogamente, para xa = [–4,47 40,0]T tem-se 1 = 0,55 e 2 = 1,55. Já para xc = [–2,00 24,0]T
tem-se 1 = 0,00 e 2 = 1,00 (restrição g1 é inativa em xc).
T
L L 4 4.x1.1 2.x1. 2
xL
x1 x2 1 1 2
4. 2. 2 0 0,89 0 0,89
H L 1 H L
x xb
com '
0 0 0 0 0
27
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
hj(x) = 0 1≤j≤m
gi(x) = 0 iI (apenas restrições ativas)
OBS:
a) Dificuldade principal do procedimento: identificar o conjunto de restrições ativas.
b) No passo 1 pode-se iniciar o procedimento com um conjunto arbitrário de restrições
ativas, no lugar de considerar todas inativas.
EXEMPLO:
min f(x) = ½.(x12 + x22) –3.x1 –x2
sujeito a: g1(x) = –x1 + x2 ≤ 0
g2(x) = x1 –½.x2 –2 ≤ 0
g3(x) = –x2 ≤ 0
Iteração 1:
Passo 1: I = , µ1 = 0, µ2 = 0, µ3 = 0
28
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Iteração 2:
Passo 2: Condições de KKT
x1 3 2 0
f x 2 .g 2 x 2,6
x2 1 1 2 . 2 0 x e 2 = 0,4
g x 1 2 .x 2 0 1,2
2 1 2
* 2,6
PARE, ponto de Kuhn-Tucker obtido x , com f(x*) = –4,90
1,2
Observações:
1) Dependência linear dos gradientes no ponto ótimo
f x 2 .g 2 x 0
x2
g2
* 0,4
f x
0,2
f
1,2
* 0,4
2 .g 2 x
0,2
2,6 x1
2) Interpretação do multiplicador 2:
Perturbando a função g2 com g2 = 0,1 temos a nova restrição:
g2(x) = x1 –½.x2 –2 ≤ 0,1
Note que como g2 é positivo, a região viável foi ampliada.
29
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Resolvendo o problema com esta restrição modificada obtém-se f(x*) = –4,936, ou seja, o valor
de f otimizado sofreu uma variação f* = –0,036.
f *
Lembrando que j representa a sensibilidade da função objetivo frente uma
g
j g k 0, k j
variação na restrição gj, para uma variação de 0,1 em g2, deveríamos obter f* = –2.g2 =
–(0,4).(0,1) = –0,040. O valor difere um pouco do obtido (f* = –0,036) pois a função objetivo
é não-linear e os multiplicadores são aproximações lineares válidas para a vizinhança próxima
a x* .
Como a região viável é formada por funções lineares (segunda derivada nula), a região viável
é convexa.
T
L L x1 3 1 2
xL
x1 x2 x2 1 1 0,5. 2 3
1 0 1
H L ' 1 x
0 1
30
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
III.1. INTRODUÇÃO
(k).d(k)
x(k+1) x(k+1) = x(k) + (k).d(k)
x(k)
EXEMPLO: Determinação da razão ótima L/D para um tanque cilíndrico com volume V
especificado. A chapa metálica tem espessura fixa e custos específicos em $/m2.
.D 2
min Custo = 2.Ct . C s ..D .L
4
.D 2 .L
sujeito a: V 0
4 L
V
D0
L0
Observe que a solução deste problema por substituição de variáveis só foi possível pois:
- a variável L pôde ser isolada na restrição de igualdade e eliminada na função objetivo, e
- a variável D pôde ser extraída e isolada na equação de condição estacionária.
31
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Os métodos para solução de problemas de otimização monovariável sem restrições podem ser
classificados como:
- Métodos baseados na redução do intervalo de busca: o domínio da variável é
gradativamente reduzido em intervalos menores que contenham o mínimo x*.
- Métodos baseados em informações sobre derivadas: as derivadas de primeira e segunda
ordem da função objetivo, analíticas ou numéricas guiam a localização do mínimo x*.
- Métodos baseados em aproximações polinomiais: a função objetivo é aproximada por um
polinômio e suas derivadas analíticas auxiliam a localização do mínimo x*.
a x1 x2 b x a x1 x2 b x
32
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
EXEMPLO:
Identificar os limites do intervalo que contem o mínimo de f(x) = (100 – x)2
Adotando x0 = 30 e = 5
8000
f (x )
7000
6000
5000
4000
3000
2000
1000
-1000
0 20 40 60 80 100 120 140 160 180 200
*
x
x [65, 185]
33
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Note que em cada iteração o intervalo é reduzido pela metade, ou seja, após n iterações o
intervalo inicial é reduzido de (0,50)n.
A cada iteração, o ponto médio é igual a x1, x2 ou xm da iteração anterior, portanto o valor do
novo f(xm) é conhecido. A função objetivo é então avaliada 1+2.n vezes.
EXEMPLO:
Obter o ponto de mínimo da função f(x) = (100 – x)2 com = 1,0 no intervalo [65, 185]
1. a = 65 b = 185 L = 120
xm = 125 f(125) = 625
x1 = 95 f(95) = 25
x2 = 155 f(155) = 3025
Como f(x1=95) < f(xm=125), então b = xm = 125
Ou seja, x* [65, 125]
2. a = 65 b = 125 L = 60
xm = 95 f(95) = 25
x1 = 80 f(80) = 400
x2 = 110 f(110) = 100
Como f(x1=80) > f(xm=95) < f(x2=100), então a = x1 = 80 e b = x2 = 110
Ou seja, x* [80, 110]
6000
5000
4000
3000
*
99,7 x 100,6
2000
1000
-1000
0 20 40 60 80 100 120 140 160 180 200
34
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
EXEMPLO: obter o mínimo de f(x) = 2.x2 + 16/x partindo de x0 = 10, com = 0,01 para f’(x).
Derivadas analíticas: f’(x) = 4.x – 16/x2
f”(x) = 4 + 32/x3
f(x*) = 15,12 x
35
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
f ' xk
xk 1 xk k = 1, 2, ...
f " xk
A função f(x) foi avaliada 311 = 33 vezes e atingiu-se o mesmo resultado obtido para o método
de Newton.
A função objetivo f(x) é aproximada por um polinômio e este é usado na localização do mínimo
x* .
Dados três pontos x1, x2 e x3, aproxima-se f(x) por um polinômio de segundo grau que passa
exatamente por estes pontos:
q(x) = a0 + a1.(x – x1) + a2.(x – x1).(x – x2)
36
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
EXEMPLO: Minimizar a função f(x) = 2.x2 + 16/x no intervalo [1, 10] usando o método de
interpolação quadrática (x = 1 %).
Iteração 1:
x1 = 1,00 f(x1) = 18,00
x2 = 5,50 f(x2) = 63,41
x3 = 10,00 f(x3) = 201,60
fmin = f(x1) e xmin = x1
a1 = 10,09, a2 = 2,29 x = 1,05 f( x ) = 17,47
Ex = 4,5 % > x continuar
Menor valor de f obtido com x , então guardar x = 1,05, x1 e x2.
Iteração 2:
x1 = 1,00 f(x1) = 18,00 (calculado em 1)
x2 = 1,05 f(x2) = 17,47 (calculado em 1)
x3 = 5,50 f(x3) = 63,41 (calculado em 1)
fmin = f(x2) e xmin = x2
a1 = –11,18, a2 = 4,87 x = 2,19 f( x ) = 16,92
Ex = 52,2 % > x continuar
Menor valor de f obtido com x , então guardar x = 2,19, x2 e x3.
Iteração 3:
x1 = 1,05 f(x1) = 17,47 (calculado em 1)
x2 = 2,19 f(x2) = 16,92 (calculado em 2)
x3 = 5,50 f(x3) = 63,41 (calculado em 1)
fmin = f(x2) e xmin = x2
a1 = –0,48, a2 = 3,27 x = 1,69 f( x ) = 15,18
Ex = 29,5 % > x continuar
Menor valor de f obtido com x , então guardar x = 1,69, x1 e x2.
37
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Dados dois pontos x1 e x2, aproxima-se f(x) por um polinômio de terceiro grau que passa
exatamente nestes dois pontos e também tem a mesma derivada nestes pontos.
q(x) = a0 + a1.(x – x1) + a2.(x – x1).(x – x2) + a3.(x – x1)2.(x – x2)
Sabendo que no mínimo x* da função unimodal f(x) temos f’(x*) = 0, o intervalo [x1,x2] conterá
x* apenas se f’(x1). f’(x2) ≤ 0, ou seja, se f’(x) mudar de sinal no intervalo.
em que:
3. f x1 f x2
z f ' x1 f ' x2
x2 x1
38
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
3. Se f ' x f ' e E x
x x1
x
x , então PARE
x x
Senão, faça 2
se f ' x . f ' x1 0
e vá para 1.
x1 x se f ' x . f ' x 0
2
Trata-se de um método mais eficiente do que a interpolação quadrática, desde que f’(x) esteja
disponível em forma analítica ou numérica.
EXEMPLO: Minimizar a função f(x) = 2.x2 + 16/x no intervalo [1, 10] usando o método de
interpolação cúbica (f = 0,01 e x = 1 %).
Derivada analítica da função objetivo: f(x) = 4.x – 16/x2
Iteração 1:
x1 = 1,00 f(x1) = 18,00 e f’(x1) = –12,00
x2 = 10,00 f(x2) = 201,60 e f’(x2) = 39,84
z = –3,36 e w = 39,89
x = 2,27 f( x ) = 17,34 e f’( x ) = 5,95
|f’( x )| > f e Ex = 56 % > x continuar
como f’( x ).f’(x1) < 0, o mínimo deve estar entre x e x1 .
então: x2 = x = 2,27
Iteração 2:
x1 = 1,00 f(x1) = 18,00 e f’(x1) = –12,00
x2 = 2,27 f(x2) = 17,34 e f’(x2) = 5,95
z = –4,47 e w = 9,56
x = 1,58 f( x ) = 15,12 e f’( x ) = –0,04
|f’( x )| > f e Ex = 37 % > x continuar
como f’( x ).f’(x2) < 0, o mínimo deve estar entre x e x2 .
então: x1 = x = 1,58
Iteração 3:
x1 = 1,58 f(x1) = 15,12 e f’(x1) = –0,04
x2 = 2,27 f(x2) = 17,34 e f’(x2) = 5,95
z = –3,82 e w = 3,86
x = 1,59 f( x ) = 15,12 e f’( x ) = 0,00
|f’( x )| < f e Ex = 0,2 % < x PARE
39
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
A direção de busca pode ser dada por d(k) = –f(x(k)), ou seja, seguindo na direção contrária ao
gradiente da função (steepest descent = decida mais íngreme).
Iteração 1:
x(0) = [1 2]T f(x(0)) = 5
d(1) = [4 –2]T
40
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
A Figura abaixo representa as linhas e contorno de f(x) e a localização dos pontos x(0) e x(1).
Note que na direção de busca (linha pontilhada), x(1) encontra-se no vale. Nas próximas
iterações, o método gradativamente convergirá para a solução ótima x* = [1 1]T seguindo por
este vale.
x2
f(x1,x2)
x(0)
x(1)
x*
x1
41
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
min f(x)
sujeito a: x n
O domínio do problema é dividido em uma grade de pontos discretos e avalia-se f(x) em todos
os pontos da grade em busca do ponto com menor valor de f.
…
x2 f(x1,x2)
x1
Alguns exemplos:
x2 x2
x(k) x(k)
x1 x1
Projeto fatorial de nível 2 Projeto fatorial de nível 3
(22 = 4 pontos mais o central) (32 –1 = 8 pontos mais o central)
42
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
O método de busca simplex usa uma figura geométrica regular com n+1 vértices no espaço n
(o chamado “simplex”) no qual a função objetivo é avaliada nos vértices e a figura é então
“refletida” na direção de redução de f, gerando um novo simplex adjacente e assim
sucessivamente. Em cada iteração é descartado o vértice com maior valor de f.
x(4)
xc
x(1)
x(3) eliminar x(1)
x(3)
f(x(3)) < f(x(2)) < f(x(1))
n 1 n 1 n 1 1
em que: 1 .
e 2 .
n. 2 n . 2
43
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Ponto refletido: xr x
k
2. x c x
k
k
Faz-se a substituição de vértices: x xr
Se o novo simplex já foi avaliado anteriormente, PARE ou retorne ao passo 1 com um
fator de escala menor, tendo xr como ponto base.
Caso contrário, retornar para 2.
As vantagens deste método são a sua simplicidade, a pouca memória necessária e o pequeno
número de parâmetros. Entretanto, é um método lento que requer normalização das variáveis.
x(0) x1
Novo ponto: xr x
0
2. x c x
0
22,,449
449
Atualizando o simplex:
x2 x(0)
x(2) f(x(0)) = 2,303
f(x(1)) = 3,066
f(x(2)) = 0,237
x1
44
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Devemos então eliminar do simplex (refletir) o vértice x(1) e prosseguir com a busca.
x(1)
x2 x(0)
f(x(0)) = 2,303
x(2)
f(x(1)) = 3,474
f(x(2)) = 0,237
x1
(1)
Eliminar novamente x , retornando ao simplex anterior, indica a necessidade de um fator de
escala menor para continuar com a busca.
Note que o ponto mínimo x* = [1 2]T está contido dentro do segundo simplex.
Por exemplo, para o caso bidimensional, tendo o simplex com f(x(2)) < f(x(1)) < f(x(0)), elimina-
se x(0) e gera-se o novo ponto de acordo com:
x(1)
f(xr) < f(x(2))
= 1,5
xc
x(0) xr
f(xr) ≥ f(x(0))
= –0,5
45
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
5) x p k 1 x k x k x k 1
6) Realizar a busca exploratória tendo xp(k+1) como ponto base. O resultado é x (k+1).
7) Verificação: se f(x (k+1)) < f(x (k)), então faça x (k–1) = x (k), x (k) = x (k+1) e vá para o passo 5.
Senão, vá para o passo 4.
EXEMPLO: Minimizar f(x) = 8.x12 + 4.x1.x2 + 5.x22 partindo do ponto x(0) = [–4 –4]T.
Parâmetros do método: = [1 1]T, = 2, = 10–4.
46
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Como f(xp(2)) < f(xp(1)), o movimento obtém sucesso e xp(2) torna-se o novo ponto base para o
próximo movimento, onde a busca exploratória leva a x(2) = [–1 –1]T
O método continua até que a redução de passo leve à terminação próximo à solução ótima x* =
[0 0]T.
Graficamente:
x2
x(2)
xp (2)
x(1)
x(0)
x1
Observações :
1) d(k) é uma direção na qual f diminui: f(x) f(x(k)) + f(x(k))T.(x – x(k))
f(x) – f(x(k)) f(x(k))T.(x – x(k))
Portanto: f(x(k))T.d(k) < 0 para ter f(x) – f(x(k)) < 0
47
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Observações:
1) f(x) é convexa se o Hessiano H(f(x)) for uma matriz positiva definida.
2) O método pode falhar se: x(0) estiver muito longe do ótimo x*
H for singular em algum ponto (determinante nulo)
f(x) não for “suave”.
3) A obtenção da direção d(k) requer a inversão da matriz H ou a solução do sistema linear de
equações H.d = –f. A opção por sistema linear evita possíveis erros numéricos originados na
inversão da matriz H.
4) Apresenta taxa quadrática de convergência.
0. k = 0
1. Estimar x(k), f(x(k)) e f(x(k))
2. Cálculo da direção de pesquisa d(k) em x(k):
Resolver sistema linear de equações em d(k): B(k).d(k) = –f(x(k))
3. Cálculo do tamanho do passo (k) que melhore f(x) ao longo de d(k).
4. Obtenção no novo ponto: x (k+1) = x(k) + (k).d(k)
5. Se | f(x(k+1)) − f(x(k)) | ≤ εf e || x(k+1) − x(k) || ≤ εx então PARE
Senão, k = k +1 e volte para 1
Observações:
1) Para problemas de minimização, deseja-se que B(k) seja positiva definida.
2) A escolha de B(k) determina o método:
B(k) = I Método steepest descent
B(k) = H(f(x(k))) Método de Newton
3) O tamanho do passo (k) pode ser determinado por otimização unidimensional (line search):
min z((k)) = f(x (k+1)) = f(x(k) + (k).d(k))
ou pode-se adotar um tamanho fixo de passo .
Note que no método de Newton, ao obter d
(k )
H f x
k 1
, tanto a direção quanto
.f x
k
o tamanho do passo estão especificados, já que supôs-se f(x(k+1)) = 0. Portanto, para o método
de Newton é possível adotar passo fixo = 1.
48
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
O método de steepest descent (decida mais íngrime) faz uso de uma aproximação linear de f(x)
no ponto x(k), usando como direção de busca a reta ortogonal (tangente) a esta aproximação
linear. É um método simples e o mais antigo.
Usa-se então d(k) = –f(x(k))T como direção de busca, ou seja, a direção de maior declividade
da função no ponto x(k).
O tamanho do passo (k) pode ser determinado por otimização unidimensional (line search):
min z((k)) = f(x (k+1)) = f(x(k) + (k).d(k))
Características:
1) Converge com garantia desde que (k) melhore f(x).
2) Apresenta taxa linear de convergência (algoritmo lento).
3) Apropriado somente para pequenos problemas.
3) É equivalente ao método de Newton para funções objetivo circulares (quadráticas).
49
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
x* x*
x(k) x(k)
x(k+1)
x(k+1)
O método de Newton pode falhar se a matriz Hessiano for singular. Já o método de steepest
descent não tem este problema, mas é de convergência lenta. O método de Marquardt combina
então estes dois métodos da seguinte forma:
B(k) = H(f(x(k))) + .I
em que é um número positivo que torna a matriz B positiva definida e não singular.
Casos limites:
=0 Método de Newton B(k) = H(f(x(k)))
=∞ Método steepest descent B(k) = .I
Trata-se de um método robusto, já que combina vantagens dos métodos de Newton e steepest
descent.
50
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
k 1
B
k
g B .d .g
k T
g . g B .d
k
g B .d .d .g.g
T k T T
B
g .d
T
g .d . g .d
T T
ou para H
k 1
B
k 1
1
:
k T k
k 1 k d .d
T
H .g .g .H
H H T T k
d .g g .H . g
em que, na iteração k:
g f x
k 1
f x
k
k 1 k
dx x
B B T
T k
g .d d .B .d
ou para H
k 1
B
k 1
1
:
k 1
H
k
d H .g .d
k T
d . d H .g
k
d H .g .g.d .d
T k T T
H
g .d
T
g .d . g .d
T T
em que, na iteração k:
g f x
k 1
f x
k
k 1 k
dx x
Observações:
1) Ambas as fórmulas são derivadas sob condições similares e possuem simetria.
2) Ambas apresentam convergência semelhante e para funções quadráticas terminam em n
iterações.
3) BFGS é em geral mais estável e tem melhor desempenho que DFP.
4) Para n ≤ 100, estes são os melhores métodos de otimização.
51
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
V. PROGRAMAÇÃO LINEAR
em que:
z função objetivo, escalar
x vetor de variáveis com dimensão n
A matriz de coeficientes m n, com m < n
b vetor de termos constantes positivos com dimensão m
c vetor de coeficientes da função objetivo com dimensão n
EXEMPLO:
Mudança para o formato padrão LP:
Se alguma variável xi for irrestrita no problema original (xi 1), faz-se a substituição de xi
por (xip – xin), sendo xip ≥ 0 e xin ≥ 0. Esta ação cria um grau de liberdade adicional, mas na
prática apenas uma das variáveis xip e xin terá um valor positivo no ótimo.
Como um problema LP é convexo devido à linearidade das equações, o ótimo obtido é o ótimo
global. Dada a não existência de curvaturas, é possível ter múltiplos ótimos vizinhos que
forneçam o mesmo valor da função objetivo.
52
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
1) Algoritmo SIMPLEX
Em 1948, George B. Dantzig desenvolveu um método iterativo, denominado Simplex, para
resolução de problemas do tipo LP. O método Simplex pesquisa os vértices do poliedro de
restrições que define a região viável, passando, em cada iteração, de um vértice (denominado
solução básica viável) para um outro vértice com valor associado da função objetivo melhor
que o anterior. Dessa forma, em um número finito de iterações, o algoritmo fornece a solução
ótima ou a indicação da inexistência de solução.
Há controvérsia sobre qual dos dois métodos é o melhor. Uma das aplicações do método de
Karmarkar é na programação mensal de companhias aéreas, definindo quais aeronaves usar em
cada uma das rotas. Um problema desta natureza com 36.000 variáveis e 10.000 restrições é
resolvido em aproximadamente 4 horas através do método Simplex. Já o método de Karmarkar
pode resolver um problema deste tipo com 150.000 variáveis e 12.000 restrições em apenas
uma hora (Winston, 1995).
f(x)
x(3) x(3)
x(2)
x(1)
x(1) x(2)
x1 x1
tragetória pelos vértices da região viável tragetória interna à região viável
53
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
54
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
V.1.1. PRINCÍPIOS
Uma vez atribuídos valores às variáveis independentes (livre), calculam-se os valores das
variáveis independentes. Pode-se, por exemplo, fazer xN = 0 e calcular xB = B–1.b. Caso
verifique-se que xB ≥ 0, então tem-se uma solução viável para o problema.
55
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
A função objetivo no ponto ótimo fica: z* = cT.x* = cT. ∑ i.xi = ∑ i.cT.xi = ∑ i.zi
Porém, como se trata do ponto ótimo, z* ≤ zi i
o que implica que x* não pode ser uma combinação linear de xi, ou seja, x* é um ponto extremo.
▄
A região viável, bem como seus os quatro vértices viáveis (A, B, C, D) são apresentados na
figura abaixo.
Pelo Teorema 2, o ponto ótimo estará em algum dos vértices (A, B, C, D) da região viável.
Logo, investigando o valor da função objetivo nestes pontos extremos é possível encontrar o
ponto que maximiza o valor de z:
y D
56
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Convertendo este problema para o formato padrão LP, com y = (yp – yn):
min z’ = –2.x – 5.(yp – yn)
s.a.: x1 + 2.(yp – yn) + s1 = 4
x1 – (yp – yn) + s2 = 4
x1 – s3 = 1
–(yp – yn) + s4 = 1
x, yp, yn, s1, s2, s3, s4 ≥ 0
ou na forma matricial:
min cT.x
s.a.: A.x = b
x≥0
em que: xT = [ x yp yn s1 s2 s3 s4 ]
cT = [ –2 –5 5 0 0 0 0 ]
bT = [ 4 4 1 1 ]
1 2 2 1 0 0 0
1 1 1 0 1 0 0
A
1 0 0 0 0 1 0
0 1 1 0 0 0 1
LP reduzido:
As variáveis dependentes podem ser isoladas nas restrições de igualdade:
1 1
A.x B.x B N .x N b x B B .b B .N .x N 0
e substituídas na função objetivo, obtendo o chamado LP reduzido:
min z = cBT.xB + cNT.xN = (cNT – cBT.B–1.N).xN + cBT.(B–1.b)
s.a.: –xN ≤ 0
Teorema 3: Uma condição necessária e suficiente para que x* seja um valor ótimo é que
zred ≥ 0 ou –zred ≤ 0.
57
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
O procedimento envolve a escolha de uma base, que corresponde a um vértice viável. Se este
vértice não for a solução ótima, então siga para um vértice viável adjacente da seguinte forma:
1) transforme uma variável básica em não-básica, e
2) transforme uma variável não-básica em básica.
Este procedimento se repete até verificar –zred ≤ 0 ou, seja, (cBT.B–1.N – cNT) ≤ 0
Selecione a variável com o maior valor positivo no vetor –zred para tornar-se básica.
Se todos os elementos do vetor –zred forem negativos, então o ótimo foi obtido.
No vértice atual, xN = 0. A variável não-básica escolhida xN,j irá progredir a partir de zero para
atingir o próximo vértice. Tem-se então o efeito deste avanço sobre cada variável básica:
xB,i + yi,j.xN,j = bi'
Escolhe-se então a condição mais restritiva, ou seja, o menor valor positivo de bi'/yi,j:
Escolher i / min { bi'/yi,j } para bi'/yi,j ≥ 0 (teste da razão mínima)
OBS: caso algum bi' = 0, tem-se um “LP degenerado”. Isso significa que uma variável básica é
nula e que podem existir outros vértices que forneçam o mesmo valor da função objetivo. Neste
caso, há o risco do algoritmo Simplex fazer ciclos.
O procedimento de escolha das variáveis que deixam e entram na base é estruturado através do
“tableau simplex” da seguinte forma:
z – cBT.xB – cNT.xN = 0
B.xB + N.xN = b
58
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Como iniciar o problema com o tableau neste formato sem a necessidade de calcular B–1?
a) Se o problema original tem restrições de desigualdade tipo A.x ≤ b (com b ≥ 0), a introdução
de variáveis de folga s gera automaticamente o formato desejado desde que si sejam
selecionadas como variáveis básicas.
min z = cT.x min z = cT.x + 0.s
s.a.: A.x ≤ b s.a.: A.x + I.s = b
x≥0 x, s ≥ 0
V.1.3. ALGORITMO
min z = cT.x
s.a.: A.x = b A: m n; b ≥ 0
x≥0 x: n 1
59
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
4) Faça o teste da razão mínima para decidir qual variável básica xB,i deixará a base. É
selecionada aquela com menor valor positivo de b'i/yi,j para as linhas i = 1, 2, ... m da matriz.
5) Atualize o tableau:
- O pivô é o elemento yi,j da matriz Y no cruzamento da coluna xN,j selecionada com a linha xB,i
selecionada.
- Divida toda a linha selecionada pelo valor do pivô para ter yi,j = 1.
- Através de pivotação matricial torne todos os outros elementos desta coluna nulos. Para isso
multiplique a linha por uma constante e some-a às demais.
- Retorne ao passo 2
EXEMPLO:
min z = –xA – 2.xB min z = –xA – 2.xB
s.a.: –xA + 2.xB ≤ 4 s.a.: –xA + 2.xB + s1 = 4
2.xA – xB ≤ 4 2.xA – xB + s2 = 4
xA, xB ≥ 0 xA, xB, s1, s2 ≥ 0
Partimos do tableau inicial, escolhe-se como base as duas variáveis de folga para ter B = I:
xA xB s1 s2 b
z 1 2 0 0 0
s1 –1 2 1 0 4
s2 2 –1 0 1 4
Na linha de z há elementos positivos. Seleciona-se então a variável xN,j com maior coeficiente,
no caso xB, para tornar-se básica.
Para deixar a base, verifica-se bi'/yi,j para as duas linhas da matriz. O menor valor positivo é 4/2
= 2 para a variável básica s1. Então s1 deve deixar de ser básica.
xA xB s1 s2 b b/y
z 1 2 0 0 0
s1 –1 (2) 1 0 4 4/2 = 2
s2 2 –1 0 1 4 4/–1 = –4
60
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
xA xB s1 s2 b b/y
z 2 0 –1 0 –4
xB –1/2 1 1
/2 0 2 2/(–1/2) = –4
s2 ( 3/2 ) 0 1
/2 1 6 6/(3/2) = 4
2
B z
A
0 2 4
x1
V.2.1. PRINCÍPIOS
O método de Karmarkar (1984) é um “método de ponto interior” pois a busca pela solução é
realizada pelo interior da região viável do problema. A resolução é baseada na transformação
de espaços, onde em cada iteração k um ponto viável é centralizado no espaço transformado e
então é obtido de um novo ponto x(k+1) mais próximo da solução do problema.
Para que um problema de otimização LP possa ser resolvido através do método de Karmarkar,
é necessário que ele esteja representado na seguinte forma padrão:
min z = cT.x
sujeito a A.x = 0 A: matriz mn, com m < n
1.x = 1 somatório das n variáveis é igual a 1
x≥0
61
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
sendo que:
T
1 1
0 1
1) o ponto x deve ser viável
n n n
2) o valor ótimo de z deve ser nulo, ou seja, z* = cT.x* = 0
A princípio o formato padrão pode parecer bastante restritivo, mas existem procedimentos de
conversão para obter este formato.
x3
1
Sx A.x=0
x0
x2
1
região
viável x1
1
Dado um ponto viável qualquer x(k) no espaço X cria-se um espaço transformado Y tal que x(k)
corresponda ao ponto y0 do novo espaço, ou seja, a transformação do espaço X para o espaço Y
faz com que um ponto x(k) seja convertido no centro do simplex Sy em Y. Esta conversão é feita
da seguinte forma, em que D(k) = diag(x(k)):
x3 y3
1 Sx A.x=0 1 Sy A.D(k).y=0
x(k) x2 k 1 y0 y2
1 D .x 1
y
k 1
1.D .x
1 x1 1 y1
62
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
A otimização é realizada no espaço Y obtendo um novo ponto y(k) melhor que y0. No espaço Y,
como y0 está centrado no simplex dimensional Sy, existe uma distância mínima r no qual pode-
se avançar sem “sair” do simplex. Toma-se então o sentido contrário ao da projeção do
gradiente da função objetivo sobre o simplex, c’/||c’||. Então, partindo de y0, atinge-se y(k):
Sy
c'
y k y 0 .r . região 1
c' r
viável n.n 1
y0
0 1
y (k)
Ao obter y(k), faz-se a transformada inversa de espaços para obter o novo x(k+1) em X. Este
procedimento se repete até que se verifique a convergência: z(x(k)) 0.
V.2.3. ALGORITMO
1) Inicialização (k = 0):
1
n 1
r
n.n 1 3.n
T T
1
0 1 1 0 1 1 1
y x
n n n n n n
2) Verificação de convergência:
z = cT.x(k)
se z , então PARE
3) Cálculo de x(k+1)
(k)
D = diag(x ) (k)
A.D k
P
1
c' I P . P .P
T
T 1
.P .c.D
k
k
k c' k 1 D .y k
y y .r .
0
x k
c' 1.D .y k
k = k +1
retorne ao passo 2
63
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Formulação LP:
m
min Custo = c
j 1
j .X j
m
q . X j bi
inf
s.a.: i, j i = 1, 2, ... n
j 1
m
q . X j bi
sup
i, j i = 1, 2, ... n
j 1
Xj 0, 1 j = 1, 2, ... m
Formulação:
min N = x1 + x2 + x3 + x4 + x5 + x6 + x7
s.a.: x1 + x4 + x5 + x6 + x7 17 (dia 1)
x 1 + x2 + x5 + x6 + x7 13 (dia 2)
x 1 + x2 + x3 + x6 + x7 15 (dia 3)
x 1 + x2 + x3 + x4 + x7 19 (dia 4)
x1 + x2 + x3 + x4 + x5 14 (dia 5)
x2 + x3 + x4 + x5 + x6 16 (dia 6)
x3 + x4 + x5 + x6 + x7 11 (dia 7)
xi 0 , i = 1, 2, ... 7
64
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Solução:
Resolvendo o problema considerando variáveis reais a solução é N* = 22,33 com
x* = [ 6,33 5,00 0,33 7,33 0,00 3,33 0,00 ]T.
Análise das restrições (gerada com auxílio de software de otimização resolvendo o problema
no formato padrão de programação matemática):
Restrição folga
dia 1 0 0,333
dia 2 1,67 0
dia 3 0 0,333
dia 4 0 0,333
dia 5 5,00 0
dia 6 0 0,333
dia 7 0 0
Levando em conta a criação das variáveis de folga, este problema tem 14 variáveis e 7 equações.
Um vértice tem então 7 variáveis nulas (não básicas) e 7 variáveis não negativas (básicas).
Analisando a solução ótima do problema verifica-se que esta condição é satisfeita.
As restrições ativas na solução ótima são aquelas dos dias 1, 3, 4 e 6 com = 0,333
(multiplicador de Kuhn-Tucker). As restrições dos dias 2 e 5 são inativas (há folga e = 0)
enquanto que a restrição do dia 7 é fracamente ativa (folga = 0 e = 0).
Uma outra solução ótima foi identificada para este problema, também com N* = 22,33:
x* = [ 6,00 5,33 0,00 7,33 0,00 3,33 0,33 ]T.
Restrição folga
dia 1 0 0,333
dia 2 2,00 0
dia 3 0 0,333
dia 4 0 0,333
dia 5 4,67 0
dia 6 0 0,333
dia 7 0 0
É possível um problema LP ter mais de uma solução ótima, mas todas com o mesmo valor da
função objetivo. Isso pode ocorrer no caso de LPs degenerados ou quando as fronteiras da
região viáveis são paralelas aos contornos da função objetivo (por exemplo, minimizar x1 + x2
com x1 + x2 ≥ 1 tem como solução os vértices [1 0], [0 1] e todos os pontos que os ligam).
Possíveis soluções inteiras para este problema IP (integer programming) com N* = 23:
x* = [ 6 6 0 7 0 3 1 ]T
x* = [ 7 5 0 7 0 4 0 ]T
O arredondamento de uma solução real para inteira não garante otimalidade tão pouco
viabilidade. No caso de variáveis com ordens de grandeza elevadas (ex: 1.150,6 automóveis),
o arredondamento da solução real é aceitável, já que a solução do problema inteiro criaria uma
árvore de dimensões exageradas para explorar todas as opções.
65
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
EXEMPLO 3: Uma companhia produz dois produtos A e B. A matéria prima para manufaturar
cada tipo de produto pode ser adquirida por $ 3/kg. O processamento de 1 kg de matéria prima
requer 1 hora de tempo laboratorial. Cada kg de matéria prima processada rende 3 oz (onças)
de produto A-regular e 4 oz de produto B-regular. O produto A-regular pode ser vendido a $
7/oz e B-regular a $ 6/oz.
A companhia ainda possui a opção de vender o produto A-luxo ($ 18/oz) e o produto B-luxo ($
14/oz). Cada onça de A-regular processada requer 3 h de tempo adicional de laboratório, $ 4 de
custo adicional de processamento e rende 1 oz de A-luxo. Cada onça de B-regular processado
requer 2 h adicionais de laboratório, $ 4 de custo adicional de processamento e rende 1 oz de
B-luxo. Em cada ano há 6 mil horas de laboratório disponíveis e se pode comprar até 4 mil kg
de matéria-prima.
Variáveis:
x1 = produto A-regular produzido e vendido (oz/ano)
x2 = produto A-luxo produzido e vendido (oz/ano)
x3 = produto B-regular produzido e vendido (oz/ano)
x4 = produto B-luxo produzido e vendido (oz/ano)
x5 = matéria-prima comprada (kg/ano)
Objetivo:
Lucro = receita de vendas – custos de processamento – custo da matéria-prima
(admite-se que o custo do laboratório é fixo)
Modelagem:
x1
oz produto A-regular
3.x5
oz produto A
3.x5 = x1 + x2 x2
oz produto A-luxo
x5
kg matéria prima
4.x5 = x3 + x4 x3
4.x5 oz produto B-regular
oz produto B
x4
oz produto B-luxo
Restrições:
Matéria prima: x5 ≤ 4.000 kg
Horas de laboratório: x5 + 3.x2 + 2.x4 ≤ 6.000 h
Formulação:
max Lucro = ( 7.x1 + 18.x2 + 6.x3 + 14.x4) – ( 4.x2 + 4.x4 ) – ( 3.x5 )
s.a.: 3.x5 – x1 – x2 = 0
4.x5 – x3 – x4 = 0
x5 ≤ 4.000
x5 + 3.x2 + 2.x4 ≤ 6.000
x≥0
x 5
66
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Solução:
Lucro* = $ 172.667
x1* = 11.333 oz de produto A-regular
x2* = 667 oz de produto A-luxo
x3* = 16.000 oz de produto B-regular
x4 * = 0 oz de produto B-luxo
x5 = 4.000 kg de matéria prima
*
Nesta solução a produção é concentrada nos produtos regulares. As restrições de matéria prima
e de horas de laboratório são ativas nesta solução ótima (sem folga), com multiplicadores de
Kuhn-Tucker 39,67 e 2,33, respectivamente, ou seja, para cada kg adicional de matéria prima
o lucro otimizado extra seria de $ 39,67 e para cada hora adicional de laboratório o lucro
otimizado extra seria de $ 2,33.
0 1 2 3
A – $ 1,0 + $ 0,5 + $ 1,0
B – $ 1,0 + $ 0,5 + $ 1,0
C – $ 1,0 + $ 1,2
D – $ 1,0 + $ 1,9
E – $ 1,0 + $ 1,5
Para garantir que o portfólio da companhia seja diversificado, requer-se que no máximo $
75.000 sejam investidos em uma única alternativa. Além dos investimentos A–E, pode-se
investir no mercado financeiro a juros de 8% ao ano. Os retornos sobre o investimento podem
ser imediatamente reinvestidos. Por exemplo, o fluxo de caixa positivo recebido do
investimento C no tempo 1 pode ser imediatamente investido em B. Não é possível realizar
empréstimos.
Variáveis (8):
A = investimento em A no ano 0 (k$)
B = investimento em B no ano 1 (k$)
C = investimento em C no ano 0 (k$)
D = investimento em D no ano 0 (k$)
E = investimento em E no ano 2 (k$)
St = investimento no mercado financeiro no ano t = 0, 1, 2 (k$)
67
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Formulação:
max Capital = B + 1,9.D + 1,5.E+ 1,08.S2
s.a.: A + C + D + S0 = 100
B + S1 – 0,5.A – 1,2.C – 1,08.S0 = 0
E + S2 – A – 0,5.B – 1,08.S1 = 0
A, B, C, D, E ≤ 75
A, B, C, D, E, S0, S1, S2 0
Solução:
Capital*: $ 218.500
A* = $ 60.000 S0* = $ 0
B* = $ 30.000 S1* = $ 0
C* = $ 0 S2* = $ 0
D = $ 40.000
*
E* = $ 75.000
Dado o cenário, a única aplicação na qual o limite de 75.000 foi uma restrição ativa foi a
aplicação E com = 0,38.
Variáveis:
xij quantidade de produto do fornecedor i para o cliente j (ton)
Formulação:
n m
min c .x
i 1 j 1
ij ij
n
s.a.: x
i 1
ij dj j atender à demanda do cliente j (poderia ser ≥ dj)
m
x
j 1
ij si i Restrição de disponibilidade do fornecedor i
xij ≥ 0 , 1
68
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
min f(x)
sujeito a: h(x) = 0 m equações
g(x) ≤ 0 r inequações
x n n variáveis
em que f(x):ℜn → ℜ, h(x):ℜn→ ℜm e g(x):ℜn→ ℜr; são funções lineares e/ou não-lineares.
A função f(x) é denominada função objetivo. A região viável é definida pelo espaço F = {x | x
n; h(x) = 0; g(x) ≤ 0}.
Se f, g e h são funções lineares, tem-se um problema de programação linear (LP). Se pelo menos
uma das funções que compõe o problema não for linear em alguma das variáveis x, tem-se um
problema de programação não-linear (NLP).
EXEMPLO:
Qual é a menor área possível da base de uma caixa retangular para guardar N cilindros com
raios Ri (i = 1... N)? Como ordenar os cilindros nesta caixa?
Variáveis:
a = dimensão x da caixa (m)
b = dimensão y da caixa (m)
xi = posição x do centro do cilindro i (m)
yi = posição y do centro do cilindro i (m)
dij = distância entre os centros dos cilindros i e j (m), i < j
Objetivo:
min f = a.b
69
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Restrições:
- Cilindros devem estar contidos na caixa
y y
xi ≥ Ri
xi ≤ a – Ri b Ri
Ri Ri
yi ≥ Ri yi
yi ≤ b – Ri
Ri
x xi a x
- Cilindros não devem se sobrepor
y
dij2 = (xi – xj)2 + (yi – yj)2 yi Ri dij
xi xj x
Formulação NLP:
min f = a.b
s.a.: dij2 – (xi – xj)2 – (yi – yj)2 = 0 (i,j)i<j
Ri – xi ≤0 i
xi – a + Ri ≤0 i
Ri – yi ≤0 i
yi – b + Ri ≤0 i
Ri + Rj – dij ≤ 0 (i,j)i<j
a, b, xi, yi, dij ≥ 0, 1
Parâmetros: raios Ri
Ótimo Global com f* = 612, cm2 Ótimo Local com f* = 638,3 cm2
70
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
As soluções ótimas globais para este problema são garantidas no caso em que a função objetivo
f(x) e as restrições g(x) sejam convexas e as funções h(x) sejam lineares, ou seja, no caso do
problema ser convexo. Entretanto, na maioria dos casos não é possível comprovar a
convexidade do problema. Neste caso, algoritmos NLP garantem apenas uma solução ótima
local.
(b) Viabilidade
hj(x*) = 0 1≤j≤m (2)
De uma forma geral, os métodos de resolução de problemas NLP fazem uso de um esquema
iterativo em que, a partir de uma estimativa inicial {x0, λ0, μ0} obtém-se uma sequência de
valores {x(k), λ(k), μ(k)} que converge para a solução ótima {x*, λ, μ}. O que distingue um método
do outro é a forma com que esta sequência de valores é calculada. Os problemas NLP reais são
em geral não-convexos, ou seja, podem existir diversas soluções ótimas locais.
Problemas NLP podem ser resolvidos através de uma variedade de algoritmos. Uma das
primeiras abordagens que surgiram foi de transformar problemas com restrições em problemas
equivalentes sem restrições. São então utilizados métodos tais como de Função Penalidade, de
barreiras e da função Lagrangeano aumentada. Outro grupo de métodos que também é citado é
o algoritmo SLP (Programação Linear Sucessiva). A idéia básica deste é linearizar o NLP em
torno de um ponto x(k) e aplicar a programação linear (LP) para a sua resolução, com uma
restrição de passo, avançando para um novo ponto x(k+1).
Uma alternativa a estes métodos são os métodos dos gradientes reduzidos e projeção do
gradiente, para os quais o problema irrestrito é formado reduzindo-se as variáveis em função
das restrições (deixando o problema em função das variáveis independentes apenas). Segundo
Gill et al. (1988) este grupo de métodos não se mostra eficiente para problemas com restrições
71
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
fortemente não lineares, ao contrário do que dito em Lasdon & Waren (1983). Posteriormente,
desenvolveram-se outros métodos (método da projeção do Lagrangeano, algoritmos SQP), os
quais transformam o problema original em subproblemas mais simples.
Uma restrição de passo adicional é adotada, já que a aproximação linear, em geral, se deteriora
ao afastar-se do ponto de origem. O resultado da resolução do LP é a direção de busca d(k). Se
72
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
d(k) = 0, x(k) é ótimo para a aproximação de primeira ordem; caso contrário, o procedimento
aceita a direção:
Exemplo:
min f(x) = x12 + x22
s.a. h1(x) = 2 – x1 – x22 = 0
g2(x) = – x12 + x2 ≤ 0
0,5 ≤ x1 ≤ 2,5
0,0 ≤ x2 ≤ 3,0
Por exemplo, para um ponto x(0) = [2 , 1]T (ponto inviável), a aproximação linear usando série
de Taylor é:
min fl(x) = 5 + 4·(x1 – 2) + 2.(x2 – 1)
s.a. hl1(x) = – 1 – (x1 – 2) – 2.(x2 – 1) = 0
gl2(x) = 3 – 4. (x1 – 2) + (x2 – 1) ≤ 0
0,5 ≤ x1 ≤ 2,5
0,0 ≤ x2 ≤ 3,0
Observações:
(1) Na resolução por SLP é usual minimizar uma “função penalidade” que inclui a função
objetivo e a violação de restrições, para evitar um caminho por fora da região viável. Exemplo:
r m
min F x f x max0, gi x hi x
i 1 i 1
(2) O SLP é muito sensível à estimativa inicial. Portanto, é recomendável que se limite o passo
em cada iteração, restringindo o valor de d(k).
(3) O SLP funciona melhor em problemas com poucas funções não lineares e muitas lineares.
É interessante notar que o método SLP surgiu de aplicações em refinarias de petróleo e indústria
petroquímica. Referências que descrevem a abordagem podem ser encontradas em Buzby
(1974), que a aplicou num modelo de processos na Union Carbide, e Bodington e Randall
(1979) que resolveram modelos não lineares para o problema de mistura numa refinaria da
Chevron Oil (Bazaraa et al., 2006).
73
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
y
Particione x
u
x: variáveis (n)
y: variáveis dependentes (m)
u: variáveis independentes (n–m)
Particione A B C
A: matriz (m n)
B: matriz (m m)
C: matriz [m (n–m)]
Desta forma temos o passo nas variáveis dependentes Δy em função do passo na variáveis
independentes Δu . O passo em x é obtido através da matriz de transformação Z:
y B .C
1
74
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Assim: f(u) = f(x(k)) + grT.Δu + ½.ΔuT.Hr.Δu , sem restrições, é a função objetivo escrita em
função das variáveis independentes apenas.
f
Condição necessária para ponto de mínimo: 0
u
gr + Hr.Δu = 0 Hr.Δu = – gr
Observações:
1. O Hessiano Hr pode ser estimado pelas fórmulas dos métodos quasi-newtonianos.
2. Como determinar gr?
B 1.C
T k
g r f x .Z y f u f .
I
Evita-se a inversão de B, resolvendo-se B T.λ = −yf e depois obtendo grT = λ.C + uf
3. Para restrições não lineares:
É necessário que se gere um gradiente reduzido com relação às variáveis u.
T
f f
T
df .dy .du
y u
T 1
h h h h
T T
Assim:
T 1
f h h f
T
df . . .du
u y y u
Então:
T 1
f f h h
T
. .
T
gr
u y y u
75
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
3) (a) Calcule λ em B T . y f
(b) Determine o gradiente reduzido grT = λ.C + uf
(c) Calcule Δu em Hr.Δu = – gr e Δy em B.Δy = −C.Δu
(d) Faça x k T y k T u k T
4) Realize uma busca unidimensional para obter α em x(k+1) = x(k) + .Δx(k)
T
5) Se g r .g r , então PARE.
O algoritmo SQP tem como ideia básica resolver a cada iteração o seguinte subproblema
quadrático (QP):
em que x(k) é o ponto atual, B(k) é uma estimativa da matriz Hessiana do Lagrangeano e d é a
direção de busca predita (variável otimizada). A matriz B(k) é usualmente estimada com a
fórmula de atualização BFGS e o QP é resolvido com métodos padrão para programação
quadrática. Como o ponto obtido na resolução do QP não será necessariamente viável, o
próximo ponto x(k+1) é determinado via busca unidimensional:
Um aspecto teórico importante sobre o algoritmo SQP é o fato de o QP com a matriz Hessiana
exata H(k) ser equivalente a aplicar o método de Newton às condições de KKT. Deste modo, são
esperadas altas velocidades de convergência com este algoritmo.
76
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
É possível desenvolver diversas formulações para um mesmo problema. Não há regras, apenas
diretrizes (boas práticas) que auxiliam no tratamento dos modelos pelos algoritmos disponíveis.
Diretrizes gerais:
1) Especificar limites para as variáveis (lower and upper bounds):
xL x xU
5) Evitar funções não diferenciáveis (derivada não contínua). Podem ser usados métodos de
suavização (smoothing).
Exemplo: f(x) = |x| pode ser substituído por f(x) = x 2 2 ou por f(x) = x 2 x 2 2 , que são
funções contínuas e diferenciáveis, sendo um número pequeno positivo.
77
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
0 ≤ x1 ≤ 2
0 ≤ x2 ≤ 2
Como normalmente a função objetivo é aproximada pelo algoritmo por uma função quadrática
e as restrições são aproximadas por funções lineares, pode valer a pena deixar as não
linearidades em f(x) por substituição de variáveis.
Caso exista uma rotina (simulador, pacote de elementos finitos etc.) que resolva o sistema de
equações h(y,u) = 0, sendo u as variáveis independentes fornecidas e y as variáveis dependentes
retornadas pela rotina, pode-se considerar esta rotina como uma função implícita de u, na forma
y = φ(u). Então pode-se escrever o NLP como:
min f(φ(u), u)
s.a.: g(φ(u), u) ≤ 0
uU
78
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Isto é, deve-se avaliar a função implícita φ(u) para qualquer cálculo de restrições ou da função
objetivo.
Os cálculos de gradientes das funções podem ser determinados numericamente por diferenças
finitas, por exemplo:
f
k
k
k
f u ui , u ui f u , u
k
ui ui
em que u é o ponto base e ui é uma perturbação na variável independente ui.
(k)
A vantagem do método SLP é a sua fácil implementação, que pode ser feita a partir de um
programa de programação linear como o simplex. Quando a solução ótima encontra-se no
vértice, a convergência é rápida. Além disso, problemas grandes podem ser tratados. Entre as
desvantagens deste, citam-se a lenta convergência para problemas em que a solução ótima não
se encontra nos vértices e o fato de que as restrições não lineares são violadas ao longo da busca
pelo ótimo.
Os métodos SQP apresentam dificuldades na aplicação para problemas em larga escala uma
vez que a matriz B(k) de dimensão nn, é densa devido às atualizações Quasi-Newtonianas. No
79
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
entanto, comparativamente ao GRG, são melhor aplicados a modelos tipo “caixa preta” (modelo
com funções implícitas) com relativamente poucas variáveis e onde os gradientes devam ser
obtidos via perturbação numérica. Também pode ser aplicado a problemas em larga escala que
envolvam poucas variáveis de decisão (poucos graus de liberdade) pela utilização de técnicas
de decomposição.
Para problemas pequenos e de médio porte, o método SQP é considerado o melhor dentre eles
por inúmeros autores (Gill et al., 1988; Conn et al., 1991; Heinz e Spellucci, 1994). Para
problemas de grande porte não há consenso sobre o melhor método a ser empregado e esforços
vêm sendo feitos para melhorar o desempenho dos algoritmos SQP e também no
desenvolvimento de algoritmos pertencentes ao método do Lagrangeano aumentado (Schmid e
Biegler, 1994; Bartholomew-Biggs e Hernandez, 1995; Lucia et al., 1996) (Gouvêa, 1997).
Além dos códigos explicitados na Tabela, há também softwares comerciais que resolvem
problemas do tipo NLP. Apesar de não serem solvers em si, tratam-se de linguagens para
desenvolvimento de modelos de otimização e que possuem acopladas sub-rotinas de
otimização:
80
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
De modo geral, estas linguagens de otimização são consideradas os melhores ambientes para
desenvolvimento, uma vez que permitem ao usuário experimentar diversos solvers. Em alguns
casos, podem não se apresentarem como as melhores ferramentas de implementação, pois além
de comprometerem o desempenho dos métodos em termos de tempo computacional, podem
dificultar a comunicação com outros softwares.
Problemas benchmark (padrões de referência) são usados para testar e comparar solvers NLP.
O exemplo que segue foi de teste de um algoritmo SQP denominado MISQPSOL (Gouvêa,
1997) a ser implementado em controlador preditivo para resolver problemas de otimização em
tempo real com melhor desempenho.
81
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
82
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
83
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Observações:
- Total: 66 casos estudados. Os números de falhas dos demais pacotes foram os seguintes:
MISQPSOL: 2; NLPQL: 19; MATLAB: 14; GINO: 21; MINOS: 13; CONOPT: 17.
Cabe ressaltar que poderia ter sido obtido desempenho melhor para os demais solvers, se um
ajuste dos parâmetros dos pacotes, caso a caso, fosse obtido.
Como o NLPQL permite também o “chute” inicial dos multiplicadores de Lagrange, o número
de falhas poderia ter sido menor se essa facilidade tivesse sido usada.
- Todos os solvers considerados acham soluções locais dos NLPs. Partindo do mesmo ponto,
frequentemente eles chegam a soluções diferentes. Assim a aplicação de qualquer dos pacotes
considerados, deve ser precedida de um estudo da topologia do problema. Eventualmente
poderemos incluir uma heurística para a busca de outras soluções, por exemplo, adotando um
conjunto de diferentes condições iniciais.
84
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
min f(x,y)
x, y
sujeito a: h(x,y) = 0
g(x,y) ≤ 0
x X
y Y
Variáveis:
x vetor de variáveis contínuas n
y vetor de decisões discretas d
Espaços de alternativas:
X conjunto das variáveis contínuas no espaço contínuo
Y conjunto das decisões discretas no espaço discreto
min f(x,y)
x, y
sujeito a: h(x,y) = 0
g(x,y) ≤ 0
x X
y Y
É possível representar qualquer variável discreta por meio de variáveis binárias y. Exemplos:
Diâmetro de tubulação:
Dtubo = { ½, ¾, 1, 1 ¼ }
85
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Forma geral:
w wi . yi atribuição do valor selecionado à variável real w
i
yi
i 1 seleção de múltipla escolha: apenas um valor será selecionado
Y1 Y2 Y1 Y2 y1 y2 Y1 Y2
F F V 0 0 V
F V V 0 1 V
V F F 1 0 F
V V V 1 1 V
ou
Das quatro combinações possíveis para y, apenas a opção [1 0] deve ser eliminada, sendo
permitidas as opções [0 0], [0 1] e [1 1], ou seja, vale y2 y1 . Tem-se então a seguinte
restrição:
y1 y2 0
86
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
b) Equivalência – Se e somente se Y1 Y2
A proposição Y1 é verdadeira se, e somente se, a proposição Y2 for verdadeira
y1 y2 Y1 Y2 Neste caso são válidas apenas as combinações [0
0 0 V 0] e [1 1], ou seja, y2 y1 . Tem-se então a
0 1 F seguinte restrição no problema:
1 0 F y1 y2 0
1 1 V
c) Conjunção Y1 Y2
A proposição Y1 é verdadeira e a proposição Y2 é verdadeira
Nas conjunções de proposições, todos os termos ligados pelo operador “e” () devem ser
respeitados. Consequentemente, cada termo é tratado individualmente por uma ou mais
equações/inequações.
y1 y2 Y1 Y2 Neste caso, tratam-se separadamente as duas
0 0 F proposições: Y1 é verdadeira e Y2 é verdadeira.
0 1 F y1 1
1 0 F y2 1
1 1 V
d) Disjunção Y1 Y2
A proposição Y1 é verdadeira ou a proposição Y2 é verdadeira
Nas disjunções as proposições são ligadas pelo operador “ou” (), que representa uma seleção
de múltipla escolha não exclusiva (pelo menos um deve ser selecionado).
y1 y2 Y1 Y2 Neste caso é inválida apenas a combinação y = [0
0 0 F 0]. Tem-se a seguinte inequação:
0 1 V y1 y2 1
1 0 V
1 1 V
e) Disjunção exclusiva Y1 Y2
A proposição Y1 é verdadeira ou, exclusivamente, a proposição Y2 é verdadeira.
O operador “ ” ou “” representa o “ou exclusivo”, ou seja, uma seleção de multiplica
escolha em que apenas um deve ser selecionado.
y1 y2 Y1 Y2 Neste caso tem-se a seguinte equação:
0 0 F y1 y2 1
0 1 V
1 0 V
1 1 F
e) Negação Y1
O operador “”, ou “~”, é usado em expressões lógicas para negar uma proposição.
Exemplo: Y1 é verdadeiro ou Y2 é falso Y1 Y2
y1 y2 Y1 Y2 A múltipla escolha desta disjunção pode ser
0 0 V modelada como:
0 1 F y1 1 y2 1
1 0 V ou, simplesmente:
1 1 V y1 y2 0
87
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Além do estudo da tabela verdade, é também possível converter expressões lógicas em equações
lineares para uso em problemas de programação matemática aplicando o procedimento
proposto por Raman e Grossmann (1991). O procedimento tem o objetivo de organizar a
expressão lógica na forma de uma conjunção de disjunções, formato que pode ser facilmente
convertido em um conjunto de equações.
O operador “e” implica que as duas disjunções devem ser verdadeiras simultaneamente.
Portanto, elas podem ser tratadas separadamente e depois as equações agrupadas.
Como uma disjunção representa uma seleção de múltipla escolha não exclusiva:
(YB1YB2YB3) yB1 yB 2 yB 3 1
(YL1YL2) y L1 y L 2 1
Estas duas inequações são suficientes para modelar a decisão desejada.
Ou exclusivo YA YB = (YAYB)(YAYB)
Se, então YA YB = (YAYB)
Se, e somente se YA YB
(YAYB)(YBYA) = (YAYB)(YBYA)
88
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Prova:
Opções YA YB YA YB YB YA YA YB
0 0 F F F V V V
0 1 F V V V F F
1 0 V F V F V F
1 1 F F F V V V
Procedimento:
Passo 1: Converter operadores não básicos em básicos ( ).
Passo 2: Distribuir as negações (De Morgan).
Passo 3: Distribuir “ou” sobre “e”.
Resultado: Conjunção de disjunções
Q1Q2...QS em que Qi = (P1P2...PR)
Passo 4: Conversão para equações lineares:
Cada disjunção gera uma equação de múltipla escolha:
(P1P2...PR) y1 + y2 + ... + yR ≥ 1
Caso haja negações, substituir yi por (1 – yi) no somatório.
Ex: (P1P2...PR) (1–y1) + (1–y2) + ... + (1–yR) ≥ 1
{ (YAYB)(YA) } { (YAYB)(YB) }
Passo 4:
yA + (1 – yA) ≥1
(1 – yB) + (1 – yA) ≥1
yA + yB ≥1
(1 – yB) + yB ≥1
Rearranjando:
yA + yB ≤ 1
yA + yB ≥ 1
89
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Ou simplesmente:
yA + yB = 1
Rearranjando:
y1 + y2 – y4 – y5 ≤ 1
y3 – y4 – y5 ≤ 0
Exemplo: Se o reator A não for selecionado, então sua vazão de alimentação xA (m3/h) deve ser
nula.
Modelagem:
xA 0
xA M . y A
em que a variável binária yA representa a seleção do reator A e M é um parâmetro que representa
um “grande valor” (big-M), ou seja, um limite numérico superior para a variável contínua xA.
Por exemplo, sabe-se que xA não deve superar 8,5 m3/h; então pode-se adotar um M de 10.
Quando yA = 1 (reator foi selecionado), a variável contínua xA fica livre entre os limites os 0 e
10. Caso yA = 0 (reator não foi selecionado), a variável contínua xA poderá apenas assumir o
valor 0 para satisfazer as duas inequações. Opcionalmente pode-se deixar uma precisão
numérica entre as inequações para facilitar a convergência para uma solução que satisfaça a
ambas:
90
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
xA 0
x A 10. y A 1.105
Proposição: YA ( g x 0 )
É tentador fazer a seguinte modelagem:
y A .g x 0
entretanto, esta estratégia cria uma não linearidade no modelo e deve ser evitada ao máximo.
O mesmo pode ser feito quando deseja-se condicionar uma equação h x 0 a uma decisão
discreta.
Exemplo: YA ( h x 0 )
Modelagem:
M .1 y A h x M .1 y A
Caso yA = 1, tem-se 0 h x , ou seja, h x 0 deve ser respeitada
Caso yA = 0, tem-se M hx M , ou seja, restrições inativas no problema.
Em resumo, os limites inferior e superior da expressão ou variável podem ser controlados por
variáveis binárias em restrições lineares.
91
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Variável de decisão:
yi = 1 se o item i é selecionado
0 caso contrário
Formulação:
n
max p .y
i 1
i i
n
s.a.: w .y
i 1
i i W
Exemplos de aplicação:
- O aluno percebe que não poderá resolver toda a prova no tempo limite imposto. Cada
questão tem um valor e um tempo estimado de resolução. Maximizar a nota da prova.
- Um drive virtual na nuvem tem uma capacidade máxima em gigabytes que é inferior à
necessária. Quais arquivos selecionar para deixar na nuvem de forma a maximizar o uso
do espaço?
- Selecionar alimentos para uma dieta respeitando o limite máximo de calorias diárias e
maximizando o valor nutritivo.
m
s.a.: y
j 1
ij 1 i cada tarefa i deve ser executada uma única vez
m
y
i1
ij 1 j cada agente j recebe exatamente uma tarefa
92
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Todas as tarefas serão executadas e todos os agentes serão usados. Caso o número de tarefas
seja menor que o número de agentes, podem ser criadas tarefas artificiais como "não executar
tarefa" a um custo nulo para que os números se igualem.
Este problema IP pode ser resolvido na forma relaxada como um LP declarando as variáveis
discretas como contínuas com a restrição de 0 ≤ yij ≤ 1.
Exemplos de aplicação:
- Uma fábrica tem m equipamentos para os quais deve atribuir m tarefas de produção. Um
tempo de ajuste tij é necessário para que um equipamento esteja pronto para executar
uma tarefa. Atribua as tarefas de modo a minimizar o tempo total de ajuste.
- Sua equipe de vendas consistes de m pessoas, que estão em diferentes cidades do Brasil.
Há m clientes que demandam visitas nesta semana. Atribua os clientes aos vendedores
de modo a minimizar os custos de transporte.
- Alocação de aeronaves aos portões de um aeroporto.
Formulação:
n m
max p . y
i 1 j 1
ij ij
m
s.a.: y
j 1
ij 1 i cada tarefa i deve ser executada uma única vez
n
w .y
i 1
ij ij tj j capacidade de cada agente j deve ser respeitada
Variáveis:
yi = 1 se a planta i é construída
0 caso contrário
xij quantidade de produto da planta i para o cliente j (ton/período)
Parâmetros:
fi custo fixo amortizado para construção da planta i ($/período)
cij custo variável para abastecimento do cliente j pela planta i ($/ton)
Ui capacidade máxima de produção da planta i (ton/período)
93
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Formulação:
n n m
min fi . yi cij .xij
i 1 i 1 j 1
n
s.a.: x
i1
ij dj j atender à demanda do cliente j (poderia ser ≥ dj)
m
x
j 1
ij U i . yi i Big-M para produção da planta i usando M = Ui
xij ≥ 0 , 1
P I j
jJ
Variáveis:
yj = 1 se o subconjunto j for acessado
0 caso contrário
Parâmetros:
aij = 1 se o elemento i pertence ao subconjunto Pj
0 caso contrário
Formulação:
m
min c .y
j 1
j j
m
s.a.: a .y
j 1
ij j 1 i cada elemento i é acessado pelo menos uma vez
Exemplos de aplicação:
- Copiar todos os n arquivos do balanço anual (universo) acessando o menor número de
computadores (J).
- Qual o menor conjunto de fornecedores (J) que devo contratar para poder ter todas as
peças necessárias (universo) para a produção de um automóvel?
94
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
- Vírus de computador contém certos trechos de código (strings) que ajudam na sua
identificação por um software antivírus. Qual o menor subconjunto de strings (J) que
pode ser usado por um antivírus para identificar um vírus de computador (universo)?
Variáveis binárias:
yij = 1 se a viagem de i para j é realizada (ij)
0 caso contrário
A maneira mais simples de modelar este problema é representar uma solução viável: cada
cidade tem uma chegada e tem um destino. Isso significa que na matriz de destinos Y com todos
os yij (partida de i para chegar a j), a soma de cada linha é igual a 1 e a soma de cada coluna é
igual a 1.
Formulação:
n m
min c . y
i 1 j 1
ij ij
j i
n
s.a.: y
i 1
ij 1 j chego em um cidade j vindo de uma cidade i
i j
m
y
j 1
ij 1 i de uma cidade i, parto para uma cidade j
j i
Entretanto, esta modelagem simples permite a ocorrência de subciclos. São então necessárias
restrições para eliminar a ocorrência de subciclos. Como a quantidade de ciclos possíveis pode
se tornar muito elevada, a melhor estratégia é eliminar os subciclos na medida em que eles
surgem:
1) Resolver o problema original do caixeiro viajante.
2) Se a solução ótima não tiver subciclos, pare. Caso contrário, introduza no problema uma
restrição que elimine (torne inviável) a ocorrência deste ciclo.
3) Resolver o problema com as restrições adicionais e voltar para (2).
Se um subciclo for detectado na solução ótima, introduzir uma restrição que obrigue a
existência de pelo menos uma partida das cidades contidas neste subciclo para o restante dos
destinos. Por exemplo:
3 5 7
1
2 4 6
95
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Se forem detectados s subciclos, criam-se s–1 restrições, não sendo necessário avaliar o último
ciclo.
96
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Dada a natureza linear dos problemas MILP, este podem ser expressos em formato matricial:
Como visto anteriormente, qualquer variável discreta pode ser expressa por variáveis binárias,
não tornado restritivo o formato acima.
Uma árvore com a combinação de todas as m variáveis binárias é expandida por completo. Em
cada nó final da árvore resolve-se um LP otimizando as variáveis reais x, dado que y está
definido. Ao final, tem-se 2m resultados e o melhor é selecionado. É uma estratégia válida para
problemas com poucas variáveis (até 10, aproximadamente). Segue abaixo uma estimativa de
tempo computacional considerando uma operação básica por solução com um processador
Pentium 4 (1.5 GHz) com 1700 MIPS (Milhões de Instruções Por Segundo).
m 10 20 30 40 50 60 70
2m 1,0E03 1,0E06 1,1E09 1,1E12 1,1E15 1,2E18 1,2E21
tempo 0,6E s 0,6 ms 0,6 s 11 min 7,7 dias 21 anos 22 milênios
IX.1.2. RELAXAÇÃO
Um MILP pode ser “relaxado” como um LP. Para isso todas as variáveis binárias são
convertidas em variáveis contínuas com 0 y 1 e resolve-se o problema com um LP. Apenas
em casos particulares tem-se as variáveis y como números inteiros na solução final, como no
caso do problema de alocação (assignemt problem). Nos outros casos a solução não tem
significado prático e o arredondamento da solução não garante viabilidade nem otimalidade.
Entretanto, o problema relaxado é útil no sentido de fornecer um limite inferior para o z* ótimo
do MILP, ou seja, ao resolver o MILP não se terá um valor de ótimo melhor do que o do
problema relaxado:
zrelax* z*
A diferença de relaxação (relaxation gap) é definida como gap = z* – zrelax*. Quanto maior for
esta diferença, mais difícil é a solução do problema.
97
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Exemplo:
MILP MILP relaxado como LP
min z = –2,3.y1 – 2,0.y2 min zrelax = –2,3.y1 – 2,0.y2
s.a.: y1 + y2 1 s.a.: y1 + y2 1
1,2.y1 + 0,4.y2 1 1,2.y1 + 0,4.y2 1
y1, y2 {0,1} 0 y1, y2 1
y1, y2 1
Solução: Solução:
y1* =0 y1* = 0,75
y2* =1 y2* = 0,25
z* = –1,00 zrelax* = –2,23
b) Fornecer um limite superior para o valor da função objetivo, por exemplo, via heurística:
z zUP
98
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
No nó inicial da árvore tem-se o MILP relaxado e sua solução zrelax* fornece o limite inferior
para o ótimo do MILP, z*. A cada nó que se avança na árvore, valores 0 ou 1 são atribuídos às
variáveis y na forma de equações. Por exemplo, considere um problema MILP com m = 3:
Generalizando:
0 r
s m
- Se o MILP relaxado é inviável em ‘r’, então ele será inviável em ‘s’.
- Sendo ‘r’ e ‘s’ problemas viáveis: zrelax*(r) ≥ zrelax*(s)
- Sendo ‘m’ um nó final viável: zrelax*(m) ≥ z*
99
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Com base nestas propriedades da árvore são definidas duas estratégias de busca:
- Estratégia depth-first ou LIFO (last in first out): a busca é realizada em profundidade, o
ramo é expandido a partir do nó aberto mais recentemente em direção ao nó final da árvore.
Uma vez atingido o nó final tem-se zrelax*(m). Cada vez que se atinge um nó final na busca,
este valor é atualizado para o melhor (valor mais baixo). Ao abrir um nó interno ‘r’ com
zrelax*(r) ≥ zrelax*(m), este ramo é “cortado”, pois sua exploração não atingirá valor melhor do
que o zrelax*(m) conhecido.
- Estratégia breadth-first: a busca é realizada em amplitude (largura), expandindo ramos a
partir de nós selecionados. Compara-se todos os nós abertos e seleciona-se sempre aquele
com menor valor de zrelax*(i) para a expansão de novos ramos. A busca segue até que o nó
selecionado esteja na extremidade da árvore, indicando a obtenção da solução ótima z* =
zrelax*(m).
Há regras também para o sequenciamento das variáveis binárias de forma a criar a estrutura da
árvore ou qual opção avaliar primeiro: 0 ou 1.
passo 3 12,5
Depth-First
13,0
passo 2 passo zrelax*(m)
11,2 4
0 -
19,1 1 -
passo 1 7,1 2 -
5 12,7
12,7 3 12,5
4 12,5
0,0 5 12,5
7 inv
inv 6 12,5
7 12,5
5,2
passo 6 inv 8 12,5
9 11,0
8 10,7 9
11,0 10 11,0
ótimo
10 14,1
100
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
13,0
passo 3a 11,2 Breadth-First
19,1 passo zrelax*(k)
passo 1a 7,1
0 0,0
3b 12,7
12,7 1 5,2 / 7,1
2 7,1 / 10,7 / inv
0,0
2a 3 10,7 / 11,2 / 12,7 / inv
inv
inv 4 11,0 / 11,2 / 12,7 / 14,1 / inv
5,2
ótimo
passo 1b inv
2b 10,7 4a
11,0
4b 14,1
A solução ótima do MILP com z* = 11,0 foi obtida em 10 passos pela busca depth-first, com a
resolução de 11 LPs, e em 4 passos pela busca breadth-first, com a resolução de 9 LPs.
Funções não lineares podem ser discretizadas em partes lineares, combinadas com o uso de
variáveis binárias. Esta estratégia permite converter LPs ou MINLPs com poucas não
linearidades em um MILP.
a d x a b c d x
A curvatura de f(x) é aproximada por um conjunto de retas do tipo f = .x + , cada uma válida
para um intervalo específico de x. Variáveis binárias yi controlam o intervalo ativo de x.
Modelagem da função f(x) linearizada: Modelagem dos domínios disjuntivos com big-M:
f = f1 + f2 + f3 x = x1 + x2 + x3
f1 = 1.y1 + 1.x1 a.y1 ≤ x1 ≤ b.y1
f2 = 2.y2 + 2.x2 b.y2 ≤ x2 ≤ c.y2
f3 = 3.y3 + 3.x3 c.y3 ≤ x3 ≤ d.y3
y1 + y2 + y3 = 1
101
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
A solução de um NLP pode retornar mínimos locais, mas no caso da resolução de um MILP, o
ótimo obtido é global. Por exemplo, resolvendo min f(x) do exemplo acima como NLP, a
solução pode convergir para qualquer um dos dois mínimos observados (a, c), enquanto que
resolvendo o problema linearizado como um MILP, a solução sempre convergirá para o mínimo
global (a).
Em alguns problemas combinatórios pode ser interessante buscar outras soluções discretas,
além da solução ótima obtida. Qual seria a segunda melhor combinação de variáveis binárias?
E a terceira?
A estratégia é simples, basta introduzir uma restrição que torne a combinação da solução ótima
inviável e resolver o problema novamente. Há duas formas de fazer isso.
iN
i
Exemplo: y* = [1 0 1 0]T
B = {1, 3} |B| = 2
N = {2, 4} |N| = 2
Caso (a): y1 + y3 ≤ 1
esta restrição torna inviável as combinações [1 0 1 0]T, [1 1 1 0]T, [1 0 1 1]T, e [1 1 1 1]T.
Caso (b): y1 + y3 – y2 – y4 ≤ 1
esta restrição torna inviável apenas a combinação atual [1 0 1 0]T
102
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Decisões discretas:
Variável Condição Custo fixo (k$)
y1 1 se chá servido 2,0
y2 1 se café servido 1,9
y3 1 se limão servido 0,8
y4 1 se creme servido 0,9
y5 1 se leite servido 1,0
y6 1 se refrigerante servido 2,5
Modelo MILP:
min C = 2,0.y1 + 1,9.y2 + 0,8.y3 + 0,9.y4 + 1,0.y5 + 2,5.y6
s.a.: y1 + y2 1
y1 – y3 – y5 0
y2 – y4 0
y6 = 1
yi {0,1}
iN
i
y2 + y4 + y6 – y1 – y3 – y5 ≤ 2
Note que a segunda solução ótima fornece o mesmo valor da função objetivo, ou seja, este
problema tem dois ótimos. Lembre que problemas lineares podem ter múltiplos ótimos com o
mesmo valor da função objetivo. Neste caso, foi uma boa ideia buscar a segunda melhor
solução.
103
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
iN
i
y1 + y3 + y6 – y2 – y4 – y5 ≤ 2
Variáveis de decisão:
yij = 1 se a gasolina i vai no compartimento j
0 caso contrário
Variáveis contínuas:
Ci = carência da gasolina i (galões)
sendo 0 ≤ Ci ≤ CiUP
104
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Modelo MILP:
Solução: z* = 2600 $
Variáveis binárias verdadeiras: y21, y12, y23, y34 e y35
Carências: C1 = 100 galões (premium)
C2 = 200 galões (super)
C3 = 0 galões (comum)
105
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Superestrutura:
1
5 F8 8
A
B C A
C F5 D B
D E
E
F1
F6
2 F9
6 9
A A
C D
B B
F2 D E
C C
E
D D 4
E E A
B
F4 C F7
3 D F10
F3 7
A 10
B A C
C B D
D C
E
Variáveis de decisão:
yi = 1 se o separador i for selecionado
0 caso contrário
Variáveis contínuas:
Fi = vazão de alimentação da coluna de destilação i (kmol/h)
Modelagem do processo:
A superestrutura deve ser modelada considerando operação simultânea de todas as opções. Sua
modelagem consistirá de balanços de massa assumindo separação completa em cada estágio.
Em cada coluna i, a separação será dada pela fração de recuperação i:
106
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
di di = i . Fi
Fi
i
bi
bi = (1 – i). Fi
As vazões de alimentação das colunas são atreladas às decisões binárias por restrições big-M:
Fi 0
Fi M.yi
Modelo MILP:
107
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
0,692.F4 – 0,450.F2 – F7 = 0
0,533.F6 – F10 = 0
0,733.F5 + 0,55.F2 – F9 = 0
0.250.F1 + 0.556.F7 – F8 = 0
0 ≤ Fi ≤ 1500.yi i
Fi
yi {0,1}
2 688
9
A A
B B D
1250 E
C C
D D
E E
562
7
A
B
C
iN
i
2 688
6 9
A A
C
B
C
1250
B
C
D ? D
E
E
D D
E E
562
7
A
B
C
Neste problema a estratégia de eliminar apenas a solução ótima foi ineficiente pois, já que a
grupo de separadores 2, 7, 8 e 9 consegue efetuar a separação com mínimo custo, a segunda
opção repetiu esta sequência e adicionou um separador sem uso (coluna 6).
108
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
(y2 + y7 + y8 + y9) ≤ 3
A
B
C
D 4
E A
B
812 C 562
3 D
1250 A 7
B A
C B
D C
E
(y3 + y4 + y7 + y8) ≤ 3
F10
10
C
D
109
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Neste exemplo baseado em Mendez, Henning Cerdá (2000) é desenvolvida uma modelagem
determinística para a otimização da programação para ordens de produção, em uma planta
química multiproduto com unidades batelada. O problema foi modelado como uma produção
intermitente em fluxo (flow shop) com a presença de reatores em paralelo e um único estágio
de produção.
Deseja-se sequenciar i = 1, ... n ordens de produção nas j = 1, ... m unidades produtoras dentro
do horizonte de tempo disponível. O objetivo da otimização pode ser de reduzir o tempo total
para o término das ordens (makespan), reduzir os atrasos das ordens, ou o seu adiantamento
(para evitar estoques desnecessários), ou ainda reduzir o número de ordens atrasadas. A escolha
da função objetivo depende do tipo de processo e do resultado desejado e o resultado é
altamente dependente da função objetivo escolhida.
Para modelar este problema, inicia-se analisando a resposta desejada, que no caso é um
diagrama de Gantt com a programação de produção. Exemplo para programação de n = 6 ordens
em m = 3 unidades:
Para modelar este diagrama, são criadas as seguintes variáveis binárias de decisão:
WFij tem valor 1 se a ordem i é a primeira a ser processada na unidade j
Wij tem valor 1 se a ordem i é processada na unidade j, não sendo a primeira
Xii’ tem valor 1 se a ordem i’ é processada logo após a ordem i (ii’)
Estas variáveis são suficientes para modelar o sequenciamento de ordens em cada unidade. É
necessária uma variável real para fixar as ordens no horizonte de tempo:
Ci instante de conclusão da ordem i (dias)
110
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Nem sempre todas as unidades estão livres no instante inicial do horizonte de tempo, ou mesmo
nem todas as ordens estão prontas para serem executadas no instante inicial. Para contemplar
estes casos, definem-se estes parâmetros adicionais:
roi instante de liberação da ordem i (dias)
ruj instante liberação da unidade j (dias)
Modelagem do problema:
1) Algumas sequencias de produção são proibidas. Neste caso, define-se FS o grupo de
sequências que não podem ser feitas. Se a sequência ii’ pertence a FS, i’ não pode ser processada
após i. Da mesma forma, a sequência ii não existe. Desta forma:
Xii’ = 0 para i,i’ FS e para i=i’ (1)
2) Caso uma ordem i não posa ser processada na unidade j, por questões tecnológicas, por
exemplo, define-se o conjunto FP de alocações proibidas. Se a alocação ij pertence a FP, então
a ordem i não pode ser processada na unidade j. Desta forma:
WFij + Wij = 0 para ij FP (2)
3) Cada ordem i deve ser alocada a uma única unidade de processamento j. Esta restrição faz
com que uma ordem i seja processada apenas uma vez:
WFij Wij 1
j j
ordem i (3)
4) Se a ordem i for sucedida pela ordem i’ (Xii’ = 1), então ambas devem ser processadas na
mesma unidade. A restrição “Se a ordem i for atribuída à unidade j e a ordem i’ estiver na
sequência de i, então a ordem i’ deve ser atribuída à mesma unidade j” pode ser expressa como
WFij Wij X ii ' Wi ' j
O desenvolvimento desta expressão lógica (vide seção VII.2) produz estas duas inequações:
WFij Wi’j + (1 – Xii’) (4a)
Wij Wi’j + (1 – Xii’) (4b)
Como WFij e Wij são exclusivos (Equação (3)), estas condições podem ser combinadas:
WFij + Wij Wi’j + (1 – Xii’) unidade j e par de ordens (ii’) (5)
111
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
6) Início da fila: toda ordem ou deve ser a primeira a ser processada, ou então ser precedida por
outra ordem na sequência. Ou seja, se uma ordem for a primeira a ser processada, ela não pode
ter antecessora. E se não for a primeira a ser processada, deve obrigatoriamente ter uma
antecessora:
WFi' j X ii' 1
j i
ordem i’ (7)
7) Fim da fila: toda ordem deve ser sucedida por no máximo uma ordem na sequência de
processamento. Esta restrição impõe que pelo menos uma ordem i' siga a última ordem i a não
ser que esta seja a última da sequência:
i'
X ii' 1 ordem i (8)
8) Uma ordem i’ só pode ser processada após a conclusão da ordem anterior i. O intervalo entre
os eventos de conclusão inclui o tempo de preparação para processar a ordem i’ após a ordem i
(sii') e o tempo de processamento da ordem i’ (ti’j). Esta restrição de tempo de produção deve
ser aplicada somente quando Xii’ = 1. Para isso cria-se uma restrição do tipo big-M, em que M
é um valor de tempo maior do que o horizonte de tempo:
Ci ' Ci sii ' ti ' j Wi ' j M X ii ' 1 par de ordens (ii’) (9)
j
Ci’ deve ser superior ao tempo de preparação sii' e ao tempo de processamento ti’j
somados ao instante de conclusão anterior Ci.
Caso Xii’ = 0, tem-se: Ci' Ci sii' ti' j Wij M . Sendo M um número maior do que
j
o horizonte de tempo o lado esquerdo assume um valor negativo e esta restrição torna-
se redundante considerando Ci 0.
112
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Avaliação de desempenho:
Há algumas medidas de desempenho que podem ser adotadas como função objetivo:
1) Adiantamento: o adiantamento da ordem i é uma variável que, ao ser minimizada, assume
valor positivo apenas quando a conclusão Ci é anterior à data programada para entrega di:
Ei di – Ci ordem i (11)
2) Atraso: o atraso de uma ordem i é uma variável que, ao ser minimizada, assume valor positivo
quando o instante de conclusão Ci é posterior à data programada para entrega di:
Ti Ci – di ordem i (12)
3) Número de atrasos: a variável binária NTi indica quando uma ordem está atrasada. Se (Ti >
0), então NTi = 1. Esta condição pode ser satisfeita por meio da seguinte restrição big-M:
Ti M . NTi ordem i (13)
4) Makespan: o tempo total para o término das ordens, MK = maxi{Ci}, pode ser minimizado.
Como não se sabe qual será a última ordem a ser concluída, é necessário incluir no problema
as seguintes restrições e então minimizar MK:
MK ≥ Ci ordem i (14)
Função objetivo:
A capacidade de uma planta multiproduto varia de acordo com o mix de produtos. Por isso é
difícil predizer se um grupo de ordens poderá ser processado num intervalo menor que o
horizonte de produção. Geralmente tenta-se obter uma sequência de produção que minimiza o
atraso ponderado, com valores razoáveis de adiantamento e estoque intermediário. Mas também
é possível minimizar o tempo de térmico do processo (makespan), o número de ordens
atrasadas, ou o desvio.
113
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Ei
min z pi . Ti (18)
i n 1
Em resumo:
Variáveis do modelo
Ci instante de conclusão da ordem i (dias)
Ei adiantamento da ordem i (dias)
Ti atrasado da ordem i (dias)
MK tempo total de conclusão das ordens, makespan (dias)
WFij binária, vale 1 se a ordem i é a primeira a ser processada na unidade j
Wij binária, vale 1 se a ordem i é processada na unidade j, não sendo a primeira
Xii’ binária, vale 1 se a ordem i’ é processada após a ordem i na mesma unidade
NTi binária, vale 1 se a ordem i está atrasada
Parâmetros do modelo
n número de ordens
m número de unidades
tij tempo de processamento da ordem i na unidade j (dias)
di data para entrega da ordem i (dias)
M parâmetro big-M (dias)
pi peso relativo da ordem i (prioridade)
roi tempo para liberação da ordem i (dias)
ruj tempo para liberação da unidade j para a programação(dias)
sii’ tempo de setup para processar a ordem i’ após a ordem i (dias)
EXEMPLO DE APLICAÇÃO
Otimiza a programação de produção para um caso com m = 2 unidades e n = 5 ordens. A unidade
1 está ponta para operação e a unidade 2 estará em manutenção por 3 dias.
Parâmetros das ordens:
Tempo para Tempo de Tempo de
Data de
Ordem i liberação processamento na processamento na Peso pi
entrega (dias)
(dias) unidade 1 (dias) unidade 2 (dias)
1 0,0 14 6,8 6,1 1
2 5,0 14 7,0 7,0 1
3 0,0 21 5,0 X 1
4 6,0 14 X 5,1 2
5 0,0 21 4,9 5,6 1
114
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Note que o atraso na ordem 4 pode ser reduzido para 0,2 dias, começando-a logo após a ordem
1. Neste caso o desvio calculado é de 14,0 dias.
Neste segundo caso o desvio foi minimizado para 3,56 dias, aumentando o makespan para 21
dias.
115
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
O caso mais geral de programação matemática é o MINLP, um problema não linear contendo
variáveis discretas y e variáveis contínuas x:
min z = f(x,y)
sujeito a: h(x,y) = 0
g(x,y) ≤ 0
x X
y Y
Esta estrutura é pouco restritiva, já que qualquer variável discreta pode ser expressa por um
conjunto de binárias e que restrições lógicas e de controle usando binárias podem ser escritas
linearmente como visto anteriormente neste material.
X.1.2. BRANCH-AND-BOUND
É possível resolver uma sequência de MINLPs relaxados como NLPs usando o algoritmo
Branch-and-Bound, entretanto é fundamental que o problema seja convexo ou que o solver NLP
garanta o ótimo global. Caso contrário, a obtenção de mínimos locais subótimos durante a
exploração da árvore pode fazer com que ramos sejam cortados indevidamente. Toda a
estratégia de busca está baseada na propriedade de monotonicidade, que é quebrada com a
possibilidade da solução do NLP ser local subótima.
116
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Estrutura básica:
Escolhe y(0)
y(k+1)
Formula e resolve o
MILP mestre
(aproximação linear)
tol.
FIM
Inicia-se fornecendo um y(0) viável. Estando as variáveis binárias fixas, tem-se um NLP que é
resolvido para otimizar as variáveis x. No ponto xNLP* obtido, o problema é linearizado criando
um MILP chamado de “mestre”. Ele recebe este nome, pois ele é mantido ao longo do processo
iterativo, sendo atualizado a cada iteração, ao contrário do NLP que é refeito a cada iteração.
MILP mestre:
O MILP mestre é um problema obtido pela linearização do MILP no ponto xNLP*, solução ótima
no NLP. O MILP mestre coleciona restrições, ou seja, a cada iteração é adicionada a
linearização correspondente. As restrições hi(x) = 0 são tratadas como hi(x) ≤ 0 ou hi(x) ≥ 0
dependendo do sinal do multiplicador de Lagrangei obtido na solução do NLP (positivo e
negativo, respectivamente).
117
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Como a função objetivo é convexa, as linearizações ficam abaixo da curva original f(x). A figura
abaixo ilustra a aproximação linear de uma função objetivo convexa na criação do MILP
mestre. São usados três pontos em um problema em 1.
f f
k k+1
Como a região viável é convexa, o uso de fronteiras linearizadas amplia o espaço F. A figura
seguinte ilustra a aproximação linear de uma região viável convexa na criação do MILP mestre.
São usados quatro pontos em um problema em 2.
x2 x2 x2
F’
F F
x1 x1 x1
z
zNLP*
z*
zMILP*
iterações
118
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
x2
f
região
trecho eliminada
eliminado
x(k) x x1
Há técnicas para tornar convexo um problema NLP por meio de transformações. O exemplo
mais comum é de convexificação de posinômios (comuns em engenharia). Um posinômios é a
soma de monômios, que são produtórios de variáveis xi elevadas a potências reais i,
multiplicados por uma constante positiva cj:
f x c j . xi i
j i
O posinômio não é convexo, mas pode ser convexificado pela seguinte substituição de variáveis
no problema:
xi exp(ui)
tem-se então:
f x c j . exp i .ui
j i
que é uma função convexa já que cj são positivos e a função exp() é convexa.
Exemplo:
x1
f x x1. x2 2. 1 função não convexa
x2
119
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Para o caso de apenas uma unidade (máquina) por estágio, o tempo de ciclo é dados por:
TLi max tij (1a)
j 1... m
120
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
Produto A TLA = 20 h
estágio 8 8 8
1
20 20 20
2
4 4 4
3
tempo (h)
Produto B TLB = 12 h
estágio 10 10 10 10 10
1
12 12 12 12 12
2
3 3 3 3 3
3
tempo (h)
Modelagem do problema
Como trata-se de um problema de síntese, a capacidade de cada unidade é uma variável a ser
definida. Deve-se garantir que a capacidade seja suficiente para processar as bateladas dos
diferentes produtos, sendo que em alguns casos não será ela aproveitada ao máximo. Definem-
se então as seguintes variáveis:
121
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
É necessário conhecer o fator de tamanho Sij (parâmetro do modelo) que dá a relação entre
volume da unidade j por quantidade de produto i (Lj/kgi). Cria-se uma restrição de que a
capacidade de um estágio j deve ser maior ou igual àquela necessária para processar uma
batelada do produto i:
Vj Sij .Bi par i,j (2)
A capacidade de produção deve ser tal que todas as campanhas sejam realizadas dentro do
horizonte de tempo estipulado H (h). Dada a demanda de cada produto Qi (kgi), o número de
bateladas necessárias é dado por:
NBi .Bi Qi produto i (4)
que é uma equação não linear contendo uma variável discreta. Para remover este complicador
do modelo, o número de bateladas será considerado uma variável contínua, já que são esperados
números grandes por campanha, sendo tolerável um arredondamento. Esta variável será
removida do modelo, usando a razão Qi/Bi para designar o número de bateladas.
O tempo de ciclo do produto TLi foi definido pela equação (1b), que não é diferenciável. A
modelagem do tempo de ciclo passa a ser:
t
TL i ij par i,j (6)
Nj
pois espera-se que, na minimização de custos, tenha-se a condição da equação (1b) satisfeita,
ou seja, haverá uma restrição ativa (equação (6)) indicando o gargalo de produção no par i,j.
O número de unidades em paralelo Nj é uma variável discreta e poder ser modelada como:
N j UP
Nj y
k 1
jk k atribuição de valor discreto a Nj, sendo Nj (7a)
N j UP
y
k 1
jk 1 apenas uma opção, sendo yjk {0,1} (7b)
Os limites inferior e superior para as variáveis TLi podem ser determinados a partir dos
parâmetros do problema:
TLi TLi
LO UP
TLi (8a)
122
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
t
max ijUP TL i max t ij
LO
TLi , UP
(8b)
j
N j j
Caso seja necessário arredondar numericamente os limites calculados pelas equações (8) e (9),
sempre arredondar o limite inferior para baixo e o limite superior para cima.
Modelagem MINLP
A função objetivo a ser minimizada é o custo da instalação necessária para produzir a demanda
dos n produtos dentro do horizonte de tempo estabelecido. Considera-se que o custo de cada
unidade seja função da sua capacidade:
c j j .V j j (10)
sendo que j e j são parâmetros de custo. Desta forma a função objetivo fica sendo:
C N j . j .V j j
(11)
j
m
C N j j V j
j
min não-linear (11)
j 1
Nj y
k 1
jk k j linear (7a)
N j UP
y
k 1
jk 1 j linear (7b)
Vj Vj j
LO UP
Vj linear (3)
TLi TLi
LO UP
TLi i linear (8a)
Bi Bi
LO UP
Bi i linear (9a)
yjk {0,1}
Vj, Nj, Bi, TLi ≥ 0,
Além de ser um problema inteiro misto não linear, é também não convexo (equações (11) e
(5)). Uma estratégia de solução é de aplicar um método de convexificação pela substituição de
variáveis:
123
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
C j expn j j v j
m
min não-linear convexa! (11’)
j 1
Q exptl b H
i 1
i i i não-linear convexa! (5’)
N jU
nj y k 1
jk ln k j linear (7a’)
N j UP
y
k 1
jk 1 j linear (7b)
v lnV
ln V j
LO
j j
UP
j linear (3’)
lnTL tl lnTL
LO UP
i i i i linear (8a’)
ln Bi b lnB
LO
i i
UP
i linear
(9a’)
yjk {0,1}
vj, nj, bi, tli ≥ 0,
Uma melhoria que pode ser feita neste modelo é tornar a variável Vj discreta para que a
capacidade das unidades possa assumir apenas os valores disponíveis no mercado (s = 1, ...
NSj):
Vj { dVj1, dVj2, ... dVj,NSj } (12)
Para isso cria-se um novo conjunto de binárias e uma restrição de múltipla escolha:
NS j
z
s 1
js 1 apenas uma opção, sendo zjs {0,1} (13b')
v j ln dV js .z js
NS j
(13a’)
s 1
124
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP
REFERÊNCIAS
Bartholomew-Biggs, M.C.; Hernandez, F.G. Using the KKT matrix in an augmented lagrangian SQP method for
sparse constrained optimization. J.O.T.A. 85(1), 201–220, 1995.
Bazaraa, M.S.; Sherali, H.D.; Shetty, C.M..Nonlinear Programming: Theory and Algorithms, 3rd ed. Wiley,
2006.
Biegler, L.T.; Cuthrell, J. Improved unfeasible path optimization for sequential-modular simulators II: the
optimization algorithm. Computers & Chemical Engineering 9. 1985.
Biegler, L.T.; Grossmann, I.E.; Westerberg. A.W. Systematic Methods of Chemical Process Design (1997),
Prentice Hall, 1997.
Boddington, C.E.; Randall, W.C., Nonlinear programming for product blending. Joint National TIMS/ORSA
Meeting, New Orleans, 1979.
Buzby, B.R. Techniques and experience solving really big nonlinear programs, Optimization Methods, English
Universities Press, London, 1974.
Conn, A.R.; Gould, N.I.M.; Toint, T.L. A globally convergent augmented Lagrangian algorithm for optimization
with general constraints and simple bounds, SIAM Journal on Numerical Analysis, 28545-572, 1991.
Dantzig, G.B. Programming in a linear structure. Econometrica 17, 73–74, 1949.
Duran, M.A.; Grossmann, I.E. An outer-approximation algorithm for a class of mixed-integer nonlinear
programs. Mathematical Programming 365(3), 307-339, 1986.
Edgar, T.F.; Himmelblau, D.M., Lasdon, L.S. Optimization of Chemical Processes, 2nd ed. New York:
McGraw-Hill, 2001.
Floudas, C.A. Nonlinear and Mixed Integer Optimization. Oxford University Press, 1995.
Geoffrion, A.M. Generalized Benders decomposition. Journal of Optimization Theory and Applications
10(4), 237-260, 1972.
Gill, P.E.; Murray, W.; Saunders, M.A.; Wright, M.H. Recent developments in constrained optimization.
Journal of Computational and Applied Mathematics, 22(2-3), 257-270, 1988.
Gouvêa, M.T. Uso de um Algoritmo SQP na Otimização de Processos Químicos Contínuos em Tempo
Real. Tese (Doutorado). Orientador: Darci Odloak. Escola Politécnica da Universidade de São Paulo, 1997.
Heinz, J.; Spellucci, P. A successful implementation of the pantoja-mayne SQP method. Optimization Methods
and Software 4(1),1–28, 1994.
Karmarkar, N. A new polynomial time algorithm for linear programming. Combinatorica 4(4), 373–395, 1984.
Lasdon L.S.; Waren, A.D. Large scale nonlinear programming, Computers & Chemical Engineering 7(5),
595-604, 1983.
Lucia, A.; Xu, J.; Layn, K.M. Nonconvex process optimization. Computers & Chemical Engineering 20(2),
1375–1398, 1996
Mendez, C.A.; Henning, G.P.; Cerda, J. Optimal scheduling of batch plants satisfying multiple product orders
with different due-dates. Computers and Chemical Engineering 24(9), 2223-2245, 2000.
Raman, R.; Grossmann, I.E. Relation between MILP modeling and logical inference for chemical process
synthesis. Computers and Chemical Engineering 15(2), 73-84, 1991.
Ryoo, H.S.; Sahinidis, N.V. Global optimization of nonconvex NLPs and MINLPs with applications in process
design. Computers & Chemical Engineering 19(5), 551-566, 1995.
Schmid, C.; Biegler, L.T. Quadratic programming methods for reduced hessian SQP. Computers & Chemical
Engineering 18(9), 817–832, 1994.
Winston, W.L. Introduction to Mathematical Programming: Applications and Algoritms, 2nd ed., Duxbury
Press, California, 1995.
125