Investigación Operativa
Sesión 13
Ciclo: Agosto 2020
Programación entera y variable binaria
LOGRO
Al final de la sesión el estudiante plantea y resuelve problemas de programación
entera y de variables binarias.
IMPORTANCIA
• Lo programación entera permite ajustar nuestras variables de decisión a
valores enteros cuando el escenario o problema los requiera.
• Las variables de decisión binaria permiten modelar situaciones en la cuales
esta variables tiene uno de dos comportamiento (si o no; o verdadero o falso).
MODELO DE PROGRAMACION ENTERA
• Lo programación entera permite ajustar nuestras variables de decisión a valores
enteros cuando el escenario o problema los requiera.
• El resultado de nuestras variables de decisión deben ser enteros.
EJEMPLO
El juego de mesa El escritorio (con
(la mesa y 4 sillas) su silla) cuesta:
cuesta: Producir un
Producir una
mesa necesita: escritorio necesita:
Producir una silla
necesita: Se dispone de:
Produce mesas,
sillas y escritorios
CUALES SON LAS CANTIDADES A PRODUCIR
Se junta :
EJEMPLO • La mesa con las 4 sillas
• El escritorio con una silla:
Se recalcularon las cantidades de madera, horas de
trabajo y espacio dispone
CUALES SON LAS CANTIDADES A PRODUCIR
EJEMPLO
• Variables de decisión
X1: Nro. De juegos de mesa a producir
X2: Nro. De escritorios (mas su silla) a producir
• Función objetivo:
Max 650X1 + 350X2
sa.
20X1 + 11X2 <=400
12X1 + 8X2 <= 300
7X1 + 3X2 <=120
X1>=0, X2>=0
EJEMPLO
• No se puede producir 7.058 juegos de mesa, sino que debe de ser entero.
• No se puede producir 23.529 escritorios, sino que debe de ser entero.
EJEMPLO
Se agrego la palabra gin a cada
variable de decisión para que se
considere como entera no negativa.
Ahora, los resultados ahora son enteros.
VARIABLES BINARIAS
• La variable de decisión toma uno de dos valores: 0 ó 1.
• Pueden referirse a situaciones en que hay que elegir una de dos acciones, como:
• Hago o no hago.
• Compro o compro.
• Llevo o no llevo.
• Invierto o no invierto, etc.
• Las variables de decisión binaria permiten modelar situaciones en la cuales la
variables tiene uno de dos comportamiento (si o no o verdadero o falso).
EJEMPLO
EJEMPLO
Variable de decisión binaria: llevar o no
llevar un determinado objeto en la mochila
Max 40X1 + 80X2 + 10X3 + 10X4 + 4X5 + 20X6 + 60X7
s.a.
40X1 + 50X2 + 30X3 + 10X4 +10X5 + 40X6 + 30X7 <= 100
X1, X2, X3, X4, X5, X6, X7, toman valores de 0 ó 1
EJEMPLO
Se agrego la palabra int a cada
variable de decisión para que se
considere como binaria.
EJEMPLO
• En la mochila deben de llevar: Saco, Manta, Comida, y Varios.
• Con lo que se lograra una utilidad de 154.
• Si multiplica el peso por cada una de sus variables, y suma, el peso de la mochila será de 100.
VARIABLE ENTERA – EJEMPLO 1
Una persona dispone de $14 y desea escoger la mejor combinación de entre las 4 siguientes alternativas de
inversión:
Alternativa Inversión VPN SOLUCION:
1 $5 $ 16 • Variables de decisión:
2 $7 $ 22 Xj: alternativa a invertir, j=1, 2, 3, 4. entera, >=1
3 $4 $ 12
4 $3 $ 8
• Función objetivo y restricciones
Max = 16X1 + 22X2 + 12X3 + 8X4
s.a:
5X1 + 7X2 + 4X3 + 3X4 <= 14
VARIABLE ENTERA – EJEMPLO 1
Pasando el problema al lindo:
Variables enteras
INTERPRETACION
• Esta persona lograra maximizar su
inversión de 14 dólares.
• Obteniendo un valor presente neto
de 44 dólares.
• Invirtiendo en la alternativa 2.
VARIABLES BINARIAS – EJEMPLO 1
Una compañía quiere determinar en qué proyectos invertir durante los próximos 4 años. La compañía dispone
de un presupuesto limitado anual para inversiones. Existen 4 proyectos disponibles. A éstos se les ha
caracterizado por su valor presente estimado y los costos anuales de capital requeridos. Estos se muestran en
la siguiente tabla:
Desarrolle un plan de asignación de capital que muestre las erogaciones necesarias para cada uno de los 4
años y seleccione que proyectos conviene financiar.
VARIABLES BINARIAS – EJEMPLO 1
Xj:
• 1 se invierte en el proyecto i = 1, 2, 3, 4.
• 0 no se invierte en el proyecto i = 1, 2, 3, 4.
Máx Z = 180X1 + 20X2 + 72X3 + 80X4
s.a.
30X1 + 12X2 + 30X3 + 20X4 <= 65 Año 1
40X1 + 8X2 + 20X3 + 30X4 <= 80 Año 2
40X1 + + 20X3 + 40X4 <= 80 Año 3
30X1 + 4X2 + 20X3 + 10X4 <= 50 Año 4
VARIABLES BINARIAS – EJEMPLO 1
RESULTADOS EN EL LINDO
Variables
binarias
Se invertirá en los proyectos:
• Expansión de planta
• Nueva maquinaria
• Ampliar el almacén 1 2
el VPN será de 280
PROGRAMACION ENTERA – MÉTODO ENUMERACION COMPLETA
• Si hay 2 variables binarias: 22 = 4 soluciones posibles.
• Si hay 50 variables binarias: 250 soluciones posibles.
EJEMPLO
Max Z = 300X1 + 90X2 + 400X3 + 150X4
s.a.
35X1 + 10X2 + 25X3 + 90X4 <= 120
4X1 + 2X2 + 7X3 + 3X4 <= 12
X1 + X2 <= 1
X1, X2, X3, X4 binarias 0 ó 1
Como hay 4 variables, entonces existen 24 = 16 alternativas de solución
PROGRAMACION ENTERA – MÉTODO ENUMERACION COMPLETA
• Cada nodo representa un modelo
en el que alguna(s) variable(s) toma
su valor especificado.
• Cada nodo terminal representa una
solución entera (factible ó no)
• Si en un nodo cualquiera la solución
es infactible los nodos que siguen
bajo él, tendrán solución infactible.
nodos terminales
PROGRAMACION ENTERA – MÉTODO ENUMERACION COMPLETA
VALORES QUE PUEDEN TOMAR LAS VARIABLES
Max Z = 300X1 + 90X2 + 400X3 + 150X4
s.a.
35X1 + 10X2 + 25X3 + 90X4 <= 120
4X1 + 2X2 + 7X3 + 3X4 <= 12
X1 + X2 <= 1
X1, X2, X3, X4 binarias 0 ó 1
Como hay 4 variables, entonces existen
24 = 16 alternativas de solución
Por tanto la solución óptima es:
X1 = X3 = 1, X2 = X4 = 0, Z = 700
PROGRAMACION ENTERA – MÉTODO ENUMERACION COMPLETA
Comprobando con el Lindo se obtienen los mismos resultados:
VARIABLES BINARIAS – EJEMPLO 2
Una compañía necesita contratar personal de seguridad. Se estima que los guardias trabajaran
turnos de 8 horas (que se muestra en una tabla) y en cada día se necesitan seis turnos para cubrir
las 24 horas que se muestra en la otra tabla. Las siguientes tablas muestran el número requerido de
personal de seguridad por cada 4 horas del día y los horarios de entrada y salida de cada turno.
Determinar cuántos guardias deberán trabajar en cada turno con el objeto de minimizar el número
de ellos.
número requerido de personal de seguridad
por cada 4 horas del dia
Horarios de entrada salida
VARIABLES BINARIAS – EJEMPLO 3
Y1 =>
Y2=>
Y3=>
Y4=>
Y5=>
Y6=>
SOLUCION:
Yj: Nro. de guardias que trabajan en turno j=1, 2, 3, 4, 5, 6 Restricciones de Cobertura (turnos)
Y1 + Y6 >= 5
Yj >= 0, enteras Y1 + Y2 >= 7
Y2 + Y3 >= 15
Min Z = Y1 + Y2 + Y3 + Y4 + Y5 + Y6 Y3 + Y4 >= 7
Y4 + Y5 >= 12
Y5 + Y6 >= 9
VARIABLES BINARIAS – EJEMPLO 3
SOLUCION EN LINDO:
• En el turno 2 trabajaran: 8 guardias
• En el turno 3 trabajaran: 7 guardias
• En el turno 5 trabajaran: 12 guardias
• En el turno 6 trabajaran: 5 guardias
PROGRAMACIÓN ENTERA
Ramificación y Acotamiento
Resolviendo el modelo.
Dado el siguiente modelo
Max Z = 4X1 + 6X2
s.a.
2X1 + 4X2 <=12
4X1 + 3X2<= 16
X1>=0, X2>=0
X1=2.8 y X2=1.6
Z = 20.8.
PROGRAMACIÓN ENTERA
Ramificación y Acotamiento
Dado el siguiente modelo Resolviendo el modelo.
Max Z = 4X1 + 6X2
s.a.
2X1 + 4X2 <=12 X1=2.8 y X2=1.6
4X1 + 3X2<= 16 Z = 20.8.
X1>=0, X2>=0
X1=2 y X2=1
Z = 14
Se puede redondear pero se presentan dos
riesgos: X1=3 y X2= 2
Z = 24
• La solución redondeada no sea factible.
• Si la solución es factible, no existe X1=2 y X2=2
ninguna garantía de que sea la solución Z = 20
optima. X1=3 y X2=1
Z = 18
PROGRAMACIÓN ENTERA
Ramificación y Acotamiento
Max Z = 4X1 + 6X2
s.a.
2X1 + 4X2 <=12
4X1 + 3X2<= 16
X1>=0, X2>=0
X1=2.8 y X2=1.6 X1<=2
Z = 20.8.
X1=2.8 y X2=1.6
Z = 20.8.
X1>=3
PROGRAMACIÓN ENTERA
Ramificación y Acotamiento
Max Z = 4X1 + 6X2
s.a.
2X1 + 4X2 <=12
4X1 + 3X2<= 16
X1>=0, X2>=0
X1<=2 X1=2 y X2= 2
X1=2.8 y X2=1.6 Z = 20
Z = 20.8.
X1=2.8 y X2=1.6 X2<=1
Z = 20.8.
X1= 3 y X2=1.33
X1>=3 Z = 20
X2>=2
PROGRAMACIÓN ENTERA
Ramificación y Acotamiento
Max Z = 4X1 + 6X2
s.a. De continuar resolviendo el
2X1 + 4X2 <=12 valor de Z seria menor que 20
4X1 + 3X2<= 16
X1>=0, X2>=0
X1<=2 X1=2 y X2= 2
X1=2.8 y X2=1.6 Z = 20
Z = 20.8.
X1=2.8 y X2=1.6 X2<=1 X1= 3 .25 y X2=1
Z = 20.8. Z = 19
X1= 3 y X2=1.33
X1>=3 Z = 20
INFACTIBLE
X2>=2
RESPUESTA
X1=2
X2= 2
Z = 20
PROGRAMACIÓN ENTERA
Ramificación y Acotamiento
Dado el siguiente modelo
Min Z = 4X1 + 5X2
s.a.
3X1 + 6X2 18
5X1 + 4X2 20
8X1 + 2X2 16
7X1 + 6X2 42
X1,X2 >=0, enteras