Sie sind auf Seite 1von 64
Programación mixta-entera Prof. Cesar de Prada ISA –UVA prada@autom.uva.es 1 Prof. Cesar de Prada ISA-UVA

Programación mixta-entera

Prof. Cesar de Prada ISA –UVA prada@autom.uva.es

Programación mixta-entera Prof. Cesar de Prada ISA –UVA prada@autom.uva.es 1 Prof. Cesar de Prada ISA-UVA
Programación mixta-entera Prof. Cesar de Prada ISA –UVA prada@autom.uva.es 1 Prof. Cesar de Prada ISA-UVA

Indice

Indice  Problemas híbridos  Tipos de problemas mixto-enteros  Algoritmo Branch and Bound  Ejemplos
Indice  Problemas híbridos  Tipos de problemas mixto-enteros  Algoritmo Branch and Bound  Ejemplos

Problemas híbridos

Tipos de problemas mixto-enteros

Algoritmo Branch and Bound

Ejemplos

Software

2

Prof. Cesar de Prada

ISA-UVA

Problemas híbridos

Problemas híbridos 3  Muchos problemas de decisión involucran no solo variables que pueden representarse por
Problemas híbridos 3  Muchos problemas de decisión involucran no solo variables que pueden representarse por

3

Muchos problemas de decisión involucran no solo variables que pueden representarse por valores reales, sino decisiones de tipo discreto que están representadas de forma natural por variables enteras o binarias.

Otras veces, el planteamiento del problema involucra, junto a los modelos cuantitativos, reglas o condiciones lógicas adicionales

Estos problemas de optimización híbridos con variables reales y enteras se denominan de programación mixta entera

Si las decisiones son solo de tipo entero el problema se denomina de programación entera

Prof. Cesar de Prada

ISA-UVA

Ejemplo: Banda de ladrones

Ejemplo: Banda de ladrones Una banda de ladrones asalta un almacén donde hay N objetos distintos.
Ejemplo: Banda de ladrones Una banda de ladrones asalta un almacén donde hay N objetos distintos.

Una banda de ladrones asalta un almacén donde hay N objetos distintos. Cada objeto j tiene un peso p j y un valor v j . Disponen de una camioneta que puede transportar como máximo un peso P. ¿Qué objetos deben seleccionar los ladrones para obtener el máximo beneficio de su acción?

Definiendo una variable binaria y j para indicar si un objeto ha sido o no seleccionado:

4

max

y

y

j

N

j

1

y v

j

j

sujeto a

N

j

1

y p P

j

j

el objeto j no ha sido seleccionado

el objeto j si ha sido seleccionado

0

1

Problema ILP integer linear programming

Prof. Cesar de Prada

ISA-UVA

Ejemplo: El problema del viajante

Ejemplo: El problema del viajante 5 Un viajante debe partir de su ciudad y recorrer N
Ejemplo: El problema del viajante 5 Un viajante debe partir de su ciudad y recorrer N

5

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 c ij . ¿Cual es la ruta que debe seguir para recorrer una distancia mínima?.

Podemos asociar una variable binaria y ij a cada par de ciudades i , j

variable binaria y i j a cada par de ciudades i , j i j c

i

j

binaria y i j a cada par de ciudades i , j i j c ij
binaria y i j a cada par de ciudades i , j i j c ij
c ij y ij
c
ij
y ij

min

y

N

i 1

N

j

1

y

y

ij

ij

N

N



1

i j

1

c

ij

y

ij

y

ij

1 j

1,

,

N

1 1

1,

,

N

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

1 el viajante va de la ciudad i a la j

y 0

ii

debe llegar una vez y solo una de la ciudad j

debe partir una vez y solo una de la ciudad i

Prof. Cesar de Prada

ISA-UVA

Tipos de problemas mixto enteros

Tipos de problemas mixto enteros 6  min c'y  y   Ay  b
Tipos de problemas mixto enteros 6  min c'y  y   Ay  b

6

min c'y

y

  Ay b

  y Z

min

x,y


Ax b

min c'x

x,y

d' y

ILP Integer

Linear

Programming

MILP Mix-Integer

Linear

Programming


Ey e

0

R

n

,

Z

x

y


h(x,y) 0

J ( x,y

)

Pueden re-convertirse igualdades y desigualdades usando variables de holgura, al igual que problemas min en max

MINLP Mix-Integer

Non-Linear

Programming

g(x,y) 0

x

R

n

,

y

Z

Prof. Cesar de Prada

ISA-UVA

Métodos de solución

Métodos de solución  La aproximación de tratar las vari ables enteras como reales y luego
Métodos de solución  La aproximación de tratar las vari ables enteras como reales y luego

La aproximación de tratar las variables enteras como reales y luego aproximarlas al entero mas próximo suele dar resultados erróneos, excepto quizás cuando el número 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 número finito. Pero el número de combinaciones crece exponencialmente con el número 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)

7

Prof. Cesar de Prada

ISA-UVA

Branch and Bound (B&B)

Branch and Bound (B&B) El método proporciona una búsqueda inteligente del óptimo combinando la comparación de
Branch and Bound (B&B) El método proporciona una búsqueda inteligente del óptimo combinando la comparación de

El método proporciona una búsqueda inteligente del óptimo combinando la comparación de distintas alternativas función de las variables enteras, con un procedimiento para eliminar combinaciones que no pueden conducir al óptimo y para determinar las condiciones de óptimo basándose en cotas del mismo.

Está basado en tres ideas principales:

Relajación, que proporciona cotas del problema

Ramificación, que examina las distintas alternativas de

variables enteras en un punto dado del árbol de decisión.

Poda, que permite eliminar determinados grupos de

combinaciones de variables enteras simplificando la búsqueda

8

Prof. Cesar de Prada

ISA-UVA

Relajación

Relajación Una relajación de un problema MILP o MINLP consiste en suponer que las variables binarias
Relajación Una relajación de un problema MILP o MINLP consiste en suponer que las variables binarias

Una relajación de un problema MILP o MINLP consiste en suponer que las variables binarias y j pueden tomar valores reales en el intervalo 0 y j 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.

9

e y , son reales y resulta un problema de tipo LP o NLP. 9 Dominio
e y , son reales y resulta un problema de tipo LP o NLP. 9 Dominio

Dominio del problema original

Dominio del problema relajado

Lógicamente, al ampliar el espacio de búsqueda, la solución del problema relajado es una cota inferior (o superior en el caso de maximización) al problema original MILP o MINLP. El cálculo 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 y 1 +

Algoritmo Branch and Bound (B&B)

Algoritmo Branch and Bound (B&B) Ejemplo ILP (Himmelblau) Max J = 86 y 1 + 4
Algoritmo Branch and Bound (B&B) Ejemplo ILP (Himmelblau) Max J = 86 y 1 + 4

Ejemplo ILP (Himmelblau)

Max

J = 86 y 1 + 4 y 2 + 40 y 3

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

1

Relajación

1

0

y 1 1

 

0

y 2 1

0

y 3 1

y*=(1, 0.776, 1)

 

J

r *=129.1

y

 1 y*=(1, 0.776, 1)   J r *=129.1 y 2 = 0 2 Ramificación LP

2 = 0

2

Ramificación

1)   J r *=129.1 y 2 = 0 2 Ramificación LP y 2 = 1

LP

y 2 = 1

El problema relajado es LP y su resolución proporciona una cota superior Jr* de J*:

10 J* 129.1

A continuación se examinan

las dos alternativas posibles

para y 2, única variable real de

la solución relajada

Prof. Cesar de Prada

ISA-UVA

Algoritmo Branch and Bound (B&B)

Algoritmo Branch and Bound (B&B) 11 Max Sujeto a 774 y 1 + 76 y 2
Algoritmo Branch and Bound (B&B) 11 Max Sujeto a 774 y 1 + 76 y 2

11

Max

Sujeto a

774 y 1 + 76 y 2 + 42 y 3 875

67 y 1 + 27 y 2 + 53 y 3 875

y1, y2, y3 0,1

J = 86 y 1 + 4 y 2 + 40 y 3

3 Relajación

Nodo nº
Nodo

LP

1

0

y 1 1

 

0

y 2 1

0

y 3 1 y*=(1, 0.776, 1)

 

J

r *=129.1

y

2 = 0
2 = 0

2

Ramificación

1)   J r *=129.1 y 2 = 0 2 Ramificación 1 Relajación y 2 =

1

Relajación

y 2 = 1

LP 2 0  y 1  1 y 2 = 0 0  y
LP
2
0  y 1  1
y 2 = 0
0  y 3  1
y*=(1, 0, 1)
J r *=126.0

Mejor solución factible hasta el momento (incumbente):

Cota inferior de J*

4 Poda

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

inf

cota

sup

tol

1 cota

inf

Prof. Cesar de Prada

ISA-UVA

 

1

0

y 1 1

129.1

 

1

 

J*

0

y 2 1

Relajación

0

y 3 1

-

B&B

LP

   
 

y*=(1, 0.776, 1) J r *=129.1

 

129.1

J*

126.0

Candidato No hay mas ramificación en este nodo El valor del candidato es una cota inferior para todo el

y

valor del candidato es una cota inferior para todo el y 2 = 0 2 2

2 = 0

2

2

0 y 1 1 y 2 = 0

0 y 3 1 y*=(1, 0, 1)

J r *=126.0

Poda

0  y 3  1 y*=(1, 0, 1) J r *=126.0 Poda Cota superior en

Cota

superior

en esta

1 y*=(1, 0, 1) J r *=126.0 Poda Cota superior en esta y 2 = 1
y 2 = 1 rama: 128.11 3 0  y 1  1 y 2
y
2 = 1
rama:
128.11
3
0  y 1  1
y 2 = 1
J*
126.0
0  y 3  1
y*=(0.978,1, 1)
J r *=128.11
y 1 = 1

Ramificación

Relajaciones

y 1 = 0

J r *=128.11 y 1 = 1 Ramificación Relajaciones y 1 = 0 Ramificación Si el

Ramificación

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.

12 problema

Prof. Cesar de Prada

ISA-UVA

 

1

0

y 1 1

129.1

 

1

 

J*

0

y 2 1

Relajación

0

y 3 1

-

B&B

LP

   
 

y*=(1, 0.776, 1) J r *=129.1

 
129.1 J* 126.0
129.1
J*
126.0

Candidato No hay mas ramificación en este nodo

y

126.0 Candidato No hay mas ramificación en este nodo y 2 = 0 2 2 0

2 = 0

2

2

0 y 1 1 y 2 = 0

0 y 3 1 y*=(1, 0, 1)

J r *=126.0

Poda

0  y 3  1 y*=(1, 0, 1) J r *=126.0 Poda Cota superior en

Cota

superior

en esta

1 y*=(1, 0, 1) J r *=126.0 Poda Cota superior en esta y 2 = 1
y 2 = 1 rama: 128.11 3 0  y 1  1 y 2
y
2 = 1
rama:
128.11
3
0  y 1  1
y 2 = 1
J*
126.0
0  y 3  1
y*=(0.978,1, 1)
J r *=128.11
y 1 = 1
Cada ramificación
proporciona cotas
superiores menores
en esa rama

Prof. Cesar de Prada

ISA-UVA

Ramificación

Relajaciones

y 1 = 0

de Prada ISA-UVA Ramificación Relajaciones y 1 = 0 Ramificación Cada solución factible proporciona una cota

Ramificación

Cada solución factible proporciona una cota inferior para cualquier rama

Pueden usarse los valores de las cotas para podar ramas sin calcular sus valores

13

 

1

0

y 1 1

129.1

 

1

 

J*

0

y 2 1

Relajación

0

y 3 1

-

B&B

LP

   
 

y*=(1, 0.776, 1) J r *=129.1

 
    y*=(1, 0.776, 1) J r *=129.1   129.1 J* 126.0 Candidato Nueva solución factible,
129.1 J* 126.0 Candidato
129.1
J*
126.0
Candidato

Nueva solución factible, pero inferior a la del candidato actual por lo que este no 14 cambia

y 2 = 0 2 Ramificación
y
2 = 0
2
Ramificación
por lo que este no 14 cambia y 2 = 0 2 Ramificación y 2 =

y 2 = 1

2

0 y 1 1 y 2 = 0

0 y 3 1 y*=(1, 0, 1)

J r *=126.0

3

0 y 1 1 y 2 = 1

0 y 3 1 y*=(0.978,1, 1)

J r *=128.11

0  y 3  1 y*=(0.978,1, 1) J r *=128.11 y 1 = 1 Relajaciones

y 1 = 1

Relajaciones

y 1 = 0

1) J r *=128.11 y 1 = 1 Relajaciones y 1 = 0 Ramificación 4 y

Ramificación

4

y 1 =0

y 2 = 1 0 y 3 1 y*=(0,1, 1)

J r *=44.0

Relajación

No se puede seguir

ramificando este nodo

128.11 J* 126.0
128.11
J*
126.0

Poda

Prof. Cesar de Prada

ISA-UVA

 

1

0

y 1 1

129.1

 

1

 

J*

0

y 2 1

B&B

Relajación

0

y 3 1

-

   

LP

   
 

y*=(1, 0.776, 1) J r *=129.1

 
    y*=(1, 0.776, 1) J r *=129.1   15 2 y 2 = 0 2

15

  y*=(1, 0.776, 1) J r *=129.1   15 2 y 2 = 0 2 0

2

  y*=(1, 0.776, 1) J r *=129.1   15 2 y 2 = 0 2 0

y

2 = 0

2

0 y 1 1 y 2 = 0

0 y 3 1 y*=(1, 0, 1)

J r *=126.0

y 2 = 1

Ramificación

129.1 J* 126.0 Candidato
129.1
J*
126.0
Candidato
128.11 J* 126.0
128.11
J*
126.0

3

0 y 1 1 y 2 = 1

0 y 3 1 y*=(0.978,1, 1)

J r *=128.11

0  y 3  1 y*=(0.978,1, 1) J r *=128.11 y 1 = 1 Relajaciones

y 1 = 1

Relajaciones

y 1 = 0

1) J r *=128.11 y 1 = 1 Relajaciones y 1 = 0 Ramificación 4 y

Ramificación

4

y 1 =0

y 2 = 1 0 y 3 1 y*=(0,1, 1)

J r *=44.0

Poda

5 y 1 = 1 y 2 = 1 0  y 3  1
5 y 1 = 1 y 2 = 1 0  y 3  1
5 y 1 = 1 y 2 = 1 0  y 3  1
5 y 1 = 1 y 2 = 1 0  y 3  1

5

5
5 y 1 = 1 y 2 = 1 0  y 3  1 y*=(1,
5 y 1 = 1 y 2 = 1 0  y 3  1 y*=(1,
5 y 1 = 1 y 2 = 1 0  y 3  1 y*=(1,
5 y 1 = 1 y 2 = 1 0  y 3  1 y*=(1,

y 1 = 1 y 2 = 1 0 y 3 1

y 1 = 1 y 2 = 1 0  y 3  1

y*=(1, 1, 0.595) J r *=113.81

y*=(1, 1, 0.595) J r *=113.81
y*=(1, 1, 0.595) J r *=113.81

Prof. Cesar de Prada

El valor de J* r es inferior a la cota inferior del candidato, cualquier

ramificación daría un valor menor, puede podarse el nodo

Relajación

Poda

ISA-UVA

 

1

0

y 1 1

129.1

 

1

 

J*

0

y 2 1

B&B

Relajación

0

y 3 1

-

   

LP

   
 

y*=(1, 0.776, 1) J r *=129.1

 
    y*=(1, 0.776, 1) J r *=129.1   16 2 y 2 = 0 2

16

  y*=(1, 0.776, 1) J r *=129.1   16 2 y 2 = 0 2 0

2

  y*=(1, 0.776, 1) J r *=129.1   16 2 y 2 = 0 2 0

y

2 = 0

2

0 y 1 1 y 2 = 0

0 y 3 1 y*=(1, 0, 1)

J r *=126.0

y 2 = 1

Ramificación

129.1 J* 126.0 Candidato
129.1
J*
126.0
Candidato
128.11 J* 126.0
128.11
J*
126.0

3

0 y 1 1 y 2 = 1

0 y 3 1 y*=(0.978,1, 1)

J r *=128.11

0  y 3  1 y*=(0.978,1, 1) J r *=128.11 y 1 = 1 y

y 1 = 1

y 1 = 0

y*=(0.978,1, 1) J r *=128.11 y 1 = 1 y 1 = 0 El candidato actual,

El candidato actual, nodo 2, es el óptimo al

haberse podado ya todas las ramas

Ramificación

4

y 1 =0

y 2 = 1 0 y 3 1 y*=(0,1, 1)

J r *=44.0

Poda

5

5 y 1 = 1 y 2 = 1 0  y 3  1 y*=(1,

y 1 = 1 y 2 = 1 0 y 3 1 y*=(1, 1, 0.595) J r *=113.81

y 1 = 1 y 2 = 1 0  y 3  1 y*=(1, 1,

Prof. Cesar de Prada

Poda

ISA-UVA

Ejemplo: Fábrica de pinturas

Ejemplo: Fábrica de pinturas Una fábrica de pinturas tiene tres unidades de producción de un cierto
Ejemplo: Fábrica de pinturas Una fábrica de pinturas tiene tres unidades de producción de un cierto

Una fábrica de pinturas tiene tres unidades de producción 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

Unidad

Costes de puesta en marcha €

Costes por Kg de pintura producida €

Capacidad, Kg

1

2800

5

1900

2

2000

3

1700

3

1900

8

2900

17

Prof. Cesar de Prada

ISA-UVA

Fábricas de pinturas

Fábricas de pinturas Las unidades pueden ponerse en marcha al principio de la mañana o al
Fábricas de pinturas Las unidades pueden ponerse en marcha al principio de la mañana o al

Las unidades pueden ponerse en marcha al principio de la mañana o al principio de la tarde. Lógicamente, si una unidad se puso en marcha por la mañana y sigue operando por la tarde solo genera costos de puesta en marcha por la mañana. Todas las unidades se apagan por la noche y las decisiones de puesta en marcha para el día se toman por la mañana cada día de acuerdo a los pedidos existentes.

Si un determinado día deben servirse 2500 kg de pintura por la mañana y 3500 kg por la tarde, ¿Qué unidades deben ponerse en funcionamiento y cuando para incurrir en los menores costos posibles?

18

¿Cómo varia la solución si la demanda de la tarde se incrementa en 100 Kg?

Prof. Cesar de Prada

ISA-UVA

Fábrica de pinturas

Fábrica de pinturas 1 2 3 Variables: i número del proceso (1, 2, 3) j número
Fábrica de pinturas 1 2 3 Variables: i número del proceso (1, 2, 3) j número

1

1 2 3

2

1 2 3

3

Variables:

i número del proceso (1, 2, 3)

j número del periodo de trabajo: 1 mañana 2 tarde

y ij variable binaria: vale 1 si el proceso i funciona en el periodo j

c i costes de puesta en marcha de la unidad i

p i costes de producción de un Kg en el proceso i

w i capacidad de producción de la unidad i por periodo

19

D j demanda de pintura en el periodo j

z i variable binaria auxiliar , vale 1 si y

i1 o y i2

Prof. Cesar de Prada

es 1

ISA-UVA

Fábrica de pinturas

Fábrica de pinturas 20 1 2 3 min y ij , z i 3  i
Fábrica de pinturas 20 1 2 3 min y ij , z i 3  i

20

1

1 2 3

2

1 2 3

3

min

y

ij

,

z

i

3

i 1

3

i 1

w y

i

ij

z y

i

ij

c z

i

i

i 

D

j

i

(

p w y y

i

i

i

1

i

 

j

1,2

1,2,3

j

2

)

1,2

Excel
Excel

La variable z i vale 1 si se ha arrancado la unidad i por la mañana o por la tarde

Si por la mañana no puede haber mas de una unidad funcionando simultáneamente:

3

i 1

y

i

1

1

Prof. Cesar de Prada

ISA-UVA

Formulación en GAMS

Formulación en GAMS sets i unidades / u1, u2, u3 / j periodos / m, t
Formulación en GAMS sets i unidades / u1, u2, u3 / j periodos / m, t

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

Formulación en GAMS

Formulación en GAMS equations produccion(j) produccion en cada periodo restriccion(i,j) costetotal limites en z
Formulación en GAMS equations produccion(j) produccion en cada periodo restriccion(i,j) costetotal limites en z

equations produccion(j) produccion en cada periodo

restriccion(i,j)

costetotal

limites en z calculo del coste;

produccion(j)

restriccion(i,j)

costetotal

sum(i, y(i,j)*capacidad(i)) =g= demanda(j); z(i) =g= y(i,j); coste =e= sum(i,

costea(i)*z(i)+costeKg(i)*capacidad(i)*sum(j,y(i,j)));

22

model pinturas planificacion de la produccion / all /;

solve

display coste.l

pinturas minimizing coste using mip;

Prof. Cesar de Prada

ISA-UVA

Mezcla con lotes discretos

Mezcla con lotes discretos   Capacidad Unidad kg/dia 1 8000 2 10000 Cada unidad trabaja con
Mezcla con lotes discretos   Capacidad Unidad kg/dia 1 8000 2 10000 Cada unidad trabaja con
 

Capacidad

Unidad

kg/dia

1

8000

2

10000

Cada unidad trabaja con lotes de 2000Kg

Kg de materias primas necesarias

A

B

C

Beneficio € / Kg

Para hacer p1

0.4

0.6

0

0.16

Para hacer p2

0

0.3

0.7

0.2

Disponibilidad

 

6000

   

23

p1 A 1 B p2 2 C
p1
A
1
B
p2
2
C

¿Qué cantidad de p1 y p2 deben producirse para maximizar el beneficio?

Prof. Cesar de Prada

ISA-UVA

Mezcla con lotes discretos

Mezcla con lotes discretos 24 Variables: x 1 cantidad producida por día de p1 x 2
Mezcla con lotes discretos 24 Variables: x 1 cantidad producida por día de p1 x 2

24

Variables:

x 1 cantidad producida por día de p1

x 2 cantidad producida por día de p2

p1 A 1 B p2 2 C
p1
A
1
B
p2
2
C

max 0.16

0.6

x

0

i

x

1

0.3

x

y

i

x

1

2000

4

y

1

y

i entera

2

0.2

x

2

i

6000

1, 2

0

y

2

5

x i tiene que tomar

valores múltiplos de 2000 Kg, el tamaño del lote

Prof. Cesar de Prada

ISA-UVA

Algoritmo Branch and Bound (B&B) 25 max 0.16 0.6 x i 0 y  x

Algoritmo Branch and Bound (B&B)

Algoritmo Branch and Bound (B&B) 25 max 0.16 0.6 x i 0 y  x 1
Algoritmo Branch and Bound (B&B) 25 max 0.16 0.6 x i 0 y  x 1

25

max 0.16

0.6

x i

0

y

x

1

x

x

1

0.3

2000

y

i

y

1

4

entera

i

2

0.2

x

2

i

6000

1, 2

y

0

1

5

El problema relajado es LP y su resolución proporciona una cota superior Jr* de J*:

J* 2800

1

Relajación

0 y 1 4

0 y 2 5 y*=(2.5, 5)

J r *=2800

y

4 0  y 2  5 y*=(2.5, 5) J r *=2800 y 1  2

1 2

2

Ramificación

y*=(2.5, 5) J r *=2800 y 1  2 2 Ramificación LP y 1  3

LP

y 1 3

A continuación se examinan

las dos alternativas posibles

para y 1, única variable real de

la solución relajada

Prof. Cesar de Prada

ISA-UVA

Algoritmo Branch and Bound (B&B)

Algoritmo Branch and Bound (B&B) 26 max 0.16 0.6 x i 0 y  x 1
Algoritmo Branch and Bound (B&B) 26 max 0.16 0.6 x i 0 y  x 1

26

max 0.16

0.6

x i

0

y

x

1

x

x

1

0.3

2000

y

i

y

1

4

i entera

2

0.2

x

2

i

6000

1, 2

y

0

1

5

3 Relajación

Nodo nº
Nodo

LP

1

0

0

y 1 4

y 2 5

y*=(2.5, 5)

J r *=2800

y 1  2
y 1  2

2

Ramificación

5 y*=(2.5, 5) J r *=2800 y 1  2 2 Ramificación 1 Relajación y 1

1

Relajación

y 1 3

LP 2 0  y 1  2 0  y 2  5 y*=(2,5)
LP
2
0  y 1  2
0  y 2  5
y*=(2,5)
J r *=2640

Mejor solución factible hasta el momento (incumbente):

Cota inferior de J*

4 Poda

No se puede seguir ramificando en el nodo 2. El BB terminaría si la diferencia de cotas superior e inferior fuera menor que la tolerancia

Prof. Cesar de Prada

ISA-UVA

1

0

0

y 1 4

y 2 5

y*=(2.5, 5)

J r *=2800

2800

J*

-

1

Relajación

LP

B&B

J r *=2800 2800 J* -  1 Relajación LP B&B 2800 J* 2640 Candidato No

2800

J*

2640

Candidato

No hay mas ramificación en este nodo al dar una solución entera

ramificación en este nodo al dar una solución entera 2 y 1  2 y 1

2

en este nodo al dar una solución entera 2 y 1  2 y 1 

y 1 2

y 1 3

Ramificación

2

0

0

y 1 2

y 2 5

y*=(2, 5)

J r *=2640

Poda

3

3 y 1 4 0y 2 5

y*=(3,4)

J r *=2560

Poda

4 0  y 2  5 y*=(3,4) J r *=2560 Poda Relajaciones Tambien da solución

Relajaciones

Tambien da solución entera, pero es inferior al nodo 2

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

Y el beneficio óptimo 2640 €

27

Prof. Cesar de Prada

ISA-UVA

Variables enteras y binarias

Variables enteras y binarias Hay formas sencillas de hacer que una variable z tome valores enteros
Variables enteras y binarias Hay formas sencillas de hacer que una variable z tome valores enteros

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 = y 1 + 2 y 2 + 3 y 3 + …. + n y n

28

1

y 1 + y 2 + y 3 + …. + y n

y = {0 , 1}

Prof. Cesar de Prada

ISA-UVA

Modelado con variables binarias

Modelado con variables binarias Seleccionar una alternativa y solo una N  y i i 
Modelado con variables binarias Seleccionar una alternativa y solo una N  y i i 

Seleccionar una alternativa y solo una

N

y i

i 1

1

Seleccionar no mas de una alternativa

N

y i

i 1

1

Seleccionar al menos una alternativa

N

y i

i 1

1

y1 y2 y3
y1
y2
y3

Seleccionar la alternativa j solo si se ha seleccionado la i

29

y

j

y

i

0

Prof. Cesar de Prada

ISA-UVA

Activación de variables continuas

Activación de variables continuas Para eliminar ó activar la variable continua x usando la variable binaria
Activación de variables continuas Para eliminar ó activar la variable continua x usando la variable binaria

Para eliminar ó activar la variable continua x usando la variable binaria y

30

q

variable continua , p.e. flujo

L

limite inferior

U

limite superior

L y

si

si

i

i

y

y

i

i

q

i

0

1

U y

i

i

0

L

i

q

i

q

0

i

U

i

q

i

0

Prof. Cesar de Prada

ISA-UVA

Modelado con variables continuas y 0-1

Modelado con variables continuas y 0-1 Activación y desactivación de restricciones asociadas a una corriente o
Modelado con variables continuas y 0-1 Activación y desactivación de restricciones asociadas a una corriente o

Activación y desactivación de restricciones asociadas a una corriente o unidad

31

restricciones

var

hx

(

h x

()

0

ura

()

0

lg

0

y

v

g x

iables

de

ho

s v

,

)   0

s

v

U

1

2

()

)

(

1

1

y



v

U

,

limite

amplio

s

()

gx

U

s

0

,

v

si

si

y

y

0



y

0

()

10

h x

s

()

g x

0

,

no

h x

()

estan

0

,

limitadas

0

()

g x



,

Prof. Cesar de Prada

ISA-UVA

Modelado con variables continuas y 0-1

Modelado con variables continuas y 0-1 m corrientes dirigidas al mismo nodo i m  j
Modelado con variables continuas y 0-1 m corrientes dirigidas al mismo nodo i m  j

m corrientes dirigidas al mismo nodo i

m

j 1

q

j

Uy

i 0

qj

0

y

si

0

12

,

,

, m

0

j

, 

q

j

U límite superior al flujo total

32

qj

0 y si  0 12 , ,  , m 0 j  , 
0 y si  0 12 , ,  , m 0 j  , 
0 y si  0 12 , ,  , m 0 j  , 
0 y si  0 12 , ,  , m 0 j  , 
0 y si  0 12 , ,  , m 0 j  , 
0 y si  0 12 , ,  , m 0 j  , 
0 y si  0 12 , ,  , m 0 j  , 
0 y si  0 12 , ,  , m 0 j  , 

Prof. Cesar de Prada

ISA-UVA

Modelado de expresiones lógicas

Modelado de expresiones lógicas PP  12 PP  12   P 3 P 3
Modelado de expresiones lógicas PP  12 PP  12   P 3 P 3

PP

12

PP

12

P

3

P

3

1

y

yyy

y

y

3

12

1

1

,



11

23

P

1

P

1

P

2

si y solo si P

2

11

y

y

y

12

y

2

1

oy

y

12

0

uno entre P

PP  

P

12

,

P

3

12

,

P

3

 1

y

3

yy

12

yy 

13

0

y

2

 y

3

0

Usando estas equivalencias, puede convertirse cualquier expresión lógica a expresiones en y , si la expresión lógica se escribe en su forma conjuntiva normal

33

Prof. Cesar de Prada

ISA-UVA

Forma normal conjuntiva

Forma normal conjuntiva QQ 1     2 Q n Donde las Q son
Forma normal conjuntiva QQ 1     2 Q n Donde las Q son

QQ

1

 

2

Q

n

Donde las Q son expresiones de P escritas como disyunciones

Procedimiento de obtención:

1 Reemplazar la implicación por su expresión equivalente

P

1

P

2

 

PP

12

2 Aplicar las leyes de Morgan para desplazar dentro las negaciones

()PP

12

 

PP

12

()PP

12

 

PP

12

3 Utilizar la propiedad distributiva para dar la forma normal

34

(PP )

12

P

 

3

(PP )(P

13

2

P )

3

Prof. Cesar de Prada

ISA-UVA

Ejemplo (1)

Ejemplo (1) ()PP  12 P  3 ()PP  4 5 Paso 1  ()PP
Ejemplo (1) ()PP  12 P  3 ()PP  4 5 Paso 1  ()PP

()PP

12

P



3

()PP

4

5

Paso 1

()PP P ()PP

12



3

4

5

35

Paso 2

()PP

12

P



3

()P

P

5

4

Paso 3

(PP )(P

12

4

P )

5



3



P

(P

4



PP

12

  

4

5

34

P

P

PP

P

5

P )

5

Prof. Cesar de Prada

ISA-UVA

Ejemplo (2)

Ejemplo (2)   PP 12    4 5 34 P P PP P
Ejemplo (2)   PP 12    4 5 34 P P PP P



PP

12

  

4

5

34

P

P

PP

P

5

Q

Q

Q

1

1

2

Q

2

PP

12

P

4

 PPP

345

P

5

11

  

y

1

1

y

3

y

4

y

y

5

2

y

1

4

y

5

1

luego

Q

1

Q

2

resulta

ser

y

y

1

3

y

y

2

y

y

4

4

5

y

0

5

1

()PP

12

P



3

()PP

4

5

36

Prof. Cesar de Prada

ISA-UVA

Ejemplo de la producción de acetona

(Raman y Grossmann, CACHE)

de la producción de acetona (Raman y Grossmann, CACHE) Se necesita producir acetona. La materia prima
de la producción de acetona (Raman y Grossmann, CACHE) Se necesita producir acetona. La materia prima

Se necesita producir acetona. La materia prima disponible es el alcohol etílico (CH 3 CH 2 OH) y el metano (CH 4 ). A continuación se muestran las posibles reacciones. Suponemos que el catalizador que se requiere para todas las reacciones y los compuestos inorgánicos están disponibles excepto para CrO 3 y O 3. Determinar la factibilidad para la producción de acetona a partir de estos productos. Si es factible, especificar un camino de reacción.

37

CH CO C H

3

2

2

5

NaOC H

2

5

/

C H OH

2

5



CH COCH CO C H

3

2

2

2

5

CH COCH CO C H

3

2

2

2

5

H O

3



CH COCH

3

3

CH CN CH MgI

3

3

Et O

2



CH C NMgI CH

3

3

C H OH CO

2

5

2

H O HCl

2

/



CH COCH

3

3

Prof. Cesar de Prada

ISA-UVA

Ejemplo de la producción de acetona

(Raman y Grossmann, CACHE)

de la producción de acetona (Raman y Grossmann, CACHE) 38 CH CHO CH MgI 3 
de la producción de acetona (Raman y Grossmann, CACHE) 38 CH CHO CH MgI 3 

38

CH CHO CH MgI

3

3

/

Et O H O



2

3

CH CHOHCH

3

3

CH CHOHCH

CH

CH I

CrO

3

/

H SO

2

4

2

3

3

2



O

3

/

H O H O

/

2

2

2

CH COCH

3

3

3

2

3

C CH

/

Mg Er O



CH MgI

3

3

CH COCH HCO H

3

3

2

3

CH

3

3 COH

CH CO CH

2







CH

3

3

COH

CH

2

C CH



3

2

CH

CH

CH CH OH O

 

2

Cl

2

2

I

CH I

3

HI

4

4

3

CH Cl HCl

3

Cr O

2

3

/

Cu

 

2

CH CHO

3

CH Cl NaCN

3

H O

2



NaCl CH CN

3

CH COOH C H OH

3

2

5

CH CO C H

3

2

2

CH CHO O

3

2

CH COOH

3

5

Prof. Cesar de Prada

ISA-UVA

Ejemplo de la producción de acetona

(Raman y Grossmann, CACHE)

de la producción de acetona (Raman y Grossmann, CACHE) Formulación De todas las reacciones químicas posibles,
de la producción de acetona (Raman y Grossmann, CACHE) Formulación De todas las reacciones químicas posibles,

Formulación

De todas las reacciones químicas posibles, se tiene que verificar dónde se puede sintetizar la acetona a partir de la materia prima y catalizadores dados.

Para llegar a la conclusión final utilizando programación matemática, lo primero que debemos hacer es expresar todas las reacciones en la forma de lógica proposicional, utilizando los principales operadores:

(OR), (and), (implicación), y (negación)

I. A B C D

39

A

M



B

se puede expresar como

A B C D

A M B

Prof. Cesar de Prada

ISA-UVA

Ejemplo de la producción de acetona

(Raman y Grossmann, CACHE)

de la producción de acetona (Raman y Grossmann, CACHE) II. Expresar estas proposiciones lógicas en su
de la producción de acetona (Raman y Grossmann, CACHE) II. Expresar estas proposiciones lógicas en su

II. Expresar estas proposiciones lógicas en su forma conjuntiva normal, utilizando los pasos sgtes:

40

1. Eliminar la implicación

Ejemplo

A B

esto es equivalente A B

A B

 

C

D

A



   

A B

C

C

B

D

D

A

B C