Académique Documents
Professionnel Documents
Culture Documents
Indice
Problemas hbridos Tipos de problemas mixto-enteros Algoritmo Branch and Bound Ejemplos Software
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
max
y
y
j j =1
sujeto a
y
P
j =1
pj
min
y N
c y
ij i =1 j =1
ij
0 el viajante no va de la ciudad i a la j yij = yii = 0 1 el viajante va de la ciudad i a la j debe llegar una vez y solo una de la ciudad j
j =1
y
i =1 N
ij
=1 =1
j = 1,..., N
ij
1 = 1,..., N
n x R ,y Z
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
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
LP
y2= 1
10
A continuacin se examinan las dos alternativas posibles para y2, nica variable real de la solucin relajada
Prof. Cesar de Prada ISA-UVA
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 sup cota inf
1 + cota
tol
11
4 Poda
inf
B&B
129.1 J* 126.0 Candidato No hay mas ramificacin en este nodo El valor del candidato es una cota inferior para todo el problema 2
y2= 1
Poda
12
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.
B&B
129.1 J* 126.0 2
y2= 1
Candidato No hay mas ramificacin Poda en este nodo Cada solucin factible proporciona una cota inferior para cualquier rama
13
Pueden usarse los valores de las cotas para podar ramas sin calcular sus valores
B&B
129.1 J* 126.0 Candidato 2
129.1 J* -
14
Nueva solucin factible, pero inferior a la del candidato actual por lo que este no cambia
B&B
129.1 J* 126.0 Candidato 2
129.1 J* -
15
El valor de J*r es inferior a la cota inferior del candidato, cualquier ramificacin dara un valor menor, puede podarse el nodo
B&B
129.1 J* 126.0 Candidato 2
129.1 J* -
y1= 0
0 y1 1 y2 = 1 0 y3 1 y*=(0.978,1, 1) Jr*=128.11
16
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
1 2 3
17
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? Cmo varia la solucin si la demanda de la tarde se incrementa en 100 Kg?
Prof. Cesar de Prada ISA-UVA
18
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 zi variable binaria auxiliar , vale 1 si yi1 o yi2 es 1
19
Fbrica de pinturas
min ci + pi wi ( yi1 + yi 2 ) y ,z zi 3
ij i
wy
2
i =1 i
i =1
ij
Dj i= 1,2,3
z i yij
j= 1,2
j = 1,2
Excel
y
i =1
i1
20
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
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
0 0.7
A B
23
24
A B
p1 1 p2
entera
xi tiene que tomar valores mltiplos de 2000 Kg, el tamao del lote
LP
A continuacin se examinan las dos alternativas posibles para y1, nica variable real de la solucin relajada
25
Nodo n LP y1 2
xi = 2000 yi i = 1, 2 0 y1 4 0 y1 5 yi entera
3 Relajacin LP Mejor solucin factible hasta el momento (incumbente): Cota inferior de J*
0 y1 4 0 y2 5 y*=(2.5, 5) J *=2800
r
1 Relajacin
y1 3
26
4 Poda
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 ISAUVA
B&B
2800 J* 2640 Candidato No hay mas ramificacin en este nodo al dar una solucin entera 2
0 y1 4 0 y2 5 y*=(2.5, 5) Jr*=2800
2800 J* -
2 Ramificacin 3 Relajaciones
y1 3 3 y1 4 0 y2 5 y*=(3,4) Jr*=2560
Poda
Poda
Por tanto la solucin es: y*=(2, 5), x*=(4000, 10000) Y el beneficio ptimo 2640
27
28
y
i =1 N
=1 1
y
i =1
y
i =1
29
y j yi 0
30
31
q
j= 1
Uy i 0
qj
q j 0 j = 1,2, . . . , m si y = 0, q j = 0
32
y1 1, y1 =y2
y2 1 y3 1
1 y 1 + y 2 1 o y 1 y 2 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
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
34
3 Utilizar la propiedad distributiva para dar la forma normal (P1 P2 ) P3 (P1 P3 ) (P2 P3 )
Prof. Cesar de Prada ISA-UVA
Ejemplo (1)
(P1 P2 ) P3 (P4 P5 )
Paso 1
[ (P1 P2 ) P3 ] (P4 P5 )
Paso 2 (P1 P2 ) P3
Paso 3
[ (P [P
1
(P4 P5 )
P2 ) (P4 P5 )
35 P P 2 4
[P
(P4 P5 )
]
3
P5
[P
P4
P5
Ejemplo (2)
[P
P2 P4 P5
[P
P4 P5
Q1Q2 Q 1 = P1 P2 P4 P5 1 y 1 + 1 y + y 4 + y 5 1
2
36
H O CH 3COCH 3
3 2
+ C2 H 5 OH
2
+ CO2
Et CH 3C ( NMgI
)CH 3
H O/ CH 3COCH 3
37
MgI
Et 2
/H3
CH
2
CHOHCH 3
CH 3CHOHCH 3 CrO / H S O CH )
4 3 2 2 2
COCH 3
3 3
3
COH
CH 4 + I 2 CH 3 I
CHO
38
CH 3CHO + O2 CH 3 COOH
I.
ABCD
se puede expresar como
AM B
39
A B esto es equivalente A B
2. Mover la negacin al interior
ABCD ( A B ) (C D ) A B (C D )
( A B ) ( A B )
( A ) ( B ) ( A ) ( B )
C
( A B C ) ( A B D)
( ) clusula
( A B)
( A C ) (B C
)
Prof. Cesar de Prada ISA-UVA
40
( A B C ) ( A B D )
1yA +1 1 y A yB +1 yB + yC 1 + yD 1
y A + y B yC 1 y A + yB yD 1
41
y1 = CH 3CHO y 2 = O2
CH 3COOH )
y3 = CH 3COOH
1 y1 + y3
y1 y3 0 1 y 2 + y3 1
y 2 y3 0
42
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
43
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 A1
Proceso II
B2
Proceso I
B1 A3
44
Proceso III
B3
Ejemplo 1: Datos
Conversiones: Proceso I: C = 0.9B Proceso II: B = ln(1 + A) Proceso III: B = 1.2ln(1 + A) Capacidad mxima Proceso I: Proceso II: Proceso III: 2 ton/h de C 5 ton/h de B 4 ton/h de B
Coste de Inversin Fijo (103 $/h) Proceso I: Proceso II: Proceso III: 3.5 1 1.5 Variable (103 $/ton) 2 1 1.2
Prof. Cesar de Prada ISA-UVA
45
Demanda de C:
1 ton/h mximo
Ejemplo 1: Formulacin
B1 A2 A1 A3 B1
Proceso III Proceso II
B2 y 2
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
B2 5 y 2
B3 4 y 3
c 2 y1 Lmites
46
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
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
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
A3
C y1
49
B3 y3
50
Purga
N2 H2
Compresor
Reactor
Separacin
NH 3
51
52
agua
53
NH
N2 H2 reactor multilecho
54
N2 H2 reactor tubular
flash
Alternativa 2: reactor tubular / condensacin por flash y membrana 5d5estilacin por absorcin / separacin por
NH3
Prof. Cesar de Prada ISA-UVA
Superestructuras
L5 L9 B (98% C1)
56
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
Asignacin de tareas
min t ij y ij
x i =1 j =1 n n
sujeto a
y
1
i =1
ij
j = 1,..., ni=
Cada persona tiene que tener asignada una tarea y una sola Cada tarea debe haber sido asignada a una persona y a una sola
y
1
j =1
ij
= 1,..., n
yij binaria
58
Oleoducto
P1 P2 P2 P1 P3 P1 P3
Centro C1
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
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: 6 k B = 10 exp(10000 / RT ) k C = 5 *10 exp(20000 / RT )
11
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
Optimizacin dinmica
A xB
C T
tiempo
max
T (t )
x B (1)
tiempo
dx A = (k + k C ) x x A (0) = dt A0 B A dx B = k Bx x B (0) = 0 dt
A
k = 10 exp(10000 / RT )
11
1h
k = 5 *10 exp(20000 / RT )
61
T (t )
139
tiempo
max
Ti
x B (1) = ( k + k C ) x
A
dx
A
dt B dx B = k Bx dt
A
x A (0) = A0 x B (0) = 0
tiempo
k = 10 exp(10000 / RT )
11
1h
k = 5 *10 exp(20000 / RT )
62
Ti 139
x B (1)
u(t) Proceso
y(t)
63
u u(t ) u
y(t)
64