Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación Lineal Entera - Foro PDF
Programación Lineal Entera - Foro PDF
on Lineal Entera
Los modelos de programaci
on entera son una extensi
on de los modelos
lineales en los que algunas variables toman valores enteros.
Con frecuencia las variables enteras s
olo toman valores en 0-1, ya que
este tipo de variables permiten representar condiciones l
ogicas.
Este tipo de modelos permite representar sistemas mucho m
as complejos.
on de los mismos se complica excesivamente. No se
A cambio, la resoluci
puede utilizar la suavidad de las funciones para inferir el comportamiento
de las mismas cerca del
optimo.
Problemas con unas solas decenas de variables pueden ser casi imposibles
de resolver.
Programaci
on Entera: contenidos
1. Introducci
on
2. Algunos modelos b
asicos y Modelizaci
on con variables binarias
a) El problema del transporte
b) Problema de la mochila
c) Problema del viajante (opt. combinatoria)
d) Problema de asignaci
on, asignaci
on generalizada
y asignaci
on cuadr
atica
e) Problema del cubrimiento, empaquetado y partici
on
f ) Problema del emparejamiento (opt. combinatoria)
g) Otros problemas
3. Resoluci
on del problema.
a) Planos de corte
b) Ramificaci
on y acotaci
on (Branch and Bound).
Programaci
on Entera: ejemplos
mn ctx
Ax b
x0
xi entera para i I {1, . . . , n}
X Si I = {1, . . . , n} Programaci
on Lineal Entera Pura.
X Si I 6= {1, . . . , n} Programaci
on Lineal Entera Mixta.
X Si xi {0, 1}, i I Programaci
on Binaria o 01.
Programaci
on Entera: ejemplos
En general, un problema de Programaci
on Lineal Entera puede surgir por
varios motivos:
A
B
C
D1
1000
1250
1275
D2
2690
1350
850
5
minimizar
3 X
2
X
(10dij )xij
i=1 j=1
1
90
0.4
2
150
0.7
3
80
0.4
4
100
0.5
5
120
0.6
Problema: qu
e proyectos debera solicitar para obtener un beneficio mayor
y asegurarse de que la suma de las probabilidades de rechazo no sea
superior a 1.5
7
Variables de decisi
on:
xi =
1,
0,
si se solicita el proyecto i,
si no se soliciota el proyecto i.
i = 1, 2, 3, 4, 5
Restricciones:
Lmite presupuestario:
x1 + x2 + x3 + x4 + x5 3
Condici
on de variables binarias:
xi {0, 1}, i = 1, 2, 3, 4, 5
Problema de la Mochila
Se dispone de n objetos para llenar una mochila.
El objeto j tiene un peso pj y tiene una utilidad (valor) cj .
La mochila admite un peso m
aximo de b.
El problema consiste en decidir qu
e objetos se introducen en la mochila
de forma que se maximice la utilidad de los objetos seleccionados.
Variables:
xj =
si el objeto j es seleccionado,
en otro caso.
j = 1, . . . , n
10
Problema de la Mochila
Restricciones:
n
X
pj xj b
j=1
Condici
on de variables binarias: xj {0, 1}
Funci
on objetivo: m
ax
n
X
j = 1, . . . , n
cj xj
j=1
11
Problema de asignaci
on
El modelo de asignaci
on permite asignar eficientemente un conjunto de
personas a un conjunto de trabajos, m
aquinas a tareas, coches de polica
a sectores de una ciudad, vendedores a zonas, etc.
El objetivo es minimizar los costes, tiempos de desplazamiento, o maximizar la efectividad.
Es un modelo muy frecuente como submodelo en otros m
as complejos.
12
Problema de asignaci
on. Ejemplo
Juan es el jefe de un bufete de j
ovenes abogados y est
a interesado en la
utilizaci
on m
as efectiva de sus recursos de personal buscando la forma de
hacer las mejores asignaciones de abogado-cliente.
El 1 de Marzo le llegan 4 nuevos clientes.
Revisando a su personal encuentra que 4 abogados: Ana, Bruno, Carmen
y Domingo.
Todos pueden ser asignados a los casos.
Cada uno de ellos s
olo se puede hacer cargo de un caso.
13
Problema de asignaci
on. Ejemplo (cont.)
Para decidir la mejor asignaci
on Juan tiene en cuenta una tasa de efectividad (de 1 a 9) construida sobre actuaciones anteriores de dichos abogados, ya que no todos son igual de buenos (especialistas) en todo tipo
de procesos:
Abogado
ana (1)
bruno (2)
carmen (3)
domingo (4)
14
Problema de asignaci
on. Ejemplo (cont.)
Para determinar la asignaci
on m
as efectiva Juan debe resolver el siguiente
problema de asignaci
on
m
ax 6x11 + 2x12 + 8x13 + 5x14 + 9x21 + 3x22 + 5x33 + 8x44+
4x31 + 8x32 + 3x33 + 4x34 + 6x41 + 7x42 + 6x43 + 4x44
s.a.
4
X
i=1
4
X
xij = 1,
j = 1, . . . , 4,
xij = 1,
i = 1, . . . , 4,
j=1
i = 1, . . . , 4, j = 1, . . . , 4.
1,
0,
Problema de Asignaci
on Generalizada. Ejemplo
Es una generalizaci
on del modelo anterior. Cada abogado puede hacerse
cargo de m
as de un cliente simult
aneamente, siempre y cuando no supere
su capacidad
Un sistema de procesamiento compartido tiene 3 ordenadores diferentes
(Oj , j = 1, 2, 3) y tiene que procesar 6 tareas (Ti i = 1, . . . , 6)
Todas las tareas se pueden realizar en cualquier ordenador, pero no pueden
fraccionarse (se deben completar en el ordenador en que se inician)
Los tiempos de procesamiento de cada tarea i en cada ordenador j, tij ,
vara seg
un el ordenador
El tiempo disponible de cada ordenador para ejecutar las tareas est
a limitado
16
Problema de Asignaci
on Generalizada. Ejemplo (cont.)
Tarea
T1
T2
T3
T4
T5
T6
T. disp. (Cj )
Ordenador
O1 O2 O3
18 16 12
14 21 19
23 27 33
16 24 23
17 24 24
25 28 30
47 41 46
A qu
e ordenador debemos mandar cada tarea si queremos minimizar el
tiempo total de procesamiento?
Variables
xij =
1,
0,
i = 1, . . . , 6, j = 1, 2, 3.
17
Problema de Asignaci
on Generalizada. Ejemplo (cont.)
Funci
on objetivo
T = 18x11 + 16x12 + 12x13 + 14x21 + 21x22 + 19x23+
+ 23x31 + 27x32 + 33x33 + 16x41 + 24x42 + 23x43+
+ 17x51 + 24x52 + 24x53 + 25x61 + 28x62 + 30x63
Restricciones
olo ordenador:
X Cada tarea se procesa en un s
3
X
xij = 1,
i = 1, . . . , 6.
j=1
X Limitaci
on de tiempo disponible en cada ordenador:
18x11 + 14x21 + 23x31 + 16x41 + 17x51 + 25x61 47
16x12 + 21x22 + 27x32 + 24x42 + 24x52 + 28x62 41
12x13 + 19x23 + 33x33 + 23x43 + 24x53 + 30x63 46
18
Problema de Asignaci
on Generalizada. Ejemplo (cont.)
T = mn
6 X
3
X
tij xij
i=1 j=1
3
X
xij = 1,
6
X
tij xij Cj ,
i = 1, . . . , 6
j=1
j = 1, 2, 3
i=1
xij {0, 1}
C
omo cambiaras el modelo para que el tiempo de procesamiento total
fuese el tiempo que tardan en completarse todas las tareas que se procesan
en paralelo en los 3 ordenadores?
19
Problema de Asignaci
on Generalizada. Ejemplo (cont.)
Funci
on objetivo
n
T = m
ax 18x11 + 14x21 + 23x31 + 16x41 + 17x51 + 25x61,
16x12 + 21x22 + 27x32 + 24x42 + 24x52 + 28x62,
12x13 + 19x23 + 33x33 + 23x43 + 24x53 + 30x63
T = mn m
ax
6
X
6
X
6
X
ti1xi1,
ti2xi2,
ti3xi3 ,
i=1
i=1
i=1
3
X
xij = 1,
6
X
tij xij Cj ,
i = 1, . . . , 6
j=1
j = 1, 2, 3
i=1
xij {0, 1}
20
Problema de Asignaci
on Generalizada. Ejemplo (cont.)
T = mn z
6
X
ti1xi1 z
6
X
ti2xi2 z
6
X
ti3xi3 z
3
X
xij = 1,
6
X
tij xij Cj ,
i=1
i=1
i=1
i = 1, . . . , 6
j=1
j = 1, 2, 3
i=1
xij {0, 1}
21
f1
f2
f3
f4
f5
C1,
C1,
C2,
C3,
C1,
CINTAS
C2, C5, C6, C8, C9, C10
C3
C5, C7, C10
C6, C8
C2, C4, C6, C7, C9, C10
Los tama
nos de las cintas de backup C1, . . . ,C10 son:
(30, 50, 10, 20, 10, 40, 30, 10, 20, 20)
Para poder recuperar los archivos, primero hay que hacer un volcado de
ste tiene que ser de la cinta completa, no puede
las cintas al disco duro. E
copiarse s
olo una parte.
C
omo determinar el conjunto de cintas a volcar de forma que se ocupe el
menor espacio de disco posible y se puedan recuperar todos los archivos?
26
1
0
i = 1, . . . , 10.
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
en accesible:
x1 + x3 > 1
x2 + x5 + x7 + x10 > 1
x3 + x6 + x8 > 1
x1 + x2 + x4 + x6 + x7 + x9 + x10 > 1
Condici
on de variables binarias: xij {0, 1}, i = 1, . . . , n.
27
( 1 x3 x1)
( x6 1 x2)
29
x5 + x6 6 1
x5 + x9 6 1
x6 + x9 6 2 2x5
30
X La condici
on (y = 0 x = 0), es equivalente a x y.
Si no se vuelca la cinta y, entonces tampoco se puede volcar la cinta
x.
X La condici
on (y = 0 x = 1), es equivalente a x 1 y.
Si no se vuelca la cinta y, entonces se debe volcar la cinta x.
X La condici
on (y = 1 x = 0), es equivalente a x 1 y.
Si se vuelca la cinta y, entonces no se puede volcar la cinta x.
X La condici
on (y = 1 x = 1), es equivalente a x y.
Si se vuelca la cinta y, entonces tambi
en hay que volcar la cinta x.
31
xB = 0,
xC = 40
Este producci
on requiere de las 120 h. disponibles de test 1 y de las 2000
de montaje, mientras que sobran 8 de las 48 h. disponibles de test 2
Ejemplo tomado de Modelling the Supply Chain (Shapiro)
33
34
5856
2740
Costes test 1
Costes T2
1200
2016
120
40
C
omo incluir el coste fijo en el modelo? (funci
on de coste con un salto)
Ejemplo tomado de Modelling the Supply Chain (Shapiro)
35
1
0
si se utiliza el test 1
en otro caso
Hay que garantizar que si no utiliza este test, no se haga uso de ninguna
de las horas disponibles:
xA + xB 1201
Para el test de tipo 2 se define una variable 2 de la misma forma.
36
Ejemplo (cont.)
La funci
on objetivo resulta:
m
ax 400xA + 520xB + 686xC 20161 12002 32xA 32xB 38,5xC
Modelo
z = m
ax 400xA + 520xB + 686xC 20161 12002 32xA 32xB 38,5xC
s.a.
xA + xB
xC
10xA + 15xB + 20xC
xA , xB , xC
1201
482
2000
(test 1)
(test 2)
(montaje)
Z+, 1, 1 {0, 1}
La soluci
on
optima es xA = 120, xB = 0 y xC = 40.
En este caso, el plan de producci
on
optimo no ha cambiado. S
olo cambia
el beneficio, que es de 66844 euros, en lugar de los 66400 euros del
modelo original. Se ha mejorado la estimaci
on de costes.
Ejemplo tomado de Modelling the Supply Chain (Shapiro)
37
Resoluci
on del problema
38
La resoluci
on se complica: el redondeo
La primera tentaci
on a la hora de abordar la resoluci
on de un problema
de programaci
on entera es redondear la soluci
on obtenida al relajar la
condici
on de integralidad.
Esta no es una buena estrategia ya que:
39
El redondeo: ejemplo
Consideremos el siguiente problema de programaci
on lineal entera
z = mnx1 11x2
x1 + 10x2 40
10x1 + 10x2 205
x1, x2 0 y enteras
Soluci
on
optima sin considerar las condiciones de integralidad:
x1 = 15 y x2 = 5,5
40
El redondeo: ejemplo
La regi
on factible del modelo es:
(15, 11
)
2
(15, 6)
r
r
r
(10, 5)
(15, 5)
Posibles redondeos:
x1 = 15 y x2 = 6: no verifica la primera restricci
on.
x1 = 15 y x2 = 5: es factible y z = 40.
La soluci
on x1 = 10 y x2 = 5 es factible y z = 45
41
Resoluci
on de un problema entero
Idea:
Un problema lineal continuo es muy sencillo de resolver por qu
e no
desarrollar m
etodos de resoluci
on que empleen la programaci
on lineal
continua como una herramienta para resolver el problema entero?
c
omo desarrollar estos m
etodos?
42
Resoluci
on del problema
Los m
etodos m
as usados parten de la relajaci
on del problema
Idea: sustituir el problema entero original por un problema m
as sencillo,
que pueda ser resuelto m
as f
acilmente y, por tanto, que pueda ser utilizado
para obtener cotas.
La m
as usada es la relajaci
on lineal que consiste en eliminar la condici
on
de que las variables tomen valores enteros. Pero, no es la
unica
43
Resoluci
on del problema
Problema: Los puntos extremos no tienen por qu
e ser enteros
Si fueran enteros no habra problema por qu
e no obtener la envoltura
convexa? demasiado costoso
Hay unas formulaciones mejores que otras: m
as fuertes
44
Resoluci
on del problema
Soluci
on: los m
etodos m
as extendidos son
1. M
etodos de Planos de Corte: se introducen nuevas restricciones al
problema relajado, hasta lograr que la soluci
on
optima del nuevo problema sea entera.
Se eliminan algunas soluciones continuas sin eliminar ninguna soluci
on
entera.
2. M
etodos enumerativos: consisten en enumerar de forma implcita las
soluciones y mediante test o cotas para la funci
on objetivo, descartarlas antes de conocerlas explcitamente.
El m
etodo Branch and Bound (Ramificaci
on y Acotaci
on):
divide en problemas menores: ramificaci
on
y descarta algunos de ellos: acotaci
on
3. M
etodos hbridos: combinan las 2 estrategias anteriores
El m
etodo Branch and Cut (Ramificaci
on y Corte)
45
Resoluci
on: Branch and Bound
M
etodo de enumeraci
on implcita:
divide en problemas menores: ramificaci
on
y descarta algunos de ellos: acotaci
on
A veces puede usarse como heurstico, si no se exploran todos los nodos.
Si se exploran todos s se garantiza el
optimo.
52
Ejemplo 1
m
ax 2x1 + 3x2
5x1 + 7x2 35
4x1 + 9x2 36
x1 , x2 Z+
Optimo
lineal: (63/17, 40/17), z = 14,4707
5x1 + 7x2 = 35
4x1 + 9x2 = 36
Ejemplo 1
(3.7059,2.3529)
z=14.4706
Optimo
lineal: (63/17, 40/17), z = 14,4707
5x1 + 7x2 = 35
4x1 + 9x2 = 36
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
Nuevo o
ptimo: (4, 2,14), z = 14,43
5x1 + 7x2 = 35
4x1 + 9x2 = 36
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
3 x2 +
no factible
5x1 + 7x2 = 35
4x1 + 9x2 = 36
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
3 x2 +
(4.19,2)
z=14.4
no factible
Nuevo o
ptimo: (4,19, 2), z = 14,40
5x1 + 7x2 = 35
4x1 + 9x2 = 36
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
3 x2 +
(4.19,2)
z=14.4
no factible
5 x1 +
(5,1.43)
z=14.29
Nuevo o
ptimo: (5, 1,43), z = 14,29
s 5x1
+ 7x2 = 35
4x1 + 9x2 = 36
48
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
3 x2 +
(4.19,2)
z=14.4
no factible
5 x1 +
(5,1.43)
z=14.29
2 x2 +
no factible
s 5x1
+ 7x2 = 35
4x1 + 9x2 = 36
49
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
x2 +
(4.19,2)
z=14.4
no factible
5 x1 +
(5,1.43)
z=14.29
2 x2 +
no factible
0 x2 1
(5.59,1)
z=14.2
Nuevo o
ptimo: (5,59, 1), z = 14,2
s 5x1
+ 7x2 = 35
4x1 + 9x2 = 36
50
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
x2 +
(4.19,2)
z=14.4
no factible
5 x1 +
(5,1.43)
z=14.29
0 x2 1
2 x2 +
(5.59,1)
z=14.2
no factible
6 x1 +
(6,0.71)
z=14.13
Nuevo o
ptimo: (6, 0,71), z = 14,13
s 5x1
+ 7x2 = 35
4x1 + 9x2 = 36
51
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
x2 +
(4.19,2)
z=14.4
no factible
5 x1 +
(5,1.43)
z=14.29
0 x2 1
2 x2 +
(5.59,1)
z=14.2
no factible
6 x1 +
(6,0.71)
z=14.13
s 5x1
+ 7x2 = 35
x2 +
no factible
4x1 + 9x2 = 36
52
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
x2 +
(4.19,2)
z=14.4
no factible
5 x1 +
(5,1.43)
z=14.29
0 x2 1
2 x2 +
(5.59,1)
z=14.2
no factible
6 x1 +
(6,0.71)
z=14.13
+ 7x2 = 35
0 x2 0
x2 +
no factible
Nuevo o
ptimo: (7, 0), z = 14
s 5x1
(7,0)
z=14
Incumbent: 14 z opt
4x1 + 9x2 = 36
53
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
x2 +
(4.19,2)
z=14.4
no factible
5 x1 +
(5,1.43)
z=14.29
0 x2 1
2 x2 +
(5.59,1)
z=14.2
no factible
0 x1 5
6 x1 +
(6,0.71)
z=14.13
(5,1)
z=13
+ 7x2 = 35
0 x2 0
x2 +
no factible
Nuevo o
ptimo: (5, 1), z = 13
s 5x1
(7,0)
z=14
Incumbent: 14 z opt
4x1 + 9x2 = 36
54
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
(4,2.14)
z=14.43
0 x2 2
x2 +
(4.19,2)
z=14.4
no factible
0 x1 4
5 x1 +
(5,1.43)
z=14.29
(4,2)
z=14
0 x2 1
2 x2 +
(5.59,1)
z=14.2
no factible
0 x1 5
6 x1 +
(6,0.71)
z=14.13
(5,1)
z=13
+ 7x2 = 35
0 x2 0
x2 +
no factible
Nuevo o
ptimo: (4, 2), z = 14
s 5x1
(7,0)
z=14
Incumbent: 14 z opt
4x1 + 9x2 = 36
55
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
0 x1 3
(4,2.14)
z=14.43
(3,2.67)
z=14
0 x2 2
x2 +
(4.19,2)
z=14.4
no factible
0 x1 4
5 x1 +
(5,1.43)
z=14.29
(4,2)
z=14
0 x2 1
2 x2 +
(5.59,1)
z=14.2
no factible
0 x1 5
6 x1 +
(6,0.71)
z=14.13
(5,1)
z=13
+ 7x2 = 35
0 x2 0
x2 +
no factible
Nuevo o
ptimo: (3, 2, 67), z = 1
s 5x1
(7,0)
z=14
Incumbent: 14 z opt
4x1 + 9x2 = 36
56
Ejemplo 1
(3.7059,2.3529)
z=14.4706
4 x1 +
0 x1 3
(4,2.14)
z=14.43
(3,2.67)
z=14
0 x2 2
3 x2 +
(4.19,2)
z=14.4
no factible
0 x1 4
5 x1 +
(5,1.43)
z=14.29
(4,2)
z=14
0 x2 1
2 x2 +
(5.59,1)
z=14.2
no factible
0 x1 5
6 x1 +
(6,0.71)
z=14.13
(5,1)
z=13
0 x2 0
1 x2 +
no factible
(7,0)
z=14
57
Ramificaci
on y acotaci
on
53
Ramificaci
on y acotaci
on
54
Ramificaci
on y acotaci
on. Comentarios
X Obtenci
on de buenas cotas.
Formulaciones m
as fuertes dan lugar a mejores cotas
Ir aprovechando la informaci
on que se va obteniendo al desarrollar
el
arbol para actualizar la best bound
Criterios para obtener cotas: relajaci
on lineal, relajaci
on lagrangiana.
X Criterios de ramificaci
on: por qu
e nodo seguir?
Escoger el
ultimo nodo generado (f
acil reoptimizar).
Escoger el nodo m
as prometedor (mejor cota).
X Criterios de ramificaci
on: por qu
e variable ramificar?
No es una decisi
on trivial.
Depende de la estructura del problema.
55
Ramificaci
on y acotaci
on. Comentarios
Branch and Bound como heurstico
La diferencia entre la mejor cota y el valor de la soluci
on incumbente nos
da una idea de la calidad de la soluci
on incumbente.
C
omo medir la calidad a partir de esa diferencia?
Diferencia absoluta: cu
anto es de grande?
Diferencia relativa:
|incumbente cota|
|cota|
56
Comentarios finales
Si el tama
no del problema es muy grande y la estructura es compleja
de manejar se pueden utilizar procedimientos heursticos. Estos procedimientos devuelven una soluci
on cercana al
optimo en un tiempo
razonable.
M
as informaci
on en:
http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/intprog.html
http://plato.asu.edu/guide.html
57