Está en la página 1de 90

Optimización de Procesos

Vicente Rico Ramírez


Departamento de
Ingeniería Química
Instituto Tecnológico de
Celaya
Índice de Contenido
1 Introducción
1.1 La Ingeniería de Procesos
1.2 Modelación y Grados de Libertad
1.3 Representación Matemática Generalizada de un Problema de Optimización
1.4 Tipos de Problemas de Optimización
1.5 Región Factible
1.6 Convexidad

2. Técnicas de Optimización
2.1 Programación Lineal: Método Simplex
2.2 Programación No Lineal
2.2.1 Optimización sin restricciones
2.2.2 Optimización con Restricciones de Igualdad
2.2.3 Optimización con Restricciones de Desigualdad
2.3 La Programación Mixta-Entera en el Diseño de Procesos
2.4 Programación Mixta Entera Lineal: Método de “Branch and Bound”
2.5 Programación Mixta-Entera No Lineal: Método “Outer Approximation”

3. El Ambiente de Modelación GAMS y sus Resolvedores


Índice de Contenido
4. Aplicaciones en Ingeniería Química

5. Introducción a la Optimización Bajo Incertidumbre


5.1 Tipos de Problemas de Programación Estocástica
5.2 El Método de Descomposición Estocástica

6. Introducción a la Optimización Multiobjetivo


6.1 Métodos de Solución

7. Control Óptimo y Optimización Dinámica


7.1 El Principio del Máximo
7.2 Programación Dinámica
7.3 Programación Dinámica Estocástica
3 Etapas en la Ingeniería de Procesos
”Process Systems Engineering”

• Síntesis (o Diseño)

• Simulación (o Análisis)

• Optimización
Síntesis (o Diseño ) de Procesos

Materia Productos
Prima Bajo
(condiciones Especificación
iniciales)

Determinación de la Estructura del Proceso


para realizar la transformación deseada
Análisis (o Simulación ) de Procesos

Materia Productos
Prima Bajo
(condiciones Especificación
iniciales)

Dadas las condiciones de entrada y la estructura


del proceso, determinar las variables de salida
Optimización de Procesos

Minimizar Costo
D, Pureza

Alimentación N=?
R=?
P=?

Definir una función objetivo y determinar los


mejores valores de las variables de diseño
Interacción entre Etapas de la Ingeniería de
Procesos
9La optimización requiere de la solución de
problemas de simulación en cada iteración
9La optimización es una herramienta
imprescindible en el diseño de un proceso

Simulación

Diseño Optimización
Introducción: Algunos Conceptos
en la Optimización de Procesos
Previo a la Optimización: Modelación
Representación Matemática de la Fisicoquímica
del proceso:

z Balances de Masa
z Balances de Energía Sistema de
z Relaciones Termodinámicas Ecuaciones
z Ecuaciones de Diseño No Lineales
z Balances de Momentum
z Restricciones Particulares
Análisis de Grados de Libertad

Para un sistema de M Ecuaciones y N Variables,


Variables el
número de grados de libertad, F, está dado por:
F=N-M
Tres casos:
F = 0 El sistema tiene solución UNICA
F > 1 El sistema puede OPTIMIZARSE
F < 0 El sistema está sobre especificado:
MODELO INCORRECTO
Simulación u Optimización?
Grados de Libertad
F = Número de Variables – Número de Ecuaciones
F=N-M

Simulación ó Análisis Optimización


F=0 F>1
El sistema debe ser consistente Función Objetivo: Maximizar
utilidades, Minimizar costos, etc.

Función Objetivo:
Objetivo
obtención de diseños
óptimos
Simulación u Optimización?
Simulación Optimización

x1 + x2 = 2 x1 + x2 = 2
x1 = 3 x2 x1 , x2 ≥ 0
x1 , x2 ≥ 0
F = 2 −1 = 1
F = 2−2 = 0 Soluciones posibles:
Solución única min x1 − x2 x1 x2
x1 = 1.5 0 2
Función
x2 = 0.5 objetivo 1 1
1.5 0.5
2 0
Solución óptima M M
Selección de Variables de Diseño
M = 900 N = 1000

¿ Como seleccionar 100 Variables de Diseño ?


Matriz de Incidencia

x1 x2 x3 x4

f1 = ln( x1 ) − 2 = 0 f1 X
f 2 = x2 − 3 x4 − 5 = 0 f2 X X
f 3 = ( x2 ) − x3 + x4 − 1 = 0
3
f3 X X X
Trayectorias de Steward

Variable de Diseño: Cualquiera de x2, x3 y x4

x1 x2 x3 x4

f1 X
f2 X X
f3 X X X
Representación Matemática del
Problema de Optimización
• Variables Discretas y Continuas
• Restricciones (Ecuaciones, Desigualdades)
Lineales y No Lineales

min f ( x, y )
s.t. h( x, y ) = 0
g ( x, y ) ≤ 0
x ∈ R n , y ∈ {0,1}
El Modelo Matemático
min f ( x, y )
s.t. h( x, y ) = 0
g ( x, y ) ≤ 0
x ∈ R n , y ∈ {0,1}

Límites:
Minimizar Costos 0< Comp <1
Maximizar Utilidades Temperatura,
Presión, etc.

Decisiones discretas:
Balances de Materia, Energía, ¿ Equipo Existe ?
Relaciones de Equilibrio, etc.
z ¿ Restricción Lineal o No Lineal ?
2x +3 y=1

yx + 3 y = 1 x 2 + ln ( y ) = 1

z ¿ Variable Continua o Discreta ?


y
y=0 y=1
200 K < Temperatura < 500 K
T = 253.75 K Equipo Equipo
T = 493.68 K No Existe Existe
Clasificación de Técnicas de Optimización

Tipos de Variables

Enteras Continuas Enteras+Continuas

Tipos de Restricciones Tipos de Restricciones


Programación
Entera
Programación Programación
Programación Programación Mixta Entera
Mixta Entera
Lineal No Lineal Lineal No Lineal
Tipos de Problemas de Optimización
(Determinística, Estado Estable)

* Programación Lineal (LP)

* Programación Mixta Entera Lineal (MILP)

* Programación No Lineal (NLP)

* Programación Mixta Entera No lineal (MINLP)


Región Factible y Convexidad

min f ( x)
s.t. h( x) = 0
g ( x) ≤ 0
x ∈ Rn
NLP
Función Convexa o No Convexa
Función Convexa

f(x) es convexa si para toda x1 y x2 ε R:


f (αx1 + [1 − α ]x2 ) ≤ αf ( x1 ) + (1 − α ) f ( x2 ), ∀α ∈ (0,1)

f(x) f(x)

x1 x2 x1 x2

Convexa No
Convexa
Función Convexa?
Función f ( x) = x 3 − 6 x 2 + 11x − 6 Intervalo (1,3)

f ( x1 ) = f (1) = 0 f ( x2 ) = f (3) = 0

f (αx1 + [1 − α ]x2 ) ≤ αf ( x1 ) + (1 − α ) f ( x2 )

f (2.5) ≤ 0.25 f (1) + (0.75) f (3)


α = 0.25 No
− 0.375 ≤ 0
Convexa

α = 0.75 f (1.5) ≤ 0.75 f (1) + (0.25) f (3)

0.375 ≤ 0
No se cumple
Región Factible y Convexa

Región Factible. Definición:


{
FR = x h(x ) = 0, g (x ) ≤ 0, x ∈ R n }
Convexa o No Convexa?
Convexa si para toda x1 y x2 ε FR:

x = αx1 + (1 − α ) x2 ∈ FR, ∀α ∈ (0,1)

x1 x1
x2
x2

Convexa No
Convexa
Técnicas de Optimización
Técnicas de Optimización

* Métodos Simplex y Puntos Interiores (LP)

* “Branch and Bound” (Ramificación y

Acotamiento) (MILP)

* Estrategia del Conjunto Activo, SQP

(Programación Cuadrática Sucesiva) (NLP)

* “Outer Approximation” y Descomposición de

Benders (MINLP)
Programación Lineal
Programación Lineal

Forma General
T
min c x Maximize 300 x1 + 200 x2
s.t. A x ≤ b sujeto a 5 x1 + 2 x2 ≤ 180
x≥0 3x1 + 3 x2 ≤ 135
x ∈Rn
x1 ≤ 25

5 2 180
300  x1 
c=  x=  A = 3 3 b = 135
200  x2  1 0  
   25 
Método Simplex
Si la función objetivo
disminuye en esta dirección

g1=0
g2=0

Este sería el punto óptimo Región


de
búsqueda

El óptimo se encuentra siempre


en un punto “esquina”
Método Simplex
1) Introducir variables “slack” para convertir desigualdades en
igualdades. El número de grados de libertad no cambia.
2) Utilizar x=0 como punto inicial
3) Construir Matriz de Coeficientes
4) Efectuar pasos de eliminación Gaussiana hasta no obtener
valores negativos en el renglón correspondiente a la función
objetivo

5 x1 + 2 x2 ≤ 180 5 x1 + 2 x2 + s1 = 180
3x1 + 3 x2 ≤ 135 3x1 + 3 x2 + s2 = 135
x1 ≤ 25 x1 + s3 = 25
Método Simplex
x1 x2 s1 s2 s3 b
Punto inicial
5 2 1 0 0 180 s1
x1 = 0
Matriz de x2=0
3 3 0 1 0 135 s2
Coeficientes s1 = 180
1 0 0 0 1 25 s3
s2=135
-300 -200 0 0 0 0 f
s3 = 25

Eliminación Gaussiana

s3 x2 s1 s2 s3 b

0 2 1 0 -5 55 s1

0 3 0 1 -3 60 s2

1 0 0 0 1 25 x1

0 -200 0 0 300 7500 f


Pivoteo en el Método
Simplex

El pivote en los pasos de eliminación Gaussiana


se escoge de modo que:

• Columna: el coeficiente de la función


objetivo es el más negativo
• Renglón: la menor proporción entre b y el
coeficiente de la columna seleccionada
Renglón Pivote
¿Qué ocurre si no se toma la menor proporción?

s2 x2 s1 s2 s3 b

0 -3 1 -5/3 0 -45 s1

1 1 0 1/3 0 45 x1

0 -1 0 -1/3 1 -20 s3

0 300 0 100 0 1350 f


Método Simplex
Eliminación Gaussiana

s3 s2 s1 s2 s3 b

0 0 1 -2/3 -3 15 s1

0 1 0 1/3 -1 20 x2

1 0 0 0 1 25 x1

0 0 0 200/3 100 11500 f


Notas en el Método Simplex
1. En cada punto esquina, un número de
variables igual al número de grados de
libertad del problema valen cero
2. Las variables cuyo valor es cero se
denominan no básicas
3. Cada punto de la trayectoria se dice que es
una solución básica
4. El algoritmo concluye cuando ya no hay
coeficientes negativos en el renglón de la
función objetivo
Método Simplex

Maximize 300 x1 + 200 x2


sujeto a 5 x1 + 2 x2 ≤ 180 x2

3x1 + 3 x2 ≤ 135
x1 ≤ 25 (0,90)

(0,45) (25,27.5)

(25,20)
x1
(0,0)
El óptimo en el punto (25,20) (25,0)
Programación No Lineal
Condiciones de Optimalidad
Optimización Sin Restricciones
min f ( x )
x ∈ Rn

necesaria x es un punto crítico de f(x)


Condición necesaria:
si se cumple que

 ∂f 
 ∂x1  Se obtiene un sistema
∇f (x ) =  M  = 0 de n Ecuaciones con n
∂f  Variables x
 ∂xn 
 
Condiciones de Optimalidad
Optimización Sin Restricciones
min f ( x )
x ∈ Rn

 ∂f 
 ∂x1 
∇f (x ) =  M  = 0
∂f 
 ∂xn 
 
Condición suficiente:
suficiente La Matriz Hessiana de la
función objetivo es definida positiva

f (x + ∆ x ) = f (x ) + ∇f (x ) ∆ x + 1 ∆ x H ∆ x
T T
2

 ∂2 f ∂2 f 
 ∂x12 ∂x1 ∂x2  Hessiana para el
H = 2 
∂ f ∂2 f caso de 2 variables
 ∂x ∂ x 2 
 2 1 ∂x1 

1 ∆ xT H ∆ x ≥ 0
2
Optimización Sin Restricciones
min ( x1 ) 2 − 6 x1 + (x2 ) − 2 x2
2

 2 x1 − 6  x1 = 3
∇f ( x ) =   =0
 2 x2 − 2  x2 = 1

2 0 H es positiva definida
H = 
 0 2 
Optimo Global
Condiciones de Optimalidad
Optimización Con m Restricciones de Igualdad
min f ( x )
s.t. h( x) = 0
x ∈ Rn

Función de Lagrange (función escalar):


m
L ( x, λ ) = f ( x ) + λ h ( x ) = f ( x ) + ∑ λ j h j ( x )
T

j
λ se denominan multiplicadores de
Lagrange y constituyen m variables
adicionales en el problema
Condición necesaria:Obtener
necesaria: un punto crítico
(estacionario) para la función de Lagrange

∂L( x, λ )
= ∇ f ( x ) + ∑ λ j ∇h j ( x ) = 0 Se obtiene un sistema
∂x j
de n+m Ecuaciones
∂L( x, λ ) con n+m Variables x
= h( x ) = 0 yλ
∂λ

Condición suficiente: La Matriz Hessiana de la


función de Lagrange es definida positiva
Optimización con
Restricciones de Igualdad
min ( x1 ) 2 − 6 x1 + (x2 )2 − 2 x2
s.t. x1 − x2 − 2 = 0

 2 x1 − 6  1
∇f ( x ) + ∑ λ j ∇h j ( x ) =   + λ1   = 0
j  2 x2 − 2  − 1
h( x ) = x1 − x2 − 2 = 0

2 x1 − 6 + λ1 = 0
2 x2 − 2 − λ1 = 0
x1 − x2 − 2 = 0
Condiciones de Optimalidad
Optimización Con m Restricciones de Igualdad y r de
Desigualdad
min f ( x)
s.t. h( x) = 0
g ( x) ≤ 0
x ∈ Rn
Función de Lagrange Aumentada (función escalar):
m r
L ( x, λ , µ ) = f ( x ) + λ h ( x ) + µ g ( x ) = f ( x ) + ∑ λ j h j ( x ) + ∑ µ k g k ( x )
T T

j =1 k =1

µ se denominan multiplicadores de Karush-


Kuhn-Tucker y constituyen r variables
adicionales en el problema
Condición necesaria:Obtener
necesaria: un punto crítico
(estacionario) mediante el Teorema de Karush-
Kuhn-Tucker
∂L( x, λ , µ )
= ∇f ( x ) + ∑ λ j ∇ h j ( x ) + ∑ µ k ∇g k ( x ) = 0
∂x j k

∂L(x, λ , µ )
= h( x ) = 0 Se obtiene un sistema
∂λ de n+m+r Ecuaciones
µk (x )⋅ g k (x ) = 0 con n+m+r Variables
x, µ y λ
µk (x ) ≥ 0 g k (x ) ≤ 0

Condición suficiente: La Matriz Hessiana de la


función de Lagrange Aumentada es definida
positiva
Condición necesaria:

∂L( x, λ , µ )
= ∇f ( x ) + ∑ λ j ∇ h j ( x ) + ∑ µ k ∇g k ( x ) = 0
∂x j k

∂L(x, λ , µ ) µk (x )⋅ g k (x ) = 0
= h( x ) = 0
∂λ
µk (x ) ≥ 0 g k (x ) ≤ 0
Optimización con
Restricciones de
Desigualdad
min f ( x ) = 1 (x12 + x22 ) − 3 x1 − x2
2
s.t. g1 = − x1 + x2 ≤ 0
g 2 = x1 − 1 x2 − 2 ≤ 0
2 Note:

 x1 − 3 − 1  1 
∇f ( x ) + ∑ µ k ∇hk ( x) =   + µ1   + µ 2   =0
k  x2 − 1 1  − 1 2

x1 − µ1 + µ 2 = 3
x2 + µ1 − 1 µ 2 = 1
2
µ1 (− x1 + x2 ) = 0
( )
µ 2 x1 − 1 x2 − 2 = 0
2
Programación No Lineal
Estrategia del Conjunto Activo (Active Set Strategy)
Solución al Conjunto de Ecuaciones KKT
∇f ( x ) + ∑ λ j ∇h j ( x ) + ∑ µ k ∇ g k ( x ) = 0
j k

h( x ) = 0
µ k (x ) ⋅ g k (x ) = 0

µk (x ) ≥ 0 g k (x ) ≤ 0

Desigualdades
g k (x ) = 0 g k (x ) < 0

Activa Inactiva
Programación No Lineal
Estrategia del Conjunto Activo

1) Definir conjunto activo. Inicialmente:


J1 = {k g k = 0}

2) Formular ecuaciones KKT


J1 = ∅ ⇒ g k > 0 µk = 0

∇f ( x ) + ∑ λ j ∇h j ( x ) + ∑ µ k ∇g k ( x ) = 0
j k∈J1

h( x ) = 0

g k ( x ) = 0 k ∈ J1
Programación No Lineal
Estrategia del Conjunto Activo

3) Si para toda k g k ( x) ≤ 0 y µ k ≥ 0 OK
OK. Se ha obtenido la solución

Si cualquier g k ( x) > 0 y / o µ k < 0

a) Eliminar de J1 la restricción con el µi más negativo

b) Añadir a J1 todas las restricciones violadas g k ( x) > 0


para hacerlas activas

c) Regresar a 2)
Programación No Lineal
Estrategia del Conjunto Activo: Ejemplo
min f ( x ) = 1 (x12 + x22 ) − 3 x1 − x2
2
s.t. g1 = − x1 + x2 ≤ 0
g 2 = x1 − 1 x2 − 2 ≤ 0
2
g 3 = − x2 ≤ 0
Condiciones de Karush-Kuhn-Tucker (Iteración 1):
J1 = {k g k = 0} ∇f ( x ) + ∑ λ j ∇h j ( x ) + ∑ µ k ∇g k ( x ) = 0
j k∈J1

J1 = ∅ ⇒ g k > 0 µk = 0

Verificando restricciones y µ´s:


 x − 3
∇f ( x ) + ∑ µ k ∇hk ( x) =  1  = 0 g1 = −2 < 0 Activar g2
k  x2 − 1 g 2 = 1 / 2 > 0 !!!
x1 = 3
g 3 = −1 < 0 J 2 = {2}
x2 = 1
µ1 = 0
µ1 = 0
µ2 = 0 µ2 = 0
µ3 = 0 µ3 = 0
Programación No Lineal
Programación Cuadrática Sucesiva (SQP)
min f ( x )
s.t. h( x ) = 0
g ( x) ≤ 0 Condiciones de optimalidad
x ∈ Rn (Karush-Khun-Tucker)

Sistema de Ecuaciones
No Lineales

Iteración de Newton

Programa cuádratico
Programación Mixta-Entera
Representación de Procesos en
Términos de Variables Binarias
x1 z1
I

x0
A 10 kmol/hr B

x2 z2
II

 1 if reactor I is selected
y1 =  min C = 7.5 y1 + 6.4 x1 + 5.5 y2 + 6.0 x2
0 if reactor I is not selected
sujeto a 0.8 x1 + 0.67 x2 = 10
 1 if reactor II is selected x1 − 20 y1 ≤ 0 x2 − 20 y2 ≤ 0
y2 = 
0 if reactor II is not selected x1 , x2 ≥ 0 y1 , y2 = 0,1
Relaciones Lógicas
¬p j
1) NOT
1− y j 7) Teorema de Morgan
pi ∨ p j
2) OR (exclusivo) y + y = 1 ¬( A ∨ B ) ⇔ ¬A ∧ ¬B
¬( A ∧ B ) ⇔ ¬A ∨ ¬B
i j

pi ∨ p j
3) OR (inclusivo)
yi + y j ≥ 1 8) Distribución de
pi ∧ p j AND
4) AND y 1, y 1
j ≥ i ≥
( A ∧ B ) ∨ C ⇔ ( A ∨ C ) ∧ (B ∨ C )
pi → p j ¬pi ∨ p j
5) If-Then
1 − yi + y j ≥ 1 yi ≤ y j
pi ↔ p j
6) Iff-Then
yi = y j
Representando Alternativas
Big - M Convex Hull
x11 + x12 = x1
x1 − 2 x2 ≤ M (1 − y1 )
x1 − 2 x2 ≥ − M (1 − y1 ) x21 + x22 = x2
x1 − 1 ≤ M (1 − y1 ) x11 ≤ My1
y1 + y2 = 1 x12 ≤ My2
x21 ≤ My1
x1 − 5 x2 ≤ M (1 − y2 )
x22 ≤ My2
x1 − 5 x2 ≥ − M (1 − y2 )
x1 − 1 ≥ − M (1 − y2 ) x11 − 2 x21 = 0
x1 , x2 ≥ 0     x12 − 5 x22 = 0
 y1   y2  x11 ≤ y1
   
= ∨ =
 x1 2 x2   x1 5 x2  x12 ≥ y2
 x1 ≤ 1   x1 ≥ 1  y1 + y2 = 1
 x , x ≥ 0  x , x ≥ 0
 1 2   1 2  x11 , x12 , x21 , x22 ≥ 0
Programación Mixta-
Entera Lineal
Método de “Branch
“ and Bound” (Ramificación y Acotamiento)

Procedimiento:

1) Resolver el problema como si todas las variables fueran


continuas (problema LP). Es decir, relajar las variables binarias.
A este nivel se le conoce como “Root Node” (Nodo raíz)
• El valor de la función objetivo en el nodo raíz es un límite
inferior a su valor en la solución
• Si la solución del nodo raíz es entera, tal solución es la
solución del problema

2) Realizar una búsqueda de ramificación ordenada mediante la


adición de restricciones enteras
Método de “Branch
“ and Bound” (Ramificación y Acotamiento)

y3=0

0<y2<1 y2=0 y3=1


0<y3<1

y1=0
y2=1
0<y1<1
0<y2<1
0<y3<1 y1=1
Relajado

Para m variables binarias, el número de posibles nodos es 2m+1- 1


3 Reglas en el Método de “Branch
“ and Bound”:

1) La función objetivo en i es un límite inferior a la función


objetivo en k.
2) Si algún nodo resulta en una solución entera, el valor de la
función objetivo en tal nodo es un límite superior de la solución
3) Si i es infactible o ilimitado, entonces k también lo es
Método de “Branch
“ and Bound”: Ejemplo
[1,1,0]
min z = x + y1 + 3 y2 + 2 y3 y2=1
z =9
[1,0.5,0]
s.t. − x + 3 y1 + 2 y2 + y3 ≤ 0 z = 6.5

− 5 y1 − 8 y2 − 3 y3 ≤ −9 infactible
x ≥ 0, y1 , y2 , y3 ∈ {0,1}
y1=1 y2=0
[0,1,1]
y2=1 z =8
[0.2,1,0]
z = 5.8

y3=1
y1=0 [0,0.075,1]
z = 6.75 y =0
m=3 [0,1,0.333] 2

z=6
2 m +1 − 1 = 15 y3=0
infactible

infactible
Programación Mixta-
Entera No Lineal
Seleccionar un valor inicial para y

Resolver el NLP resultante S(yk)

ZU
Nueva y
Algoritmo Resolver el Problema Maestro MILP
General ZL
SI

ZL<ZU ?

NO

Solución
Programación Mixta-
Entera No Lineal
Algoritmo “Outer
“ Approximation” (DICOPT+++)

Problema Maestro
Z = min α
T
min c y + f ( x) ( ) ( )( T
sujeto a α ≥ cT y + f x k + ∇f x k x − x k )
g ( x) + B y ≤ 0 ( ) ( )( )T
g x k + ∇g x k x − x k + By ≤ 0  ∀k ∈ T
Ay ≤ a Ay ≤ a 
y ∈ {0,1} x ∈ R n
m
y ∈ {0,1} x ∈ R n
m 

α ∈R 

f(x)
k x k es la solución óptima de S y k ∀
T =
( )
k 
 los posibles valores de y 

x
Algoritmo “Outer
“ Approximation”

Optimización Semi-Infinita: Problema Relajado

Z = min α
( ) ( )( T
sujeto a α ≥ cT y + f x k + ∇f x k x − x k )
( ) ( )( )T
g x k + ∇g x k x − x k + By ≤ 0  k = 1K K
Ay ≤ a 
y ∈ {0,1} x ∈ R n
m 

α ∈R 

Dada la solución de K subproblemas NLP x k ( )


definidos por y k tal que k = 1K K
Programación Mixta-
Entera No Lineal
“Outer Approximation”: Ejemplo 1
min z = y1 + 1.5 y2 + 0.5 y3 + x12 + x22
s.t. (x1 − 2 ) − x2 ≤ 0 x1 − (1 − y1 ) ≥ 0
2
y1 + y2 + y3 ≥ 1
x1 − 2 y1 ≥ 0 x2 − y 2 ≥ 0 0 ≤ x1 ≤ 4 y1 , y2 ∈ {0,1}
x1 − x2 − 4(1 − y2 ) ≤ 0 x1 + x2 ≥ 3 y3 0 ≤ x2 ≤ 4

1) NLP y1 = 1 y2 = 1 y3 = 1 x1 = 2 x2 = 2 zU = 11

MILP y1 = 1 y2 = 0 y3 = 0 x1 = 2 x2 = 0 z L = 1

2) NLP y1 = 1 y2 = 0 y3 = 0 x1 = 2 x2 = 0 zU = 5

MILP y1 = 0 y2 = 1 y3 = 0 x1 = 1 x2 = 0 z L = 1.5

3) NLP y1 = 0 y 2 = 1 y3 = 0 x1 = 1 x2 = 1 zU = 3.5

MILP y1 = 0 y2 = 0 y3 = 1 x1 = 2 x2 = 1 z L = 4.5
Programación Mixta-
Entera No Lineal
“Outer Approximation”: Ejemplo 2, Iteración 1
min z = −2.7 y + x 2
s.t. g1 = − ln (1 + x ) + y ≤ 0
g 2 = − ln ( x − 0.57 ) + y − 1.1 ≤ 0
0≤ x≤2 y ∈ {0,1}
1) Comenzar con y=1 y resolver NLP:
z = 0.2525 x = 1.7183 µ1 = 9.347 µ 2 = 0
( zU )
2) Linealizar el problema MINLP en x= 1.7183 para obtener el problema maestro MILP:

zOA = min α OA
z L < zU
s.t. α OA ≥ −2.7 y + 3.4366 x − 2.9525
y=0
− 0.36787 x + y ≤ 0.36788 Volver a paso 1
zOA = −1.939 con nuevo valor
− 0.87085 x + y ≤ −0.2581
( zL ) y=0
0≤ x y ∈ {0,1}
El Entorno de Modelación
GAMS y sus Resolvedores
Formas de Atacar el Problema de
Modelación
z Corriente Modular Secuencial

* Cada unidad de proceso (módulo) calcula su salida


dadas las entradas

En cada unidad se resuelve un sistema de ecuaciones no
lineales (subrutina que “convierte” valores de entradas
en valores de salida)
* Las variables de las corrientes de reciclo se suponen
inicialmente y constituyen la guía para proceso iterativo
Compresor
Divisor de Corriente

Corriente
de
Reciclo
Intercambiador

Separador
Flash
Alimentación
Mezclador Reactor

* Se requieren algoritmos de orden de precedencia y


determinación de las corrientes de reciclo a ser supuestas.
z Corriente de Orientación a las Ecuaciones

* Cada unidad del sistema es representado por un


sistema de ecuaciones (lenguaje declarativo:
declarativo no
restricciones en cuanto a especificación de variables)
* Las ecuaciones son generalmente almacenadas en
librerías
* Para definir el problema, se colectan las ecuaciones
que representan a cada unidad y a las conexiones
entre ellas
Sistema
Resultante

* El sistema resultante se resuelve simultáneamente


(probablemente un problema de miles de ecuaciones)
Simuladores y Optimizadores
Comerciales
9 Corriente Modular Secuencial: Simuladores de
Procesos ASPEN,
ASPEN PRO/II, HySys
¾ Modelado por configuración

9 Corriente de Orientación a las Ecuaciones: Sistemas


de Modelación gPROMS, SpeedUp, ABACO,
ASCEND
9 GAMS
¾ NLP CONOPT, MINOS, LACELOT, SRQP, LINGO
NLP:
¾ MINLP DICOPT
MINLP:
¾ LP CPLEX, OSL, LINDO, SCICONIC, XA
MILP, LP:
GAMS la Interfase
Resolvedores en GAMS
Tipos de Problemas

Algoritmos
de Solución
GAMS: Ejemplo 1
W1
y0 = 0

Q=1000 lb/hr
xF = 0.2
Etapa de Q=1000 lb/hr
Extracción x1

W1
y1

Max Q(xF − x1 ) − λW1


λ = 0.05
Qx F = Qx1 + Wy1
H =1.2
Hx1
y1 =
(H − 1)x1 + 1
GAMS: Ejemplo 2
zA = 0.6 xDA = 0.8
αAC = 2.3
zB = 0.3
zC = 0.1 αBC =1.3
F = 1000 Kmol/hr
αCC =1.0

q =1.0

N α zj
∑j =1 α
j

−θ
= 1− q
j

N α j x Dj
∑α
j =1 −θ
= 1 + Rmin
j

∑x j =1
D
j =1
Algunas Aplicaciones en
Ingeniería Química
Optimización de Columnas y
Secuencias de Destilación

Diseño Óptimo de ¿ Cómo separar una mezcla ABC ?


Columnas
A
1)

ABC B
D, Pureza

Alimentación
A
2)
BC
AB
C

Minimizar Costo ABC


B
N=? R=? P=?
C
Modelo MILP para
Secuencias de Separación
9Supone separaciones del 100% (Sharp splits)
splits
9Supone que las cargas térmicas y costos de inversión son
funciones lineales de la alimentación
9Supone que las cargas de los cambiadores son del mismo
orden de magnitud l∈C top
k ∑x l
F

l∈C ktop
ξ ktop =
∑x
l∈C k
l
F

x iF
k

l ∈ Ck
∑x l
F

l∈C kbot
ξ kbot =
∑x l
F

l ∈ C kbot l∈C k
Datos de Caso de Estudio
Mezcla Cuaternaria ABCD
F=1000 Kmol/hr: 15% A, 30% B, 35% C, 20% D

Sistema Fijo Variable Carga térmica


αk βk Kk
3 3 6
(10 $/año) (10 $ hr / Kgmol año) (10 KJ / Kgmol)
A/BCD 145 0.42 0.028
AB/CD 52 0.12 0.042

ABC/D 76 0.25 0.054


A/BC 125 0.78 0.024
AB/C 44 0.11 0.039
B/CD 38 0.14 0.040
BC/D 66 0.21 0.047
A/B 112 0.39 0.022
B/C 37 0.08 0.036
C/D 58 0.19 0.044

Costos de utilidades:
Agua de enfriamiento: CW = 1.3 (103$ hr/ 106 KJ año)
Vapor: CH = 34 (103$ hr/ 106 KJ año)
Superestructura
B/CD
F4

y4 F8
C/D
A/BCD y8

F5

y5
BC/D
F1
y1

Superestructura con ABCD


F2
AB/CD y9
4 Componentes FTOT y2
F9
B/C

F3

y3
A/BC
F6
y6
ABC/D y10
A/B
y7 F10
F7
AB/C
Modelo Balance Global
Factores de separación FTOT = 1000 = F1 + F2 + F3
A
ξ1A =0.15 ξ6 =0.188

ξ1BCD =0.85 ξ6BC =0.812 Mezclas Intermedias


AB AB
ξ2 =0.45 ξ7 =0.5625
CD C
ξ2 =0.55 ξ7 =0.437
BCD F4 + F5 − 0.85F1 = 0
ξ3ABC =0.8 ξ8C =0.636
ξ3D =0.2 ξ8D =0.364
ξ4B =0.353 ξ9B =0.462 ABC F6 + F7 − 0.8F3 = 0
ξ4CD =0.647 ξ9C =0.538
ξ5BC =0.765 ξ10A =0.333
AB F10 − 0.45 F2 − 0.563F7 = 0
ξ5D =0.235 ξ10B =0.667

BC F9 − 0.765F5 − 0.812 F6 = 0

CD F8 − 0.55 F2 − 0.647 F4 = 0
Flujos (Big-M)

Fk − 1000 y k ≤ 0 Fk ≥ 0 y k = 0,1 k = 1,...,10

Cargas Térmicas Función Objetivo


Qk = K k Fk k = 1,...,10 10 10
min C = ∑ (α k y k + β k Fk ) + (34 + 1.3)∑ Qk
k =1 k =1
Síntesis de Redes de
Intercambio de Calor
h1
500 ° K

h2 ?
418 ° K

c1
305 ° K
375 ° K

c2

310 ° K 298 ° K
Modelo MINLP
(SYNHEAT)
Estrategia de Optimización Simultánea

Stage 1 Stage 2

H1-C1 H1-C1

H1
H1-C2 H1-C2

H2-C1 H2-C1 C1

H2
H2-C2 H2-C2

C2
MODELO
Balance de calor total para cada corriente:
Carga de servicios de enfriamiento y
(TIN i − TOUT i )F i = ∑ ∑q ijk + qcu i , i ∈ HP calentamiento:
k ∈ ST j ∈ CP

(TOUT j − TIN j )F j = ∑ ∑q ijk + qhu j , j ∈ CP (t − TOUT )F = qcu , i ∈ HP


i , NOK +1 i i i
k ∈ ST i∈ HP
(TOUT − t )F = qhu , j ∈ CP
j j ,1 j j
Balance de calor para cada etapa:

(t ik − t i , k + 1 )F i = ∑q ijk , k ∈ ST , i ∈ HP Restricciones lógicas:


j ∈ CP

(t jk − t j , k + 1 )F j = ∑q ijk , k ∈ ST , j ∈ CP qijk − Ωzijk ≤ 0, i ∈ HP, j ∈ CP, k ∈ ST


i∈ HP
qcui − Ωzcui ≤ 0, i ∈ HP
Asignación de las temperaturas de entrada a la
superestructura: qhuj − Ωzhuj ≤ 0, j ∈ CP
zijk , zcui , zhuj = 0,1
t i ,1 = TIN i , i ∈ HP
t j , NOK +1 = TIN j j ∈ CP Cálculo de las diferencias de
temperaturas:
Factibilidad de temperaturas:
t ik ≥ t i , k +1 , k ∈ ST , i ∈ HP dtijk ≤ tik − t jk + Γ(1 − zijk ), k ∈ ST, i ∈ HP, j ∈ CP
t jk ≥ t j , k +1 , k ∈ ST , j ∈ CP dtij,k +1 ≤ ti,k +1 − t j ,k +1 + Γ(1 − zijk ), k ∈ ST, i ∈ HP, j ∈ CP
TOUT i ≤ t i , NOK +1 , i ∈ HP dtcui ≤ ti, NOK+1 − TOUTcu + Γ(1 − zcui ), i ∈ HP
TOUT j ≥ t j ,1 , j ∈ CP dthuj ≤ TOUThu − t j ,1 + Γ(1 − zhu j ), j ∈ CP
Planeación de la
Producción
La Producción del Petróleo es un Problema
Multiperiódico

Thousands of barrels/day
3200
d1 3100
Demand d3 d4
d2 3000
2900
2800
2700
2600
T1 T2 T3 T4 2500
Jan Mar May Jul Sep Nov Jan
H
Month
well head
well bore storage Geological Properties:
oil permeability
flow thickness
porosity
well bore etc.
reservoir
oil flow

La extracción produce una disminución de la presión del


pozo con el tiempo
pw q
pup
pflow
pshut
plow

ts t ts t
Modelos de
Programación Mixta-
Entera

El tiempo de operación H es dividido en NP periodos


de tiempo. Dadas las demandas de producción del
petróleo en cada periodo de tiempo y las constantes de
caracterización de los pozos, determinar:
• Los perfiles de producción y
• Los tiempos operación de cada pozo

en cada periodo de tiempo.


Modelo MILP
Minimize ∑∑γ (
q T + ∑∑δij yijT + ∑∑αij 1 − yij T
ij ij )
i j i j i j

∑q T ≥ d
i
ij j ∀j ∈ P
 ¬Yij 
   
 Yij   Wij1 Wij 2 
 p f = pin − D  ∨  p f = pin + I  ∨  p f = pup  ∀i ∈W , j ∈ P
 ij ij ij   ij ij ij   ij i 
 in up    
p
 ij + I ij ≤ pi  p
 ij
in
+ I ij > p up
i  
Dij = qij {c1 [ln(T ) + c2 ]} ∀i ∈W , j ∈ P
I ij = qis {c1 [ln(T ) + c2 ]}(1 − yij ) ∀i ∈W , j ∈ P

(
qijmax {c1 [ln(T ) + c2 ]} = pijin − pilow )
∀i ∈W , j ∈ P
qij ≤ qijmax ∀i ∈W , j ∈ P

(
qij ≤ qiup yij + qlow 1 − yij )
∀i ∈W , j ∈ P
qij ≥ qlow ∀i ∈W , j ∈ P

pijin = pijf−1 ∀i ∈W , j ∈P
Calendarización de
Procesos por Lotes
Gráficas de Gant

Producto A

8 8 8 8
Mezclador
20 20
Reactor 1
20 20
Reactor 2
4 4 4 4
Centrífuga

¾ Determinar el Tamaño y número de unidades paralelas


¾ Determinar la Secuenciación de las unidades

También podría gustarte