Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Entera s2 2003 PDF
Entera s2 2003 PDF
Investigacion de Operaciones 1
Programacion Lineal Entera
11 de septiembre de 2003
1. Introduccion
Un LP donde se requiere que todas las variables sean enteras se denomina un problema de
programacion lineal entera pura. Por ejemplo:
max z = x1 x2
s.t. x1 + 2x2 2
(1.3)
2x1 x2 1
x1 , x2 = {0, 1}
El concepto de relajacion de un problema de programacion lineal entera (IP) juega un rol funda-
mental en la resolucion de este tipo de problemas.
Definicion 1 El LP obtenido eliminando todas las condiciones de valores enteros o binarios para las
variables se denomina Relajacion del LP.
1
Segundo Semestre 2003 Programacion Lineal Entera
max z = x1 x2
s.t. x1 + 2x2 2
(1.5)
2x1 x2 1
x1 , x2 0
Cualquier IP puede ser visto como el LP relajado mas algunas restricciones adicionales. Por lo
tanto, el LP relajado es un problema menos restringido, o mas relajado, que el IP. En consecuencia
la region factible para cualquier IP debe estar contenida en la region factible del correspondiente LP
relajado. Luego, si el problema es de maximizacion:
x2
2,5
7x 1
2,0
+4
x2
1,5
=
13
1,0
0,5
0
0 0,5 1,0 1,5 2,0 2,5 3,0 x1
Si la region factible de la relajacion de un IP puro esta acotada, la region factible del IP consistira en
un numero finito de puntos. En teora, mediante la enumeracion y la evaluacion de z en cada uno de
los puntos es posible encontrar el mejor valor de z. El problema es que si la region factible contiene
miles de puntos factibles, la enumeracion completa no es viable desde un punto de vista computacional.
Una segunda opcion para resolver el IP sera mediante la aproximacion de la solucion obtenida de
la relajacion. Por ejemplo si se resolviera la relajacion de (1.6) se obtendra: x 1 = 13
7 , x2 = 0. Redon-
deando esta solucion se obtendra: x1 = 2, x2 = 0 como posible solucion optima. Sin embargo este
punto esta fuera de la region factible por lo que no puede ser optimo. Otro candidato a optimo se
2
Segundo Semestre 2003 Programacion Lineal Entera
puede obtener redondeando el valor obtenido de la relajacion hacia abajo: x 1 = 1, x2 = 0, valor que
tampoco corresponde al optimo real del problema.
Como se ve en este ejemplo, no existen garantas de que la aproximacion de soluciones del prob-
lema relajado corresponda a la solucion optima real del IP. Por lo tanto, no es un enfoque valido
para resolver el problema. Como se estudio previamente, el algoritmo Simplex resuelve un LP a partir
de una solucion basica factible mejorandola iteracion a iteracion. Luego, en la mayora de los casos,
Simplex examina solo una porcion de todas las soluciones basales factibles antes de llegar al optimo.
En forma analoga, se podra esperar que existan algoritmos capaces de resolver un IP iterando de una
solucion factible entera a otra. Lamentablemente, no existen o no son conocidos tales algoritmos. Por
lo tanto, como se vera en detalle mas adelante, la resolucion de un IP es mucho mas compleja que la
resolucion de su relajacion.
2. Formulacion de IP
Los problema de programacion lineal entera permiten ampliar el espectro de problemas factibles
de plantear como modelos de programacion lineal. A continuacion se veran algunos ejemplos.
Las opciones son invertir o no en cada una de las posibilidades. Por lo tanto, conviene emplear
variables de tipo binaria para indicar si se escoge cada opcion:
1 se invierte en la opcion j
xj = j = 1...4 (2.1)
0 en caso contrario
La funcion objetivo para el problema queda (en miles):
Como existe un capital limitado de U S$14000 para invertir, se debe satisfacer (en miles):
3
Segundo Semestre 2003 Programacion Lineal Entera
x1 + x 2 + x 3 + x 4 2
3. Esta restriccion impone la condicion de que las alternativas 1 y 4 sean excluyentes, en otras
palabras:
x1 + x 4 1
Como las variables son binarias, no se permite que ambas puedan ser igual a 1.
4. Aqu, la variable x3 puede valer 1 solo si x1 o x2 es igual a 1. No existen restricciones que digan
que x1 y x2 sean excluyentes, por lo tanto eventualmente se podra escoger ambas. En este caso
se puede agregar:
x3 x 1 + x 2
Luego, basta con tener un 1 a la derecha de la desigualdad para que x 3 pueda tomar valor igual
a 1. Si se exigiera que deben escogerse 1 y 2 para poder seleccionar 3, la restriccion quedara:
2 x 3 x1 + x2
En este caso se requiere tener un 2 a la derecha de la desigualdad para que x 3 pueda ser igual a
uno.
4
Segundo Semestre 2003 Programacion Lineal Entera
Como el costo de arriendo de la maquinaria solo depende de la prenda producida, sera necesario
emplear variables binarias para cuantificar el hecho de arrendar o no cada maquina:
1 se arrienda maquinaria para fabricar prendas tipo i
yi = j = 1...3 (2.6)
0 en caso contrario
Para que el modelo funcione, se debe garantizar que:
Si xi > 0 yi = 1
(2.7)
Si xi = 0 yi = 0
Para ello, se debe incorporar las restricciones de activacion de las variables binarias:
x 1 M 1 y1
x 2 M 2 y2 (2.8)
x 3 M 3 y3
Los valores Mi son valores escalares lo suficientemente grandes de forma que sean una cota superior
para el valor de xi en el contexto del problema. La restriccion (2.8) activa la variable binaria ya que
si xi > 0, para que la restriccion se pueda satisfacer la variable binaria yi debe ser exactamente igual
a 1. En el caso que xi = 0, la variable binaria yi puede o no valer 1 sin afectar la satisfaccion de la
restriccion, sin embargo, si la variable binaria valiera 1 se estara considerando el costo de arriendo
de una maquinaria que no se esta empleando. Evidentemente, como el problema es de maximizacion
de ganancias, si no es estrictamente necesario cuantificar un costo, el algoritmo de resolucion se en-
cargara de hacer que la variable yi = 0 en el optimo. En otras palabras, si el problema no obliga a
considerar un costo, el algoritmo de resolucion se encargara de no contabilizarlo.
La funcion objetivo correspondera a la diferencia entre los ingresos por venta, menos los costos de
produccion fijos y variables:
z = (12x1 + 8x2 + 15x3 ) (6x1 + 4x2 + 8x3 ) (200y1 + 150y2 + 100y3 ) (2.9)
| {z } | {z } | {z }
Ingresos por venta Costos variables Costos fijos
Por lo tanto, la funcion objetivo a maximizar queda:
5
Segundo Semestre 2003 Programacion Lineal Entera
A continuacion es preciso construir las restricciones del problema. En este caso existe un disponi-
bilidad maxima de mano de obra y de tela. La restriccion de mano de obra queda:
Hasta
Desde Barrio 1 Barrio 2 Barrio 3 Barrio 4 Barrio 5 Barrio 6
Barrio 1 - 10 20 30 30 20
Barrio 2 10 - 25 35 20 10
Barrio 3 20 25 - 15 30 20
Barrio 4 30 35 15 - 15 25
Barrio 5 30 20 30 15 - 14
Barrio 6 20 10 20 25 14 0
Para resolver el problema se debe buscar la asignacion del menor numero de estaciones de bomberos
de forma de cubrir un conjunto de Barrios. Para construir el IP, conviene definir las siguientes
variables:
6
Segundo Semestre 2003 Programacion Lineal Entera
1 se construye una estacion de bomberos en el barrio i
xi = i = 1...6 (2.14)
0 en caso contrario
De acuerdo a las variables definidas, el total de estaciones a construir queda definido por:
6
X
z= xi (2.15)
i=1
Para construir las restricciones, es preciso obtener del Cuadro 2.3 en que lugares es factible cons-
truir la estaciones de bomberos para asegurar que cada barrio quede a menos de 15 minutos de al
menos una de ellas. Por ejemplo, para asegurar que al menos una estacion quede a menos de 15 min-
utos del Barrio 1 se debe construir en el propio Barrio 1 o bien en el Barrio 2. Siguiendo la misma
logica se construye el Cuadro 2.4.
x1 + x 2 1 (2.16)
Incorporando las restricciones para los otros barrios se completa el IP:
max z = x1 + x2 + x3 + x4 + x5 + x6
s.t. x1 + x2 1 (Barrio 1)
x1 + x 2 + x 6 1 (Barrio 2)
x3 + x 4 1 (Barrio 3)
(2.17)
x3 + x 4 + x 5 1 (Barrio 4)
x4 + x 5 + x 6 1 (Barrio 5)
x2 + x 5 + x 6 1 (Barrio 6)
xi = {0, 1} i = 1 . . . 6
f (x1 , x2 , . . . xn ) 0 (2.18)
g(x1 , x2 , . . . xn ) 0 (2.19)
7
Segundo Semestre 2003 Programacion Lineal Entera
Si se desea que solo sea satisfecha una de las restricciones, se puede modificar el planteo de las
restricciones de la siguiente forma:
f (x1 , x2 , . . . xn ) M y (2.20)
g(x1 , x2 , . . . xn ) M (1 y) (2.21)
donde y es una variable binaria y M es una constante lo suficientemente grande para asegurar que las
restricciones:
f (x1 , x2 , . . . xn ) M
g(x1 , x2 , . . . xn ) M
Si se deseara que al menos una de las restricciones fuera satisfecha, el planteo quedara:
f (x1 , x2 , . . . xn ) M y1
g(x1 , x2 , . . . xn ) M y2
y1 + y 2 1
donde y1 e y2 son variables binarias independientes. La idea anterior se puede extender a cualquier
numero de restricciones.
Ejemplo 4 Una fabrica de automoviles construye tres tipos de autos: compactos, medianos y grandes.
Los requerimientos de materiales, mano de obra y el beneficio obtenido por cada tipo de auto fabricado
se muestra en el Cuadro 2.5. Actualmente, la fabrica dispone 6000 toneladas de materiales y 60000
horas de mano de obra. Para que la produccion de un tipo de vehculo sea economicamente factible,
se deben producir al menos 1000 unidades de cada tipo que se fabrique. Formule un IP que permita
maximizar el beneficio de la fabrica.
8
Segundo Semestre 2003 Programacion Lineal Entera
A continuacion se debe agregar la restriccion que obligue a que si se produce un determinado tipo
de vehculo, se produzcan como mnimo 1000 unidades, es decir:
O bien:
x i M i yi (2.26)
1000 xi Mi (1 yi ) (2.27)
yi = {0, 1} (2.28)
Por otro lado, se deben incorporar las restricciones relativas a la disponibilidad de materiales y
mano de obra:
g(x1 , x2 , . . . xn ) 0 (2.32)
9
Segundo Semestre 2003 Programacion Lineal Entera
g(x1 , x2 , . . . xn ) M y (2.33)
f (x1 , x2 , . . . xn ) M (1 y) (2.34)
y = {0, 1} (2.35)
El valor de M debe ser escogido de tal forma que si f M y g M se asegure que todos los
valores de x1 , x2 , . . . xn satisfagan las restricciones. Si la variable binaria vale cero, se tiene f M ,
en particular f > 0. Por otro lado, si y = 0 se tiene g 0 o bien g 0. En caso contrario, cuando
y = 1 se tiene f 0, es decir, no se puede cumplir que f > 0. Si y = 1 se tiene g M , es decir, se
cumple si g 0 o si g < 0.
En suma, si se satisface f > 0, la variable binaria debe valer 1 lo que obliga a satisfacer g 0.
Si x1 > 0 x 2 = x3 = 0 (2.36)
En forma equivalente se tiene:
Si x1 > 0 x2 + x3 0 o x 2 x3 0 (2.37)
Por lo tanto, basta incorporar:
x2 + x 3 M y (2.38)
x1 M (1 y) (2.39)
y = {0, 1} (2.40)
El valor de M no tiene porque ser unico. En este caso, podemos emplear los valores de M i calculados
previamente:
x = zk bk + (1 zk )bk+1 (2.44)
Como f (x) es lineal para bk x bk+1 , se puede escribir:
10
Segundo Semestre 2003 Programacion Lineal Entera
f (x)
f (b3 )
f (b2 )
b1 b2 b3 x
z1 y 1
z2 y 1 + y 2
z3 y 2 + y 3
.. (2.47)
.
zn1 yn2 + yn1
zn yn1
Por lo tanto, si la variable x esta en el intervalo k, se tiene yk = 1 y solo zk y zk+1 pueden ser
distintas de cero. Evidentemente, la variable x solo puede pertenecer a un intervalo:
y1 + y2 + . . . + yn1 = 1 (2.48)
Como zk+1 = 1 zk , se debe agregar la restriccion:
z1 + z 2 + . . . + z n = 1 (2.49)
De acuerdo a la ecuacion (2.44) se tiene:
x = z1 b1 + z2 b2 + . . . + zn bn (2.50)
Para ilustrar la incorporacion de funciones lineales definidas por tramos consideremos el siguiente
ejemplo:
11
Segundo Semestre 2003 Programacion Lineal Entera
Ejemplo 5 Una refinera produce dos tipos de gasolina a partir de dos tipos de petroleos. Cada galon
de gasolina tipo 1 debe contener a lo menos 50 % de petroleo 1 y cada galon de gasolina tipo 2 debe
contener al menos 60 % de petroleo tipo 1. Cada galon de gasolina tipo 1 puede ser vendido a $12 y
cada galon de tipo 2 puede ser vendido a $14. Actualmente se dispone de 500 galones de petroleo tipo
1 y 1000 galones de petroleo de tipo 2. Se puede comprar hasta 1500 galones adicionales de petroleo
tipo 1 al siguiente precio: los primeros 500 galones se deben pagar a $25 el galon; los siguientes 500
galones se deben pagar a $20 el galon; los siguientes 500 galones se compran a $15 el galon. Formule
un IP que permita determinar la forma de maximizar las utilidades.
z1 y1
z2 y1 + y2
(2.60)
z3 y2 + y3
z4 y3
12
Segundo Semestre 2003 Programacion Lineal Entera
z1 + z 2 + z 3 + z 4 = 1
(2.61)
y1 + y 2 + y 3 = 1
Finalmente se agrega la naturaleza de las variables:
zi 0 i = 1...4
yj = {0, 1} j = 1 . . . 3 (2.62)
xkr 0 kr
Ejemplo 6
max z = 3x1 + 2x2
s.t. 2x1 + x2 6 (3.1)
x1 , x2 Z +
4
2x 1
+x
3
2
=6
0
0 1 2 3 x1
Ejemplo 7 Una mueblera fabrica mesas y sillas. Una mesa requiere de 1 hora de mano de obra y 9
pies cuadrados de madera, una silla requiere de 1 hora de mano de obra y 5 pies cuadrados de madera.
Actualmente, la mueblera dispone de 6 horas de mano de obra y 45 pies cuadrados de madera. Cada
13
Segundo Semestre 2003 Programacion Lineal Entera
mesa genera una utilidad de U S$8, cada silla representa una utilidad de U S$5. Formule y resuelva un
IP para maximizar el beneficio de la mueblera.
Consideremos:
8
9x 1
7
+5
x2
6
=
45
4 optimo
2
x1
+
x2
1
=
6
0
0 1 2 3 4 5 6 x1
14
Segundo Semestre 2003 Programacion Lineal Entera
en los valores enteros mas cercanos al valor fraccionario obtenido. De acuerdo a ello, ramificaremos la
variable x1 definiendo los siguientes subproblemas:
x1 3 x1 4
Subproblema 2 Subproblema 3
x2
8
9x 1
7
+5
x2
G
x1 = 3
6
=
45
3
F
2
x1
+
x2
1
=
6
D E
0
0 1 2 3 4 5 6 x1
Si bien la solucion obtenida del subproblema 2 satisface todas las condiciones del problema, debe-
mos completar la ramificacion ya que aun hay esperanzas de obtener una solucion menor o igual al valor
15
Segundo Semestre 2003 Programacion Lineal Entera
optimo del subproblema 1, pero mejor a la cota superior actual. La region factible del subproblema 3
se muestra en la figura 3.5. Los puntos extremos de la region factible son: A, B y C, con respectivos
valores de la funcion objetivo: zA = 40, zB = 32 y zC = 41. Por lo tanto el optimo corresponde a:
x1 = 4 y x2 = 95 , valor que no satisface la condicion de enteridad.
x2
9x 1
7
+5
x2
x1 = 4
6
x1
=
+
45
5
x2
=
6
4
2 C
1
B A
0
0 1 2 3 4 5 6 x1
Si bien hasta ahora se dispone de una solucion entera con valor de la funcion objetivo de 39, en
el subproblema 3 se obtuvo como valor optimo: z = 41. Si bien el subproblema 3 no representa una
solucion factible para el IP, al ramificar a partir de este problema se podra esperar un valor de la
funcion objetivo que sea menor o igual a 41 pero que podra ser mejor que 39, por lo que no se puede
dar como finalizada las ramificaciones. De acuerdo a ello, podemos definir dos nuevos subproblemas
a partir el subproblema 3. Como la variable x2 = 59 no es entera, conviene buscar valores con las
siguientes particiones de la region factible: x2 1 y x2 2. En otras palabras, se deben resolver los
siguientes subproblemas:
16
Segundo Semestre 2003 Programacion Lineal Entera
Subproblema 1
165
z = 4
15
x1 = 4
9
x2 = 4
x1 3 x1 4
Subproblema 2 Subproblema 3
z = 39 z = 41
x1 = 3 x1 = 4
9
x2 = 3 x2 = 5
x2 1 x2 2
Subproblema 4 Subproblema 5
8
9x 1
7
+5
x2
x1 = 4
6
x1
=
+
45
5
x2
=
6
3
x2 = 2
2
x2 = 1 H I
1
B A
0
0 1 2 3 4 5 6 x1
El nuevo arbol de ramificacion se muestra en la Figura 3.8. Se agregan las nuevas restricciones
referentes a x1 y se completa la region factible para los subproblemas 6 y 7 en la Figura 3.9. En este
caso, la region factible para el subproblema 6 se reduce al segmento de lnea entre los puntos B y H,
con valores para la funcion objetivo de: zB = 32 y zH = 37, por lo que el optimo corresponde al punto
H. Como en el punto H los valores de las variables son enteros, se podra pensar que H es un candidato
a optimo. Sin embargo, el valor de la funcion objetivo en H es inferior a la cota definida previamente,
por lo que se descarta. En el subproblema 7, el unico punto que satisface todas las restricciones es el
punto A, con valor de la funcion objetivo z = 40. Como en el subproblema 7 el valor de las variables
es entero (x1 = 5 y x2 = 0) y dado que el valor de la funcion objetivo es mejor que la cota actual,
40 se transforma en la nueva cota. Como el subproblema 6 presenta un valor de la funcion objetivo
17
Segundo Semestre 2003 Programacion Lineal Entera
inferior a la cota, no tiene sentido seguir ramificando pues se ha alcanzado el optimo del IP. El arbol
de ramificacion completo se muestra en la Figura 3.10 donde se identifica la solucion optima.
Subproblema 1
165
z = 4
15
x1 = 4
9
x2 = 4
x1 3 x1 4
Subproblema 2 Subproblema 3
z = 39 z = 41
x1 = 3 x1 = 4
9
x2 = 3 x2 = 5
x2 1
x2 2
Subproblema 4
365
z = 9 Subproblema 5
40
x1 = 9 Imposible
x2 = 1
x1 4 x1 5
Subproblema 6 Subproblema 7
x2
8
9x 1
7
+5
x2
x1 = 4
6
x1
=
+
45
5
x2
=
x1 = 5
6
2
x2 = 1 H
1
B A
0
0 1 2 3 4 5 6 x1
18
Segundo Semestre 2003 Programacion Lineal Entera
Subproblema 1
165
z = 4
15
x1 = 4
9
x2 = 4
x1 3 x1 4
Subproblema 2 Subproblema 3
z = 39 z = 41
x1 = 3 x1 = 4
9
x2 = 3 x2 = 5
x2 1
x2 2
Subproblema 4
365
z = 9 Subproblema 5
40
x1 = 9 Imposible
x2 = 1
x1 4 x1 5
Subproblema 6 Subproblema 7
z = 37 z = 40
x1 = 4 x1 = 5
x2 = 1 x2 = 0
Ejemplo 8 Considere un problema de programacion lineal entera mixta cuyo objetivo es la maxi-
mizacion de una funcion z involucrando las variables binarias x 1 , x2 y x3 y la variable continua
x4 0. El Cuadro 3.1 presenta la solucion optima para todos los problemas relajados posibles de
obtener (un guion en la columna correspondiente a las variables x1 , x2 y x3 significa que la variable
esta libre en el problema relajado).
x1 x2 x3 x z x1 x2 x3 x z x1 x2 x3 x z
- - - (0.2,1,0,0) 82.80 0 - - (0,1,0.67,0) 80.67 1 - - (1,0,0,0) 74.00
- - 0 (0.2,1,0,0) 82.80 0 - 0 (0,1,0,2) 28.00 1 - 0 (1,0,0,0) 74.00
- - 1 (0,0.8,1,0) 79.40 0 - 1 (0,0.8,1,0) 79.40 1 - 1 (1,0,1,0) 63.00
- 0 - (0.7,0,0,0) 81.80 0 0 - Imposible - 1 0 - (1,0,0,0) 74.00
- 0 0 (0.7,0,0,0) 81.80 0 0 0 Imposible - 1 0 0 (1,0,0,0) 74.00
- 0 1 (0.4,0,1,0) 78.60 0 0 1 Imposible - 1 0 1 (1,0,1,0) 63.00
- 1 - (0.2,1,0,0) 82.80 0 1 - (0,1,0.67,0) 80.67 1 1 - (1,1,0,0) 62.00
- 1 0 (0.2,1,0,0) 82.80 0 1 0 (0,1,0,2) 28.00 1 1 0 (1,1,0,0) 62.00
- 1 1 (0,1,1,0.5) 77.00 0 1 1 (0,1,1,0.5) 77.00 1 1 1 (1,1,1,0) 51.00
19
Segundo Semestre 2003 Programacion Lineal Entera
En primer lugar se resuelve el problema relajado completo, es decir, se libera el valor de las tres
variables binarias. De acuerdo al Cuadro 3.1, se tiene:
x1 = 0.2
x2 =
1
Subproblema 1 x3 = 0 (3.8)
x = 0
4
z = 82.80
En la solucion del subproblema 1 el valor de la variable x1 no satisface la condicion de binaria, por
lo tanto se ramifica en funcion de los valores que puede tomar:
20
Segundo Semestre 2003 Programacion Lineal Entera
a la cota pero no cumple todas las condiciones del problema original. Dado los valores obtenidos, se
debe ramificar segun los valores posibles de la variable binaria x2 :
21
Segundo Semestre 2003 Programacion Lineal Entera
Subproblema 1
x1 = 0.2
x2 = 1
x3 = 0
x4 = 0
z = 82.80
x1 = 0 x1 = 1
Subproblema 2 Subproblema 3
x1 = 0 x1 = 1
x2 = 1 x2 = 0
x3 = 0.67 x3 = 0
x4 = 0 x4 = 0
z = 80.67 z = 74.00
x3 = 0 x3 = 1
Subproblema 4 Subproblema 5
x1 = 0 x1 = 0
x2 = 1 x2 = 0.8
x3 = 0 x3 = 1
x4 = 2 x4 = 0
z = 28 z = 79.4
x2 = 1
x2 = 0
Subproblema 7
x1 = 0
Subproblema 6 x2 = 1
Imposible x3 = 1
x4 = 0.5
z = 77
22
Segundo Semestre 2003 Programacion Lineal Entera
4. Ejercicios
Ejercicio 1 Considere el problema de distribucion de artculos desde tres centros productores a dos
centros consumidores. Los artculos pueden ser transportados entre cada centro productor y cada centro
consumidor considerando dos rutas posbiles. La utilizacion de cada ruta tiene asociada un costo fijo
que es independiente de la cantidad de artculos transportados por esa ruta. La siguiente tabla presenta
las capacidades de produccion, las demandas estimadas, el costo fijo por la utilizacion de cada ruta y
el costo de transporte de un artculo desde cada centro productor a cada centro consumidor.
Destino
1 2
Origen Ruta Costo fijo Costo unitario Costo fijo Costo unitario Oferta
1 a 10 3 12 9 200
b 20 2 24 8
2 a 15 5 16 12 400
b 25 4 32 10
3 a 30 7 18 16 600
b 35 6 36 14
Demanda 300 500
Formule un modelo de programacion lineal mixta que permita determinar la cantidad a trans-
portar por cada ruta que minimiza el costo total satisfaciendo todas las demandas. Defina claramente
variables, funcion objetivo y restricciones.
Variables:
xijk : Cantidad transportada entre el origen i y el destino j a traves de la ruta k; i =
1, 2, 3; j = 1, 2; k = a, b.
1 si la ruta k entre el origen i y el destino j es utilizada
yijk = 0 si la ruta k entre el origen i y el destino j no es utilizada
i = 1, 2, 3; j = 1, 2; k = a, b.
Funcion objetivo:
Restricciones:
Ofertas:
23
Segundo Semestre 2003 Programacion Lineal Entera
Demandas:
Activacion de variables:
xijk M yijk ; i = 1, 2, 3; j = 1, 2; k = a, b
xijk 0; i = 1, 2, 3; j = 1, 2; k = a, b
yijk {0, 1}; i = 1, 2, 3; j = 1, 2; k = a, b
Ejercicio 2 Una fabrica se dedica a la produccion de aceite de cocina a partir de aceites vegetales
y aceites no vegetales. Cada aceite requiere un proceso de refinamiento diferente. La fabrica tiene
capacidad para refinar 210 litros de aceite vegetal y 260 litros de aceite no vegetal. Los aceites refinados
son mezclados pudiendo venderse a $180 el litro del producto final. No existe perdida de aceite en los
procesos de refinamiento y mezcla y el costo de estos procesos puede ser ignorado. Existe una restriccion
tecnica relativa a la calidad del aceite producido: en las unidades en que es medida la calidad, esta debe
estar entre 3, 5 y 6, 2. Se asume que las calidades de los aceites originales se combinan linealmente.
Existen 2 proveedores de aceite, cada uno ofreciendo dos variedades de aceite vegetal y tres variedades
de aceite no vegetal. El Cuadro 4.1 presenta el costo, en pesos, y la calidad de cada aceite ofrecido por
cada proveedor:
Aceites
vegetal 1 vegetal 2 no vegetal 1 no vegetal 2 no vegetal 3
Proveedor 1 Costo 115 128 132 109 114
Calidad 8,8 6,2 1,9 4,3 5,1
Proveedor 2 Costo 110 130 125 108 116
Calidad 8,5 6,4 1,5 4,2 5,2
Existe un costo fijo por ordenar al proveedor 1 de $2,000 y al proveedor 2 de $2,500, independiente
de la variedad y cantidad de aceite ordenado.
Finalmente, las siguientes condiciones se imponen sobre la produccion de aceite:
24
Segundo Semestre 2003 Programacion Lineal Entera
el producto final no puede estar compuesto de mas de tres variedades de los aceites originales,
Formule un modelo de programacion lineal mixta que permita determinar la cantidad de cada tipo
de aceite que debe comprarse a cada proveedor de manera de maximizar las ganancias satisfaciendo
todas las condiciones del problema. Defina claramente variables, funcion objetivo y restricciones.
Variables:
xij : Cantidad de aceite tipo i comprada al proveedor j; i = 1, . . . , 5, j = 1, 2
1, si se compra aceite tipo i a proveedor j; i = 1, . . . , 5, j = 1, 2
yij =
0, si no
1, si se compra a proveedor j; j = 1, 2
zj =
0, si no
1, si se compra aceite tipo i; i = 1, . . . , 5
wi =
0, si no
5 X
X 2
M ax z = 180 xij 2,000 z1 2,500 z2
i=1 j=1
115 x11 128 x21 132 x31 109 x41 114 x51
110 x12 130 x22 125 x32 108 x42 116 x52
Restricciones:
Capacidad de refinamiento:
Calidad:
8, 8x11 + 6, 2x21 + 1, 9x31 + 4, 3x41 + 5, 1x51 + 8, 5x12 + 6, 4x22 + 1, 5x32 + 4, 2x42 + 5, 2x52
P5 P 2 3, 5
i=1 j=1 xij
8, 8x11 + 6, 2x21 + 1, 9x31 + 4, 3x41 + 5, 1x51 + 8, 5x12 + 6, 4x22 + 1, 5x32 + 4, 2x42 + 5, 2x52
P5 P 2 6, 2
i=1 j=1 xij
Activacion de variables:
xij M yij ; i = 1, . . . , 2; j = 1, 2
25
Segundo Semestre 2003 Programacion Lineal Entera
5
X
yij 5 zj ; j = 1, 2
i=1
Mnimo a comprar:
xij 30 yij ; i = 1, . . . , 5; j = 1, 2
Utilizacion aceite tipo i:
2
X
yij 2 wi ; i = 1, 5
j=1
5
X
wi 3
i=1
w1 w 3 + w 4 + w 5
w2 w 3 + w 4 + w 5
xij 0; i = 1, . . . , 5; j = 1, 2
yij {0, 1}; i = 1, . . . , 5; j = 1, 2
wi {0, 1}; i = 1, . . . , 5
zj {0, 1}; j = 1, 2
26
Segundo Semestre 2003 Programacion Lineal Entera
El Cuadro 4.3 presenta la solucion optima para todos los problemas relajados posibles de obtener
(un guion en la columna correspondiente a las variables y1 , y2 e y3 significa que la variable esta libre
en el problema relajado).
y1 y2 y3 x z y1 y2 y3 x z y1 y2 y3 x z
0 0 0 (0, 0, 0,0,0,0) 0 1 0 0 (10, 0, 0,1,0,0) 500 - 0 0 (10,0,0,1,0,0) 500
0 0 1 (0, 0,10,0,0,1) 600 1 0 1 ( 5, 0,10,1,0,1) 800 - 0 1 (5,0,10, 12 ,0,1) 850
0 0 - (0, 0,10,0,0,1) 600 1 0 - (10, 0, 5,1,0, 12 ) 800 - 0 - (5,0,10, 12 ,0,1) 850
0 1 0 (0,10, 0,0,1,0) 650 1 1 0 ( 5,10, 0,1,1,0) 850 - 1 0 (5,10,0, 12 ,1,0) 900
0 1 1 (0,10, 5,0,1,1) 900 1 1 1 ( 0,10, 5,1,1,1) 800 - 1 1 (0,10,5,0,1,1) 900
0 1 - (0,10, 5,0, 12 ) 950 1 1 - ( 5,10, 0,1,1,0) 850 - 1 - (0,10,5,0,1, 12 ) 950
0 - 0 (0,10, 0,0,1,0) 650 1 - 0 ( 5,10, 0,1,1,0) 850 - - 0 (5,10,0, 12 ,1,0) 900
0 - 1 (0, 5,10,0, 12 ,1) 925 1 - 1 ( 0, 5,10,1, 12 ,1) 825 - - 1 (0,5,10,0, 12 ,1) 925
0 - - (0,10, 5,0,1, 12 ) 950 1 - - ( 5,10, 0,1,1,0) 850 - - - (0,10,5,0,1, 12 ) 950
27
Segundo Semestre 2003 Programacion Lineal Entera
28