Está en la página 1de 64

Programacin mixta-entera

Prof. Cesar de Prada


ISA UVA
prada@autom.uva.es

Prof. Cesar de Prada ISA-UVA

Indice

Problemas hbridos
Tipos de problemas mixto-enteros
Algoritmo Branch and Bound
Ejemplos
Software

Prof. Cesar de Prada ISA-UVA

Problemas hbridos

Muchos problemas de decisin involucran no solo


variables que pueden representarse por valores reales,
sino decisiones de tipo discreto que estn
representadas de forma natural por variables enteras o
binarias.
Otras veces, el planteamiento del problema involucra,
junto a los modelos cuantitativos, reglas o condiciones
lgicas adicionales
Estos problemas de optimizacin hbridos con variables
reales y enteras se denominan de programacin mixta
entera
Si las decisiones son solo de tipo entero el problema se
denomina de programacin entera
Prof. Cesar de Prada ISA-UVA

Ejemplo: Banda de ladrones


Una banda de ladrones asalta un almacn donde hay N objetos distintos.
Cada objeto j tiene un peso pj y un valor vj. Disponen de una camioneta
que puede transportar como mximo un peso P. Qu objetos deben
seleccionar los ladrones para obtener el mximo beneficio de su accin?
Definiendo una variable binaria yj para indicar si un objeto ha sido o
no seleccionado:
N

max
y

y v
j 1

sujeto a

y
j 1

pj P

0 el objeto j no ha sido seleccionado


yj
1 el objeto j si ha sido seleccionado

Problema ILP
integer linear
programming

Prof. Cesar de Prada ISA-UVA

Ejemplo: El problema del viajante


Un viajante debe partir de su ciudad y recorrer N ciudades volviendo a
la ciudad de origen sin repetir ninguna. La distancia entre la ciudad i y
la j es cij. Cual es la ruta que debe seguir para recorrer una distancia
mnima?.
Podemos asociar una variable binaria yij a cada
par de ciudades i , j
N

min
y

i 1 j 1

y
i 1

j 1

ij

yij

cij
yij

0 el viajante no va de la ciudad i a la j
yij
1 el viajante va de la ciudad i a la j

yii 0

ij

j 1,..., N

debe llegar una vez y solo una de la ciudad j

ij

1 1,..., N

debe partir una vez y solo una de la ciudad i

Prof. Cesar de Prada ISA-UVA

Tipos de problemas mixto enteros


c' y
min
y

Ay b
y Z

ILP Integer
Linear
Programming

J (x, y )
min
x, y

h(x, y) 0

g(x, y) 0
x R n , y Z

c' x d' y
min
x, y

MILP Mix-Integer
Ax b

Linear
Programming
Ey e
0 x R n , y Z

MINLP Mix-Integer
Non-Linear
Programming

Pueden re-convertirse
igualdades y
desigualdades usando
variables de holgura, al
igual que problemas min
en max
Prof. Cesar de Prada ISA-UVA

Mtodos de solucin

La aproximacin de tratar las variables enteras como reales y


luego aproximarlas al entero mas prximo suele dar resultados
errneos, excepto quizs cuando el nmero de valores posibles
de una variable entera es alto. Rara vez con variables binarias
Pueden enumerarse todas las combinaciones de variables
enteras posibles y resolver para cada una el problema,
posiblemente NLP, de variables reales asociado, escogiendo
luego el de mejor J, ya que son un nmero finito. Pero el nmero
de combinaciones crece exponencialmente con el nmero de
variables enteras.
Examen inteligente de alternativas enteras: Branch and Bound
(B&B)
Ajuste de cotas inferior y superior: Outer Approximation (OA),
Generalised Benders decomposition (GBD)
Prof. Cesar de Prada ISA-UVA

Branch and Bound (B&B)


El mtodo proporciona una bsqueda inteligente del ptimo
combinando la comparacin de distintas alternativas funcin de
las variables enteras, con un procedimiento para eliminar
combinaciones que no pueden conducir al ptimo y para
determinar las condiciones de ptimo basndose en cotas del
mismo.
Est basado en tres ideas principales:
Relajacin, que proporciona cotas del problema
Ramificacin, que examina las distintas alternativas de
variables enteras en un punto dado del rbol de decisin.
Poda, que permite eliminar determinados grupos de
combinaciones de variables enteras simplificando la bsqueda

Prof. Cesar de Prada ISA-UVA

Relajacin
Una relajacin de un problema MILP o MINLP consiste en
suponer que las variables binarias yj pueden tomar valores
reales en el intervalo 0 yj 1. (De forma similar se trata el
caso de variables enteras) Por tanto en el problema relajado
todas las variables, x e y, son reales y resulta un problema de
tipo LP o NLP.
Dominio del problema original
Dominio del problema relajado

Lgicamente, al ampliar el espacio de bsqueda, la solucin del


problema relajado es una cota inferior (o superior en el caso de
maximizacin) al problema original MILP o MINLP. El clculo de esta
cota es el objetivo que se busca al resolver el problema relajado.
Prof. Cesar de Prada ISA-UVA

Algoritmo Branch and Bound (B&B)


Ejemplo ILP (Himmelblau)
Max J = 86 y1 + 4 y2 + 40 y3

1
Relajacin
1

0 y1 1
0 y2 1
0 y3 1
y*=(1, 0.776, 1)
Jr*=129.1

Sujeto a
774 y1 + 76 y2 + 42 y3 875
67 y1 + 27 y2 + 53 y3 875
y1, y2, y3 0,1

10

El problema relajado es LP y
su resolucin proporciona
una cota superior Jr* de J*:
J* 129.1

y2= 0

2
Ramificacin

LP

y2= 1

A continuacin se examinan
las dos alternativas posibles
para y2, nica variable real de
la solucin relajada
Prof. Cesar de Prada ISA-UVA

Algoritmo Branch and Bound (B&B)


Max J = 86 y1 + 4 y2 + 40 y3
Sujeto a
774 y1 + 76 y2 + 42 y3 875

Nodo
n
LP

67 y1 + 27 y2 + 53 y3 875
y1, y2, y3 0,1
3 Relajacin
LP
Mejor solucin
factible hasta el
momento
(incumbente):
Cota inferior de J*

11

0 y1 1
y2 = 0
0 y3 1
y*=(1, 0, 1)
Jr*=126.0
4 Poda

y2= 0

0 y1 1
0 y2 1
0 y3 1
y*=(1, 0.776, 1)
Jr*=129.1
2
Ramificacin

1
Relajacin

y2= 1

No se puede seguir ramificando en


el nodo 2. El BB termina si la
diferencia de cotas superior e
inferior es menor que una
tolerancia Cota cota
sup

1 cota inf

inf

tol

Prof. Cesar de Prada ISA-UVA

1
1
Relajacin

B&B

LP

y2= 0
129.1
J*
126.0

12

Candidato
No hay mas
ramificacin
en este
nodo
El valor del
candidato es
una cota
inferior para
todo el
problema

0 y1 1
y2 = 0
0 y3 1
y*=(1, 0, 1)
Jr*=126.0

Poda

0 y1 1
0 y2 1
0 y3 1
y*=(1, 0.776, 1)
Jr*=129.1
2
Ramificacin
3

129.1
J*
-

y2= 1

0 y1 1
y2 = 1
Relajaciones
0 y3 1
y*=(0.978,1, 1)
Jr*=128.11
y1= 0
Ramificacin y1= 1

Si el hueco, o diferencia de cotas


superior e inferior, en el nodo 3 es
superior a la tolerancia, debe
seguirse ramificando. En caso
contrario el BB termina y el
candidato actual es el ptimo.

Cota
superior
en esta
rama:
128.11
J*
126.0

Prof. Cesar de Prada ISA-UVA

1
1
Relajacin

B&B

LP

y2= 0
129.1
J*
126.0
Candidato
No hay mas
ramificacin
en este
nodo

0 y1 1
y2 = 0
0 y3 1
y*=(1, 0, 1)
Jr*=126.0

Poda

0 y1 1
0 y2 1
0 y3 1
y*=(1, 0.776, 1)
Jr*=129.1
2
Ramificacin
3

y2= 1

0 y1 1
y2 = 1
Relajaciones
0 y3 1
y*=(0.978,1, 1)
Jr*=128.11
y1= 0
Ramificacin y1= 1

Cada solucin factible proporciona


una cota inferior para cualquier rama

13

129.1
J*
-

Pueden usarse los valores de


las cotas para podar ramas
sin calcular sus valores

Cota
superior
en esta
rama:
128.11
J*
126.0

Cada ramificacin
proporciona cotas
superiores menores
en esa rama
Prof. Cesar de Prada ISA-UVA

1
1
Relajacin

B&B

LP
y2= 0

129.1
J*
126.0
Candidato

14

Nueva
solucin
factible, pero
inferior a la
del candidato
actual por lo
que este no
cambia

0 y1 1
y2 = 0
0 y3 1
y*=(1, 0, 1)
Jr*=126.0

0 y1 1
0 y2 1
0 y3 1
y*=(1, 0.776, 1)
Jr*=129.1

y2= 1

2
Ramificacin
3

0 y1 1
y2 = 1
Relajaciones
0 y3 1
y*=(0.978,1, 1)
Jr*=128.11
y1= 0
Ramificacin

y1 =0
y2 = 1
0 y3 1
y*=(0,1, 1)
Jr*=44.0
Poda

129.1
J*
-

128.11
J*
126.0

y1= 1

Relajacin
No se puede seguir
ramificando este nodo
Prof. Cesar de Prada ISA-UVA

1
1
Relajacin

B&B

LP

y2= 0
129.1
J*
126.0
Candidato

15

0 y1 1
y2 = 0
0 y3 1
y*=(1, 0, 1)
Jr*=126.0

y1 =0
y2 = 1
0 y3 1
y*=(0,1, 1)
Jr*=44.0
Poda

129.1
J*
-

0 y1 1
0 y2 1
0 y3 1
y*=(1, 0.776, 1)
Jr*=129.1

y2= 1

2
Ramificacin
3

0 y1 1
y2 = 1
Relajaciones
0 y3 1
y*=(0.978,1, 1)
Jr*=128.11
y1= 0
Ramificacin y1= 1

El valor de J*r es
inferior a la cota
inferior del candidato,
cualquier
ramificacin dara un
valor menor, puede
podarse el nodo

128.11
J*
126.0

y1 = 1
Relajacin
y2 = 1
0 y3 1
y*=(1, 1, 0.595)
Jr*=113.81
Poda
Prof. Cesar de Prada ISA-UVA

1
1
Relajacin

B&B

LP

y2= 0
129.1
J*
126.0
Candidato

16

0 y1 1
y2 = 0
0 y3 1
y*=(1, 0, 1)
Jr*=126.0

y1 =0
y2 = 1
0 y3 1
y*=(0,1, 1)
Jr*=44.0
Poda

0 y1 1
0 y2 1
0 y3 1
y*=(1, 0.776, 1)
Jr*=129.1
2
Ramificacin
3

y1= 0

129.1
J*
-

y2= 1

0 y1 1
y2 = 1
0 y3 1
y*=(0.978,1, 1)
Jr*=128.11

128.11
J*
126.0

Ramificacin y1= 1
5
y1 = 1
El candidato
y2 = 1
actual, nodo 2, es
0 y3 1
el ptimo al
y*=(1, 1, 0.595)
haberse podado
Jr*=113.81
Poda
ya todas las
ramas
Prof. Cesar de Prada ISA-UVA

Ejemplo: Fbrica de pinturas


Una fbrica de pinturas tiene tres unidades de produccin de un
cierto tipo de pintura con capacidades que se indican en la tabla
adjunta. Igualmente se muestran en la misma los costos de puesta
en marcha de cada unidad y los costes por Kg de pintura
producido. Si una unidad se pone en funcionamiento, debe
producir en un periodo toda su capacidad

17

Unidad

Costes de
puesta en
marcha

Costes por Kg
de pintura
producida

Capacidad, Kg

2800

1900

2000

1700

1900

2900
Prof. Cesar de Prada ISA-UVA

Fbricas de pinturas
Las unidades pueden ponerse en marcha al principio de la
maana o al principio de la tarde. Lgicamente, si una unidad se
puso en marcha por la maana y sigue operando por la tarde solo
genera costos de puesta en marcha por la maana. Todas las
unidades se apagan por la noche y las decisiones de puesta en
marcha para el da se toman por la maana cada da de acuerdo a
los pedidos existentes.
Si un determinado da deben servirse 2500 kg de pintura por la
maana y 3500 kg por la tarde, Qu unidades deben ponerse en
funcionamiento y cuando para incurrir en los menores costos
posibles?

18

Cmo varia la solucin si la demanda de la tarde se incrementa


en 100 Kg?
Prof. Cesar de Prada ISA-UVA

Fbrica de pinturas
Variables:
1

i nmero del proceso (1, 2, 3)


j nmero del periodo de trabajo: 1 maana 2 tarde

yij variable binaria: vale 1 si el proceso i funciona


en el periodo j
ci costes de puesta en marcha de la unidad i
pi costes de produccin de un Kg en el proceso i

wi capacidad de produccin de la unidad i por


periodo
Dj demanda de pintura en el periodo j

19

zi variable binaria auxiliar , vale 1 si yi1 o yi2 es 1

Prof. Cesar de Prada ISA-UVA

Fbrica de pinturas
3

min ci z i pi wi ( yi1 yi 2 )
y ij , z i

i 1

w y
2

i 1

ij

z i yij

Dj

i 1,2,3

j 1,2

Excel

La variable zi vale 1 si se ha arrancado la unidad i por la


maana o por la tarde

Si por la maana no puede haber mas de


una unidad funcionando simultneamente:

20

j 1,2

y
i 1

i1

Prof. Cesar de Prada ISA-UVA

Formulacin en GAMS
sets i unidades / u1, u2, u3 /
j periodos / m, t /
parameters costea(i) coste de arrancar una unidad
/ u1=2800, u2=2000, u3=1900 /
costeKg(i) coste por kg por periodo / u1=5 , u2=3, u3=8 /
capacidad(i) capacidad /u1=1900, u2=1700, u3=2900/
demanda(j) demanda por periodo / m= 2500, t = 3500/;
variables

y(i,j) funciona o no la unidad I en el periodo j


z(i)
arranca la unidad i ese dia
coste coste total de la produccion del dia
binary variables y, z;

21

Prof. Cesar de Prada ISA-UVA

Formulacin en GAMS
equations produccion(j) produccion en cada periodo
restriccion(i,j) limites en z
costetotal calculo del coste;
produccion(j).. sum(i, y(i,j)*capacidad(i)) =g= demanda(j);
restriccion(i,j).. z(i) =g= y(i,j);
costetotal.. coste =e= sum(i,
costea(i)*z(i)+costeKg(i)*capacidad(i)*sum(j,y(i,j)));

model pinturas planificacion de la produccion / all /;


solve pinturas minimizing coste using mip;
display coste.l

22

Prof. Cesar de Prada ISA-UVA

Mezcla con lotes discretos


Unidad

Capacidad
kg/dia

8000

Kg de materias A
primas
necesarias

10000

Para hacer p1

0.4

0.6

0.16

Para hacer p2

0.3

0.7

0.2

Cada unidad trabaja


con lotes de 2000Kg

Disponibilidad
A

Beneficio
/ Kg

p1
1

p2

23

6000

B
C

Qu cantidad de p1 y
p2 deben producirse
para maximizar el
beneficio?
Prof. Cesar de Prada ISA-UVA

Mezcla con lotes discretos


Variables:

max 0.16 x1 0.2 x2

x1 cantidad producida por da de p1

0.6 x1 0.3x2 6000

x2 cantidad producida por da de p2

xi 2000 yi

i 1, 2

0 y1 4

0 y2 5

yi
A

p1
1

B
p2
C

24

entera
xi tiene que tomar
valores mltiplos de
2000 Kg, el tamao
del lote

2
Prof. Cesar de Prada ISA-UVA

Algoritmo Branch and Bound (B&B)


max 0.16 x1 0.2 x2
0.6 x1 0.3 x2 6000
xi 2000 yi

i 1, 2

0 y1 4

0 y1 5

yi

1
Relajacin
0 y1 4
0 y2 5
y*=(2.5, 5)
Jr*=2800

entera
y1 2

El problema relajado es LP y
su resolucin proporciona
una cota superior Jr* de J*:
J* 2800

25

2
Ramificacin

LP

y1 3

A continuacin se examinan
las dos alternativas posibles
para y1, nica variable real de
la solucin relajada
Prof. Cesar de Prada ISA-UVA

Algoritmo Branch and Bound (B&B)


max 0.16 x1 0.2 x2

Nodo
n

0.6 x1 0.3 x2 6000


xi 2000 yi

i 1, 2

0 y1 4

0 y1 5

yi

y1 2

entera
3 Relajacin
LP

Mejor solucin
factible hasta el
momento
(incumbente):
Cota inferior de J*

26

LP

0 y1 2
0 y2 5
y*=(2,5)
Jr*=2640
4 Poda

0 y1 4
0 y2 5
y*=(2.5, 5)
Jr*=2800

2
Ramificacin

1
Relajacin

y1 3

No se puede seguir ramificando en


el nodo 2. El BB terminara si la
diferencia de cotas superior e
inferior fuera menor que la
tolerancia
Prof. Cesar de Prada ISA-UVA

1
1
Relajacin

B&B

LP
y1 2

2800
J*
2640
Candidato
No hay mas
ramificacin
en este
nodo al dar
una
solucin
entera

27

0 y1 2
0 y2 5
y*=(2, 5)
Jr*=2640

2800
J*
-

0 y1 4
0 y2 5
y*=(2.5, 5)
Jr*=2800

2
Ramificacin
3
Relajaciones

Poda

y1 3
3 y1 4
0 y2 5
y*=(3,4)
Jr*=2560

Poda

Tambien da
solucin
entera, pero
es inferior al
nodo 2

Por tanto la solucin es: y*=(2, 5), x*=(4000, 10000)


Y el beneficio ptimo 2640

Prof. Cesar de Prada ISA-UVA

Variables enteras y binarias


Hay formas sencillas de hacer que una variable z
tome valores enteros entre 0 y n, usando solo
variables binarias, esto es, variables que solo toman
valores 0, 1
z = y1 + 2 y2 + 3 y3 + . + n yn
1 y1 + y2 + y3 + . + yn
y = {0 , 1}

28

Prof. Cesar de Prada ISA-UVA

Modelado con variables binarias


Seleccionar una alternativa y solo una
N

i 1

y1
y2

Seleccionar no mas de una alternativa


N

i 1

y3

Seleccionar al menos una alternativa


N

i 1

Seleccionar la alternativa j solo si se ha seleccionado la i

29

y j yi 0

Prof. Cesar de Prada ISA-UVA

Activacin de variables continuas


Para eliminar activar la variable continua x
usando la variable binaria y
q
L
U

variable continua , p.e. flujo


limite inferior
limite superior
Li yi q i Ui yi
si y i 0 0 q i 0 q i 0
si y i 1 L i q i U i

30

Prof. Cesar de Prada ISA-UVA

Modelado con variables continuas


y 0-1
Activacin y desactivacin de restricciones asociadas a una
corriente o unidad
restricciones h ( x ) 0 g ( x ) 0
var iables de ho lg ura s, v
h( x) s v 0
s v U 1 (1 y )
U , limite amplio
g ( x ) U 2 (1 y ) 0
s 0, v 0
si y 0 h ( x ) y g ( x ) no estan limitadas
si y 1 s 0, v 0, h ( x ) 0, g ( x ) 0

31

Prof. Cesar de Prada ISA-UVA

Modelado con variables continuas


y 0-1
m corrientes dirigidas al mismo nodo i
m

Uy i 0

qj

j 1

q j 0 j 1,2 , . . . , m
si y 0, q j 0

U lmite superior al flujo total

32

Prof. Cesar de Prada ISA-UVA

Modelado de expresiones lgicas


P1 P2 P3

y1 y 2 y 3 1

P1 P2 P3

y 1 1, y 2 1 y 3 1

P1 P2

1 y 1 y 2 1 o y 1 y 2 0

P1 si y solo si P2

y1 y 2

uno entre P1 , P2 , P3

y1 y 2 y 3 1

P1 P2 P3

y1 y 3 0 y 2 y 3 0

Usando estas equivalencias, puede convertirse cualquier


expresin lgica a expresiones en y, si la expresin lgica
se escribe en su forma conjuntiva normal

33

Prof. Cesar de Prada ISA-UVA

Forma normal conjuntiva


Q 1 Q 2 Q n

Donde las Q son expresiones de P escritas como disyunciones


Procedimiento de obtencin:
1 Reemplazar la implicacin por su expresin equivalente
P1 P2 P1 P2

2 Aplicar las leyes de Morgan para desplazar dentro las negaciones


( P1 P2 ) P1 P2

( P1 P2 ) P1 P2

3 Utilizar la propiedad distributiva para dar la forma normal


( P1 P2 ) P3 ( P1 P3 ) ( P2 P3 )

34

Prof. Cesar de Prada ISA-UVA

Ejemplo (1)
( P1 P2 ) P3 ( P4 P5 )

Paso 1

( P1 P2 ) P3 ( P4 P5 )
Paso 2

(P P ) P (P
1

P5 )

Paso 3

( P P ) ( P P ) P ( P P )
P P P P P P P
1

35

Prof. Cesar de Prada ISA-UVA

Ejemplo (2)

P P
1

P4 P5 P3 P4 P5

Q1 Q 2
Q 1 P1 P2 P4 P5
Q 2 P3 P4 P5
luego Q 1 Q 2

1 y 1 1 y 2 y 4 y 5 1

1 y 3 y 4 y 5 1
resulta ser

y1 y2 y4 y5 1

( P1 P2 ) P3 ( P4 P5 )

y 3 y 4 y5 0

36

Prof. Cesar de Prada ISA-UVA

Ejemplo de la produccin de acetona


(Raman y Grossmann, CACHE)
Se necesita producir acetona. La materia prima disponible es el
alcohol etlico (CH3CH2OH) y el metano (CH4). A continuacin se
muestran las posibles reacciones. Suponemos que el catalizador
que se requiere para todas las reacciones y los compuestos
inorgnicos estn disponibles excepto para CrO3 y O3. Determinar
la factibilidad para la produccin de acetona a partir de estos
productos. Si es factible, especificar un camino de reaccin.
NaOC 2 H 5 / C 2 H 5 OH
CH 3CO2 C 2 H 5

CH 3COCH 2 CO2 C 2 H 5
H 3O

CH 3COCH 2 CO2 C 2 H 5 CH 3COCH 3 C 2 H 5OH CO2


Et 2 O
H 2 O / HCl
CH 3CN CH 3 MgI
CH 3C NMgI CH 3
CH 3COCH 3

37

Prof. Cesar de Prada ISA-UVA

Ejemplo de la produccin de acetona


(Raman y Grossmann, CACHE)

Et 2 O / H 3O
CH 3CHO CH 3 MgI

CH 3CHOHCH 3
/ H 2 SO4
CH 3CHOHCH 3 CrO
3

CH 3COCH 3
3 / H 2 O / H 2 O2
CH 2 C CH 3 2 O
CH 3COCH 3 HCO2 H

CO2 CH 3
Mg / Er2 O
CH 3 I
CH 3 MgI CH
3

CH 3 3 COH

CH 3 3 COH CH 2 C CH 3 2

CH 4 I 2 CH 3 I HI
CH 4 Cl 2 CH 3Cl HCl
3 / Cu
CH 3CH 2 OH O2 Cr
2O
CH 3CHO

H 2O
CH 3Cl NaCN
NaCl CH 3CN

CH 3COOH C 2 H 5OH CH 3CO2 C 2 H 5

38

CH 3CHO O2 CH 3COOH
Prof. Cesar de Prada ISA-UVA

Ejemplo de la produccin de acetona


(Raman y Grossmann, CACHE)
Formulacin
De todas las reacciones qumicas posibles, se tiene que verificar dnde se
puede sintetizar la acetona a partir de la materia prima y catalizadores dados.
Para llegar a la conclusin final utilizando programacin matemtica, lo
primero que debemos hacer es expresar todas las reacciones en la forma de
lgica proposicional, utilizando los principales operadores:

(OR), (and), (implicacin), y (negacin)

I.

A B
M

39

A B C D

A B C D
se puede expresar como

A M B

Prof. Cesar de Prada ISA-UVA

Ejemplo de la produccin de acetona


(Raman y Grossmann, CACHE)
II. Expresar estas proposiciones lgicas en su forma conjuntiva
normal, utilizando los pasos sgtes:
1. Eliminar la implicacin

A B esto es equivalente A B
2. Mover la negacin al interior

A B A B

A B A B

Ejemplo

A B C D
A B C D
A B C D
A B C A B D

3. Distribuir el OR sobre el AND de forma recursiva

A B C A C B C

40

( ) clusula

Prof. Cesar de Prada ISA-UVA

Ejemplo de la produccin de acetona


(Raman y Grossmann, CACHE)
III. Convertir cada clusula por separado en desigualdades lineales. Para
ello, se asigna a cada variable una variable entera (binaria) y. Cada
negacin se sustituye por 1-y, donde y es la variable correspondiente.

A B C A B D
1 y A 1 y B yC 1
1 y A 1 yB yD 1
y A y B yC 1
y A yB yD 1

41

Prof. Cesar de Prada ISA-UVA

Ejemplo de la produccin de acetona


(Raman y Grossmann, CACHE)
CH 3CHO O2 CH 3COOH

CH 3CHO O2 CH 3COOH

y1 CH 3CHO

CH 3CHO O2 CH 3COOH

y 2 O2

(CH 3CHO O2 ) CH 3COOH


(CH 3CHO CH 3COOH ) (O2 CH 3COOH )

1 y1 y3 1
1 y 2 y3 1

42

y3 CH 3COOH

y1 y3 0
y 2 y3 0

Prof. Cesar de Prada ISA-UVA

Ejemplo de la produccin de acetona


(Raman y Grossmann, CACHE)

min yu
s.a.
Ay a
yr 0,1 , r 1,..., R
n

yu: variables binarias asignadas a los productos que se desean obtener


Yr : variables binarias asignadas a la materia prima y los catalizadores
disponibles
Si yu =1, significa que el producto se puede sintetizar y que se
dispone de materia prima

43

Prof. Cesar de Prada ISA-UVA

Ejemplo 1: Planteamiento
(Grossmann)
Representacin de alternativas para producir producto C a partir de los
productos A y B, a travs de los Procesos I, II, III. El producto C puede
ser producido slo a travs del proceso I; los procesos I y III, y los
procesos I y II. Los procesos II y III no pueden realizarse
simultneamente.
B
c

A2

Proceso II

B2

A1

Proceso I

B1
A3

44

Proceso III

B3

Prof. Cesar de Prada ISA-UVA

Ejemplo 1: Datos
Conversiones:
Proceso I:

Capacidad mxima

C = 0.9B

Proceso II: B = ln(1 + A)


Proceso III: B = 1.2ln(1 + A)

Precios

2 ton/h de C

Proceso II:

5 ton/h de B

Proceso III:

4 ton/h de B

Coste de Inversin

A: 1.800 $/ton

45

Proceso I:

Fijo (103 $/h)

Variable (103 $/ton)

B: 7.000 $/ton

Proceso I:

3.5

C: 13.000 $/ton

Proceso II:

Proceso III:

1.5

1.2

Demanda de C:

1 ton/h mximo

Prof. Cesar de Prada ISA-UVA

Ejemplo 1: Formulacin
B1

A2

Proceso II

B2 y 2

A1
A3

B1
Proceso III

Proceso I

C y1

B3 y 3

max PR = 13C-1.8A2 - 1.8 A3 -7B1 - 3.5y1 - 2C - 1.0y2 - 1B2 - 1.5y3 - 1.2B3


s .a.
PI: C-0.9(B1+B2+B3) = 0

Balances PII: B2-ln(1+A2) = 0


PIII: B3-1.2ln(1+A3) = 0
B1 = B2 + B3 +Bc

46

B2 5y2

B3 4 y3
c 2 y1

C, A2, A3, B1, B2, B3 >= 0


y1, y2, y3 = 0,1
y2 + y3 1

Lmites
Prof. Cesar de Prada ISA-UVA

GAMS
Positive Variables
a2 materia prima para el proceso 2
a3 materia prima para el proceso 3
b2 produccion de producto B en el proceso 2
b3 produccion de producto B en el proceso 3
bc cantidad de producto B que se puede adquirir en el mercado
b1 cantidad de producto B que se consume en el proceso 1
c1 capacidad de produccion del producto c en el proceso 1 ;
Binary Variables
y1 existencia del proceso 1
y2 existencia del proceso 2
y3 existencia del proceso 3 ;
Variable
pr beneficio total en millones de $ por ano ;

47

Prof. Cesar de Prada ISA-UVA

GAMS
las restricciones inout2 e inout3 se han convexificado
inout1.. c1 =e= 0.9*b1 ;
inout2.. exp(b2) - 1 =e= a2 ;
inout3.. exp(b3/1.2) - 1 =e= a3 ;
mbalb.. b1 =e= b2 + b3 + bp ;
log1.. c1 =l= 2*y1 ;
log2.. b2 =l= 4*y2 ;
log3.. b3 =l= 5*y3 ;

48

Prof. Cesar de Prada ISA-UVA

GAMS
y1.L = 1.000 existencia del proceso 1
y2.L = 0.000 existencia del proceso 2
y3.L = 1.000 existencia del proceso 3
c1.L = 1.000 capacidad de produccion del producto c en
el proceso 1
b1.L = 1.111 cantidad de producto B que se consume en el
proceso 1
b2.L = 0.000 produccion de producto B en el proceso 2
b3.L = 1.111 produccion de producto B en el proceso 3
bc.L = 0.000 cantidad de producto B que se puede adquirir en el
mercado
a2.L = 0.000 materia prima para el proceso 2
a3.L = 1.524 materia prima para el proceso 3

Proceso I

A3

49

Proceso III

B3 y 3

C
y1

Prof. Cesar de Prada ISA-UVA

Representacin de Alternativas:
Superestructuras, Floudas 1995
En una superestructura, se engloban todas las posibles
estructuras alternativas, que adems, son candidatas a la
solucin factible u ptima del proceso
Unidad
2

Entrada
1

Unidad
1
Unidad
3

50

Salida
1

Salida
2

Prof. Cesar de Prada ISA-UVA

Ejemplo de produccin de
amonaco, Biegler et all, 1997.
Recuperacin de
Hidrgeno

N2
H2

51

Compresor

Reactor

Separacin

Purga

NH 3

Prof. Cesar de Prada ISA-UVA

Ejemplo de produccin de
amonaco (rbol de alternativas)
reactor
tubular

condensacin
por flash

separacin por
membrana
no se recupera H2

destilacin
absorcin

separacin por
membrana
no se recupera H2

condensacin
por flash
reactor
multilecho

52

destilacin
absorcin
no se recupera H2

separacin por
membrana
no se recupera H2
separacin por
membrana

Prof. Cesar de Prada ISA-UVA

Ejemplo de produccin de
amonaco (superestructura)
purga
agua
absorbedor
NH3
reactor
tubular
N2

flash

H2
reactor
multilecho

53

agua

condensacin
por flash
NH

3
Prof. Cesar de Prada ISA-UVA

Alternativa del reactor multilecho


Alternativa 1: reactor multilecho / condensacin
por flash / separacin por membrana

purga

flash

N2
H2
reactor
multilecho

condensacin
por flash
NH3

54

Prof. Cesar de Prada ISA-UVA

Alternativa para el reactor tubular


purga

agua

absorbedor
NH3

flash

N2

agua

H2
reactor
tubular

condensacin
por flash

NH3
Alternativa 2: reactor tubular / condensacin por flash y
destilacin por absorcin / separacin por membrana Prof. Cesar de Prada ISA-UVA
55

Superestructuras
L5
L9
L6

L1

Representacin de todas
las alternativas posibles.
Cul es la mejor?

U-2

L2

B (98% C1)

L3
L10

(C1, C2, C3)

L4

L7

Variables 0-1 indican si


una corriente o una
unidad existen o no

U-3

U-1

C (97% C2)

L11
L8

56

D (99% C3)
Prof. Cesar de Prada ISA-UVA

Asignacin de tareas
En un taller trabajan n personas capaces de realizar diversas tareas.
Debido a sus diferentes habilidades y experiencia cada una tarda un
tiempo diferente en hacer cada una de las tareas, el cual es
conocido. Se deben realizar n de esas tareas para completar un
determinado trabajo. Cmo debe asignarse el personal para realizar
el tiempo total empleado?
Variables
i personas
j tareas
tij tiempo que la persona i tarda en hacer la tarea j

57

yij variable binaria, vale 1 si a la persona i se le asigna la


tarea j
Prof. Cesar de Prada ISA-UVA

Asignacin de tareas
n

min t ij y ij
x

i 1 j1

Tiempo total empleado

sujeto a
n

y
i 1

ij

y
j1

ij

1
1

j 1,..., n

Cada persona tiene que tener


asignada una tarea y una sola

i 1,..., n

Cada tarea debe haber sido


asignada a una persona y a una
sola

yij binaria

58

Prof. Cesar de Prada ISA-UVA

Oleoducto
P1

P1

P2
P2

Centro C1

P1

P3

P3

Centro C2

En que orden debo enviar los productos para minimizar costos,


satisfacer restricciones (dos tipos determinados de productos no deben
ir juntos) y satisfacer las demandas en tiempo?

59

Prof. Cesar de Prada ISA-UVA

Reactor batch
A

Un reactor opera en forma batch en


periodos de trabajo de una hora. Se
alimenta de un producto A que da lugar a
dos reacciones paralelas A B y A C
pero solo el producto B tiene valor
comercial. Las velocidades de reaccin
son:
k B 10 6 exp(10000 / RT )

k C 5 *1011 exp(20000 / RT )
Encontrar el perfil de temperatura que maximiza la
produccin final de B, sabiendo que esta debe ser inferior
en todo momento a 139 C

60

Prof. Cesar de Prada ISA-UVA

Optimizacin dinmica
A

xB

tiempo

B
T

max
T (t )

61

x B (1)

dx A
(k B k C ) x A x A (0) A0
dt
dx B
1h
6
x B ( 0) 0
kB xA
k B 10 exp(10000 / RT )
dt
11
k

5
*
10
exp(20000 / RT )
T (t ) 139
C

tiempo

Prof. Cesar de Prada ISA-UVA

Parametrizacin de las variables


de decisin
A

xB

tiempo

B
T

max
Ti

62

x B (1)

T1, T2, T3,.TN

dx A
(k B k C ) x A x A (0) A0
dt
dx B
1h
6
kB xA
x B ( 0) 0
k B 10 exp(10000 / RT )
dt
11
k

5
*
10
exp(20000 / RT )
Ti 139
C

tiempo

Prof. Cesar de Prada ISA-UVA

Resolucin con simulacin


max
Ti

x B (1)

dx A
(k B k C ) x A x A (0) A0
dt
dx B
kB xA
x B ( 0) 0
dt
Ti 139

u(t)
Optimizador
Ti

y(t)
Proceso

xB(1), Ti -139

Simulacin desde 0 a 1
para calcular J(u,x(t))

63

Prof. Cesar de Prada ISA-UVA

Optimizacin dinmica secuencial


minJ( x, u)
u
x(t ) f ( x(t ), u(t ))
y(t) g(x(t),u(t)
y y(t ) y
u u(t ) u

u(t)
Optimizador
u

64

y(t)
Proceso

Simulacin desde 0 a 1
para calcular J(u,x(t))
Prof. Cesar de Prada ISA-UVA

También podría gustarte