Programacion Lineal Entera
Los modelos de programacion entera son una extension de los modelos
lineales en los que algunas variables toman valores enteros.
Con frecuencia las variables enteras solo toman valores en 0-1, ya que
este tipo de variables permiten representar condiciones logicas.
Este tipo de modelos permite representar sistemas mucho mas complejos.
A cambio, la resolucion de los mismos se complica excesivamente. No se
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.
1
Programacion Entera: contenidos
1. Introduccion
2. Algunos modelos basicos y modelizacion con vari-
ables binarias
a) Problema de la mochila
b) Problema de asignacion y de asignacion generali-
zada
c) Problema del cubrimiento
d) Relaciones logicas
3. Resolucion del problema.
a) Relajaciones lineales y relacion fundamental.
b) Calidad de una solucion entera: brecha de subop-
timalidad.
c) Ramificacion y acotacion (Branch and Bound).
2
Programacion Entera: ejemplos
mın ctx
Ax ≤ b
x ≥ 0
xi entera para i ∈ I ⊆ {1, . . . , n}
X Si I = {1, . . . , n} ⇒ Programacion Lineal Entera Pura.
X Si I 6= {1, . . . , n} ⇒ Programacion Lineal Entera Mixta.
X Si xi ∈ {0,1}, ∀ i ∈ I ⇒ Programacion Binaria o 0–1.
3
Problema de la Mochila: ejemplo
Un ingeniero informatico autonomo quiere optar a realizar un proyecto
informatico de entre 5 que salen a concurso.
Solo tiene presupuesto para pagar las tasas de solicitud en 3 proyectos.
¿A que 3 proyectos optar?
Beneficio esperado (en miles de euros) que puede obtener a los 3 anos
con cada uno de los proyectos.
Estimacion de la probabilidad de que no le concedan cada uno de los
proyectos
Proyecto 1 2 3 4 5Beneficio (miles euros) 90 150 80 100 120Probabilidad de rechazo 0.4 0.7 0.4 0.5 0.6
Problema: que proyectos deberıa solicitar para obtener un beneficio mayor
y asegurarse de que la suma de las probabilidades de rechazo no sea
superior a 1.5
4
Problema de la Mochila: ejemplo (cont.)
Variables de decision:
xi =
1, si se solicita el proyecto i,
0, si no se soliciota el proyecto i.i = 1,2,3,4,5
Restricciones:
• Lımite presupuestario:
x1 + x2 + x3 + x4 + x5 ≤ 3
• Suma de las probabilidades de rechazo no exceda 1.5
0,4x1 + 0,7x2 + 0,4x3 + 0,5x4 + 0,6x5 ≤ 1,5
• Condicion de variables binarias:
xi ∈ {0,1}, i = 1,2,3,4,5
5
Problema de la Mochila: ejemplo (cont.)
Objetivo: maximizar el beneficio esperado
90x1 + 150x2 + 80x3 + 100x4 + 120x5
¿Como cambiarıas el modelo anterior si se hubiera pedido que la
probabilidad de no obtener ningun proyecto fuese, a lo sumo, del 10 %?
Si seleccionamos, por ejemplo, los proyectos 1, 2 y 3:
P{no obtener ningun proyecto} = P{rechazan P1 y P2 y P3} = (0,4)(0,7)(0,4) =⇒
P{no obtener ningun proyecto} ≤ 0,1 ⇐⇒ (0,4)(0,7)(0,4) ≤ 0,1 ⇐⇒
log((0,4)(0,7)(0,4)) ≤ log(0,1) ⇐⇒ log(0,4) + log(0,7) + log(0,4) ≤ log(0,1)
− log(0,4)x1 − log(0,7)x2 − log(0,4)x3 − log(0,5)x4 − log(0,6)x5 ≥ 1
6
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 maximo de b.
El problema consiste en decidir que objetos se introducen en la mochila
de forma que se maximice la utilidad de los objetos seleccionados.
Variables:
xj =
1 si el objeto j es seleccionado,
0 en otro caso.∀j = 1, . . . , n
7
Problema de la Mochila
Restricciones:
• Lımite de peso de la mochila:n
∑
j=1
pjxj ≤ b
• Condicion de variables binarias: xj ∈ {0,1} ∀j = 1, . . . , n
Funcion objetivo: maxn
∑
j=1
cjxj
Se pueden considerar variantes en las que se incluya tambien el volumen,
etc.
O la posibilidad de que haya mas de una unidad de cada objeto. En-
tonces, las variables serıan xj igual al numero de unidades del objeto j
seleccionadas.
8
Problema de asignacion
El modelo de asignacion permite asignar eficientemente un conjunto de
personas a un conjunto de trabajos, maquinas a tareas, coches de policıa
a sectores de una ciudad, vendedores a zonas, etc.
El objetivo es minimizar los costes, tiempos de desplazamiento, o maxi-
mizar la efectividad.
Es un modelo muy frecuente como submodelo en otros mas complejos.
9
Problema de asignacion. Ejemplo
Juan es el jefe de un bufete de jovenes abogados y esta interesado en la
utilizacion mas 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 solo se puede hacer cargo de un caso.
10
Problema de asignacion. Ejemplo (cont.)
Para decidir la mejor asignacion 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:
tasa de efectividad segun caso de cliente
Abogado divorcio (1) fusion desfalco (3) herencias (4)empresarial (2)
ana (1) 6 2 8 5bruno (2) 9 3 5 8carmen (3) 4 8 3 4domingo (4) 6 7 6 4
11
Problema de asignacion. Ejemplo (cont.)
Para determinar la asignacion mas efectiva Juan debe resolver el siguiente
problema de asignacion
max 6x11 + 2x12 + 8x13 + 5x14 + 9x21 + 3x22 + 5x33 + 8x44+
4x31 + 8x32 + 3x33 + 4x34 + 6x41 + 7x42 + 6x43 + 4x44
s.a.
4∑
i=1
xij = 1, ∀ j = 1, . . . ,4,
4∑
j=1
xij = 1, ∀ i = 1, . . . ,4,
xij ∈ {0,1}, ∀ i = 1, . . . ,4, ∀j = 1, . . . ,4.
donde las variables xij, i = 1, . . . ,4, j = 1, . . . ,4, se definen como
xij =
1, si el abogado i lleva el caso del cliente j,
0, en otro caso.
12
Problema de Asignacion Generalizada. Ejemplo
Es una generalizacion del modelo anterior. Cada abogado puede hacerse
cargo de mas de un cliente simultaneamente, 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,
varıa segun el ordenador
El tiempo disponible de cada ordenador para ejecutar las tareas esta limi-
tado
13
Problema de Asignacion Generalizada. Ejemplo (cont.)
OrdenadorTarea O1 O2 O3
T1 18 16 12T2 14 21 19T3 23 27 33T4 16 24 23T5 17 24 24T6 25 28 30
T. disp. (Cj) 47 41 46
¿A que ordenador debemos mandar cada tarea si queremos minimizar el
tiempo total de procesamiento?
Variables
xij =
1, si la tarea i se asigna al ordenador j,
0, en otro caso.,
i = 1, . . . ,6, j = 1,2,3.
14
Problema de Asignacion Generalizada. Ejemplo (cont.)
Funcion objetivo
T = 18x11 + 16x12 + 12x13 + 14x21 + 21x22 + 19x23+
+ 23x31 + 27x32 + 33x33 + 16x41 + 24x42 + 23x43+
+ 17x51 + 24x52 + 24x53 + 25x61 + 28x62 + 30x63
Restricciones
X Cada tarea se procesa en un solo ordenador:
3∑
j=1
xij = 1, i = 1, . . . ,6.
X Limitacion de tiempo disponible en cada ordenador:
18x11 + 14x21 + 23x31 + 16x41 + 17x51 + 25x61 ≤ 4716x12 + 21x22 + 27x32 + 24x42 + 24x52 + 28x62 ≤ 4112x13 + 19x23 + 33x33 + 23x43 + 24x53 + 30x63 ≤ 46
15
Problema de Asignacion Generalizada. Ejemplo (cont.)
T = mın6
∑
i=1
3∑
j=1
tijxij
3∑
j=1
xij = 1, i = 1, . . . ,6
6∑
i=1
tijxij ≤ Cj, j = 1,2,3
xij ∈ {0,1}
¿Como cambiarıas 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?
16
Problema de Asignacion Generalizada. Ejemplo (cont.)
Funcion objetivo
T = max{
18x11 + 14x21 + 23x31 + 16x41 + 17x51 + 25x61,
16x12 + 21x22 + 27x32 + 24x42 + 24x52 + 28x62,
12x13 + 19x23 + 33x33 + 23x43 + 24x53 + 30x63
}
T = mınmax
6∑
i=1
ti1xi1,6
∑
i=1
ti2xi2,6
∑
i=1
ti3xi3
,
3∑
j=1
xij = 1, i = 1, . . . ,6
6∑
i=1
tijxij ≤ Cj, j = 1,2,3
xij ∈ {0,1}
17
Problema de Asignacion Generalizada. Ejemplo (cont.)
T = mın z
6∑
i=1
ti1xi1 ≤ z
6∑
i=1
ti2xi2 ≤ z
6∑
i=1
ti3xi3 ≤ z
3∑
j=1
xij = 1, i = 1, . . . ,6
6∑
i=1
tijxij ≤ Cj, j = 1,2,3
xij ∈ {0,1}
18
Problema de Cubrimiento. Ejemplo
Un tecnico de sistemas del laboratorio de calculo de la Escuela Politecnica
Superior quiere acceder a cinco archivos distintos. Hay copia de estos
archivos en distintas cintas de backup:
CINTAS
f1 C1, C2, C5, C6, C8, C9, C10f2 C1, C3f3 C2, C5, C7, C10f4 C3, C6, C8f5 C1, C2, C4, C6, C7, C9, C10
Los tamanos 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
las cintas al disco duro. Este tiene que ser de la cinta completa, no puede
copiarse solo una parte.
¿Como 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?
19
Problema de Cubrimiento. Ejemplo (cont.)
Variables
xi =
1 si volcamos la cinta i al disco duro,
0 si no la volcamos.∀i = 1, . . . ,10.
RestriccionesEl 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 tambien accesible:
x1 + x3 > 1x2 + x5 + x7 + x10 > 1x3 + x6 + x8 > 1x1 + x2 + x4 + x6 + x7 + x9 + x10 > 1
Condicion de variables binarias: xij ∈ {0,1}, ∀i = 1, . . . , n.
20
Problema de Cubrimiento. Ejemplo (cont.)
Funcion objetivo: Espacio disco ocupado
30x1 + 50x2 + 10x3 + 20x4 + 10x5 + 40x6 + 30x7 + 10x8 + 20x9 + 20x10
mın 30x1 + 50x2 + 10x3 + 20x4 + 10x5 + 40x6 + 30x7 + 10x8 + 20x9 + 20x10
x1 + x2 + x5 + x6 + x8 + x9 + x10 > 1
x1 + x3 > 1
x2 + x5 + x7 + x10 > 1
x3 + x6 + x8 > 1
x1 + x2 + x4 + x6 + x7 + x9 + x10 > 1
xi ∈ {0,1}; i = 1, . . . ,10
21
Implicaciones entre variables binarias
¿Como le anadirıas al modelo las siguientes condiciones?
X Si se vuelca la cinta 4, debe volcarse la 6:
x4 ≤ x6
X Si no se vuelca la cinta 3, debe volcarse la 1:
x3 + x1 ≥ 1 (⇔ 1 − x3 ≤ x1)
X Si se vuelca la cinta 2, no se puede volcar la cinta 6:
x2 + x6 ≤ 1 (⇔ x6 ≤ 1 − x2)
X No se pueden volcar a la vez las cintas 1, 9 y 10:
x1 + x9 + x10 ≤ 2
22
Implicaciones entre variables binarias (cont.)
X Si se vuelca la cinta 2 o la 5, no pueden volcarse ni la 6, ni la 9. Existen
varias alternativas:
Si se vuelca la cinta 2, no se puede volcar la cinta 6, y si se vuelca
la cinta 5 tampoco:
x2 + x6 6 1 x5 + x6 6 1
Lo mismo para la cintas 9:
x2 + x9 6 1 x5 + x9 6 1
Otra posibilidad es modelar esta condicion como:
x6 + x9 6 2 − 2x2 x6 + x9 6 2 − 2x5
23
Implicaciones entre variables binarias
En general, cuando un valor concreto de una variable binaria condiciona
el valor que han de tomar otras variables binarias.
X La condicion (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 condicion (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 condicion (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 condicion (y = 1 ⇒ x = 1), es equivalente a x ≥ y.
Si se vuelca la cinta y, entonces tambien hay que volcar la cinta x.
24
Resolucion del problema
25
La resolucion se complica: el redondeo
La primera tentacion a la hora de abordar la resolucion de un problema
de programacion entera es redondear la solucion obtenida al relajar la
condicion de integralidad.
Esta no es una buena estrategia ya que:
1. No siempre proporciona la solucion optima.
2. No garantiza la obtencion de soluciones factibles.
3. La seleccion del redondeo adecuado es un problema exponencial.
26
El redondeo: ejemplo
Consideremos el siguiente problema de programacion lineal entera
z = mınx1 − 11x2
− x1 + 10x2 ≤ 40
10x1 + 10x2 ≤ 205
x1, x2 ≥ 0 y enteras
Solucion optima sin considerar las condiciones de integralidad:
x1 = 15 y x2 = 5,5
27
El redondeo: ejemplo
La region factible del modelo es:
r
(15, 112)
r
(15,6)
r
(15,5)r
(10,5)
Posibles redondeos:
x1 = 15 y x2 = 6: no verifica la primera restriccion.
x1 = 15 y x2 = 5: es factible y z = −40.
La solucion x1 = 10 y x2 = 5 es factible y z = −45
28
Resolucion de un problema entero
Idea:
Un problema lineal continuo es “muy sencillo” de resolver ⇒ ¿por que no
desarrollar metodos de resolucion que empleen la programacion lineal
continua como una herramienta para resolver el problema entero?
¿como desarrollar estos metodos?
a partir de las propiedades de la solucion de un problema continuo y
de las del metodo de resolucion del mismo,
y a partir de las caracterısticas de un problema entero (como se modele
el problema sera muy importante)
29
Resolucion del problema
Los metodos mas usados parten de la relajacion del problema
Idea: sustituir el problema entero original por un problema mas sencillo,
que pueda ser resuelto mas facilmente y, por tanto, que pueda ser utilizado
para obtener cotas.
La mas usada es la relajacion lineal que consiste en eliminar la condicion
de que las variables tomen valores enteros. Pero, no es la unica
r
r
r
r
r
r
r
r
r
r
r
30
Top Related