Você está na página 1de 129

DEPARTAMENTO DE ENGENHARIA QUÍMICA

PQI-5779:
OTIMIZAÇÃO
DE PROCESSOS
QUÍMICOS

Prof. JORGE ANDREY WILHELMS GUT


Prof. JOSÉ MAURÍCIO PINTO

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

II. CONCEITOS BÁSICOS DE OTIMALIDADE 17


II.1. Revisão de Álgebra Linear 17
II.2. Preliminares 18
II.3. Condições de Otimalidade 20
II.3.1. Problema de otimização sem restrições 20
II.3.2. Problema de otimização com restrições de igualdade 21
II.3.3. Problema de otimização com restrições de desigualdade 23
II.3.4. Otimização com restrições de igualdade e desigualdade 25
II.4. Procedimento de Determinação de um Ponto de Kuhn-Tucker 28

III. OTIMIZAÇÃO MONOVARIÁVEL SEM RESTRIÇÕES 31


III.1. Introdução 31
III.2. Métodos de Otimização Unidimensional sem Restrições 32
III.2.1. Métodos de redução de intervalo 32
III.2.2. Métodos baseados em derivadas 35
III.2.3. Métodos de aproximação polinomial 36
III.2. Busca Unidimensional em Otimização Multivariável 40

IV. OTIMIZAÇÃO MULTIVARIÁVEL SEM RESTRIÇÕES 42


IV.1. Métodos de Busca Direta 42
IV.1.1. Enumeração exaustiva 42
IV.1.2. Otimização evolucionária (EVOP) 42
IV.1.3. Método de busca simplex 43
IV.1.4. Método de Hooke-Jeeves 46
IV.2. Métodos Baseados em Gradiente 47
IV.2.1. Método de Newton 48
IV.2.2. Método steepest descent 49
IV.2.3. Método de Marquardt 50
IV.3. Métodos Quasi-Newtonianos 50

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

VII. OTIMIZAÇÃO DE PROBLEMAS DISCRETOS 85


VII.1. Representação de variáveis discretas 85
VII.2. Modelagem de decisões discretas 86
VII.2.1. Restrições de múltipla escolha 86
VII.2.2. Modelagem de restrições lógicas 86
VII.2.3. Lógica proposicional e programação matemática 88
VII.2.4. Restrições condicionais em variáveis contínuas 90

VIII. PROBLEMAS CLÁSSICOS MILP E IP 92


VIII.1. Problema da mochila (knapsack problem) 92
VIII.2. Problema de alocação (assignment problem) 92
VIII.3. Problema de localização de plantas (facility location problem) 93
VIII.4. Problema de cobertura (set covering problem) 94
VIII.5. Problema do caixeiro viajante (TSP, travelling salesman problem) 95

IX. PROGRAMAÇÃO LINEAR INTEIRA MISTA - MILP 97


IX.1. Técnicas de Solução de Problemas MILP 97
IX.1.1. Enumeração exaustiva 97
IX.1.2. Relaxação 97
IX.1.3. Métodos rigorosos 98
IX.1.4. Recomendações para modelos MILP 98
IX.2. Método Branch-and-Bound 99
IX.3. Linearização de problemas LP ou MINLP 101
IX.4. Identificação de outras soluções discretas 102
IX.5. Exemplos MILP 103
IX.6. Caso MILP: Programação de produção em unidades de batelada 110

X. PROGRAMAÇÃO NÃO LINEAR INTEIRA MISTA - MINLP 116


X.1. Métodos de solução MINLP 116
X.1.1. Enumeração exaustiva 116
X.1.2. Branch-and-Bound 116
X.1.3. Métodos de decomposição 116
X.2. Convexificação de problemas NLP 119
X.3. Caso MINLP: Projeto ótimo de uma planta em batelada 120

REFERÊNCIAS 125
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

I. OTIMIZAÇÃO DE PROCESSOS QUÍMICOS

Considere o problema de projeto de processos. Suponha que se conheça um simulador de


processos e os modelos para o projeto das unidades e operações unitárias nele contidas. Um dos
objetivos de se executar tarefas de simulação é o de utilizar o modelo de predição do processo
para melhorá-lo, explorando diferentes opções e condições de operação. No entanto, é possível
desenvolver estratégias sistemáticas de melhoria, ou otimizações.

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.

Áreas correlatas que descrevem a teoria e conceitos de otimização são a Programação


Matemática e a Pesquisa Operacional, que apresentam uma extensa literatura associada. A
Programação Matemática lida principalmente com a caracterização de propriedades teóricas de
problemas e algoritmos de otimização, incluindo-se a existência de soluções, convergência para
as soluções, etc. Por outro lado, a Pesquisa Operacional foca na aplicação e implementação de
métodos de otimização para uso prático e eficiente.

Em Engenharia de Processos, o interesse é na aplicação de métodos de otimização a


problemas reais, fazendo uso da modelagem matemática e de ferramentas computacionais.
Neste caso, deve-se sentir confortável quanto ao funcionamento do algoritmo de otimização,
incluindo as limitações do método (por exemplo, em que casos ele pode falhar). Principalmente,
é necessário formular problemas de otimização que capturem a essência do processo real, mas
que sejam tratáveis e solúveis pelos métodos atuais de otimização.

1
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Aplicações de otimização em processos químicos:


1) Projeto de processos: através da modelagem matemática do processo ou operação unitária,
determinar variáveis e dimensionar equipamentos.

2) Síntese de processos: seleção sistemática de configurações do processo adicionando ou


retirando unidades do seu fluxograma.

3) Planejamento e programação: determinação do planejamento de produção, distribuição,


inventário, etc. Otimizar a programação de processos batelada multi-propósito.

4) Controle e operação on-line de processos: otimização on-line do modelo do processo para


minimizar desvios do set-point (RTO – real time optimization). Planejamento e programação
on-line.

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).

2) Otimalidade: seleção da “melhor” alternativa viável segundo algum critério de avaliação


(função objetivo).

Um problema mais genérico (e mais complexo) que o problema de projeto é o problema de


síntese de processos. A síntese pode ser definida como a geração e a seleção de alternativas
para melhorar a integração de sistemas, consistindo de componentes conhecidos.

espaço de alternativas
(superestrutura)

função objetivo

Síntese Avaliação

Topologia variáveis variáveis


Parâmetros
(configuração) discretas contínuas

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

A metodologia envolvida obedece à seguinte sequência:


1. Postular uma superestrutura que represente as alternativas.
Representação?

2. Modelar superestrutura como modelo de otimização.


Modelagem?

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?

I.1. FORMULAÇÃO CONCEITUAL DE PROGRAMAÇÃO MATEMÁTICA

Este é o formato padrão de um problema de programação matemática:

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ço das alternativas:


X conjunto das variáveis contínuas no espaço contínuo
Y conjunto das decisões discretas no espaço discreto

Análise:
a) Modelo de desempenho
hmx1 vetor de equações m (com m < n)

b) Restrições funcionais, lógicas e físicas


grx1 vetor de inequações r

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

As classes de problemas de otimização são definidas de acordo com os tipos de variáveis e de


equações envolvidos no problema. Ao formular um problema de otimização, recomenda-se
adotar, sempre que possível, funções lineares e variáveis contínuas, devido a maior facilidade
de resolução do problema.

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

Múltiplas funções objetivo?


min f 1 (x,y), f 2 (x,y), ... f s (x,y)
Não há solução ótima para problemas com múltiplos objetivos, pois normalmente os
objetivos perseguidos são conflitantes. Por exemplo: maximizar qualidade do produto e
minimizar custos de produção. A figura abaixo apresenta o espaço de soluções viáveis de um
problema com dois objetivos. Nota-se que as soluções que fornecem os menores valores de f1
e de f2 não são coincidentes.

conjunto de soluções que antendem


f2 às restricões do problema (h e g)

ponto utopia região


(inviável)
viável
min(f2)

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

Possíveis abordagens para lidar com múltiplos objetivos:

a) Escolher um objetivo principal e restringir os outros objetivos a valores toleráveis:


min z = f q (x,y)
s.a. f i (x,y) ≤ f i U P i = 1, 2, ... s; com i  q

b) Ponderar os objetivos em uma função única


s
min z =  wi . f i (x,y)
i 1
Problema: como escolher os pesos wi para poder somar funções com unidades e faixas
e valores diferentes? Normalização dos objetivos (0  f  1) pode ser útil.

Fronteira de Pareto: Na minimização de dois objetivos ponderados, pode-se determinar


a ‘Fronteira de Pareto’ que contempla as soluções ótimas em uma graduação que vai de
100% objetivo f1 até 100% objetivo f2. Isso ajuda na escolha da ponderação ideal.

f2

min .f1 + (1–).f2


01

min(f2)

min(f1) f1

Limitações da representação via programação matemática:


- Critério de seleção expresso como uma única função objetivo.
- Problema expresso na forma de equações algébricas.
- Parâmetros determinísticos.

Número de Graus de liberdade (NGL):


- NGL = número total de variáveis (n+d+1) menos o número de equações linearmente
independentes (m+1). Portanto, NGL = n+d–m.
- Um problema de otimização deve preferencialmente ter NGL ≥ 1.
- Para NGL = 0, a região viável contém no máximo um elemento.

Resolução de um problema de viabilidade:


- Para apenas satisfazer restrições e obter uma solução viável:
min z = constante

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

EXEMPLO 1: Desejo investir R$ 1.000,00. Posso investir em Poupança (rendimento de 0,5 %


ao mês) ou em CDB (rendimento de 0,6 % ao mês). Como maximizar os rendimentos?

Embora bastante simples, este problema é útil para consolidar conceitos importantes de
otimização com programação matemática.

Passo 1 – Modelagem do problema


Definição de variáveis:
x1 = valor investido em poupança (R$)
x2 = valor investido em CDB (R$)
Definição da função objetivo:
max 0,005.x1 + 0,006.x2
Definição de restrições:
x1 + x2 = 1000 (poderia ser ≤ 1000)
x1 ≥ 0
x2 ≥ 0
Definição de domínios:
x  2

Passo 2 – Formulação como problema de programação matemática


min f(x) = –0,005.x1 –0,006.x2
s.a. h1(x): x1 + x2 – 1000 = 0
g1(x): –x1 ≤ 0
g2(x): –x2 ≤ 0
x  2

O número de graus de liberdade é: 2 variáveis (x1, x2) – 1 equação (h1) = 1,


Ou: 3 variáveis (f, x1, x2) – 2 equações (objetivo, h1) = 1, levando em conta a função objetivo.

Chama-se de região viável o espaço de x2 solução ótima


soluções de satisfazem as restrições. Neste 1000
problema, a região viável é um segmento de
reta. Aplicando a função objetivo, seleciona-
se a solução que forneça o menor valor
(solução ótima): x* = [ 0 1000 ] com f* = –
6,0. 1000 x1

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

A nova solução ótima é x* = [ 200 800 ] com x2


f* = –5,8. Neste problema, a restrição g3(x) é 1000
uma restrição ativa, pois o ponto ótimo situa- solução ótima

se na sua fronteira com g3(x*) = 0 e, caso esta


restrição seja retirada do problema, a solução
ótima será outra. Ou seja, esta restrição está
impedindo o progresso da otimização de f. 1000 x1

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

A solução ótima não mudou em relação ao x2


problema anterior. Neste novo cenário, a 1000
restrição g4(x) é uma restrição inativa, pois o solução ótima

ponto ótimo situa-se afastado de sua fronteira


com g4(x*) < 0 e, caso esta restrição seja
retirada do problema, a solução ótima é
mantida. 1000 x1

EXEMPLO 2: Formular um problema de programação matemática para o projeto de um sistema


de treliças, determinando a sua topologia e as áreas das seções transversais das barras.
200 cm

u1 u2 u1
100 cm

Variáveis independentes contínuas:


u1 = área da seção transversal das barras oblíquas (cm2)
u2 = área da seção transversal da barra central (requer custo fixo para a junta) (cm2)

Variáveis independentes discretas:


y= 1, se a barra do meio for inclusa.
0, se a barra não for inclusa.

Função objetivo: Custo da treliça ($)


z = Custo das barras + Custo das juntas
Custo das barras = CB. [ 100.u2 + 2.(100.2).u1 ] com CB: $/cm3, parâmetro
Custo das juntas = CJ . [2 + y] com CJ: $/junta, parâmetro

então a função objetivo do problema é:


min z = CJ . [2 + y] + CB. [ 100.u2 + 2.(100.2).u1 ]

Restrição lógica: o custo da barra central é contabilizado apenas se y = 1, ou seja, se y = 0,


então u2 = 0. Modelagem:
0 ≤ u2 ≤ u2UP . y sendo u2UP um limite superior fornecido para a variável u2.
Se y = 0, então 0 ≤ u2 ≤ 0 e consequentemente u2 = 0
Se y = 1, então 0 ≤ u2 ≤ u2UP

Variáveis dependentes (variáveis de estado):


Tensões: δ1, δ2, δ3
Deslocamentos: r1, r2

7
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Modelagem matemática da treliça:


 1   0 ,5 0 ,5
δ=S.r     
E 
0 0 1 0  . r1 
  100 
2 , ,  r 
 3   0 ,5 0 ,5  2 
E u1 0   r1  1 20
K.r=P   0 u  u 2 .r    
100. 2  1 2   2 2 20
em que:
S : matriz de tensões
E : módulo de elasticidade
K : matriz de rigidez

Observação: 5 equações em 5 variáveis de estado (variáveis dependentes)

Restrições: tensões máxima e mínima permissíveis


δiU = +20 i = 1, 2, 3
δiL = –15 i = 1, 2, 3

ou seja: –15 ≤ δi ≤ 20 para i = 1, 2, 3

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

Parâmetros do modelo: CJ, CB, E, u2UP.

8
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

I.2. REPRESENTAÇÃO DE PROBLEMAS INTEIROS MISTOS

Na representação de problemas de otimização com variáveis/decisões discretas, o objetivo é


estruturar explicita ou implicitamente uma família de alternativas que são candidatas potenciais
para a solução ótima. Dependendo da representação empregada, recorre-se a diferentes técnicas
de busca para localização da alternativa ótima. As duas principais representações de um
problema são em árvores ou em redes (superestruturas), conforme descrito a seguir.

Considere um grafo, onde:


a) Nós: componentes potenciais.
b) Arcos: interconexões potenciais.

Há duas principais classes de grafos:


1) Árvores: grafo conectado sequencialmente sem ciclos a partir de um só raiz.
2) Rede: grafo conectado com variáveis de decisão nos arcos e nós.

As principais características destas representações são:


Redes ou Superestruturas Árvores
Representação explícita de alternativas. Representação implícita de alternativas.
Geração de alternativas por superposição. Geração de alternativas por decomposição.
Otimização normalmente simultânea. Otimização requer monotonicidade e
separabilidade.

No caso geral, se há n primitivas binárias, tem-se 2n alternativas.

EXEMPLO 1: Sequência ótima de separação


Dada uma mistura de 4 componentes (A, B, C e D), determine a sequência ótima de separação.
“A” é componente mais volátil e “D” é o mais pesado.

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.

EXEMPLO 2: Fluxograma para o processo de amônia


Estes são os principais componentes do fluxograma de produção de amônia

recuperação purga
de H2

N2
separador
compressor reator NH3
H2 de NH3

Considerando que as etapas de reação, separação e recuperação tenham duas opções de


tecnologia cada, tem-se a seguinte representação em árvore do problema de síntese do processo:

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.

Uma possível representação em rede, eliminando as duplicações de nós da árvore:

Reator Flash Separação


multibed condensação membrana

Reator Absorção Sem recupe-


tubular destilação ração de H2

Uma superestrutura mais detalhada na forma de fluxograma de processo:

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

I.3. MODELOS E ESTRATÉGIAS PARA REPRESENTAÇÕES EM REDES

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.

Uma possível forma de solução é chamada de “enumeração exaustiva”. A árvore é expandida


por completo e cada uma das combinações das variáveis discretas é otimizada nas variáveis
continuas. Por fim, escolhe-se a combinação que forneceu o melhor valor da função objetivo.
Técnicas de otimização em árvore serão abordadas mais adiante no curso.

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.

EXEMPLO: Problema de seleção de reatores


Deseja-se fabricar o produto B com uma produção de 10 kmol/h, a partir da matéria-prima A
(custo de 5,0 $/kmol). Tem-se dois reatores disponíveis, já existentes: 1 e 2. O reator 1 tem um
custo operacional maior, mas fornece uma conversão molar de 80,0% de A em B, enquanto o
reator B tem menor custo operacional e conversão de 66,7%.

A superestrutura abaixo foi concebida para representar o problema considerando os seguintes


cenários: adotar o reator 1, adotar o reator 2, trabalhar com reatores em paralelo.

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.

Variáveis contínuas positivas definidas para a modelagem:


x0 entrada do reagente A (kmolA/h)
x1 alimentação do reator 1 (kmolA/h)
x2 alimentação do reator 2 (kmolA/h)
z1 produção do reator 1 (kmolB/h)
z2 produção do reator 2 (kmolB/h)
z0 saída do produto B (kmolB/h)

Definição da função objetivo como custo total operacional c($/h):


c = custo operação reator 1 + custo operação reator 2 + custo aquisição de A
c = c1 + c2 + cA
c = 5,5.x1 + 4,0.x20,6 + 5,0.x0
0,6

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

Número de graus de liberdade do problema: 6 variáveis – 5 equações = 1.

Com uma substituição de variáveis podemos deixar o NLP em função de x1 e x2:


min c = 5,5.x10,6 + 4,0.x20,6 + 5,0.(x1 + x2)
s.a. 0,800.x1 + 0,667.x2 – 10 = 0
x1, x2  0,  1

ou simplesmente em função de x2:


min c = 5,5.(12,5 – 0,83.x2)0,6 + 4,0.x20,6 + 5,0.(12,5 + 0,17.x2)
s.a. x2  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

Ponto x1 (kmolA/h) x2 (kmolA/h) c ($/h)


I mínimo global 12,5 0,0 87,5
II mínimo local 0,0 15,0 95,3
III máximo global 3,1 11,3 99,9

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

c1 ≈ 7,5 + 1,4.x1 c2 ≈ 5,5 + 1,0.x2


30 30

20 20

10 10

0 0
0 5 10 15 20 0 5 10 15 20

As funções não-lineares de custos c1 e c2 podem ser substituídas por aproximações lineares na


forma c =  + .x:
Reator 1 c1 = 7,5 + 1,4.x1
Reator 2 c2 = 5,5 + 1,0.x2

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

O problema pode então ser escrito como um MILP:


min c = (7,5.y1 + 1,4.x1) + (5,5.y2 + 1,0.x2) + 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
x1 –20.y1 0
x2 –20.y2 0
1 – y1 – y2 0
x0, x1, x2, z0, z1, z2 ≥ 0,  1
y1, y2 = {0, 1}

Substituindo variáveis, tem-se o MILP:


min c = 7,5.y1 + 6,4.x1 + 5,5.y2 + 6,0.x2
s.a. 0,800.x1 + 0,667.x2 – 10 = 0
x1 –20.y1 0
x2 –20.y2 0
1 – y1 – y2 0
x1, x2  0,  1
y1, y2 = {0, 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

II. CONCEITOS BÁSICOS DE OTIMALIDADE

II.1. REVISÃO DE ÁLGEBRA LINEAR

Nomenclatura:
Escalar x
Vetor coluna x
Matriz X

Produto escalar entre vetores: f = aT.b

Para vetores ortogonais: aT.b = 0

A equação aT.b = cT.b não implica em a = c

Propriedades de multiplicação matricial:


Amxn.Bnxp = Cmxp
A.B ≠ B.A
( A.B )T = BT.AT

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 , x0
det( A – λ’ I ) = 0
em que I é a matriz identidade.

O “sinal” de uma matriz quadrada simétrica A é definido conforme:

Matriz A Condição Autovalores


Positiva definida xT.A. x > 0, para  x ≠ 0 λ’i > 0
Positiva semi-definida xT.A. x ≥ 0, para  x ≠ 0 λ’i ≥ 0
Negativa definida xT.A. x < 0, para  x ≠ 0 λ’i < 0
Negativa semi-definida xT.A. x ≤ 0, para  x ≠ 0 λ’i ≤ 0

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 

H é uma matriz quadrada simétrica

II.2. PRELIMINARES

Seja o problema NLP (programação não linear):

min f(x)
sujeito a: h(x) = 0 m equações
g(x) ≤ 0 r inequações
x  n n variáveis

O número de graus de liberdade, ou número de variáveis independentes, é NGL = n – m.


Um problema de otimização precisa ter NGL  1.
O número de variáveis de estado (dependentes) é m.

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

Exemplos de regiões viáveis em 2 e 3:

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

Para compreender o funcionamento de algoritmos de programação matemática, é fundamental


conhecer algumas propriedades da região viável F e da função objetivo f ( x ).

A função objetivo pode ser classificada como:


a) contínua ou descontínua, dependendo da presença ou não de descontinuidades
b) unimodal ou multimodal, dependendo do número de pontos extremos ou pontos
estacionários presentes.
c) convexa ou côncava, dependendo de sua “curvatura”.

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

Propriedades de funções convexas:


a) A soma de funções convexas é também convexa
b) .f(x) é convexa se f(x) é convexa e  ≥ 0.
c) g(f(x)) é convexa se f(x) é convexa e g(x) é convexa e crescente.

Um ponto x* é um mínimo local para a função f se:


f(x*)  f(x),  x  F, com ||x–x*||  , onde  é um limite “pequeno”
Por exemplo, o segundo caso ilustrado na figura anterior apresenta dois mínimos locais para
f(x1,x2).

Já um mínimo global x’ é definido como:


f(x*) < f(x),  x  F Mínimo global forte
f(x*)  f(x),  x  F Mínimo global fraco

Uma região viável F é convexa se e somente se, para quaisquer xa, xb  F:


x = α. x a + (1–α). x b  F,  α  ]0,1[
ou seja, se dois pontos xa e xb pertencem à região viável, então todos os pontos do segmento
xaxb também pertencem a esta região.

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.

II.3. CONDIÇÕES DE OTIMALIDADE

II.3.1. PROBLEMA DE OTIMIZAÇÃO SEM RESTRIÇÕES

Seja o problema de otimização:

min f(x)
sujeito a: x  n

com f(x)  C2 (conjunto das funções que podem ser diferenciadas duas vezes).

a) Condição necessária para um mínimo local:


Se f(x) possui um extremo em x (máximo, mínimo ou sela), então este é um ponto estacionário:
f(x*) = 0
que constitui um sistema com n equações e n incógnitas, que pode ser resolvido por qualquer
método de solução de equações algébricas não-lineares.

b) Condição suficiente para um mínimo local:


O ponto estacionário x* será um mínimo local se for verificada a convexidade da função ao
redor de x*.

Partindo da expansão da série de Taylor de f(x) em x*:


f(x) = f(x*+x) = f(x*) + Tf(x*).x + ½.(xT).H(f(x*)).x + ...
em que x é uma perturbação a partir do ponto extremo: x = x* + x.

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

Então, para que x* seja um mínimo local forte:


f(x*+x) – f(x*) > 0,  x  xT.H(f(x*)).x > 0
ou seja, a matriz Hessiano H(f(x )) deve ser positiva definida em x = x*. Isso indica convexidade
*

da função em x*.

Se H(f(x*)) for positiva semi-definida, pode haver múltiplos mínimos, já que


f(x*+x) – f(x*) ≥ 0

Para um problema com x  1 (mono-variável), estas condições se resumem a:


f x 
*
0 e
2 f x
*
0
 
x x 2

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.

II.3.2. PROBLEMA DE OTIMIZAÇÃO COM RESTRIÇÕES DE IGUALDADE

Seja o problema de otimização:

min f(x)
sujeito a: hm1(x) = 0 f(x), h(x)  C2
x  n

a) Condições necessárias para um mínimo local:


Se f(x) possui um extremo com restrições em x, de modo que as equações hj(x) = 0, j = 1, 2,…,
m sejam válidas, então f(x) e hj(x) são linearmente dependentes neste extremo:
   
m
 0 .f x    j .h j x  0 , com pelo menos um λ*j não nulo.
* *

j 1

em que λj são os multiplicadores de Lagrange.

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

Definindo a função Lagrangeano como:


L(x,λ) = f(x) + Σ λj.hj(x) ou L(x,λ) = f(x) + λT.h(x)
a condição de dependência linear dos gradientes pode ser expressa como a condição
estacionária desta função no ponto ótimo:
xL(x*,λ) = 0  f(x*) + Σ λj.hj(x*) = 0

Outra condição necessária é de viabilidade, ou seja, o ponto deve respeitar as restrições:


h(x*) = 0

Em resumo, são estas as condições necessárias para um mínimo local:


   
m
f x    j .h j x  0
* *
dependência linear de gradientes
j 1

hx   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 λ.

b) Condição suficiente para um mínimo local:


Realizando uma análise semelhante ao caso anterior, temos que a matriz Hessiano do
Lagrangeano H(L(x,λ)) com respeito a x deve ser positiva definida em x*.
Hxx(L(x*,λ)) positiva definida ou 2xxL(x*,λ)) positiva definida

Alternativa: dependendo da complexidade do problema, pode ser possível isolar as variáveis


dependentes nas restrições de igualdade e substituí-las na função objetivo, resultando em um
problema de otimização sem restrições. Neste caso, adota-se a estratégia apresentada no caso
II.3.1.

22
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

II.3.3. PROBLEMA DE OTIMIZAÇÃO COM RESTRIÇÕES DE DESIGUALDADE

Seja o problema de otimização:

min f(x)
sujeito a: g r  1 (x) ≤ 0 f(x), g(x)  C2
x  n

a) Condições necessárias para um mínimo local:


Se f(x) possui um extremo restrito x*, de modo que gj(x*) ≤ 0 (j = 1, 2, ... r), então existem
multiplicadores de Kuhn-Tucker µj ≥ 0 (j = 1, 2, ... r) tal que:
   
r
a)  0 .f x    j .g j x  0
* *
 dependência linear dos gradientes
j 1

 .g x   0
*
b) j j  condição de complementaridade
j  0

As restrições de desigualdade g podem ser classificadas como:


a) Ativas (fortemente) gj(x*) = 0 e µj > 0
b) Ativas (fracamente) gj(x*) = 0 e µj = 0
*
c) Inativas gj(x ) < 0 e µj = 0
Restrição g fortemente ativa Restrição g fracamente ativa Restrição g inativa
x2 x2 x2
f(x) f(x) f(x)

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

Admitindo 0 = 1, temos as seguintes condições:


f(x*) + Σ j.gj(x*) = 0 ou f(x*) + J g x    . = 0
* T

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

Em resumo, são estas as condições necessárias para um mínimo local:


   
r
f x    j .g j x  0
* *
dependência linear de gradientes
j 1

 .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 .

b) Condição suficiente para um mínimo local:


A matriz Hessiano do Lagrangeano H(L(x,λ)) deve ser positiva definida em x*.
Hxx(L(x*,)) positiva definida ou 2xxL(x*,)) positiva definida

Alternativa: é possível converter restrições de desigualdade gj(x) ≤ 0 em restrições de igualdade


hj(x) = 0 pela introdução de folgas positivas da seguinte forma:
gj(x) ≤ 0
gj(x) + s² = 0 em que s 1 é uma nova variável do problema
obtendo-se assim o caso analisado em II.3.2.

Significado de multiplicadores de Kuhn-Tucker:


No ponto ótimo é válida a dependência linear de gradientes:
   
r
f x    j .g j x*  0
*

j 1

Seja uma direção p, tal que:


f = pT.f(x*) é a variação de f na direção p
gj = pT.gj(x*) é a variação de gj na direção p

Multiplicando a equação de condição estacionária acima por pT, temos:


pT.f(x*) + Σ j. pT.gj(x*) = 0  f* + Σ j.gj = 0 no ponto x*

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

Portanto, o multiplicador de Kuhn-Tucker j representa a sensibilidade da função objetivo


otimizada frente uma alteração na restrição gj(x), considerando constantes todas as outras
restrições.

Considere uma pequena alteração ∂gj positiva na restrição gj(x):


gj(x) ≤ 0 é modificada para gj(x) ≤ ∂gj
Tal alteração promove um aumento da região viável.

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

OBS: Em um ponto de máximo do problema também se observam as mesmas condições, mas


os multiplicadores de Kuhn-Tucker são negativos.

II.3.4. OTIMIZAÇÃO COM RESTRIÇÕES DE IGUALDADE E DESIGUALDADE

Seja o problema de otimização no formato geral de programação matemática:


min f(x)
sujeito a: hm1(x) = 0 f(x), h(x), g(x)  C2
gr1(x) ≤ 0
x  n

a) Condição necessária para um mínimo local:


Satisfação das Condições de Karush-Kuhn-Tucker ou Condições de KKT
Estas condições sumarizam aquelas obtidas para os casos II.3.2 e II.3.3.
A função Lagrangeano combina agora restrições de igualdade e desigualdade:
L(x,λ,) = f(x) + Σ λj.hj(x) + Σ j.gj(x)

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

2 - Viabilidade das restrições de igualdade


hj(x*) = 0 1≤j≤m

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

Condições de KKT resultam em um sistema não-linear de n+m+r equações e incógnitas. Como


solução obtemos um “ponto de Kuhn-Tucker”. A dificuldade na solução está na identificação
das restrições ativas e inativas no ponto ótimo.

b) Condição suficiente para um mínimo local:


A matriz Hessiano do Lagrangeano H(L(x,λ)) deve ser positiva definida em x*.
Hxx(L(x*,)) positiva definida ou 2xxL(x*,)) positiva definida

Alternativa: é possível converter restrições de desigualdade gj(x) ≤ 0 em restrições de igualdade


hj(x) = 0 pela introdução de folgas positivas da seguinte forma:
gj(x) ≤ 0
gj(x) + s² = 0 em que s 1 é uma nova variável do problema
obtendo-se assim o caso analisado em II.3.2.

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:

max f’(x) = 4.x1 + x2 –50 min f(x) = –4.x1 – x2 +50


sujeito a: x2 ≥ 2.x12  sujeito a: g1(x) = 2.x12 – x2 ≤ 0
x2 ≤ x12 +20 g2(x) = –x12 + x2 –20 ≤ 0
(formato padrão de programação matemática)

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

 4  4.x1 .1  2.x1 . 2  0  4  17,89.1  8,94. 2  0


 1      0  1      0

 
x xb
1 2
Sistema de equações:  2  1 2

2.x1 .1  x2 .1  0  0  0


 x 2 .  x .  20.  0 0  0
 1 2 2 2 2

Solução: 1 = 1,45 e 2 = 2,45.

Portanto, o ponto xb é um ponto de Kuhn-Tucker.

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).

- Verificação de convexidade do problema analisando as funções individualmente:


0 0  0 
H f     '     f é convexa  x
0 0  0 
 4 0  4
H  g1      '     g1 é convexa  x
0 0 0 
 2 0   2
H g 2      '     g2 não é convexa  x
 0 0 0

A função objetivo é estritamente convexa.


A região viável não é convexa.
Portanto, qualquer ponto ótimo obtido é considerado um mínimo local até que se prove a
existência de um mínimo global. Neste problema não convexo, o mínimo global foi identificado
por inspeção gráfica.

- Verificação de convexidade do problema em xb analisando o Hessiano do Lagrangeano:

L(x,) = f(x) + 1.g1(x) + 2.g2(x)


= (–4.x1 – x2 +50) + 1.(2.x12 – x2) + 2.(–x12 + x2 –20)

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 

Portanto Hessiano é matriz positiva semi-definida em xb, confirmando apenas a localidade do


ótimo. A análise individual das funções é mais útil para verificar a convexidade do problema
do que pela análise do Hessiano do Lagrangeano.

27
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

II.4. PROCEDIMENTO DE DETERMINAÇÃO DE UM PONTO DE KUHN-TUCKER

O procedimento de determinação de um ponto de Kuhn-Tucker é também conhecido como


estratégia do conjunto de restrições ativas.

Considere o problema de otimização:


min f(x)
sujeito a: h(x) = 0 m equações
g(x) ≤ 0 r inequações
x  n n variáveis

Passo 1: Admita que não há restrições gi ativas.


Seja I = {i | gi(x) = 0} o conjunto dos índices de restrições ativas. Não existindo restrições ativas,
como quando o procedimento é iniciado, temos I =  e µi = 0 para i = 1, 2,... r.

Passo 2: Formule as condições de KKT e resolva para x, λj (1 ≤ j ≤ m) e µi (i  I):


m r
f  x     j .h j  x     i .g i  x   0
j 1 i 1
iI

hj(x) = 0 1≤j≤m
gi(x) = 0 iI (apenas restrições ativas)

Passo 3: Verifique se gi(x) ≤ 0 e se µi ≥ 0 para i = 1, 2,... r.


Se esta condição é satisfeita então pare, caso contrário vá para o passo 4.

Passo 4: Se algum gi(x) > 0 e/ou µi < 0 então:


a) Adicione a I os índices das restrições violadas (gi > 0) tal que elas tornem-se ativas.
b) Elimine de I o índice de uma inequação ativa µi < 0. Selecione aquela com multiplicador
µi mais negativo.
Volte para o passo 2.

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

Determinação dos gradientes:


 x  3  1  1  0
f  x    1  g1 x     g 2  x     g 3  x    
 x2  1 1   1 2  1

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

Passo 2: Condições de KKT


m r
 x  3 0 3
f  x     j .h j x     i .g i  x   f  x    1      x 
j 1 i 1  x2  1 0 1
iI

Passo 3: Verificação das restrições


g1(x) = –2 ≤ 0 1 = 0
g2(x) = ½ > 0 2 = 0 restrição g2 violada!
g3(x) = –1 ≤ 0 3 = 0

Passo 4: Tornar g2 uma restrição ativa, I = {2}.


g2(x) = x1 –½.x2 –2 = 0

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

Passo 3: Verificação das restrições


g1(x) = –1,4 ≤ 0 1 = 0
g2(x) = 0,0 ≤ 0 2 = 0,4
g3(x) = –1,2 ≤ 0 3 = 0

* 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* .

3) Comprovando que se trata de um mínimo global.


Cálculo do Hessiano da função objetivo:
 2 f 2 f 
 x x x1 x2  1 0 1
H x    21 1    autovalores: '    ,  x
 f  f  0 1 
2
1
 x x x x 
 2 1 2 2

Como os autovalores são positivos, a função objetivo é convexa.

Como a região viável é formada por funções lineares (segunda derivada nula), a região viável
é convexa.

Portanto a solução obtida é única, o mínimo global do problema.

4) Verificação de convexidade do problema analisando o Hessiano do Lagrangeano:

L(x,) = f(x) + 1.g1(x) + 2.g2(x) + 3.g3(x)


= (½.(x12 + x22) –3.x1 –x2) + 1.(–x1 + x2) + 2.(x1 –½.x2 –2) + 3.(–x2 )

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  

Portanto Hessiano é matriz positiva definida para qualquer valor de x, comprovando a


convexidade do problema.

30
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

III. OTIMIZAÇÃO MONOVARIÁVEL SEM RESTRIÇÕES

III.1. INTRODUÇÃO

O problema de otimização unidimensional (monovariável) sem restrições é descrito como:


min f(x)
sujeito a: x  1

Este tipo de problema ocorre nas seguintes situações:


a) Problemas inerentemente monovariáveis.
b) Conversão de problemas multivariáveis a problemas monovariáveis através da
substituição de restrições na função objetivo.
c) Etapa de determinação do incremento (k) na direção d(k) em algoritmos de otimização
multivariável (line search):

(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
D0
L0

parâmetros do modelo: Ct ($/m2) e Cs ($/m2) D


O problema em duas variáveis (L e D) pode ser convertido em um problema monovariável pela
substituição da restrição de igualdade na função objetivo:
.D 2 4.V
min Custo(D) = 2.Ct .  Cs .
4 D

Obtenção do ponto estacionário de Custo(D):


1
Custo  4.V .C s  3
*
4.V L C
 Ct ..D  C s . 2  0  D*        t
D D  .Ct   D  Cs
Convexidade:
 2Custo 8.V
 Ct .  C s . 3
D 2
D
A segunda derivada é positiva para D ≥ 0, ou seja, Custo(D) é uma função estritamente convexa
para D > 0. Portanto o mínimo é global.

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

III.2. MÉTODOS DE OTIMIZAÇÃO UNIDIMENSIONAL SEM RESTRIÇÕES

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

III.2.1. MÉTODOS DE REDUÇÃO DE INTERVALO

Os métodos de redução de intervalo consistem de duas etapas:


(1) Identificação dos limites: é obtido um intervalo onde está contido o mínimo x*.
(2) Refinamento do intervalo: reduz-se o intervalo até atingir a tolerância desejada.

Estes métodos são baseados no seguinte teorema:


Dado f(x) unimodal no intervalo x  [a,b] com um ponto mínimo x*.
Sejam dois pontos x1 e x2 tais que a < x1 < x2 < b.
Então:
(i) Se f(x1) > f(x2)  x*  [x1,b] (ii) Se f(x1) < f(x2)  x*  [a,x2]
f(x) f(x)

a x1 x2 b x a x1 x2 b x

1) Etapa de identificação dos limites (Método de Swann)


Dados x0 (ponto inicial) e  (incremento positivo):

a) Se f(x0–)  f(x0)  f(x0+)  x* > x0


fazer xk+1 = xk + 2k. k = 0, 1, 2, ...
até verificar f(xk–1)  f(xk)  f(xk+1)
então xk–1  x*  xk+1

b) Se f(x0–)  f(x0)  f(x0+)  x* < x0


fazer xk+1 = xk – 2k. k = 0, 1, 2, ...
até verificar f(xk+1)  f(xk)  f(xk–1)
então xk+1  x*  xk–1

c) Se f(x0–)  f(x0)  f(x0+)  x0– < x* < x0+ (limites identificados)

d) Se f(x0–)  f(x0)  f(x0+)  unimodalidade violada

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

k=0 f(x0) = f(30) = 4900


f(x0–) = f(25) = 5625
f(x0+) = f(35) = 4225
Como f(x0–)  f(x0)  f(x0+), então x* > x0
k=1 x1 = x0 + 1. = 35 f(35) = 4225
k=2 x2 = x1 + 2. = 45 f(45) = 3025 < f(35) x* > 35
k=3 x3 = x2 + 22. = 65 f(65) = 1225 < f(45) x* > 45
k=4 x4 = x3 + 23. = 105 f(105) = 25 < f(65) x* > 65
k=5 x5 = x4 + 24. = 185 f(185) = 7225 > f(105) x* < 185

Portanto x*  [65, 185]

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]

2) Etapa de refinamento do intervalo (Método da bisseção)

Algoritmo para determinar x* no intervalo [a,b] com tolerância :


ab
1. xm   f(xm)
2
L ba  se L < , então PARE.
L
2. x1  a   f(x1)
4
L
x2  b   f(x2)
4
3. Se f(x1) < f(xm): elimine o trecho [xm,b] fazendo b = xm
4. Se f(x2) < f(xm): elimine o trecho [a,xm] fazendo a = xm
5. Se f(x1) > f(xm) < f(x2): elimine os trechos [a,x1] e [x2,b] fazendo a = x1 e b = x2
6. Retorne para 1.

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]

As próximas iterações estão sumarizadas na Tabela abaixo:


Iteração a b L xm x1 x2 f(x1) f(xm) f(x2)
1 65,0 185,0 120,0 125,0 95,0 155,0 25,0 625,0 3025,0
2 65,0 125,0 60,0 95,0 80,0 110,0 400,0 25,0 100,0
3 80,0 110,0 30,0 95,0 87,5 102,5 156,3 25,0 6,3
4 95,0 110,0 15,0 102,5 98,8 106,3 1,6 6,3 39,1
5 95,0 102,5 7,5 98,8 96,9 100,6 9,8 1,6 0,4
6 98,8 102,5 3,8 100,6 99,7 101,6 0,1 0,4 2,4
7 98,8 100,6 1,9 99,7 99,2 100,2 0,6 0,1 0,0
8 99,7 100,6 0,9 100,2 99,9 100,4 0,01 0,02 0,15

Solução: 99,7  x*  100,6  x* = xm = 100,2  0,5


Em 8 iterações, a função objetivo foi avaliada 17 vezes.
8000
f (x )
7000

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

III.2.2. MÉTODOS BASEADOS EM DERIVADAS

A aplicação destes métodos supõe que f(x) seja diferenciável.

1) Método de Newton (ou Newton-Raphson)

Utiliza derivadas analíticas de f(x) para localizar o mínimo x*.


Como x* é ponto estacionário, tem-se que f’(x*) = 0.
A primeira derivada pode ser aproximada por uma série: f’(x)  f’(xk) + f”(xk).(x – xk) + ...
f ' xk 
Se para o mínimo x* tem-se f’(x*) = 0, então: x*  x k 
f "  xk 
Partindo de um ponto inicial x0 o método iterativo consiste em calcular xk (k = 1, 2, ...) até
verificar f’(xk)  0:
f '  xk 
xk 1  xk 
f "  xk 
Desvantagem do método: as iterações podem divergir, não atingindo o mínimo x*.

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

iteração x f(x) f’(x) f”(x)


1 10,000 201,60 39,84 4,03 200

2 0,119 134,43 -1128,48 18970,53


3 0,179 89,68 -501,26 5627,27 160

4 0,268 59,93 -222,35 1673,71


5 0,400 40,28 -98,17 502,29 120

6 0,596 27,56 -42,67 155,23 f (x )


f (x )

7 0,871 19,89 -17,62 52,46 80

8 1,207 16,17 -6,16 22,22


f' (x )
9 1,484 15,19 -1,33 13,79 40

10 1,580 15,12 -0,08 12,11 f'' (x )


11 1,587 15,12 0,00 12,00 0
0 2 4 6 8 10
x*
x* = 1,587 -40

f(x*) = 15,12 x

As funções f (x), f’(x) e f”(x) foram avaliadas 311 = 33 vezes.

2) Método Quasi-Newton (ou secante)

É similar ao método de Newton, mas utilizam-se as aproximações numéricas por diferenças


finitas para as derivadas de f(x) usando um pequeno passo h em x:
f x  h   f x  h 
f ' x  
2.h
f  x  h   2. f  x   f  x  h 
f " x  
h2

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 

EXEMPLO: obter o mínimo de f(x) = 2.x2 + 16/x partindo de x0 = 10 usando derivadas


numéricas com h = 1.10–5.

iteração x f(x) f(x+h) f(x–h) f’(x) f”(x)


1 10,000 201,60 202,00 201,20 39,84 4,03
2 0,119 134,43 124,02 146,75 -1136,50 19105,25
3 0,179 89,68 84,94 94,99 -502,83 5644,92
4 0,268 59,93 57,79 62,24 -222,66 1676,02
5 0,400 40,27 39,32 41,28 -98,23 502,59
6 0,596 27,56 27,14 27,99 -42,69 155,26
7 0,871 19,89 19,72 20,07 -17,62 52,46
8 1,207 16,17 16,11 16,23 -6,16 22,22
9 1,484 15,19 15,17 15,20 -1,33 13,79
10 1,580 15,12 15,12 15,12 -0,08 12,11
11 1,587 15,12 15,12 15,12 0,00 12,00

A função f(x) foi avaliada 311 = 33 vezes e atingiu-se o mesmo resultado obtido para o método
de Newton.

III.2.3. MÉTODOS DE APROXIMAÇÃO POLINOMIAL

A função objetivo f(x) é aproximada por um polinômio e este é usado na localização do mínimo
x* .

1) Método de estimativa quadrática

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)

Aplicando q(x) aos pontos x1, x2, x3, temos:


f(x1) = q(x1) = a0
f(x2) = q(x2) = a0 + a1.(x2 – x1) = f(x1) + a1.(x2 – x1)
f(x3) = q(x3) = f(x1) + [f(x2) – f(x1)].(x3 – x1)/(x2 – x1) + a2.(x3 – x1).(x3 – x2)

Determinam-se então os coeficientes do polinômio q:


a0  f  x1 
f x2   f x1 
a1 
x2  x1
1  f  x3   f  x1  f  x2   f  x1  
a2  .  
x3  x2  x3  x1 x2  x1 

36
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

O ponto estacionário do polinômio é dado por:


q x1  x2
 a1  a2 . x  x1   a2 . x  x2   0
a
 x  1
x 2 2.a2

Algoritmo do método de interpolação quadrática sucessiva:


0. Dado o intervalo [a,b] onde o mínimo x* está contido e x, a precisão para x.
1. Faça x1 = a e x2 = b.
2. Calcule x3 = (x1 + x2)/2 ou escolha um ponto x3, tal que x1 < x3 < x2
3. Determine f(x1), f(x2) e f(x3).
4. Determine fmin = min{ f(x1), f(x2), f(x3) } e xmin = x correspondente a fmin
5. Calcule, a1, a2, x e f( x )
xmin  x
6. Verificação: se E x    x , então PARE
x
7. Selecione o ponto xmin ou x com menor valor de f(x) e os dois pontos adjacentes a ele.
Atualize então os valores de x1, x2 e x3 e volte para 3.

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

As próximas iterações seguem conforme:


iter. x1 x2 x3 f(x1) f(x2) f(x3) x f( x ) Ex
1 1,00 5,50 10,00 18,00 63,41 201,60 1,05 17,47 4,5%
2 1,00 1,05 5,50 18,00 17,47 63,41 2,19 16,92 52,2%
3 1,05 2,19 5,50 17,47 16,92 63,41 1,69 15,18 29,5%
4 1,05 1,69 2,19 17,47 15,18 16,92 1,66 15,15 2,1%
5 1,05 1,66 1,69 17,47 15,15 15,18 1,61 15,12 3,2%
6 1,05 1,61 1,66 17,47 15,12 15,15 1,60 15,12 0,6%

Solução obtida: x = 1,60 com f( x ) = 15,12


A função f foi avaliada 9 vezes.

2) Método de aproximação cúbica

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.

Derivando o polinômio, temos:


q’(x) = a1 + a2.(x – x1) + a2.(x – x2) + a3.(x – x1)2 + 2.a3.(x – x1).(x – x2)

Aplicando aos pontos x1 e x2:


f(x1) = q(x1) = a0
f(x2) = q(x2) = a0 + a1.(x2 – x1)
f’(x1) = q’(x1) = a1 + a2.(x1 – x2)
f’(x2) = q’(x2) = a1 + a2.(x2 – x1) + a3.(x2 – x1)2
podem ser então determinados os coeficientes a0 a a3 e o ponto de mínimo para q.

O ponto ótimo da cúbica é então dado por:


 f '  x2   w  z 
x  x2   . x2  x1 
 f '  x 2   f '  x1   2 .w 

em que:

3. f  x1   f  x2 
z  f '  x1   f '  x2 
x2  x1

w  2 z 2  f '  x1 . f ' x2 

38
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Algoritmo do método de interpolação cúbica sucessiva:


0. Dado o intervalo [x1,x2] onde o mínimo x* está contido, f’ (tolerância para f’) e x
(precisão para x)
1. Determine f(x1), f(x2), f’(x1) e f’(x2)
2. Calcule z, w e x . Determine f( x ) e f’( x ).


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

Solução obtida: x = 1,59 com f( x ) = 15,12. As funções f e f’ foram avaliadas 10 vezes.

39
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

III.2. BUSCA UNIDIMENSIONAL EM OTIMIZAÇÃO MULTIVARIÁVEL

Diversos algoritmos de solução de problemas de otimização multivariável no espaço n tem


uma etapa de busca unidimensional em 1 (line search):

1) Em um ponto x(k), encontrar uma direção de busca d(k) (k).d(k)


2) Determinar o tamanho do passo (k) na direção d(k) x(k+1)
3) Fazer x (k+1) = x(k) + (k).d(k)
x(k)
A etapa de determinação do incremento (k) pode ser implementada através de algum algoritmo
de busca unidimensional.

EXEMPLO: Minimizar a função f(x1,x2) = x14 – 2.x12.x2 + x22 + x12 – 2.x1 +5


tendo como ponto inicial x = [1 2]T

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).

4.x 3  4.x1 .x2  2.x1  2


d  f    1 2 
  2.x1  2.x2 

Iteração 1:
x(0) = [1 2]T  f(x(0)) = 5
 d(1) = [4 –2]T

1 0  1 1   4  1  4. 


x x  .d     .    
 2  2 2  2. 

Faz-se então a minimização de z() = f(x(1)) para determinar (1)

min z() = (1+4.)4 – 2.(1+4.)2.(2–2.) + (2–2.)2 + (1+4.)2 – 2.(1+4.) +5

z() = 256.4 + 320.3 + 84.2 –20. +5


z’() = 1024. 3 + 960.2 + 168. –20
z”() = 3072.2 + 1920. + 168

Usando o método de Newton-Raphson partindo de 0 = 0 (passo nulo):

iteração  f() f'() f"()


1 0,0000 5,00 -20,00 168,0
2 0,1190 4,40 15,33 440,1
3 0,0842 4,12 1,57 351,5
4 0,0798 4,11 0,02 340,7
5 0,0797 4,11 0,00 340,5

1 1  4.  1,319


Portanto x    
2  2.  1,841

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

IV. OTIMIZAÇÃO MULTIVARIÁVEL SEM RESTRIÇÕES

O problema de otimização multivariável sem restrições é descrito como:

min f(x)
sujeito a: x  n

Os métodos de solução são baseados em duas principais classes:


1) Métodos de busca direta: úteis para funções ou gradientes descontínuos.
2) Métodos baseados em gradiente: mais eficientes que os anteriores.

IV.1. MÉTODOS DE BUSCA DIRETA

IV.1.1. ENUMERAÇÃO EXAUSTIVA

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

Trata-se de um método muito ineficiente, demandando elevado tempo computacional. É viável


apenas para problemas de pequena dimensão (poucas variáveis).

IV.1.2. OTIMIZAÇÃO EVOLUCIONÁRIA (EVOP)

Os algoritmos de otimização evolucionária usam estratégias derivadas de métodos de


planejamento experimental. Avalia-se f(x) de acordo com um padrão no espaço n, a partir de
um ponto base. Em seguida, o ponto com menor valor de f torna-se o ponto base e repete-se o
processo. Tratam-se de métodos de busca direta ineficientes e viável apenas para casos de
dimensões modestas.

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

IV.1.3. MÉTODO DE BUSCA SIMPLEX (OU SIMPLEX SEQUENCIAL)

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.

Em duas dimensões o simplex é um triângulo equilátero e em três dimensões o simplex é um


tetraedro regular.

Minimização de f(x) em duas dimensões: o vértice de maior valor de f(x) é descartado e um


novo vértice é gerado por reflexão.
x(2)
x(2)

x(4)
xc
x(1)
x(3) eliminar x(1)
x(3)
f(x(3)) < f(x(2)) < f(x(1))

Passos principais do método:


1) Geração de um simplex regular a partir de um ponto base e de um fator de escala.
2) Cálculo de um ponto refletido.

Algoritmo do método de busca simplex:

1) Geração de um simplex regular a partir de um ponto base e de um fator de escala


Dados x(0) (ponto base) e α (fator de escala: aresta da figura).

Como a dimensão de x é n, o número de vértices do simplex é n+1. Então devem ser


gerados n pontos além do base: x(i) com i = 1, 2, ... n.

As componentes dos pontos x(i) (i = 1, 2, ... n) são obtidas conforme:


 0 
i   x j  1 j i
x j   0  j = 1, 2, ... n
 j
x   j  i
2

 n 1  n 1   n  1 1 
em que: 1   .
 e  2   .

 n. 2   n . 2 

2) Escolha do ponto do simplex que será eliminado (refletido)


O ponto k a ser refletido é aquele com maior valor de f(x(i)), i = 0, 1, ... n.

3) Cálculo do ponto refletido


Seja x(k) o ponto a ser refletido.
1 n i 
Centróide dos pontos restantes com i  k: x c  . x
n i 0
ik

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.

EXEMPLO: Minimizar f(x) = (1 – x1)2 + (2 – x2)2


Ponto base inicial: x(0) = [0 0]T e fator de escala  = 2.

Como n = 2 temos: 1 = 1,9318 e 2 = 0,5176

Os dois outros pontos do simplex são então:


1  0  1,9318  1,9318 
x   
0  0,5176 0,5176
2  0  0,5176 0,5176
x   
 0  1,9318  1,9318 

Avaliando f para os vértices do simplex:


x2
x(2) f(x(0)) = 5,000
f(x(1)) = 3,066
f(x(2)) = 0,237

f(x(2)) < f(x(1)) < f(x(0))


x(1)

x(0) x1

Devemos então eliminar do simplex (refletir) o vértice x(0).


Centróide:
1 2 i  1 1
x c  . x  . x  x  
2 

1,225
 
2 i 0 2 1,225
i 0

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

f(x(2)) < f(x(0)) < f(x(1))


x(1)

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

f(x(2)) < f(x(0)) < f(x(1))

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.

Variante: Método de Nelder e Mead (busca simplex modificada)

Nesta importante variação do método de busca simplex, elimina-se a hipótese de poliedro


regular permitindo a contração ou expansão do poliedro ao longo da busca.

A equação usada para determinação do ponto refletido é:


x r  x  1  . x c  x
k  k 
 
onde o parâmetro  permite o controle sobre formato do novo simplex:
=1  reflexão regular (método simplex original)
–1 ≤  ≤ 1  contração do simplex.
>1  expansão do 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:

f(x(2)) < f(xr) < f(x(1))


=1

x(1)
f(xr) < f(x(2))
 = 1,5
xc
x(0) xr

x(2) f(x(1)) < f(xr) < f(x(0))


f(x(2)) < f(x(1)) < f(x(0))  = 0,5

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

IV.1.4. MÉTODO DE HOOKE-JEEVES

Para um problema de otimização com x  n, utilizam-se n direções linearmente independentes


para realizar a busca. Podem ser, por exemplo, as coordenadas. Dado um tamanho de passo
para cada direção, faz-se a busca exploratória em cada uma delas, avançando se verificada
melhora no valor de f.

É possível otimizar o tamanho do passo a cada iteração, usando métodos de otimização


unidimensional sem restrições. Outra possibilidade é reduzir o tamanho do passo nas
proximidades do ponto ótimo para aumentar a precisão da pesquisa.

Algoritmo do método de Hooke-Jeeves


1) Definir:
Ponto inicial x(0)
Incrementos ∆i para as direções i = 1, 2, ... n
Fator de redução do passo,  > 1
Parâmetro de terminação,  > 0

2) Realizar a busca exploratória, incrementando os passos ∆i nas n direções sucessivamente e


avançando se for verificada redução no valor de f(x) que se deseja minimizar.

3) Se a busca exploratória teve êxito, atingindo o ponto x(k) vá para o passo 5.


Caso contrário, vá para o passo 4

4) Verifique a terminação: se |∆i| ≤ , então PARE



Senão, reduza os incrementos:  i  i e volte para o passo 2.


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.

Inicia-se a busca exploratória ao redor de x(0), com f(x(0)) = 272.

Incrementando x1, mantendo x2 fixo:


x1 = –4 + 1 = –3  f(–3, –4) = 200 < 272, sucesso
Portanto x1 = –3

Incrementando x2, mantendo x1 fixo:


x2 = –4 + 1 = –3  f(–3, –3) = 153 < 200, sucesso
Portanto x2 = –3

46
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Novo ponto obtido: x(1) = [–3 –3]T

xp(2) = x(1) + (x(1) – x(0)) = [–2 –2]T  f(xp(2)) = 17

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

IV.2. MÉTODOS BASEADOS EM GRADIENTES

Os métodos de otimização multivariável sem restrições baseados em gradientes seguem o


seguinte algoritmo genérico:

1. Inicialização: x(0) (ponto inicial), εf (precisão para f) e εx (precisão para x).


2. Obtenção de uma direção de pesquisa d(k).
3. Cálculo do tamanho do passo de integração (line search)  (k) na direção d(k).
4. Estimativa do novo ponto de mínimo: x (k+1) = x(k) + (k).d(k)
5. Teste de convergência, por exemplo: | f(x(k+1)) − f(x(k)) | ≤ εf
|| x(k+1) − x(k) || ≤ εx
6. k = k +1 e retornar para 2

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

2) (k) deve ser tal que: f(x(k) + (k).d(k)) < f(x(k))

47
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

IV.2.1. MÉTODO DE NEWTON

O método de Newton no espaço n é uma generalização do método de Newton no espaço 1


(vide III.2.2). Ele se baseia em uma aproximação linear do gradiente de f(x) em um ponto x(k),
ou seja, uma aproximação quadrática de f(x), levando em conta sua “curvatura”.

Tomando a expansão da série de Taylor para f(x) no ponto x(k):


f(x)  f(x(k)) + H(f(x(k))).d(k)
em que d(k) = (x – x(k))

Como se deseja x tal que f(x) = 0, temos:


f(x(k)) + H(f(x(k))).d(k) = 0  d
(k )
     
H f x
k 1
  
.f x
k

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.

Algoritmos tipo-Newton (método genérico)

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

IV.2.2. MÉTODO STEEPEST DESCENT (OU GRADIENT DESCENT)

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.

Tomando a expansão da série de Taylor para f(x) no ponto x(k):


f(x)  f(x(k)) + f(x(k))T.d(k)
em que d(k) = (x – x(k))

Para que f(x) < f(x(k)): f(x(k))T.d(k) < 0

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))

O algoritmo é o mesmo para o método de Newton genérico fazendo B(k) = I.

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).

Exemplo de progresso no espaço 2 evidenciando o típico zigue-zague do método.

49
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Comparação entre as direções de busca dos métodos de Newton e steepest descent:

x* x*

x(k) x(k)
x(k+1)
x(k+1)

Steepest descent: Newton:


aproximação de 1a ordem em x(k) aproximação de 2a ordem em x(k)

IV.2.3. MÉTODO DE MARQUARDT

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

Ou ainda usando o parâmetro :


[B(k)]–1 = [H(f(x(k)))–1 + .I]

Uma estratégia comum é ajustar  ao longo do progresso da busca:


- Reduzir  se houver progresso na busca (Newton), f(x(k+1)) < f(x(k)).
- Aumentar  caso contrário (steepest descent), f(x(k+1)) ≥ f(x(k)).

Trata-se de um método robusto, já que combina vantagens dos métodos de Newton e steepest
descent.

IV.3. MÉTODOS QUASI-NEWTONIANOS

Os métodos quasi-Newtonianos (ou métodos de secante) evitam o cálculo da matriz Hessiano


através do uso de uma aproximação de H(f(x(k))) ou de [H(f(x(k)))]–1 que é atualizada a cada
iteração.

Pode-se iniciar com


B(0) = I Método steepest descent
B(0) = H(f(x(0))) Método de Newton
desde que B(0) seja simétrica e positiva definida.

50
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

A matriz é atualizada a cada iteração sem a necessidade de avaliar H(f(x(k))). As fórmulas de


atualização fornecem B(k) ou [B(k)]–1 simétrica e positiva definida.

A resolução de B(k).d(k) = –f(x(k)) ou de d(k) = –[B(k)]–1.f(x(k)) fornece a direção de busca d(k) a


cada iteração.

1) Fórmula DFP (Davidon-Fletcher-Powell, 1964)

 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 
dx x

2) Fórmula BFGS (Broyden-Fletcher-Goldfarb-Shanno, 1970)


T k  k 
 k 1 k  g .g B .d .d .B
T

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 
dx 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

A programação linear (LP, linear programming) consiste de métodos para resolução de


problemas lineares de otimização com restrições, nos quais a função objetivo é uma função
linear das variáveis de otimização x1, x2, ... xn e o domínio destas variáveis está definido por um
sistema igualmente linear de inequações e equações. Problemas desse tipo surgem com
freqüência, por exemplo, na produção ou distribuição de bens, transporte, programação de
produção e em estudos econômicos.

Forma padrão LP:


min z = cT.x
sujeito a A.x = b
x≥0
x  n

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

Inequações podem ser convertidas em equações de igualdade pela introdução de variáveis de


folga s, com s ≥ 0, da seguinte forma:
gj(x) ≤ 0  gj(x) + sj = 0
sj ≥ 0

EXEMPLO:
Mudança para o formato padrão LP:

max z = – x1 + 2.x2 – 3.x3 min z = x1 – 2.x2 + 3.x3


s.a.: x1 + x2 + x3 ≤ 7  s.a.: x1 + x2 + x3 + s1 = 7
x1 – x2 + x3 ≥ 2 x1 – x2 + x3 - s2 = 2
3.x1 – x2 – 2. x3 = –5 –3.x1 + x2 + 2. x3 = 5

Note que o número de graus de liberdade não se altera.

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.

O método Simplex tem, no entanto, o inconveniente de ser um algoritmo de tempo exponencial


(exponencial time algorithm), ou seja, dado um LP de dimensão n, então existe um número
positivo d tal que o algoritmo Simplex encontra a solução em um tempo máximo de d.2n.

Em função da natureza exponencial do método Simplex, diversos pesquisadores trabalharam


na busca de um método de resolução que fosse mais eficiente para problemas de grande
dimensão. O primeiro algoritmo de tempo polinomial (polinomial time algorithm, em que o
tempo máximo de resolução para um problema de dimensão n é a.nb, com a e b positivos) foi
o algoritmo elipsoidal, de 1979. Entretanto, este é um algoritmo muito pouco aplicado devido
sua baixa eficiência.

2) Métodos de ponto interior


Nos métodos de ponto interior, como o método de Karmarkar (1984), a busca da solução é feita
pelo interior da região viável, ao invés de ser feita pelos seus vértices, como no caso do método
Simplex. Estes métodos tendem a convergir em um número menor de iterações do que o
algoritmo Simplex, já que, para um número n suficientemente grande, d.2n > a.nb. Entretanto,
métodos de ponto interior requerem um formato padrão mais rigoroso do que o do método
simplex.

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).

Ideia básica dos métodos:


Simplex Ponto interior
x2 x2

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

Solvers comerciais de programação linear


Solver Caract. Plataforma Contato
Adaptive Optim. SBI PC M U http://www.quantumleap.us/Products/AdOpt.html
C-WHIZ SI PC U http://www.ketronms.com/cwhiz.shtml
CPLEX SBINQ PC U http://www.ilog.com/products/cplex/
FortMP SBIQ PC U http://www.optirisk-systems.com/products/fortmp.html
HI-PLEX S PC U i.maros@ic.ac.uk
HS/LP SI PC http://www.haverly.com
LAMPS SI PC U http://www.amsoft.demon.co.uk
LINGO, LINDO SBI PC U http://www.lindo.com
LOQO IQG PC U rvdb@princeton.edu
LPS-867 SI PC U http://www.aae.com/products/products.html
MINOS SG PC http://www.sbsi-sol-optimize.com/asp/sol_product_minos.htm
MINTO I U martin.savelsbergh@isye.gatech.edu
MOSEK SBQG PC M U http://www.mosek.com
MPSIII SIN PC U http://www.ketronms.com/products.shtml
OSL SBINQ PC U http://www.optimize.com/prodosl.htm
SAS/OR SINQG PC M U http://www.sas.com/rnd/app/or.html
Premium Solver SIQG PC http://www.solver.com
SOPT SBIQG PC U http://www.saitech-inc.com/Products/Prod-SOPT.asp
XA SI PC M U http://www.sunsetsoft.com
Xpress-MP SBIQ PC U http://www.dashoptimization.com
fonte: http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq.html (Setembro 2005)
Legenda para características: Plataformas:
S = Simplex PC = Microsoft Windows
B = Ponto Interior ou Barreira M = Macintosh OS
Q = Quadrático U = Unix/Linux
G = Geral Não-linear
I = MIP
N = Rede

Softwares comerciais para programação linear


Produto Plataforma Contato
AIMMS PC http://www.aimms.com
AMPL PC U http://www.ampl.com
ANALYZE PC http://www.cudenver.edu/~hgreenbe/imps/analyze.html
Aspen SCM PC U http://www.aspentech.com/includes/product.cfm?IndustryID=0&ProductID=141
DecisionPRO PC http://www.vanguardsw.com/decisionpro/
DATAFORM PC U http://www.ketronms.com/dataform.shtml
EZMod PC http://www.modellium.com/English/eng/Ezmod.htm
GAMS PC U http://www.gams.com
LINGO, LINDO PC U http://www.lindo.com
LP-TOOLKIT PC U http://www.eurodecision.fr/English/html/lp-toolkit.html
LPL PC http://www.virtual-optima.com/en/products.html
MathPro PC U http://www.mathproinc.com
MINOPT PC U http://titan.princeton.edu/MINOPT/
MODLER PC U http://www.cudenver.edu/~hgreenbe/imps/modler.html
MPL PC http://www.maximal-usa.com
O-Matrix PC http://www.omatrix.com/lpsolve.html
OML PC U http://www.ketronms.com/oml.shtml
OMNI PC U http://www.haverly.com
OPL Studio PC http://www.ilog.com/products/oplstudio/
Premium Solver PC http://www.solver.com
TOMLAB PC U M http://www.tomlab.biz/
Xpress-Mosel PC U http://www.dashoptimization.com/home/products/products_mosel.html
fonte: http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq.html (Setembro 2005)

54
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

V.1. MÉTODO SIMPLEX

V.1.1. PRINCÍPIOS

Seja o espaço convexo F = {x / A.x = b e x ≥ 0}


Sendo a função objetivo linear, o algoritmo explora o fato de que o ponto ótimo situa-se sempre
em algum dos pontos extremos (vértices) de F.

Definição: x  F é um ponto extremo se


x = .x1 + (1–).x2 com 0 < α < 1 e x1 e x2  F é valido apenas para x1 = x2 = x
ou seja, um ponto extremo não pode ser obtido como uma combinação linear de outros dois
outros pontos em F.

Seja o problema de programação linear com:


min z = cT.x
s.a.: A.x = b m equações, com b ≥ 0
x≥0 n variáveis

As restrições de igualdade podem ser escritas como:


xB 
A.x  B N .   B.x B  N .x N  b
x N 
em que B é uma matriz quadrada mm e a dimensão da matriz N é m(n–m).
O vetor de variáveis foi separado em dois: xB que contém m variáveis denominadas “básicas”
(dependentes) e o xN que contém n–m variáveis denominadas “não básicas” (independentes).

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.

Teorema 1: um ponto x em um problema LP é um ponto extremo se, e somente se,


xN = 0 com xB = B–1.b ≥ 0
ou seja, fazendo xN = 0 para quaisquer n–m variáveis não-básicas há um único xB correspondente
com m variáveis dependentes, caracterizando um vértice. Sendo xB ≥ 0, o vértice é viável, caso
contrário, trata-se de um vértice inviável do problema.

Prova: Admita que x não é um ponto extremo (vértice). Então:


x = .x1 + (1–).x2 com   [0, 1] e x1 e x2  F mas x1  x2
Para xN = 0:
xB é único  xB = B–1.b ≥ 0
xN = .xN1 + (1–).xN2 = 0 só é possível se xN1 = xN2 = 0 já que x ≥ 0.
então: x1 = x2. ▄

Teorema 2: A solução ótima de um problema LP situa-se num ponto extremo de F.


Prova: Admita que x* (a solução ótima) não seja um ponto extremo. Então, senso um ponto
interno de F, pode ser escrito como combinação linear de outros pontos:
x* = ∑ i.xi
em que xi  F, i ≥ 0 e ∑ i = 1

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.

De acordo com os Teoremas 1 e 2, uma forma de se resolver um problema de programação


linear seria de 1) determinar todos os vértices do problema e 2) selecionar o vértice viável com
o menor valor da função objetivo.

Na forma padrão, um problema LP com n variáveis e m restrições de igualdade tem como


número de total de vértices:
n n!
  
 m  m!.n  m !

Para obter um vértice viável: 1) selecionar um conjunto de m variáveis básicas ou dependentes


(escolher a base); 2) atribuir o valor zero para as n–m variáveis não-básicas ou independentes
(xN = 0); 3) calcular as variáveis básicas: xB = B–1.b ; 4) verificar se trata-se de um vértice viável:
xB ≥ 0.

EXEMPLO: Considere o problema em 2


max z = 2.x + 5.y
s.a.: x + 2.y ≤ 4
x–y≤4
x≥1
y ≥ –1

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

x+2.y = 4 A = [1 –1]T → z(A) = –3,0 (mínimo de z)


x=1
z(x,y) B = [3 –1]T → z(B) = 1,0
F
C = [4 0]T → z(C) = 8,0
C
x D = [1 3/2]T → z(D) = 9,5 (máximo de z)
y = –1
x–y = 4
A B

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

O vértice D é caracterizado por s1 = s3 = 0 já que está no limites das respectivas restrições, e


por yn = 0 pois y é positivo em D.
x(D)T = [ 1 1,5 0 0 4,5 0 2,5 ]
Ou seja, neste vértice x, yp, s2 e s4 são as m=4 variáveis básicas e yn, s1 e s3, s4 são as n–m=3
variáveis não-básicas nulas.

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

em que zred = (cNT – cBT.B–1.N) é denominado “gradiente reduzido” ou “custo relativo”

Teorema 3: Uma condição necessária e suficiente para que x* seja um valor ótimo é que
zred ≥ 0 ou –zred ≤ 0.

Prova: Aplicando as condições de KKT ao LP reduzido:


f + T.g = 0  zred + T.(–1) = 0
complementaridade: T ≥ 0
T.(–xN) = 0

Portanto T = zred = (cNT – cBT.B–1.N) ≥ 0 ▄

57
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

V.1.2. PROCEDIMENTO BÁSICO

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

1) Qual variável não-básica xN,j deve tornar-se básica?


Se x é um ponto não ótimo, então há pelo menos uma variável xN,j não-básica tal que:
(cBT.B–1.N – cNT)j > 0 ou seja, coeficiente positivo em –zred

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.

2) Qual variável básica xB,i deve deixar a base?


Como B.xB + N.xN = b então I.xB + B–1.N.xN = B–1.b

Fazendo Y = B–1.N e b' = B–1.b temos I.xB + Y.xN = b'


nm
Considerando uma equação i deste sistema: xB ,i   yi , j .xN , j  bi '
j 1

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'

Para garantir xB ≥ 0 (viabilidade):


xB,i = bi' – yi,j.xN,j ≥ 0
ou seja xN,j ≤ bi'/yi,j é o limite para o avanço de xN,j no caso de yi,j ser positivo.

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

Ou na forma de tabela (tableau):


xB1 xB2 ... xBm xN1 xN2 ... xNt
z –cBT –cNT 0
xB1
xB2
B N b
...
xBm

58
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Para preparar este tableau:


1) multiplique as restrições por B–1 para obter I.xB + B–1.N.xN = B–1.b
2) some cBT.[I.xB + B–1.N.xN = B–1.b] à linha da função objetivo.

xB1 xB2 ... xBm xN1 xN2 ... xNt b


T –1 T
z 0 cB .B .N – cN cBT.B–1.b
xB1
xB2
I Y = B–1.N b' = B–1.b
...
xBm

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

b) No caso de restrições de igualdade do tipo A.x = b (com b ≥ 0), introduz-se variáveis


artificiais q ≥ 0 no sistema de equações, em que qi serão variáveis básicas. Para ter q = 0 na
solução ótima, estas variáveis artificiais devem ser minimizadas com uma ponderação M na
função objetivo.
min z = cT.x min z = cT.x + MT.q min z’ = cT.x – MT.(A.x)
s.a.: A.x = b  s.a.: A.x + I.q = b  s.a.: A.x + I.q = b
x≥0 x, q ≥ 0 x, q ≥ 0

c) No caso de restrições de desigualdade do tipo A’.x ≥ b (com b ≥ 0), primeiro introduz-se a


variável de folga para ter A’.x – I.s = b obtendo A.x = b. Procede-se então com variáveis
artificiais, como no caso anterior.

V.1.3. ALGORITMO

min z = cT.x
s.a.: A.x = b A: m  n; b ≥ 0
x≥0 x: n  1

1) Particione a matriz A = [ B N ], selecionando uma base B = I para evitar o cálculo de B–1. A


base contém m variáveis básicas.
Particione também x = [ xB xN ]T e c = [ cB cN ]T.

2) Organize o tableau simplex:


xB1 xB2 ... xBm xN1 xN2 ... xNt b
z 0 cBT.B–1.N – cNT cBT.B–1.b
xB1
xB2
I Y = B–1.N b' = B–1.b
...
xBm

59
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

3) Examine os elementos do vetor –zred = (cBT.B–1.N – cNT) na primeira linha:


Se todos os elementos forem negativos, então PARE.
Caso contrário, selecione a variável xN,j com o maior valor positivo para entrar na base.

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

Este tableau corresponde ao vértice x = [ 0 0 ]T com s = [ 4 4 ]T e z’ = 0.

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

Pivotando a matriz obtém-se o novo tableau:


xA xB s1 s2 b
z 2 0 –1 0 –4
xB –1/2 1 1
/2 0 2
3 1
s2 /2 0 /2 1 6

que corresponde ao vértice x = [ 0 2 ]T com s = [ 0 6 ]T e z = –4.

60
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Seleciona-se x1 para entrar para a base e s2 para sair dela:

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

Pivotando a matriz obtém-se o novo tableau:


xA xB s1 s2 b
z 0 0 –5/3 –4/3 –12
2 1
xB 0 1 /3 /3 4
1 2
xA 1 0 /3 /3 4

que corresponde à solução ótima x* = [ 4 4 ] com s = [ 0 0 ]T e z = –12.


Neste vértice, a base é xA, xB e as variáveis não-básicas são s1 e s2.

O progresso do algoritmo pode ser observado graficamente (A  B  C):


x2
4
C

2
B z

A
0 2 4
x1

V.2. MÉTODO DE KARMARKAR

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 mn, 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.

A região viável do problema, de dimensão (n – m – 1), é formada pela interseção do subespaço


linear de dimensão n–m definido por A.x = 0 com o simplex dimensional Sx definido por 1.x =
1, com dimensão n–1. Por exemplo, para n = 3 variáveis e m = 1 equação de igualdade, temos
uma região viável de dimensão 1 (segmento de reta):

x3
1
Sx A.x=0

x0
x2
1

região
viável x1
1

Note que x0 = [ 1/3 1/3 1/3 ]T é o centro de Sx e pertence a região viável.

V.2.2. PROCEDIMENTO BÁSICO

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

V.3. EXEMPLOS DE APLICAÇÕES DE PROGRAMAÇÃO LINEAR

EXEMPLO 1: São disponíveis j = 1, 2, ... m tipos de alimentos, cada um com um custo


específico cj ($/porção-j). Deseja-se formular uma dieta que atenda restrições de nutrição. São
considerados i = 1, 2, ... n nutrientes cujos limites inferior e superior de ingestão diários são biinf
e bisup, respectivamente (unidade-i/dia). O conteúdo específico de nutrientes nos alimentos é qi,j
(unidade-i/porção-j). Como formular uma dieta que atenda aos requisitos diários de nutrientes
com mínimo custo?
Variáveis: Xj = quantidade diária a ser ingerida do alimento j (porção-j/dia).

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

EXEMPLO 2: Uma agência de correio requer diferentes quantidades mínimas de funcionários


em cada dia da semana, conforme tabela abaixo. Regras do sindicato impõem que cada
funcionário trabalhe cinco dias consecutivos e receba dois dias de folga, independente do dia
da semana. Qual o menor número de funcionários que a agência deve contratar?

Dia i Dia da semana Número mínimo de


funcionários
1 Segunda-feira 17
2 Terça-feira 13
3 Quarta-feira 15
4 Quinta-feira 19
5 Sexta-feira 14
6 Sábado 16
7 Domingo 11
Modelagem:
Variáveis: xj = número de funcionários que iniciam o trabalho no dia i (i = 1, 2, ... 7)
Objetivo: minimizar N, número total de funcionários
Restrições: ter o número mínimo de funcionários disponíveis em cada dia da semana, sendo
que cada funcionário trabalha 5 dias consecutivos.

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.

Como maximizar o lucro da companhia?

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.

EXEMPLO 4: Uma companhia de investimentos deve determinar a estratégia financeira para


os próximos três anos. Atualmente (ano 0), $ 100.000 estão disponíveis para investimento. As
opções são os investimentos A, B, C, D, E. O fluxo de caixa associado ao investimento de $ 1,0
em cada uma das opções é dado na tabela abaixo. Por exemplo, $ 1,0 investido em B requer
uma saída de caixa de $ 1,0 no ano 1 e retorna $ 0,5 e $ 1,0 nos anos 2 e 3.

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.

Como maximizar o capital no ano 3?

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$)

Objetivo: maximizar o capital disponível no ano 3: 1,0.B + 1,9.D + 1,5.E+ 1,08.S2

Restrições: Capital investido no ano t = Capital disponível no ano t


ano 0 A + C + D + S0 = 100
ano 1 B + S1 = 0,5.A + 1,2.C +1,08.S0
ano 2 E + S2 = 1,0.A + 0,5.B +1,08.S1

67
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Restrição: portfólio diversificado


A, B, C, D, E ≤ 75

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.

EXEMPLO 5: Problema e transporte (transportation problem). Há um conjunto de i = 1, 2, ...


n fornecedores e um conjunto de j = 1, 2, ... m clientes. No período, cada cliente tem uma
demanda dj (ton) e cada fornecedor tem uma disponibilidade si (ton). O custo específico para o
fornecedor i atender o cliente j é cij ($/ton). Como atender às demandas com mínimo custo?

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

VI. PROGRAMAÇÃO NÃO-LINEAR

O problema NLP pode ser representado da seguinte forma:

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

dij ≥ (Ri + Rj) yj


Rj

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

Neste exemplo, a função objetivo e a restrição de igualdade não são lineares.

Teste do modelo: cinco cilindros com raios Ri = 3, 4, 5, 6 e 7 cm

Ó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

VI.1 CONDIÇÕES DE OTIMALIDADE PARA O NLP

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.

As condições de Karush-Kuhn-Tucker (KKT) são as necessárias para caracterizar um mínimo


local:

(a) Dependência linear dos gradientes


     
m r
f x    j .h j x    j .g j x  0
* * *
(1)
j 1 j 1

(b) Viabilidade
hj(x*) = 0 1≤j≤m (2)

(c) Condições de complementaridade


j.gj(x*) = 0 1≤j≤r (3a)
j ≥ 0 requisito para minimização (3b)

Em (1), λj são os multiplicadores de Lagrange (correspondentes às equações) e μj são


multiplicadores de Kuhn-Tucker (correspondente às inequações). Note que em (3b) os
multiplicadores de Kuhn-Tucker são restritos a serem não-negativos. Também em (3a) as
condições de complementaridade impõem um valor nulo de μi para as restrições inativas (i.e.,
gi(x*) < 0) e em geral um valor não zero no caso de restrições ativas (i.e., gi(x*) = 0).

VI.2. ALGORITMOS NLP

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.

Ainda, outra forma de se distinguir os diferentes algoritmos é quanto ao uso da função


Lagrangeano. Alguns (método das penalidades, de barreiras e método generalizado dos
gradientes reduzidos) usam a função Lagrangeano implicitamente, enquanto outros trabalham
diretamente com esta (método da projeção do Lagrangeano, função Lagrangeano aumentada,
algoritmos de programação quadrática sucessiva SQP) (Gill et al., 1988).

Os algoritmos mais eficientes resolvem o problema NLP determinando diretamente um ponto


que satisfaça às condições de KKT. Como estas condições envolvem gradientes da função
objetivo e das restrições, estes devem ser introduzidos pelo usuário de forma analítica ou através
do uso de aproximações numéricas por diferenças finitas. A última opção envolve grande
esforço computacional para problemas com um grande número de variáveis.

As principais famílias de métodos são:


- Programação linear sucessiva (SLP),
- Métodos de gradiente reduzido (GRG), e
- Programação quadrática sucessiva (SQP).

Comparação entre métodos NLP (Edgar, Himmelblau, Ladson, 2001)


Método Vantagens relativas Desvantagens relativas
SLP Amplamente usado na prática. Convergência lenta com ótimo fora de
Converge rápido com ótimo em vértice. vértice.
Pode ser aplicado a problemas grandes. Viola restrições não-lineares até a
Não necessita satisfazer h=0 a cada iteração. convergência.
Aproveita algoritmos LP.
GRG Robusto. Precisa satisfazer h=0 a cada iteração.
Versátil, especialmente para problemas
irrestritos ou com restrições lineares.
Ao atingir solução viável, permanece na região
viável melhorando a solução.
SQP Menor número de cálculos de funções e Viola restrições não-lineares até a
gradientes. convergência.
Não necessita satisfazer h=0 a cada iteração.

VI.2.1. PROGRAMAÇÃO LINEAR SUCESSIVA (SLP)

A programação linear sucessiva, também conhecida como sequencial ou recursiva, consiste em


formular e resolver a cada iteração k um problema de programação linear (LP) baseado em
aproximações em série de Taylor de primeira ordem da função objetivo f(x) e das restrições
h(x) e g(x) no ponto x(k):

f(x)  f(x(k)) + f(x(k)).(x – x(k))


hj(x)  hj(x(k)) + hj(x(k)).(x – x(k))
gj(x)  gj(x(k)) + gj(x(k)).(x – x(k))

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:

d(k) = x(k+1) – x(k)

ou rejeita a direção e reduz os limites de passo, repetindo o procedimento.

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

Resolvendo o LP sem restrição de passo, tem-se x(1) = [11/9 , 8/9]T


A direção é d(0) = x(1) – x(0) = [–7/9 , –1/9]T

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    max0, 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).

VI.2.2. MÉTODOS DE GRADIENTE REDUZIDO (GRG)

Nos métodos de Gradiente Reduzido, a ideia básica é a de resolver uma sequência de


subproblemas com restrições generalizadas, em que os subproblemas são resolvidos por
eliminação de variáveis. Em programação não-linear, é usual referenciá-los como Gradiente
Reduzido Generalizado (GRG), pois o Gradiente Reduzido se refere à programação linear LP.

73
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

O NLP é reformulado pela introdução de variáveis de folga, que convertem as inequações em


equações; isto é:
min f(x) min f(x) min f(x)
s.a: h’(x) = 0  s.a: h’(x) = 0  s.a: h(x) = 0
g(x) ≤ 0 g(x) + s = 0

Considere inicialmente restrições lineares:


min f(x)
s.a: A.x = b

 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)]

As restrições lineares ficam:


 y
 
A.x  B C .   b (1)
u 

Considere dois pontos x e x(k), em que Δx = x – x(k) e que satisfaçam (1):


k 
 y   y  y 
x      k  
 u   u  u 

Então B.y + C.u = b


B.y(k) + C.u(k) = b

Assim: B.Δy + C.Δu = 0


Δy = −B −1.C.Δu

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

x       .u  Z .u (2)


 u   I 

Seja a função objetivo f(x). Em série de Taylor no ponto x(k), tem-se:


f(x) = f(x(k)) + f(x(k))T.Δx + ½.ΔxT.2f(x(k)).Δx + ... (3)

Substituindo (2) em (3):


f(u) = f(x(k)) + f (x(k))T.Z.Δu + ½.ΔuT.ZT.2f (x(k)).Z.Δu + ... (4)

74
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Nesta equação, definem-se: grT = f (x(k))T.Z gradiente reduzido


Hr = ZT.2f (x(k)).Z Hessiano reduzido

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

Sistema linear com (n–m) variáveis e equações.

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

dh    .dy    .du  0  dy    .  .du


 y   u   y   u 

Assim:
T 1
 f   h   h   f 
T

df    .  . .du    .du


 y   y   u   u 
 f T  f   h   h 
T 1

df       .  .  .du
 u   y   y   u 

Então:
T 1
 f   f   h   h 
T

      .  . 
T
gr
 u   y   y   u 

Esquema do algoritmo GRG

0) Partindo de min f(x) sujeito a A.x = b , particione A = [ B C ] e xT= [ yT uT ] com B = base e


y = variáveis básicas. Contador k = 0;

75
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

1) Escolher x(0) viável tal que A.x = b;

2) Calcular f(x(k)), f x     


k f
y

 uf

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.

6) Atualize Hr(k+1) via BFGS, faça k = k+1 e volte para (2).

VI.2.3. PROGRAMAÇÃO QUADRÁTICA SUCESSIVA (SQP)

O algoritmo SQP tem como ideia básica resolver a cada iteração o seguinte subproblema
quadrático (QP):

min f(x(k))T.d + ½.dT.B(k).d


s.a.: h(x(k)) + h(x(k))T.d = 0
g(x(k)) + g(x(k))T.d  0

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:

x(k+1) = x(k) + .d

em que o comprimento do passo α é determinado de modo a reduzir uma função penalidade


que tem como objetivo balancear a melhoria na função objetivo e a violação das restrições.

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.

Esquema do Algoritmo SQP (Wilson, Han, Powell)

1) Faça k = 0. Estime o Hessiano do Lagrangeano B(0) = I. Inicialize x com x(0).

2) Calcule f(x(k)), h(x(k)), g(x(k))

76
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Idem para f(x(k)), hi(x(k)), gi(x(k))

3) Resolva o problema de programação quadrática para se obter a direção d e os multiplicadores


λ(k+1) e μ(k+1).

4) Verifique a convergência. Se L x , k  k 1



, k 1   , então PARE.
Senão faça x(k+1) = x(k) + .d , em que α pode ser determinado via line-search.

5. Atualize o Hessiano do Lagrangeano via BFGS.


Faça k = k+1 e volte para (2).

VI.3. DIRETRIZES PARA FORMULAÇÃO DE MODELOS NLP

Modelo NLP baseados em equações:


min f(x)
s.a.: h(x) = 0
g(x)  0
x  n

É 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

2) Tentar fornecer uma boa estimativa inicial x(0).

3) Formular restrições lineares, sempre que possível.


x1
Exemplo:  0,2 pode ser convertido em 0,8.x1  0,2.x2  0 , linear.
x1  x2

4) Evitar descontinuidades, limitando as variáveis.


Exemplo: f(x) = 1/x + log(x) x ≥ 0,01 para evitar cálculo em x = 0.

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.

6) Eliminar variáveis por substituição de equações apenas:


- Se não houver aumento de não-linearidades nas restrições.
- Se as não linearidades puderem ser colocadas na função objetivo.
Exemplo: Eliminando-se x2, tem-se:
min x1 + 2.x2 min x1 + 4/x1
s.a.: x1.x2 = 2 s.a.: 0 ≤ x1 ≤ 2

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.

7) Normalizar os escalonar as variáveis e as expressões algébricas (f, h e g) para evitar ordens


de grandeza extremas (muito pequenas ou muito elevadas) que possam levar a erros numéricos:
Exemplo: Neste sistema, a variável x pode atingir uma ordem 103 e a expressão g(x) ≤ 0 pode
atingir 106:
 x 2  x  2000  0

0  x  1000
substituindo a variável x por 1000.y, tem-se a variável normalizada:
106. y 2  103 y  2000  0

0  y  1
dividindo g(x) ≤ 0 por 105, tem-se a expressão escalonada para uma ordem de 101:
10. y 2  0,01. y  0,02  0

0  y  1
8) Explorar propriedades globais do modelo quando houver a possibilidade.
- Problema é convexo?
- Problema é linear?
- Problema é quadrático?

9) Explorar a estrutura do problema se possível.


Exemplo:
min z = w.x – 3.w.y
s.a.: x.w + y – w².y = 5
4.x – 5.w.y + w.x  7
x, y, w  
Se a variável w for fixada, tem-se um LP. Isso permitiria resolver LPs para diferentes valores
de w, garantindo ótimo global em cada solução.

10) Testar diferentes solvers, quando disponíveis.

11) Ler o manual do solver em uso.

VI.4. MODELOS COM FUNÇÕES IMPLÍCITAS (CAIXA PRETA)

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
uU

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)

Aplicações deste tipo de problema:


- Engenharia Química: simuladores de processos, pacotes de fluidodinâmica
computacional (CFD).
- Engenharia Mecânica e Civil: elementos finitos.
- Engenharia Elétrica: simuladores de circuitos elétricos.

VI.5. SOFTWARES DISPONÍVEIS PARA NLP

Os diversos métodos apresentados na seção anterior possuem várias implementações oferecidas


na forma de sub-rotinas, bibliotecas e até mesmo dentro de ambientes de programação (ex:
Matlab, GAMS). Na Tabela que segue são listados alguns solvers de programação não linear
oferecidos comercialmente, assim como o método de otimização empregado. A eficiência e
robustez destes pacotes depende dos detalhes de implementação e só é possível compará-los a
partir de testes em exemplos benchmark (problemas padrão de referência).

É possível, no entanto, comparar os métodos de otimização com base na estratégia de busca


adotada por cada um deles. Os métodos baseados na função penalidade são considerados
obsoletos. Além de não possuírem características rápidas de convergência, há problemas na
implementação dos parâmetros das funções penalidade e/ou barreira.

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 de Gradiente Reduzido possuem bom desempenho em problemas que envolvam


um número significativo de restrições lineares, e em casos onde as derivadas analíticas possam
ser supridas para as funções não lineares. Tipicamente, podem resolver problemas com várias
centenas de restrições e variáveis. Uma propriedade interessante é que se reduz ao método
simplex de programação linear quando as funções forem todas lineares. Comparativamente ao
SQP, requer um maior número de avaliações de funções, porém com um menor tempo
computacional por iteração.

Os métodos SQP apresentam dificuldades na aplicação para problemas em larga escala uma
vez que a matriz B(k) de dimensão nn, é 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).

Tabela: Softwares NLP


Fonte Produto Método Contato
Aptech Constr. Max. Likelihood SQP http://www.aptech.com
Constr. Optimization SQP
ARKI CONOPT GRG http://www.conopt.com
Boeing SPRNLP SQP http://www.boeing.com
Harwell Subroutine VF02AD SQP http://www.cse.scitech.ac.uk/
Library (HSL) nag/hsl/
ILOG Numerica Busca global http://www.ilog.com
INRIA Direct Opt. Control SQP
LINDO Systems LINGO GRG http://www.lindo.com
GINO GRG
Prof. L. Lasdon GRG2 GRG http://www.utexas.edu/
Univ. of Texas PSLP SLP courses/lasdon/
Mathworks NAG Toolbox vários http://www.mathworks.com
Opt. Toolbox vários
National Energy Center VMCON SQP
Argonne
NAG NAG Libraries vários http://www.nag.co.uk
Num Opt Ctr OPTIMA SQP
Opt. Methods GRG2 GRG
INTPT Ponto interior
SLP SLP
SQP SQP
Rutherford Appleton LANCELOT Região conf. / lag. gould@cerfacs.fr
Laboratory aumentado
SAITECH SOPT SQP / Ponto interior http://www.saitech-inc.com
K. Schittkowski DFNLP Newton methods Klaus.Schittkowski@uni-
NLPQL SQP bayreuth.de

Stanford Office of LSSOL Conjuntos ativos http://www.stanford.edu/


Technology Licensing MINOS GR group/SOL/
NPSOL SQP
A.L. Tits / ISR FFSQP/CFSQP SQP http://www.aemdesign.com
VMA Eng DOC/DOT vários
Visual Num IMSL vários support@houston.vni.com

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

GAMS General Algebraic Modeling System


http://www.gams.com
AIMMS Optimization Software for Operations Research Applications
http://www.aimms.com
AMPL Modeling Language for Mathematical Programming
http://www.ampl.com
What’sBest! Excel Add-In for Linear, Non-linear, and Integer Modeling
http://www.lindo.com

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.

VI.6. EXEMPLO DE VALIDAÇÃO DE SOLVERS NLP

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.

Alguns dos problemas padrão utilizados:

- Exemplo 1 (Biegler & Cuthrell, 1985)


min x2 Caracterização das funções:
s.a. 1 + x1 – x2  0
2 - função objetivo: linear
1 – x1 – x2  0
2 - restrições: quadráticas e lineares. Existem restrições de
x2  ½ limites.
- continuidade: todas as funções e seus gradientes e Hessianos
são contínuos sobre o espaço de definição do problema (Χ0).

Estatística do problema: Estimativas iniciais e parâmetros: Soluções conhecidas:


Χ0 = 2 xa = [0 0]T - Global:
NVAR = 2 xb = [24 5]T x = [0 1]T
NEQ = 0 xc = [1 1]T
NIQ = 3
NTERM = 8 εP: 5.10–5
DD = 5 ITMAX: 300
GD = 2

81
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

- Exemplo 6 (Ryoo & Sahinidis, 1995)


min x1 + x2 Caracterização das funções:
s.a. x12 + x22  4 - função objetivo: linear
x1 + x2  1
2 2 - restrições: quadráticas e lineares. Existem restrições de
x1 – x2  1 limites.
x2 – x1  1 - Continuidade: todas as funções e seus gradientes e Hessianos
–2  x1  2 são contínuos sobre o espaço Χ0.
–2  x2  2

Estatística do problema: Estimativas iniciais e parâmetros: Soluções conhecidas:


Χ0 = 2 xa = [0 0]T - Global:
NVAR = 2 xb = [–2 –2]T x* = [–2 –2]T
NEQ = 0 xc = [+2 +2]T
NIQ = 8 - Local:
NTERM = 18 εP: 5.10–5 x* = [1 0]T
DD = 15 ITMAX: 300 x* = [0 1]T
GD = 5

Região viável para o problema do exemplo 6 (Gouvêa, 1997)

Tabela 3: Comparação entre solvers para resolução de 24 problemas padrão.

Exemplo x(0) MISQPSOL NLPQL MATLAB GINO MINOS CONOPT


1 xa 9 (xg) 4 (xg) 17 (xg) (xg) 1 (xg) 3 (xg)
1 xb 8 (xg) 12 (xg) nc (xg) 5 (xg) 18 (xg)
1 xc 2 (xg) 4 (xg) 20 (xg) (xg) 1 (xg) 9 (xg)
2 xa 20 (x1) nc nc nc nc nc
2 xb 5 (x2) 6 (x2) 19 (x2) (x2) 35 (x2) 4 (x2)
2 xc 5 (x1) 6 (x1) 19 (x1) (x1) 34 (x1) 6 (x1)
2 xd 4 (xM) 5 (xM) 17 (xM) (xM) 41 (x1) 4 (xM)
3 xa 5 (x2) nc nc nc 59 (x1) nc
3 xb 6 (x2) 6 (x1) 25 (xg) nc 13 (x1) 14 (x1)
3 xc 7 (x3) 6 (x1) 25 (x1) (x1) 15 (x1) 14 (x1)
3 xd 9 (x2) 8 (x4) 37 (x4) (x2) 20 (x4) 18 (x4)
3 xe 7 (x1) 9 (x1) 42 (x1) nc 17 (x1) 22 (x1)

82
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

3 xf 7 (x1) 9 (x1) 25 (x1) nc 12 (x1) 10 (x1)


3 xg 7 (x2) 9 (x1) 31 (x1) nc 12 (x1) 20 (xg)
4 xa 5 (xg) 8 (xg) 22 (x1) (xg) 4 (xg) 6 (x1)
4 xb 6 (xg) 5 (xg) 14 (xg) (xg) 16 (xg) 2 (x1)
5 xa 6 (xg) nc nc nc nc nc
5 xb 5 (xg) 4 (xg) 18 (xg) (xg) 5 (xg) 12 (xg)
5 xc 5 (xg) 5 (xg) 18 (xg) (xg) 1 (xg) 12 (xg)
6 xa 6 (x1) 6 (xg) 35 (xg) (x1) 14 (xg) nc
6 xb 6 (xg) 7 (xg) 13 (xg) (xg) 6 (xg) 33 (xg)
6 xc 5 (xg) 6 (x1) 14 (x1) (x1) 9 (xg) 9 (x1)
7 xa 66 (xg) nc nc (xg) 10 (xg) nc
7 xb 32 (xg) nc 31 (x1) (xg) 10 (xg) nc
8 xa 21 (xS) nc nc nc nc 2 (xg)
8 xb 2 (xg) 3 (xg) 12 (xg) (xg) nc 3 (xg)
8 xc 2 (xg) 2 (xg) 7 (xg) (xg) nc 2 (xg)
9 xa 20 (xg) 16 (xg) 53 (xg) (xg) 7 (xg) 30 (xg)
9 xb 15 (xg) 14 (xg) 34 (xg) (xg) 7 (xg) 28 (xg)
10 xa 28 (x1) 18 (xg) 57 (x2) nc nc
10 xb 23 (x3) 17 (xg) 115 (xg) (x2) nc nc
10 xc 6 (x2) 18 (xg) 130 (xg) (x2) 12 (xg) nc
11 xa nc nc nc nc nc 220 (xg)
12 xa 118 (xg) nc 89 (xg) (xg) 15 (xg) nc
12 xb 77 (xg) nc 82 (xg) (xg) 13 (xg) (xg)
12 xc 282 (xg) nc 74 (xg) (xg) 17 (xg) 80 (xg)
12 xd 28 (xg) nc nc (xg) 15 (xg) 55 (xg)
12 xe 128 (xg) nc nc nc nc nc
12 xf 32 (xg) nc nc (xg) 21 (xg) nc
12 xh 107 (xg) nc nc nc nc 90 (xg)
13 xa 25 (xg) nc 41 nc 9 (x1) 24 (x1)
14 xa 52 (xg) 12 (xg) 20 (xg) nc 4 (xg) 14 (xg)
14 xb 14 (xg) 18 (xg) 26 (xg) nc 5 (xg) 21 (xg)
14 xc 33 (xg) 20 (xg) 26 (xg) nc 5 (xg) 28 (xg)
14 xd 105 (xg) 21 (xg) 32 (xg) nc 13 (xg) 42 (xg)
15 xa 9 (xg) 25 (xg) 187 (xg) nc 7 (xg) 143 (xg)
16 xa 18 (xg) 71 (xg) 297 (xg) nc 8 (xg) 52 (xg)
17 xa 40 (xg) nc nc nc 17 (xg) 104
17 xb 82 (xg) nc nc nc 15 (xg) nc
18 xa 3 (xg) 3 (xg) 28 (xg) (xg) 7 (xg) 9 (xg)
18 xb 4 (xg) 5 (xg) 16 (xg) (xg) 5 (xg) 21 (x2)
18 xc 3 (x1) 3 (x1) 8 (x1) (x1) 4 (x1) 6 (x1)
18 xd 4 (x2) 3 (x2) 10 (x2) (x2) 5 (x2) 6 (x2)
19 xa 7 (x1) nc 72 (xg) (xg) nc 18 (xg)
19 xb 6 (x1) 5 (xg) 16 (xg) (xg) 8 (xg) 27 (xg)
20 xa 5 (xg) nc nc nc 4 (x1) 2 (x1)
20 xb 4 (xg) 4 (xg) 13 (xg) (xg) 4 (x1) 4 (x1)
21 xa 10 (xg) 9 (xg) 23 (xg) (xg) 6 (xg) 26 (xg)
21 xb 7 (xg) 7 (xg) 28 (xg) (xg) 7 (xg) 14 (xg)
21 xc nc 9 (xg) 23 (xg) (xg) 7 (xg) 30 (xg)

83
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

22 xa 22 (xg) 5 (xg) 36 (xg) (xg) nc nc


22 xb 61 (xg) 134 (xg) 13 (xg) 6 (xg) nc
22 xc 8 (xg) 34 (xg) 290 (xg) (xg) nc nc
22 xd 6 (xg) 41 (xg) 13 (xg) 5 (xg) nc
23 xa 8 (xg) 6 (xg) 19 (xg) (xg) 12 (xg) 21 (xg)
24 xa 60 (xg) 19 (xg) 72 (xg) (xg) 3 (xg) 4 (xg)

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.

- O número de iterações em cada um dos problemas, varia bastante dependendo do solver.


Entretanto, como os métodos utilizados não são os mesmos, um menor número de iterações
pode não significar um menor tempo computacional.

84
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

VII. OTIMIZAÇÃO DE PROBLEMAS DISCRETOS

Um problema de programação matemática envolvendo variáveis reais contínuas e variáveis


discretas pode ser expresso como

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

Se as funções f, h e g são lineares, tem-se um problema MILP (Mixed Integer Linear


Programming / Programação Linear Interna Mista). Caso exista alguma não linearidade no
problema, tem-se um MINLP (Mixed Integer Non Linear Programming / Programação Não-
Linear Interna Mista). Caso existam apenas variáveis discretas, tem-se um IP (Integer
Programming / Programação Inteira).

Problemas lineares (MILP) podem ser representados em forma matricial/vetorial:

min f(x,y)
x, y
sujeito a: h(x,y) = 0
g(x,y) ≤ 0
x  X
y  Y

VII.1. REPRESENTAÇÃO DE VARIÁVEIS DISCRETAS

A forma usual de modelar variáveis discretas em programação matemática é através de


variáveis binárias y  {0,1}d , sendo

yi = 1 se proposição Y for verdadeira


0 caso contrário

É 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

Modelagem usando variáveis binárias:


Dtubo = (½).y1 + (¾).y2 + (1).y3 + (1 ¼).y4
y1 + y2 + y3 + y4 = 1
com Dtubo  1
y  {0,1}4

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

VII.2. MODELAGEM DE DECISÕES DISCRETAS

VII.2.1. RESTRIÇÕES DE MÚLTIPLA ESCOLHA

a) Selecionar exatamente um elemento de uma lista:


 yi  1
i

b) Selecionar pelo menos dois elemento de uma lista:


 yi  2
i

c) Selecionar no máximo um elemento de uma lista:


 yi  1
i

VII.2.2. MODELAGEM DE RESTRIÇÕES LÓGICAS

a) Condição / Implicação – Se ... então... Y1  Y2


Se Y1 for verdadeiro, então Y2 é verdadeiro
Ex: Se o produto premium for produzido, então necessito de matéria prima adicional
Uma restrição matemática pode ser deduzida a partir da tabela verdade

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

Exemplo: Se o reator A for selecionado, então não selecionar o separador B: YA  YB


yA yB YA  YB Esta condição é modelada pela seguinte equação:
0 0 V y A  yB  1
0 1 V
1 0 V
1 1 F

VII.2.3. LÓGICA PROPOSICIONAL E PROGRAMAÇÃO MATEMÁTICA

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.

Exemplo: Os produtos B1, B2 e B3 fazem parte da linha básica, enquanto os produtos L1 e L2


fazem parte da linha luxo. No planejamento de quais produtos produzir, devem ser escolhidos
pelo menos um produto básico e pelo menos um produto luxo.
Esta condição pode ser expressa como uma conjunção de duas disjunções:
(YB1YB2YB3)(YL1YL2)
em que Yi = produzir o produto i

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:
(YB1YB2YB3)  yB1  yB 2  yB 3  1
(YL1YL2)  y L1  y L 2  1
Estas duas inequações são suficientes para modelar a decisão desejada.

Propriedades de expressões lógicas:


Comutatividade Distributividade
(YAYB) = (YBYA) YA(YBYC) = (YAYB)(YAYC)
(YAYB) = (YBYA) YA(YBYC) = (YAYB)(YAYC)

Associatividade Teorema de De Morgan


YA(YBYC) = (YAYB)YC = (YAYBYC) (YAYB) = (YAYB)
YA(YBYC) = (YAYB)YC = (YAYBYC) (YAYB) = (YAYB)

Equivalência para operadores lógicos não básicos:

Ou exclusivo YA  YB = (YAYB)(YAYB)
Se, então YA  YB = (YAYB)
Se, e somente se YA  YB
(YAYB)(YBYA) = (YAYB)(YBYA)

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

yA yB (YAYB) (YAYB) (YAYB)(YAYB) (YAYB) (YBYA) (YAYB)(YBYA)

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
Q1Q2...QS em que Qi = (P1P2...PR)
Passo 4: Conversão para equações lineares:
Cada disjunção gera uma equação de múltipla escolha:
(P1P2...PR)  y1 + y2 + ... + yR ≥ 1
Caso haja negações, substituir yi por (1 – yi) no somatório.
Ex: (P1P2...PR)  (1–y1) + (1–y2) + ... + (1–yR) ≥ 1

Exemplo: Converter a expressão lógica YA  YB em equações.


Passo 1: operadores básicos
YA  YB  (YAYB)(YAYB)

Passo 2: não há negações a distribuir

Passo 3: distribuir  sobre 


(YAYB)(YAYB)

{ (YAYB)(YA) }  { (YAYB)(YB) }

{ [ (YA)(YA) ]  [ (YB)(YA)] }  { [(YA)(YB)]  [(YB)(YB)] }

pela associatividade fica:


{ (YAYA)  (YBYA) }  { (YAYB)  (YBYB) }

(YAYA)  (YBYA)  (YAYB)  (YB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

Exemplo: converter a proposição lógica em equações lineares:


Y1  Y2   Y3   Y4  Y5 
Passo 1: operadores básicos
Y1  Y2   Y3   Y4  Y5 

Passo 2: Distribuir negações


Y1  Y2   Y3   Y4  Y5 
Y1  Y2   Y3   Y4  Y5 
Passo 3: distribuir  sobre 
Y1  Y2   Y4  Y5   Y3   Y4  Y5 
Pela propriedade de associabilidade:
Y1  Y2  Y4  Y5   Y3  Y4  Y5 
Passo 4:
(1 – y1) + (1 – y2) + y4 + y5 ≥ 1
(1 – y3) + y4 + y5 ≥ 1

Rearranjando:
y1 + y2 – y4 – y5 ≤ 1
y3 – y4 – y5 ≤ 0

VII.2.4. RESTRIÇÕES CONDICIONAIS EM VARIÁVEIS CONTÍNUAS

É comum a necessidade condicionar variáveis contínuas a decisões discretas. O método do big-


M pode ser aplicado nestes casos.

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.105

Neste exemplo a variável de operação xA representa um “domínio disjuntivo”, já que há duas


opções de domínio: xA = 0 ou 0 ≤ xA ≤ 10.

O método do big-M permite ainda introduzir restrições condicionais no problema de


otimização. Por exemplo: se o reator A for selecionado, então vale a condição de processo
g x   0 .

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.

Modelagem usando o método do big-M:


g  x   M .1  YA 
em que o parâmetro M é um limite matemático superior para a expressão g(x). Caso yA = 1
(reator foi selecionado), a restrição g(x) ≤ 0 fará parte do modelo. Caso contrário, a expressão
g(x) ficará livre para atingir qualquer valor entre – e M, tonando-se uma restrição inativa sem
interferir com a otimização.

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  hx   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.

Exemplo: A variável xA deve estar entre 0 e 10 ou entre 15 e 25.


Modelagem:
15 .1  y A   x A  10 . y A   25 .1  y A 
Caso yA = 1, tem-se 0  x A  10
Caso yA = 0, tem-se 15  x A  25
A variável real xA está condicionada à variável binária yA por 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

VIII. PROBLEMAS CLÁSSICOS MILP E IP

VIII.1. PROBLEMA DA MOCHILA (KNAPSACK PROBLEM)

Dado um conjunto de n itens, cada um com um valor pi e um


peso wi, determine aqueles selecionados para serem
carregados na mochila de forma a maximizar o valor da
carga, respeitando a capacidade máxima da mochila W.

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.

VIII.2. PROBLEMA DE ALOCAÇÃO (ASSIGNMENT PROBLEM)

Há i = 1, 2, ... m tarefas a serem realizadas e j = 1, 2, ... m


agentes disponíveis. Um agente pode executar qualquer tarefa,
incidindo um custo Cij ($) dependendo da alocação.

Definem-se as variáveis binárias yij tal que:


yij = 1 se a tarefa i for atribuída ao agente j
0 caso contrário
Formulação:
m m
min C . 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
m

y
i1
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.

No Problema de alocação generalizado (generalized assignment problem), os números de


agentes (n) e tarefas (m) não são necessariamente iguais e um agente j pode executar mais de
uma tarefa i, respeitando o seu limite de capacidade tj. A execução de uma tarefa i por um agente
j acarreta um custo de capacidade wij e resulta em um lucro pij.

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

VIII.3. PROBLEMA DE LOCALIZAÇÃO DE PLANTAS (FACILITY LOCATION PROBLEM)

Há um conjunto de j = 1, 2, ... m clientes distribuídos


geograficamente, cada um com uma demanda dj que deve ser
satisfeita. Há um conjunto de i = 1, 2, ... n localizações
candidatas à construção de plantas produtoras. Quais plantas
devem ser construídas de forma a minimizar o custo de
abastecimento dos clientes?

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
i1
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

VIII.4. PROBLEMA DE COBERTURA (SET COVERING PROBLEM)

Considere um universo I com elementos i = 1, 2, ... n e também


diversos subconjuntos Pj (j = 1, 2, .... m) que contém elementos
presentes no universo I, de forma que:
m
I   Pj
j 1

Um grupo J de sub-conjuntos Pj é dito uma cobertura para o universo I se:


m

P  I j
jJ

ou seja, com este grupo J é possível acessar todos os n elementos do universo.

Sobre o acesso a um subconjunto Pj incide um custo cj. Deseja-se otimizar o conjunto J de


forma que o custo de acesso aos n elementos do universo seja mínimo.

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)?

VIII.5. PROBLEMA DO CAIXEIRO VIAJANTE (TSP, TRAVELLING SALESMAN PROBLEM)

Dado um conjunto de n cidades, determine o trajeto de menor


custo de forma que todas as cidades sejam visitadas, retornando-
se à origem. Sobre o trajeto de uma cidade i para outra cidade j
incide um custo fixo cij ($), parâmetro do modelo. Este custo pode
ser proporcional à distância. Se cij = cji, o problema é dito
simétrico.

Variáveis binárias:
yij = 1 se a viagem de i para j é realizada (ij)
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

Deve haver pelo menos uma partida de i = 1, 2, 3 para o restante j = 4, 5, 6, 7.


Ou seja:
(Y14Y15Y16Y17)  (Y24Y25Y26Y27)  (Y34Y35Y36Y37)
condição que pode ser traduzida como uma seleção de múltipla escolha:
y14 + y15 + y16 + y17 + y24 + y25 + y26 + y27 + y34 + y35 + y36 + y37 ≥ 1

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

IX. PROGRAMAÇÃO LINEAR INTEIRA MISTA - MILP

Dada a natureza linear dos problemas MILP, este podem ser expressos em formato matricial:

min z = c1T.x + c2T.y


s.a.: A1.x + A2.y = a
B1.x + B2.y ≤ b
x
y  {0,1}m

Como visto anteriormente, qualquer variável discreta pode ser expressa por variáveis binárias,
não tornado restritivo o formato acima.

IX.1. TÉCNICAS DE SOLUÇÃO DE PROBLEMAS MILP

IX.1.1. ENUMERAÇÃO EXAUSTIVA

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

A diferença de relaxação é gap = –1,00 –(–2,23) = 1,23.


Note que o arredondamento da solução do problema relaxado para y = [1 0]T gera um ponto
inviável (não satisfaz a segunda restrição).

IX.1.3. MÉTODOS RIGOROSOS

São estes os principais métodos de solução MILP:


a) Branch-and-Bound (Land, Doig, 1960) – método clássico de busca implícita em uma
árvore binária resolvendo uma sequência de MILPs relaxados.
b) Decomposição de Benders (Benders, 1962) – decomposição do problema baseada na
partição entre variáveis binárias e contínuas.
c) Branch-and-Cut (Crowder, Johnson, Padberg, 1983) – combinação do método Branch-
and-Bound com o de planos cortantes (cutting planes) melhorando a solução do
problema relaxado a cada iteração.

IX.1.4. RECOMENDAÇÕES PARA MODELOS MILP

A formulação de um modelo tem grande impacto sobre o desempenho dos algoritmos de


otimização. É sempre recomendável despender tempo extra para aperfeiçoar o modelo.
Algumas recomendações para modelos MILP:

a) Nas restrições do tipo big-M, evitar usar valores de M muito grandes.


x  M .y

b) Fornecer um limite superior para o valor da função objetivo, por exemplo, via heurística:
z  zUP

c) Reduzir o número de variáveis binárias, quando possível.

98
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

IX.2. MÉTODO BRANCH-AND-BOUND

No método Branch-and-Bound a árvore binária do problema é explorada implicitamente a partir


do nó inicial, avançando em direções promissoras e “cortando” galhos que levam a soluções
inviáveis.

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:

y3 = 0 No nó inicial resolve-se o MILP relaxado como um


LP obtendo zrelax*. Ao avançar para o nó indicado
como ‘A’, acrescenta-se ao MILP relaxado a equação:
y2 = 0 y3 = 1
C y1 = 0
A y3 = 0 Com isso o problema em ‘A’ tem um grau de liberdade
B a menos e, portanto, não poderá fornecer uma solução
y1 = 0 y2 = 1 ótima melhor do que a obtida no nó anterior:
y3 = 1
zrelax*(A) ≥ zrelax*
y3 = 0 Ao avançar do nó ‘A’ para o nó ‘B’, perde-se mais um
y2 = 0
y1 = 1 grau de liberdade ao adicionar a equação:
y3 = 1 y2 = 1
zrelax*(B) ≥ zrelax*(A) ≥ zrelax*
y3 = 0
y2 = 1 No nó ‘C’ a última variável discreta é especificada:
y3 = 0
y3 = 1
zrelax*(C) ≥ zrelax*(B) ≥ zrelax*(A) ≥ zrelax*
Consequentemente, ao avançar em uma direção de busca na árvore, o valor de zrelax*(i) vai ter
uma tendência monotônica de crescimento. Além disso, se um problema inviável for atingido,
qualquer outro nó a sua frente também será inviável, já que se trata de um problema com
restrições adicionais.
Com relação ao nó ‘C’, pode-se afirmar que este nó é no máximo o ótimo do MILP original,
mas não melhor que ele:
zrelax*(C) ≥ z*
Isso faz com que zrelax*(C) seja um limite superior para o ótimo z* que está sendo buscado. Como
os nó no interior da árvore fornecem limites inferiores para o z* e os nós terminais fornecem
limites superiores para z*, o método faz uso de estratégias de busca para convergir estes dois
limites.

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*

zrelax*(0) zrelax*(r) zrelax*(s) z* ? 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).

A desvantagem da estratégia breadth-first é a exigência de grande quantidade de memória para


armazenar todos os nós abertos. No caso da estratégia depth-first , lembra-se apenas do melhor
nó final guardado. Em geral as aplicações práticas utilizam uma combinação destas duas
estratégias, normalmente começando como depth-first e depois alterando para breadth-first.

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.

Exemplo: Ilustração de estratégias de busca em branch-and-bound.


A figura que segue ilustra uma busca depth-first em uma árvore de decisão com 3 variáveis
binárias. Os valores nos círculos correspondem a zrelax*(i) para cada nó no nível ‘i’. Os ramos
mais claros não foram avaliados na busca, mas são apresentados para facilitar o entendimento.

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

Explorando a mesma árvore com uma estratégia breadth-first:


12,5

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.

IX.3. LINEARIZAÇÃO DE PROBLEMAS LP OU MINLP

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.

Exemplo: f(x) não linear com a ≤ x ≤ d


f f

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).

IX.4. IDENTIFICAÇÃO DE OUTRAS SOLUÇÕES DISCRETAS

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.

Supondo que a solução do MILP obteve y* = [1 1 0 1 0 0 1 ... ]T


Podem ser definidos dois conjuntos:
i  B / yi* = 1
i  N / yi* = 0

a) Remover pelo menos um elemento do conjunto B


y
iB
i
 B 1

b) Eliminar apenas a solução atual


 y   y  B 1
iB
i

iN
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

A escolha da estratégia vai depender do tipo do problema.

102
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

IX.5. EXEMPLOS MILP

EXEMPLO 1: Problema de seleção


Está sendo feito um planejamento das bebidas que serão servidas em uma recepção. As
seguintes regras foram estabelecidas:
a) Café ou chá serão servidos (não exclusivamente).
b) Se chá for servido, deverá ter acompanhamento de limão ou de leite.
c) Se café for servido, deverá ter acompanhado de creme.
d) Refrigerantes serão servidos.

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

Modelagem das restrições lógicas:


(a) Y1Y2  y1 + y2  1
(b) (Y1)(Y3Y5)  y1 – y3 – y5  0
(c) (Y2)(Y4)  y2 – y4  0
(d) Y6  y6 = 1

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}

Solução ótima: C* = 5,3 k$ com y* = [ 0 1 0 1 0 1 ]T


"Servir café com creme e refrigerante"

Qual será a segunda melhor opção?


Incluir a restrição no modelo para tornar a solução atual inviável:
 y   y  B 1
iB
i

iN
i

y2 + y4 + y6 – y1 – y3 – y5 ≤ 2

Segunda solução ótima: C* = 5,3 k$ com y* = [ 1 0 1 0 0 1 ]T


"Servir chá com limão e refrigerante"

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

Qual será a terceira melhor opção?


Incluir a restrição no modelo para tornar a segunda solução inviável:
 y   y  B 1
iB
i

iN
i

y1 + y3 + y6 – y2 – y4 – y5 ≤ 2

Terceira solução ótima: C* = 6,1 k$ com y* = [ 0 1 1 1 0 1 ]T


"Servir café com creme e refrigerante e limão"
Repetiu-se a primeira solução adicionando uma opção extra (limão).

EXEMPLO 2: Problema de alocação


Um caminhão tanque possui 5 compartimentos com capacidades máximas de 2700, 2800, 1100,
1800 e 3400 galões, sendo a capacidade total de 11800 galões. A companhia deve entregar três
tipos de gasolina (comum, super e premium). Cada compartimento deve carregar apenas um
tipo de combustível. A demanda é de 11800 galões conforme tabela abaixo, mas não será
possível atendê-la dada a restrição dos compartimentos do caminhão. Otimize a alocação das
gasolinas aos compartimentos de forma a minimizar a carência de combustível.

# Tipo Demanda Valor Max. carência


(galões) ($/galão) (galões)
1 Premium 2900 10 750
2 Super 4000 8 500
3 Comum 4900 6 950
11800 2200

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

Função objetivo: minimizar as carências ponderadas


z   valori .Ci
i

Restrições lógicas: no máximo uma gasolina por compartimento


i
yij  1  compartimento j

Restrição para atender as demandas:

104
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Não há necessidade de introduzir no modelo os volumes de combustível dentro de cada


compartimento (seriam 15 variáveis reais e diversas restrições tipo big-M). Basta informar que
o que é transportado nos compartimentos cheios mais a carência deve ser superior à demanda.
Como Ci são minimizados, estas restrições se tornarão ativas com carências positivas ou
inativas com transporte acima da demanda (pode ser corrigido facilmente).
 capacidadej . yij  Ci  demandai
j
gasolina i

Modelo MILP:

min z = 10.C1 + 8.C2 + 6.C3


s.a.: y11 + y21 + y31  1
y12 + y22 + y32  1
y13 + y23 + y33  1
y14 + y24 + y34  1
y15 + y25 + y35  1
(2700.y11 + 2800.y12 + 1100.y13 + 1800.y14 + 3400.y15) + C1  2900
(2700.y21 + 2800.y22 + 1100.y23 + 1800.y24 + 3400.y25) + C2  4000
(2700.y31 + 2800.y32 + 1100.y33 + 1800.y34 + 3400.y35) + C3  4900
0  C1  750
0  C2  500
0  C3  900
yij  {0,1}
Ci  

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)

EXEMPLO 3: Síntese de uma sequência de destilação


Deseja-se projetar uma sequência de destilação (problema de síntese de processos) para separar
uma mistura com cinco componentes (A, B, C, D e E). A alimentação é de 1.250 kmol/h com
10% de A, 15% de B, 20% de C, 20% de D e 35% de E. Para simplificar o problema, assume-
se que as separações são completas. O custo variável do vapor é de 32 $/MW.ano e da água de
resfriamento é de 2,0 $/MW.ano. Um total de 10 separadores são considerados para compor a
planta:

105
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Separador Custo fixo Custo variável,  Coeficiente de


amortizado,  ($/(kmol/h).ano) carga térmica, K
($/ano) (MW/(kmol/h))
AB / CDE 119 000 320 39
ABC / DE 97 000 234 24
ABCD / E 45 000 77 44
ABC / D 50 000 91 33
C / DE 88 000 110 28
CD / E 42 000 100 47
AB / C 75 000 167 36
A/B 105 000 275 42
D/E 35 000 90 54
C/D 61 000 144 21

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

A fração de recuperação i: é um parâmetro calculável a partir da composição da alimentação.


Por exemplo, no separador 5 (C / DE) tem-se 5 = xC / (xC + xD + xE) = 0,20/(0,20+0,20+0,35)
= 0,2667 e (1–5) = 0,7333. Portanto as saídas da coluna 5 são di = 0,2667.F5 e bi = 0,7333.F5.

São identificados sete balanços de massa necessários para modelar a superestrutura:

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

Função objetivo: custo da planta de separação


C   i . yi  i .Fi   cvapor  cágua . Ki .Fi
i i
em que  é o custo fixo,  é o custo variável e K é o coeficiente de carga.

Modelo MILP:

min C  i . yi  i .Fi   32  2. Ki .Fi


i i
s.a.: F1 + F2 + F3 – 1250 = 0
0,750.F1 – F5 – F6 = 0
0,650.F3 – F4 = 0

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}

Solução ótima: C* = 4,263 M$/ano


Separadores ativos: 2, 7, 8 e 9
312 8
A
B

2 688
9
A A
B B D
1250 E
C C
D D
E E

562
7
A
B
C

Qual é a segunda melhor sequencia de separação?


Incluir a restrição no modelo para tornar apenas a solução original inviável:
 y   y  B 1
iB
i

iN
i

(y2 + y7 + y8 + y9) – (y1 + y3 + y4 + y5 + y6 + y10) ≤ 3

Segunda solução ótima: C* = 4,305 M$/ano


Separadores ativos: 2, 6, 7, 8 e 9
312 8
A
B

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

A estratégia mais adequada é de tornar a combinação de separadores 2, 7, 8 e 9 inviável,


independente das outras variáveis binárias:
 y  B 1
iB
i

(y2 + y7 + y8 + y9) ≤ 3

Segunda solução ótima: C* = 4,541 M$/ano (aumento de 6,5%)


Separadores ativos: 3, 4, 7 e 8
312 8
A
B

A
B
C
D 4
E A
B
812 C 562
3 D
1250 A 7
B A
C B
D C
E

A segunda melhor configuração se revelou interessante, pois os separadores estão arranjados


em série. Porém houve um aumento de custo de 6,5%.

Na busca pela terceira melhor configuração:


 y  B 1
iB
i

(y3 + y4 + y7 + y8) ≤ 3

Terceira solução ótima: C* = 4,953 M$/ano


Separadores ativos: 1, 6, 8, 10
1
F8 8
A
B A
C B
D
E
F1
F6
6
A
C
B
D
C
E
D
E

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

IX.6. CASO MILP: PROGRAMAÇÃO DE PRODUÇÃO EM UNIDADES DE BATELADA

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.

Plantas multiproduto são bastante comuns no setor químico, devido à diversidade de


especificações dos produtos quanto à sua pureza e propriedades químicas a serem processados
em um número limitado de reatores descontínuos. Essas especificações requerem limpeza dos
reatores após sua descarga. O tipo de limpeza a ser executada depende do último produto
processado e do que será processado em seguida, fazendo com que cada ordem tenha um
conjunto de tempos de preparação possíveis.

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 (ii’)

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)

Parâmetros necessários para a modelagem:


tij tempo para processamento da ordem i na unidade j (dias)
sii’ tempo de preparação (setup) para processar a ordem i’ logo após a ordem i (dias)
di data programada para entrega 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

Variáveis de desempenho da solução:


Ti atraso da ordem i (dias)
Ei adiantamento da ordem i (dias)
MK tempo total de conclusão, makespan (dias)

Modelando o exemplo de programação na figura, tem-se um total de 63+63+66 = 72


variáveis binárias, dentre as quais apenas 9 são verdadeiras: WF21, WF12, WF63, W31, W52, W43,
X23, X15 e X64. As variáveis contínuas são: C1 = 5,8, C2 = 10,9, C3 = 15,3, C4 = 11,6, C5 = 13,3
e C6 = 5,8 dias. O makespan é de 15,3 dias (conclusão da ordem 3).

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)

Analisando o funcionamento desta restrição:


- Caso Xii’ = 1, tem-se: WFij + Wij  Wi’j
Ou seja, caso (WFij = 1)  (Wij = 1), então Wi’j = 1. Portanto a i’ é também processada em j.
- Caso Xii’ = 0, tem-se: WFij + Wij  Wi’j + 1
Ou seja, caso (WFij = 1)  (Wij = 1), Wi’j fica livre (restrição redundante).

111
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

5) Cada unidade só pode ter no máximo uma ordem inicial:


 i
WFij  1  unidade j (6)

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 

Analisando o funcionamento desta restrição:


 
Caso Xii’ = 1, tem-se: Ci'  Ci   sii'  ti' j Wij que significa que o instante de conclusão
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.

9) O processamento da ordem i na unidade j só pode ser iniciado se as duas estiverem


disponíveis, levando em conta o tempo para liberação da ordem i (roi) e o tempo para liberação
da unidade j (ruj), ou sejam seu instante de conclusão Ci deve ser atrasado de acordo com roi e
ruj:
   
Ci   max ru j , roi  tij WFij  Wij   ordem i (10)
j

A função max{}, descontínua, não compromete o modelo pois é aplicada a parâmetros


e não a variáveis.

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.

1) Minimização do adiantamento ponderado:



min z  pi .Ei
i
(15)

em que pi é um parâmetro de peso que representa a importância relativa da ordem i

2) Minimização do atraso ponderado:


min z  pi .Ti
i
(16)

3) Minimização do número de ordens atrasadas:



min z  NTi
i
(17)

4) Minimização de desvios ponderados: este objetivo visa manter valores razoáveis de


adiantamento e estoque intermediário. A penalidade para os adiantamentos é (n+1)–1, em que n
é o número de ordens.

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 

5) Minimização do makespan: os produtos devem ser processados dentro do horizonte de


produção.
min z  MK (19)

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

Tempos de preparação, setup (dias):


i  i’ 1 2 3 4 5
1 - X X
2 X - 1,1 0,7
3 1,0 0,15 -
4 X - X
5 1,4 0,3 -

114
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Solução para o Caso 1: minimização do makespan com MK* = 16,9 dias


Unidade Ordem Tempo de Tempo de Início da Final da Data de Atraso Adiant.
proces. (dias) setup (dias) ordem (dias) ordem (dias) entrega (dias) (dias) (dias)
3 5,0 - 0,0 5,0 21 - 16,0
1 5 4,9 0 5,0 9,9 21 - 11,1
2 7,0 0 9,9 16,9 14 2,9 -
1 6,1 - 3,0 9,1 14 - 4,9
2
4 5,1 0 11,8 16,9* 14 2,9 -
*
Makespan

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.

Solução para o Caso 2: minimização do desvio ponderado


Unidade Ordem Tempo de Tempo de Início da Final da Data de Atraso Adiant.
proces. (dias) setup (dias) ordem (dias) ordem (dias) entrega (dias) (dias) (dias)
5 4,9 - 2,7 7,6 21 - 13,4
1
3 5,0 0 16,0 21,0 21 - -
2 7,0 - 5,0 12,0 14 - 2,0
2 4 5,1 0 12,0 17,1 14 3,1 -
*
1 6,1 0 17,1 23,2 14 9,2 -
*
Makespan

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

X. PROGRAMAÇÃO NÃO LINEAR INTEIRA MISTA - MINLP

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

Para a solução admite-se que o problema tenha uma estrutura especial:


- as variáveis discretas são binárias y  {0,1}m
- o problema é linear nas variáveis binárias y
- o problema é não linear nas variáveis contínuas x

min z = f(x) + cT.y objetivo


sujeito a: h(x) = 0 modelo
g(x) + B.y ≤ 0 restrições g(x) ≤ 0 e big-M
A.y = , ≤ a restrições lógicas e de seleção
x  n
y  {0,1}m

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. MÉTODOS DE SOLUÇÃO MINLP

X.1.1. ENUMERAÇÃO EXAUSTIVA

Para todas as combinações da variáveis binárias resolve-se um NLP, otimizando as variáveis x,


garantindo ótimo global. Seleciona-se o melhor cenário. Viável apenas para problemas com
poucas variáveis binárias.

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.

X.1.3. MÉTODOS DE DECOMPOSIÇÃO

- GBD - Decomposição de Benders Generalizada (Geoffrion, 1972)


- AO - Aproximação externa (Duran e Grossmann, 1986)

116
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

Estes métodos são denominados de “decomposição” pois decompõem o MINLP em NLP e


MILP em um processo iterativo. Seu funcionamento parte da premissa de que o problema seja
CONVEXO, portanto, soluções incorretas podem ser obtidas na resolução de problemas não
convexos.

Estrutura básica:
Escolhe y(0)

Resolve NLP com


y(k) fixo

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.

O MILP é resolvido para otimizar as variáveis x e y. Compara-se as soluções do NLP e do MILP


para verificar convergência. Não convergindo, o valor de y* obtido do MILP é usado para gerar
o próximo NLP, dando sequência ao algoritmo (Floudas, 1995).

NLP com y fixo:


Ao resolver um NLP com y(k) fixo, a solução zNLP* será provavelmente subótima, ou seja, zNLP*
≥ z*. O resultado zNLP* será um limite superior para o ótimo que deverá melhorar com as
iterações, mas não há garantia de monotonicidade. Caso o MILP forneça um y(k) que torne o
NLP inviável, retorna-se ao MILP e busca-se a segunda melhor solução, eliminando a atual,
assim sucessivamente até o NLP ter soluçã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 Lagrangei 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 

min f(x) min (x)


s.a.  ≥ reta k-1
 ≥ reta k
 ≥ reta k+1

k k+1

Problema original Aproximação linear


convexo k-1 do problema

x(k-1) x(k) x(k +1)


x x x

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

Região viável Aproximação linear


original convexa da região viável

x1 x1 x1

Ao minimizar o problema linearizado, o ótimo obtido zMILP* é menor do que a solução do


MINLP, pois a região viável é maior e o a função objetivo linearizada é inferior à original. O
resultado zMILP* representa então um limite inferior para o ótimo e seu valor deverá aumentar
monotonicamente com o avanço das iterações, pois a cada resolução do MILP mestre são
adicionadas novas restrições e aproximações lineares da função objetivo, além das já existentes.
O algoritmo avança até que zMILP* = zNLP* = z*:

z
zNLP*

z*

zMILP*

iterações

O que acontece se o problema não for convexo?


- NLP pode convergir para um mínimo local subótimo.
- Aproximações lineares do MILP mestre podem cortar fora pedaços da função objetivo ou da
região viável:

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

X.2. CONVEXIFICAÇÃO DE PROBLEMAS NLP

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.

Problemas de otimização NLP compostos exclusivamente por posinômios são chamados de


problemas de “Programação Geométrica” e são resolvidos com o uso desta técnica.

Exemplo:
x1
f x   x1. x2  2. 1 função não convexa
x2

Substituindo x1 por exp(u1) e x2 por exp(u2):

f u   exp u 1  u 2   2 . exp 0 ,5 .u 1  u 2   1 função convexa

119
Otimização de Processos Químicos (v.2016)
Jorge A.W. Gut e José M. Pinto – Escola Politécnica da USP

X.3. CASO MINLP: PROJETO ÓTIMO DE UMA PLANTA EM BATELADA

Neste exemplo baseado em Biegler, Grossmann, Westerberg (1997) é desenvolvido o projeto


ótimo de uma planta em batelada com múltiplos produtos (i = 1, ... n) . Considera-se:
- Programação de produção em sistema flow shop, no qual todas as tarefas (ordens de produção)
têm a mesma sequência pelos j = 1, ... m estágios de produção.
- Planta com Nj máquinas em paralelo em cada estágio j de produção.
- Tempo de transferência nulo na mudança de estágio.
- Campanha simples de produção, ou seja, todas as bateladas de um produto i são agrupadas um
uma única campanha de produção contida no horizonte de tempo H.

O tempo de processamento do produto i no estágio j é o parâmetro tij (h). Na campanha de cada


produto i, uma sequência de NBi bateladas é produzida. A variável tempo de ciclo do produto
TLi representa o intervalo de tempo entre a finalização de bateladas consecutivas e está ligada
ao “gargalo” do processo.

Tempo de ciclo do produto


Para exemplificar, considere um processo com três estágios (mistura, reação e separação) e dois
produtos (A e B), com os tempos de processamento tij indicados na figura:

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

ou seja, o gargalo de produção é o estágio de maior duração. No exemplo:

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)

Havendo Nj máquinas em paralelo em cada estágio j, é possível processamento em paralelo de


bateladas diferentes. Neste caso o tempo de ciclo fica:
 t 
TLi  max ij  (1b)
j 1...m N 
 j

No exemplo, considerando Nreação = 2, tem-se os novos tempos de ciclo:

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

Vj = capacidade/volume de uma unidade no estágio j (Lj)


Bi = tamanho/quantidade de uma batelada do produto i (kgi)

É 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)

Impõe-se também limites inferior e superior para a capacidade de cada unidade:


Vj  Vj  Vj  unidade j
LO UP
(3)

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.

Consequentemente, a restrição de que todas as campanhas sejam realizadas dentro do horizonte


de tempo fica:
n
Qi

i 1 Bi
 TLi  H (5)

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)

em que NjUP é o limite superior para Nj.

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

Analogamente, os limites inferior e superior para as variáveis Bi são:


 Bi  Bi
LO UP
Bi (9a)
TL
LO
V jUP 
 Qi . i  min ij 
LO UP
Bi , B i (9b)
H j
 S 

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

Em resumo, o MINLP formulado é:

m
C   N j   j V j
j
min não-linear (11)
j 1

s.a. Vj  Sij .Bi  i,j linear (2)


N j .TLi  tij  i,j não-linear (6)
n
Qi
 B  TL  H
i 1
i não-linear (5)
i
N j UP

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

Vj por exp(vj) com vj  


Nj por exp(nj) com nj  
Bi por exp(bi) com bi  
TLi por exp(tli) com tli  
A formulação convexa deste MINLP fica então:

C    j  expn j   j  v j 
m
min não-linear convexa! (11’)
j 1

s.a.: v j  lnSij   bi  i,j linear (2’)


nj  tli  lntij   i,j linear! (6’)
N

Q  exptl  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  lnV 
ln V j
LO
j j
UP
j linear (3’)
lnTL   tl  lnTL 
LO UP
i i i i linear (8a’)
ln Bi   b  lnB 
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

V j   dV js .z js atribuição de valor discreto a Vj, sendo Vj   (13a)


s 1
NS j

z
s 1
js 1 apenas uma opção, sendo zjs  {0,1} (13b')

Fazendo a substituição de variáveis de convexificação:

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

Você também pode gostar