Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Con frecuencia las variables enteras sólo toman valores en 0-1, ya que
este tipo de variables permiten representar condiciones lógicas.
Problemas con unas solas decenas de variables pueden ser casi imposibles
de resolver.
1
Programación Entera: contenidos
1. Introducción
2. Algunos modelos básicos y Modelización con vari-
ables binarias
a) El problema del transporte
b) Problema de la mochila
c) Problema del viajante (opt. combinatoria)
d) Problema de asignación, asignación generalizada
y asignación cuadrática
e) Problema del cubrimiento, empaquetado y parti-
ción
f ) Problema del emparejamiento (opt. combinatoria)
g) Otros problemas
3. Resolución del problema.
a) Planos de corte
b) Ramificación y acotación (Branch and Bound).
2
Programación Entera: ejemplos
mı́n ctx
Ax ≤ b
x≥0
xi entera para i ∈ I ⊆ {1, . . . , n}
3
Programación Entera: ejemplos
4
Problemas directos: ejemplo
D1 D2
A 1000 2690
B 1250 1350
C 1275 850
5
Problemas directos: ejemplo
3 X
X 2
minimizar (10dij )xij
i=1 j=1
sujeto a x11 + x12 ≤ 1000
x21 + x22 ≤ 1500
x31 + x32 ≤ 1200
x11 + x21 + x31 ≥ 2300
x12 + x22 + x32 ≥ 1400
xij ∈ Z+, i = 1, 2, j = 1, 2, 3
donde
cantidad de vehı́culos a transportar de la factorı́a i, i = 1, 2
xij =
hasta el centro de distribución j, j = 1, 2, 3
6
Problemas codificados: ejemplo
Beneficio esperado (en miles de euros) que puede obtener a los 3 años
con cada uno de los proyectos.
Proyecto 1 2 3 4 5
Beneficio (miles euros) 90 150 80 100 120
Probabilidad de rechazo 0.4 0.7 0.4 0.5 0.6
Variables de decisión:
1, si se solicita el proyecto i,
xi = i = 1, 2, 3, 4, 5
0, si no se soliciota el proyecto i.
Restricciones:
• Lı́mite presupuestario:
x1 + x2 + x3 + x4 + x5 ≤ 3
xi ∈ {0, 1}, i = 1, 2, 3, 4, 5
8
Problemas codificados: ejemplo (cont.)
9
Problema de la Mochila
Variables:
1 si el objeto j es seleccionado,
xj = ∀j = 1, . . . , n
0 en otro caso.
10
Problema de la Mochila
Restricciones:
n
X
• Lı́mite de peso de la mochila: pj xj ≤ b
j=1
• Condición de variables binarias: xj ∈ {0, 1} ∀j = 1, . . . , n
n
X
Función objetivo: máx cj xj
j=1
11
Problema de asignación
12
Problema de asignación. Ejemplo
13
Problema de asignación. Ejemplo (cont.)
Para decidir la mejor asignación Juan tiene en cuenta una tasa de efec-
tividad (de 1 a 9) construida sobre actuaciones anteriores de dichos abo-
gados, ya que no todos son igual de buenos (especialistas) en todo tipo
de procesos:
14
Problema de asignación. Ejemplo (cont.)
15
Problema de Asignación Generalizada. Ejemplo
El tiempo disponible de cada ordenador para ejecutar las tareas está limi-
tado
16
Problema de Asignación Generalizada. Ejemplo (cont.)
Ordenador
Tarea O1 O2 O3
T1 18 16 12
T2 14 21 19
T3 23 27 33
T4 16 24 23
T5 17 24 24
T6 25 28 30
T. disp. (Cj ) 47 41 46
Variables
1, si la tarea i se asigna al ordenador j,
xij = ,
0, en otro caso.
i = 1, . . . , 6, j = 1, 2, 3.
17
Problema de Asignación Generalizada. Ejemplo (cont.)
Función objetivo
Restricciones
18
Problema de Asignación Generalizada. Ejemplo (cont.)
6 X
X 3
T = mı́n tij xij
i=1 j=1
3
X
xij = 1, i = 1, . . . , 6
j=1
6
X
tij xij ≤ Cj , j = 1, 2, 3
i=1
xij ∈ {0, 1}
19
Problema de Asignación Generalizada. Ejemplo (cont.)
Función objetivo
n
T = máx 18x11 + 14x21 + 23x31 + 16x41 + 17x51 + 25x61,
16x12 + 21x22 + 27x32 + 24x42 + 24x52 + 28x62,
o
12x13 + 19x23 + 33x33 + 23x43 + 24x53 + 30x63
X6 6
X 6
X
T = mı́n máx ti1xi1, ti2xi2, ti3xi3 ,
i=1 i=1 i=1
3
X
xij = 1, i = 1, . . . , 6
j=1
6
X
tij xij ≤ Cj , j = 1, 2, 3
i=1
xij ∈ {0, 1}
20
Problema de Asignación Generalizada. Ejemplo (cont.)
T = mı́n z
6
X
ti1xi1 ≤ z
i=1
6
X
ti2xi2 ≤ z
i=1
6
X
ti3xi3 ≤ z
i=1
3
X
xij = 1, i = 1, . . . , 6
j=1
6
X
tij xij ≤ Cj , j = 1, 2, 3
i=1
xij ∈ {0, 1}
21
Problema de Cubrimiento. Ejemplo
CINTAS
f1 C1, C2, C5, C6, C8, C9, C10
f2 C1, C3
f3 C2, C5, C7, C10
f4 C3, C6, C8
f5 C1, C2, C4, C6, C7, C9, C10
Para poder recuperar los archivos, primero hay que hacer un volcado de
las cintas al disco duro. Éste tiene que ser de la cinta completa, no puede
copiarse sólo una parte.
Variables
1 si volcamos la cinta i al disco duro,
xi = ∀i = 1, . . . , 10.
0 si no la volcamos.
Restricciones
El archivo 1 tiene que ser accesible ⇒ al menos 1 de las cintas de
backup que tiene copia del archivo 1 se debe volcar:
x1 + x2 + x5 + x6 + x8 + x9 + x10 ≥ 1
El resto de archivos debe ser también accesible:
x1 + x3 > 1
x2 + x5 + x7 + x10 > 1
x3 + x6 + x8 > 1
x1 + x2 + x4 + x6 + x7 + x9 + x10 > 1
27
Implicaciones entre variables binarias
x4 ≤ x6
x3 + x1 ≥ 1 (⇔ 1 − x3 ≤ x1)
x2 + x6 ≤ 1 (⇔ x6 ≤ 1 − x2)
x1 + x9 + x10 ≤ 2
29
Implicaciones entre variables binarias (cont.)
x2 + x6 6 1 x5 + x6 6 1
Lo mismo para la cintas 9:
x2 + x9 6 1 x5 + x9 6 1
x6 + x9 6 2 − 2x2 x6 + x9 6 2 − 2x5
30
Implicaciones entre variables binarias
31
Coste fijo. Ejemplo
32
Coste fijo. Ejemplo (cont.)
Modelo
z = máx 350xA + 470xB + 610x1
C
s.a.
xA + xB ≤ 120 (test 1)
xC ≤ 48 (test 2)
10xA + 15xB + 20xC ≤ 2000 (montaje)
xA , xB , xC ∈ Z+
Solución:
xA = 120, xB = 0, xC = 40
33
Coste fijo. Ejemplo (cont.)
El precio de venta es de 400, 520 y 686 euros para cada tipo de ordenador,
respectivamente.
34
Coste fijo. Ejemplo (cont.)
Un coste fijo de 2016 euros, inde- Un coste fijo de 1200 euros, inde-
pendientemente del número de orde- pendientemente del número de orde-
nadores que lo pasen. nadores que lo pasen.
Un coste variable, por hora, de 32 eu- Un coste variable, por hora, de 38.5
ros. euros.
5856
2740
1200
2016
120 40
35
Coste fijo. Ejemplo (cont.)
Hay que garantizar que si no utiliza este test, no se haga uso de ninguna
de las horas disponibles:
xA + xB ≤ 120δ1
36
Ejemplo (cont.)
Modelo
z = máx 400xA + 520xB + 686xC − 2016δ1 − 1200δ2 − 32xA − 32xB − 38,5xC
s.a.
xA + xB ≤ 120δ1 (test 1)
xC ≤ 48δ2 (test 2)
10xA + 15xB + 20xC ≤ 2000 (montaje)
xA , xB , xC ∈ Z+, δ1, δ1 ∈ {0, 1}
37
Resolución del problema
38
La resolución se complica: el redondeo
39
El redondeo: ejemplo
z = mı́nx1 − 11x2
− x1 + 10x2 ≤ 40
10x1 + 10x2 ≤ 205
x1, x2 ≥ 0 y enteras
40
El redondeo: ejemplo
(15, 6)
r
r
r r
(10, 5) (15, 5)
Posibles redondeos:
x1 = 15 y x2 = 6: no verifica la primera restricción.
x1 = 15 y x2 = 5: es factible y z = −40.
Idea:
42
Resolución del problema
r r r
r r r
r r r r
43
Resolución del problema
r r r
r r r
r r r r
44
Resolución del problema
45
Resolución: Branch and Bound
52
Ejemplo 1
5x1 + 7x2 ≤ 35
4x1 + 9x2 ≤ 36
x1 , x2 ∈ Z+
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
Cota: z opt ≤ 14,4707
43
Ejemplo 1
(3.7059,2.3529)
z=14.4706
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
Cota: z opt ≤ 14,4707
44
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
Cota: z opt ≤ 14,4707
45
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
3 ≤ x2 ≤ +∞
no factible
s 5x1 + 7x2 = 35
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
Cota: z opt ≤ 14,4707
46
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
3 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
Cota: z opt ≤ 14,4707
47
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
3 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞
(5,1.43)
z=14.29
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
48
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
3 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞
(5,1.43)
z=14.29
2 ≤ x2 ≤ +∞
no factible
s 5x1 + 7x2 = 35
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
49
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞
(5,1.43)
z=14.29
2 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 1
(5.59,1) Nuevo óptimo: (5,59, 1), z = 14,2
no factible
z=14.2 s 5x1 + 7x2 = 35
s s s s s s s s
s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
50
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞
(5,1.43)
z=14.29
2 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 1
(5.59,1) Nuevo óptimo: (6, 0,71), z = 14,13
no factible
z=14.2 s 5x1 + 7x2 = 35
6 ≤ x1 ≤ +∞ s s s s s s s s
(6,0.71)
z=14.13 s s s s s s s s
s s s s s s s s
s s s s s s s s
4x1 + 9x2 = 36
51
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞
(5,1.43)
z=14.29
2 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 1
(5.59,1)
no factible s 5x1 + 7x2 = 35
z=14.2
6 ≤ x1 ≤ +∞ s s s s s s s s
(6,0.71)
z=14.13 s s s s s s s s
s s s s s s s s
≤ x2 ≤ +∞
s s s s s s s s
no factible
Cota: z opt ≤ 14,4707 s s s s s s s s
4x1 + 9x2 = 36
52
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞
(5,1.43)
z=14.29
2 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 1
(5.59,1) Nuevo óptimo: (7, 0), z = 14
no factible s 5x1 + 7x2 = 35
z=14.2
6 ≤ x1 ≤ +∞ s s s s s s s s
(6,0.71)
z=14.13 s s s s s s s s
s s s s s s s s
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 0
(7,0)
s s s s s s s s
no factible
z=14
ta: z opt ≤ 14,4707 Incumbent: 14 ≤ z opt s s s s s s s s
4x1 + 9x2 = 36
53
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞
(5,1.43)
z=14.29
2 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 1
(5.59,1) Nuevo óptimo: (5, 1), z = 13
no factible s 5x1 + 7x2 = 35
z=14.2
6 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 5 s s s s s s s s
(6,0.71) (5,1)
z=14.13 z=13 s s s s s s s s
s s s s s s s s
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 0
(7,0)
s s s s s s s s
no factible
z=14
ta: z opt ≤ 14,4707 Incumbent: 14 ≤ z opt s s s s s s s s
4x1 + 9x2 = 36
54
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞
(4,2.14)
z=14.43
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 4
(5,1.43) (4,2)
z=14.29 z=14
2 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 1
(5.59,1) Nuevo óptimo: (4, 2), z = 14
no factible s 5x1 + 7x2 = 35
z=14.2
6 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 5 s s s s s s s s
(6,0.71) (5,1)
z=14.13 z=13 s s s s s s s s
s s s s s s s s
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 0
(7,0)
s s s s s s s s
no factible
z=14
ta: z opt ≤ 14,4707 Incumbent: 14 ≤ z opt s s s s s s s s
4x1 + 9x2 = 36
55
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 3
(4,2.14) (3,2.67)
z=14.43 z=14
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 4
(5,1.43) (4,2)
z=14.29 z=14
2 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 1
(5.59,1) Nuevo óptimo: (3, 2, 67), z = 1
no factible s 5x1 + 7x2 = 35
z=14.2
6 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 5 s s s s s s s s
(6,0.71) (5,1)
z=14.13 z=13 s s s s s s s s
s s s s s s s s
≤ x2 ≤ +∞ 0 ≤ x2 ≤ 0
(7,0)
s s s s s s s s
no factible
z=14
ta: z opt ≤ 14,4707 Incumbent: 14 ≤ z opt s s s s s s s s
4x1 + 9x2 = 36
56
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 3
(4,2.14) (3,2.67)
z=14.43 z=14
3 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 2
(4.19,2)
no factible
z=14.4
5 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 4
(5,1.43) (4,2)
z=14.29 z=14
2 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 1
(5.59,1)
no factible
z=14.2
6 ≤ x1 ≤ +∞ 0 ≤ x1 ≤ 5
(6,0.71) (5,1)
z=14.13 z=13
1 ≤ x2 ≤ +∞ 0 ≤ x2 ≤ 0
(7,0)
no factible
z=14
57
Ramificación y acotación
53
Ramificación y acotación
54
Ramificación y acotación. Comentarios
55
Ramificación y acotación. Comentarios
Diferencia relativa:
|incumbente − cota|
|cota|
56
Comentarios finales
57