You are on page 1of 32

INSTITUTO TECNOLÓGICO DE MÉRIDA

DEPARTAMENTO DE INGENIERÍA INDUSTRIAL


CAMPUS NORTE

INGENIERIA INDUSTRIAL
GRUPO: 4I1

ASIGNATURA:
INVESTIGACIÓN DE OPERACIONES I

Ing. Luis Eduardo Basto Aguilar

INTEGRANTES:
➢ Matos Solís Joel Antonio
➢ Trujeque Olan Alex Armando

Mérida, Yucatán, México


14 de noviembre del 2020
Índice

Introducción………………………………………………………………………………. 3

3. Programación entera…………………………………………………………………..4

3.1. Introducción y casos de aplicación…………………………………………………4

3.2. Definición y modelos de programación entera……………………………………7

3.3. Método gráfico de programación entera (de corte) (algoritmo de Gomory)….11

3.4. Método de ramificación y acotamiento…………………………………………...14

Ejemplo del libro “Introducción a la investigación de operaciones” de Frederick S.


Hillier y Gerald J. Lieberman (9a edición)……………………………………………..16

Conclusión…………………………………………………...…………………………. .31

Bibliografía………………………………………………………………………………. 32

2
Introducción

Cada vez es más difícil asignar los recursos o actividades de la forma más eficaz,
pues los recursos cada vez son más escasos y crecen las complejidades de los
sistemas generando problemas para decisiones óptimas.

En el siglo pasado las Organizaciones del mundo solo estaban constituidas por un
número reducido de personas y eran dirigidos por una sola persona. Todo este
panorama cambia radicalmente con la Primera Revolución Industrial. Como se
sabe, ésta trajo consigo la energía, las maquinarias y los equipos que
revolucionaron las industrias mecanizando la producción. Consecuentemente con
ello vino la división o especialización del trabajo trayendo con ello las nuevas
responsabilidades de finanzas, producción, mercado e investigación y desarrollo
por parte de especialistas y científicos.

Investigación de Operaciones se les atribuye más a los servicios militares


prestados a principios de la II Guerra Mundial. Debido a los esfuerzos bélicos,
existía una necesidad urgente de asignar recursos escasos a las distintas
operaciones militares y a las actividades dentro de cada operación, en la forma
más efectiva. Por esto, las administraciones militares americana y británicas
hicieron un llamado a un gran número de científicos para que aplicaran el método
científico a éste y a otros problemas estratégicos y tácticos. Estos equipos de
científicos fueron los primeros equipos de IO. Con el desarrollo de métodos
efectivos que contribuyeron a numerosos triunfos.

3
3. Programación entera
3.1. Introducción y casos de aplicación.
La Programación Lineal (Optimización lineal), es el nombre que se le da al cálculo
de la mejor solución, a un problema modelado como un conjunto de relaciones
lineales. Estos problemas surgen en muchas disciplinas de la ciencia y la
ingeniería.
Es comúnmente utilizada en el ejercicio de la ingeniería, para abordar problemas
de productividad, de acuerdo a la satisfacción de determinadas restricciones – por
ejemplo: recursos, principalmente los limitados y costosos -, de acuerdo a un
criterio de optimización: maximizar un beneficio o minimizar un costo.
El objetivo primordial de la Programación Lineal es optimizar, es decir, maximizar
o minimizar funciones lineales, en varias variables lineales, con restricciones
lineales (sistemas de inecuaciones lineales), optimizando una función objetivo
también lineal.
Los resultados y el proceso de optimización se convierten en una base cuantitativa
del proceso de toma de decisiones frente a las situaciones planteadas. Decisiones
en las que sería importante tener en cuenta diversos criterios adicionales, como:

• Los hechos
• La experiencia
• La intuición
• La autoridad
Es preciso considerar que la solución de un modelo matemático establece una
base para la toma de decisiones; sin embargo, puede considerarse como esencial
el análisis de los resultados obtenidos.
Aplicación
Asignación:
Una universidad está programando las clases para el próximo semestre
académico y requiere buscar la mejor asignación posible de profesores a los
distintos cursos que se deben dictar. Considere que existen 5 profesores: A, B, C,
D, E y 5 cursos (asignaturas): C1, C2, C3, C4, C5. Adicionalmente, los profesores
han manifestado sus preferencias por dictar los distintos cursos en una escala de
1 a 10, donde 10 es la máxima puntuación y 1 la mínima puntuación o preferencia.
Se asume que cada profesor es apto para dictar cualquier curso, independiente

4
del puntaje de su preferencia. La siguiente tabla resume las puntuaciones que
asigna cada profesor a cada curso:

Profesores

Cursos A B C D E

C1 5 8 5 9 7

C2 7 2 3 6 8

C3 9 10 8 9 8

C4 8 7 9 7 8

C5 6 9 9 10 5

Se ha establecido como criterio que cada profesor debe dictar sólo un curso y a la
vez que cada curso obviamente debe tener un profesor. En base a lo anterior se
desea encontrar la asignación de profesores que maximice el total de las
preferencias.
Variables de Decisión:

𝟏, 𝒔𝒊 𝒔𝒆 𝒂𝒔𝒊𝒈𝒏𝒂 𝒆𝒍 𝒑𝒓𝒐𝒇𝒆𝒔𝒐𝒓 𝒊 𝒂𝒍 𝒄𝒖𝒓𝒔𝒐 𝒋

𝒙𝒊𝒋 = { 𝟎, 𝒔𝒊𝒏𝒐 𝒔𝒆 𝒂𝒔𝒊𝒈𝒏𝒂 𝒖𝒏 𝒄𝒖𝒓𝒔𝒐

Con 𝑖 = 𝐴, 𝐵, … , 𝐸 𝑦 𝑗 = 𝐶1, 𝐶2, … , 𝐶5

Función Objetivo: Maximizar el total de las preferencias de los profesores


𝐸 𝐶5

𝑀𝑎𝑥 ∑ ∑ 𝑃𝑖𝑗 𝑋𝑖𝑗

𝑖 = 𝐴 𝑗 = 𝐶1

Donde P (i, j) corresponde a una forma sintética de resumir los parámetros del
modelo, es decir, P (i, j) es la preferencia del profesor i (en una escala de 1 a 10)
por dictar el curso j. Por ejemplo, P (D, C3) = 9.
Costos fijos:
Usted ha sido designado por el gerente de su empresa para decidir cómo
distribuirá su tráfico telefónico en el próximo mes, seleccionando entre 3
proveedores posibles y asignando la cantidad de tráfico (minutos) que desee en

5
cada caso, es decir, puede repartir el tráfico en 1, 2 o 3 proveedores a su antojo y
su decisión sólo dependerá de los costos de cada alternativa.
El proveedor 1 cobra un cargo fijo mensual de US$50 y el costo por minuto a red
fija es de US$0,02 y a celular de US$0,12. El proveedor 2 tiene un cargo fijo
mensual de US$60, con un costo por minuto de US$0,015 y US$0,15 a red fija y
celular respectivamente. Finalmente, el proveedor 3 tiene un cargo fijo mensual de
US$40 con un costo por minuto a red fija de US$0,03 y a celular de US$0,14. Si
usted llama por uno de estos proveedores (aunque hable sólo un minuto) deberá
pagar el cargo fijo. Asuma que la cantidad de minutos que la empresa consume
mensualmente es de 30.000 para red fija y 18.000 para celular. Formule y
resuelva un modelo de Programación Entera que permita decidir cómo distribuir el
tráfico telefónico mensual de la forma más económica para la empresa.
Variables de Decisión:

• 𝑋𝑖 : Minutos a red fija que se llaman a través del proveedor 𝑖 con 𝑖 = 1,2,3
• 𝑌𝑖 : Minutos a celular que se llaman a través del proveedor 𝑖 con 𝑖 = 1,2,3
1, 𝑠𝑖 𝑠𝑒 𝑙𝑙𝑎𝑚𝑎 𝑐𝑜𝑛 𝑒𝑙 𝑝𝑟𝑜𝑣𝑒𝑒𝑑𝑜𝑟

𝑍𝑖 = {0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑙𝑒 𝑙𝑙𝑎𝑚𝑎 𝑐𝑜𝑛 𝑒𝑙 𝑝𝑟𝑜𝑣𝑒𝑒𝑑𝑜𝑟}

con 𝑖 = 1,2,3

Función Objetivo:

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 = 50𝑍1 + 60𝑍2 + 40𝑍3 + 0.02𝑋1 + 0.015𝑋2 + 0.03𝑋3 + 0.12𝑌1 + 0.15𝑌2 +


0.14𝑌3

Restricciones:
𝑋1 + 𝑋2 + 𝑋3 = 30000

𝑌1 + 𝑌2 + 𝑌3 = 18000

𝑋𝑖 ≤ 30000 𝑍1 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 𝑖

𝑌𝑖 ≤ 18000 𝑍1 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 𝑖

𝑋𝑖 ≥ 0 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 𝑖

6
3.2. Definición y modelos de programación entera.
Un modelo de Programación Entera es aquel cuya solución óptima tiene sentido
solamente si una parte o todas las variables de decisión toman valores
restringidos a números enteros, permitiendo incorporar en el modelamiento
matemático algunos aspectos que quedan fuera del alcance de los modelos de
Programación Lineal.
En este sentido los algoritmos de resolución de los modelos de Programación
Entera difieren a los utilizados en los modelos de Programación Lineal,
destacándose entre ellos el Algoritmo de Ramificación y Acotamiento (o Branch &
Bound), Branch & Cut, Planos Cortantes, Relajación Lagrangeana, entre otros.
Los modelos de Programación Entera se pueden clasificar en 2 grandes áreas:
Programación Entera Mixta (PEM) y Programación Entera Pura (PEP).
Programación Entera Mixta (PEM)
A esta categoría pertenecen aquellos problemas de optimización que consideran
variables de decisión enteras o binarias pero no de forma exclusiva. De esta forma
un problema de PEM puede considerarse como un híbrido entre distintas
categorías de modelamiento, siendo un caso típico aquel que considera la mezcla
de variables enteras y variables continuas (estas últimas características de los
modelos de Programación Lineal). A modo de ejemplo los siguientes artículos que
hemos abordado en el Blog dan cuenta de modelos de Programación Entera
Mixta:
1. Incorporación de Costos Fijos
2. Problemas de Localización y Transporte
3. Problema de Generación Eléctrica
Programación Entera Pura (PEP)
En esta categoría encontramos aquellos modelos de Programación Entera que
consideran exclusivamente variables de decisión que adoptan valores enteros o
binarios. Un ejemplo de ello son las siguientes aplicaciones:
1. Problema de Asignación
2. Problema de Corte de Rollos
3. Selección de Invitados a una Boda
4. Programación de la Explotación Forestal
5. Problema de la Mochila

7
Notar que en los problemas anteriores (PEP) el conjunto de las soluciones
factibles (o dominio de soluciones factibles) es finito. Esto ocurrirá generalmente
con los problemas de Programación Entera (puros).
Adicionalmente resulta interesante hacer un contraste entre las propiedades de un
modelo de Programación Lineal (PL) y uno de Programación Entera (PE). A
continuación, se presentan 2 modelos de optimización que se diferencian
únicamente en que al segundo de ellos (PE) se le exige que las variables de
decisión adopten valores enteros.

Para los problemas propuestos realizamos una representación gráfica haciendo


uso del software GeoGebra. El dominio de soluciones factibles del Problema
Lineal (PL) corresponde al área achurada de color verde. Por otro lado, el dominio
de soluciones factibles del Problema Entero (PE) es enumerable y corresponde a
las coordenadas denotadas por A, E, F, B, G, H, I, J, K, C, L, M, D (que es un
subconjunto del dominio de factibilidad del PL). En este caso en particular la
solución óptima de ambos problemas coincide (en el vértice C), no obstante,
perfectamente podrían ser distintas (bastaría con modificar los parámetros del
problema).

8
Ejemplo 1
Un problema que afronta todos los días un electricista consiste en decidir qué
generadores conectar. El electricista en cuestión tiene tres generadores con las
características que se muestran en la tabla 3. Hay dos periodos en el día. En el
primero se necesitan 2900 mega watts. En el segundo. 3900 mega watts. Un
generador que se conecte para el primer periodo puede ser usado en el segundo
sin causar un nuevo gasto de conexión. Todos los generadores principales (como
lo son A, B y C de la figura) son apagados al término del día. Si se usa el
generador A también puede usarse el generador C, no se usa generador B si se
usa generador
A. Formule este problema como un PLEM. GENERADOR

COSTO FIJO DE COSTO POR CAPACIDAD


CONEXIÓN PERIODO POR MAXIMA EN
MEGAWATT CADA PERIODO
USADO (MW)

A 3000 5 2100

B 2000 4 1800

C 1000 7 3000

Restricciones:

Demanda en el periodo 1: 𝑋𝑎1 + 𝑋𝑏1 + 𝑋𝑐1 ≥ 2900

Demanda en el periodo 2: 𝑋𝑎2 + 𝑋𝑏2 + 𝑋𝑐2 ≥ 3900

Capacidad de generador A: 𝑋𝑎1

Ejemplo 2
El proveedor 1 cobra un cargo fijo mensual de US$50 y el costo por minuto a red
fija es de US$0,02 y a celular de US$0,12. El proveedor 2 tiene un cargo fijo
mensual de US$60, con un costo por minuto de US$0,015 y US$0,15 a red fija y
celular respectivamente. Finalmente, el proveedor 3 tiene un cargo fijo mensual de
US$40 con un costo por minuto a red fija de US$0,03 y a celular de US$0,14. Si
usted llama por uno de estos proveedores (aunque hable sólo un minuto) deberá
pagar el cargo fijo. Asuma que la cantidad de minutos que la empresa consume
mensualmente es de 30.000 para red fija y 18.000 para celular. Formule y

9
resuelva un modelo de Programación Entera que permita decidir cómo distribuir el
tráfico telefónico mensual de la forma más económica para la empresa.7

10
3.3. Método gráfico de programación entera (de corte) (algoritmo
de Gomory).
El Método Gráfico (resolución gráfica) constituye una excelente alternativa de
representación y resolución de modelos de Programación Lineal que tienen 2
variables de decisión. Para estos efectos existen herramientas computacionales
que facilitan la aplicación del método gráfico como los softwares TORA,
IORTutorial y GeoGebra, los cuales se pueden consultar en detalle en Cómo
Resolver Gráficamente un Modelo de Programación Lineal con TORA, Cómo
Resolver Gráficamente un Modelo de Programación Lineal con IORTutorial y
Cómo Resolver Gráficamente un modelo de Programación Lineal con GeoGebra,
respectivamente. En este contexto a continuación presentamos un compendio de
ejercicios de Programación Lineal resueltos a través del método gráfico.
Ejemplo 1
Una empresa vitivinícola ha adquirido recientemente un terreno de 110 hectáreas.
Debido a la calidad del sol y el excelente clima de la región, se puede vender toda
la producción de uvas Sauvignon Blanc y Chardonay. Se desea conocer cuánto
plantar de cada variedad en las 110 hectáreas, dado los costos, beneficios netos y
requerimientos de mano de obra según los datos que se muestran a continuación:

Suponga que se posee un presupuesto de US$10.000 y una disponibilidad de


1.200 días hombre durante el horizonte de planificación. Formule y resuelva
gráficamente un modelo de Programación Lineal para este problema. Detalle
claramente el dominio de soluciones factibles y el procedimiento utilizado para
encontrar la solución óptima y valor óptimo.
Variables de Decisión:

• 𝑋1: Hectáreas destinadas al cultivo de de Sauvignon Blanc


• 𝑋2: Hectáreas destinadas al cultivo de Chardonay

Función Objetivo:

Maximizar 50𝑋1 + 120𝑋2

Restricciones:

• 𝑋1 + 𝑋2 ≤ 110
11
• 100𝑋1 + 200𝑋2 ≤ 10.000
• 10𝑋1 + 30𝑋2 ≤ 1.200
• 𝑋1 , 𝑋2 ≥ 0

Donde las restricciones están asociadas a la disponibilidad máxima de hectáreas


para la plantación, presupuesto disponible, horas hombre en el período de
planificación y no negatividad, respectivamente.
El siguiente gráfico muestra la representación del problema de la empresa
vitivinícola. El área achurada corresponde al dominio de soluciones factibles,
donde la solución básica factible óptima se alcanza en el vértice C, donde se
encuentran activas las restricciones de presupuestos y días hombre. De esta
forma resolviendo dicho sistema de ecuaciones se encuentra la coordenada de la
solución óptima donde 𝑋1 = 60 𝑦 𝑋2 = 20 (hectáreas). El valor óptimo es 𝑉 (𝑃) =
50(60) + 120(20) = 5.400 (dólares).

12
Ejemplo 2
Un taller tiene tres (3) tipos de máquinas A, B y C; puede fabricar dos (2)
productos 1 y 2, todos los productos tienen que ir a cada máquina y cada uno va
en el mismo orden: Primero a la máquina A, luego a la B y luego a la C. La
siguiente tabla muestra:

• Las horas requeridas en cada máquina, por unidad de producto


• Las horas totales disponibles para cada máquina, por semana
• La ganancia por unidad vendida de cada producto

Formule y resuelva a través del método gráfico un modelo de Programación Lineal


para la situación anterior que permite obtener la máxima ganancia para el taller.
Variables de Decisión:

• 𝑋1: Unidades a producir del Producto 1 semanalmente


• 𝑋2: Unidades a producir del Producto 2 semanalmente

Función Objetivo:

Maximizar 𝑋1 + 1,5𝑋2

Restricciones:

• 2𝑋1 + 2𝑋2 ≤ 16
• 𝑋1 + 2𝑋2 ≤ 12
• 4𝑋1 + 2𝑋2 ≤ 28
• 𝑋1 , 𝑋2 ≥ 0

Las restricciones representan la disponibilidad de horas semanales para las


máquinas A, B y C, respectivamente, además de incorporar las condiciones de no
negatividad.
Para la resolución gráfica de este modelo utilizaremos el software GLP cual
abordamos en el artículo Problema de Planificación Forestal resuelto con Graphic
Linear Optimizer (GLP). El área de color verde corresponde al conjunto de

13
soluciones factibles y la curva de nivel de la función objetivo que pasa por el
vértice óptimo se muestra con una línea punteada de color rojo.

La solución óptima es 𝑋1 = 4 y 𝑋2 = 4 con valor óptimo 𝑉 (𝑃) = 1(4) + 1,5(4) =


10 que representa la ganancia para el taller.

3.4. Método de ramificación y acotamiento


Consiste en una enumeración en árbol en el cual el espacio de las variables
enteras se divide de forma sucesiva dando lugar a problemas lineales que se
resuelven en cada nodo del árbol. Estos problemas lineales se obtienen relajando
las restricciones de integralidad y añadiendo restricciones adicionales.

• El procedimiento de ramificación y acotación establece inicialmente una


cota inferior y una cota superior del valor óptimo de la función objetivo.
• El mecanismo de ramificación aumenta progresivamente el valor de la cota
inferior y disminuye progresivamente el valor de la cota superior.
• La diferencia entre estas dos cotas es una medida de la proximidad del
punto actual a la solución óptima, si ésta existe.
Algoritmo de ramificación y acotación A.
Inicio:

• Se establece una cota superior y una cota inferior de la solución óptima.


• Se resuelve el MILP relajando las variables enteras como variables
continuas.
• Si el problema relajado es no factible, el original también lo es y no hay
solución.

14
• Si la solución obtenida satisface las restricciones de integralidad, es la
solución óptima del problema original.
• En otro caso, se actualiza el valor de la cota inferior con el valor óptimo de
la función objetivo del problema relajado. B. Ramificación:
Empleando la variable xk que ha de ser entera y no lo es, se generan mediante
ramificación dos problemas. Si xk= a.b , donde a es la parte entera y b su parte
decimal, los problemas fruto de la ramificación son los siguientes:

• MILP inicial relajado con la restricción xk ≤ a


• MILP inicial relajado con la restricción xk ≥ a+1
Estos problemas se colocan en una lista de problemas a procesar que pueden
resolverse secuencialmente o en paralelo. C. Solución:
Se resuelve el problema siguiente en la lista de problemas a procesar. D.
Actualización de cotas:

• Si la solución del problema actual satisface las condiciones de integralidad


y el valor óptimo de su función objetivo es menor que la cota superior
actual, se actualiza la cota superior con este valor óptimo y la solución
óptima del problema actual se almacena como el mejor candidato a
minimizador del problema original.
• Si la solución del problema actual no satisface las condiciones de
integralidad y el valor de la correspondiente función objetivo está entre las
cotas inferior y superior, se actualiza el valor de la cota inferior con este
valor óptimo, y se procede a ramificar. E. Acotación:
• Si la solución del problema actual cumple las restricciones de integralidad,
no tienen sentido ramificaciones adicionales relacionadas con esa solución.
Se dice que la rama se poda por razones de integralidad.
• Si la solución del problema actual no cumple las restricciones de
integralidad, y además el valor de la función objetivo correspondiente es
mayor que la cota superior, no se pueden obtener soluciones mediante
ramificaciones adicionales de esta rama. Se dice que la rama se poda por
cotas.
• Si el problema es no factible, no tienen sentido ramificaciones en ese nodo.
Se dice que la rama se poda por inafectabilidad. F. Optimalidad:
• Si la lista de problemas a procesar no está vacía, se continúa con el paso
C.
• Si la lista de problemas a procesar está vacía, el procedimiento concluye: o
Si existe un candidato a minimizador, este candidato es la solución óptima.

15
• Si no existe candidato a minimizador, el problema es no factible.

Ejemplo del libro “Introducción a la investigación de


operaciones” de Frederick S. Hillier y Gerald J. Lieberman (9a
edición)
A continuación, se estudiará el problema general de programación entera mixta,
PEM, donde algunas variables (por ejemplo, I de ellas) están restringidas a valores
enteros (pero no necesariamente sólo 0 y 1), y el resto son variables continuas
comunes. Por conveniencia en la notación, estas variables se ordenarán de
manera que las primeras l de ellas sean variables con restricción de enteros. La
forma general del problema que se va a estudiar es

(Cuando I = n, este problema se convierte en uno de PE pura.)


Se describirá un algoritmo básico de ramificación y acotamiento para resolver este
problema que, un poco más elaborado, ha proporcionado el enfoque estándar a la
PEM. La estructura de este algoritmo fue desarrollada por R. J. Dakin, con base
en un algoritmo anterior que se debe a A. H. Land y A. G. Doig.
La estructura de este algoritmo es bastante parecida a la del algoritmo de PEB
que se presentó en la sección anterior. De nuevo la solución de un relajamiento de
PL proporciona la base tanto para el paso de acotamiento como para el de
sondeo. En realidad, sólo se necesitan cuatro cambios al algoritmo de PEB para
manejar la generalización de variables enteras binarias generales y de PE pura a
PE mixta.
Un cambio involucra la elección de la variable de ramificación. Antes se elegía de
manera automática la siguiente variable en el orden natural (x1, x2, . . . , xn).
Ahora, las únicas variables que se toman en cuenta son las variables con
restricción de enteros que tienen un valor no entero en la solución óptima del
16
relajamiento de PL para el subproblema actual. La regla para elegir entre estas
variables será seleccionar la primera en el orden natural. (Los paquetes de
producción casi siempre utilizan una regla más complicada.)
El segundo cambio se refiere a los valores asignados a la variable de ramificación
para crear los nuevos subproblemas. Antes, la variable binaria se fijaba en 0 y 1,
respectivamente, para los dos nuevos subproblemas. Ahora, la variable general
con restricción de entera puede tener un número grande de valores enteros
posibles, y sería ineficiente crear y analizar muchos subproblemas mediante la
determinación de cada valor entero de la variable. Entonces, se crean sólo dos
nuevos subproblemas (como antes) al especificar dos intervalos de valores de la
variable.
Para aclarar cómo se procede, sea xj la variable de ramificación actual y xj su
valor (no entero) en la solución óptima del relajamiento de PL del subproblema
actual. Se usan corchetes para denotar

por lo cual, para los intervalos de valores de los dos nuevos subproblemas se
tiene

respectivamente. Cada desigualdad se convierte en una restricción adicional del


nuevo subproblema. Por ejemplo, si xj = 3(1/2), entonces

son las restricciones adicionales respectivas de los dos nuevos subproblemas.


Cuando se combinan los dos cambios al algoritmo de PEB que se acaba de
describir, puede ocurrir un interesante fenómeno de una variable de ramificación
recurrente. Para ilustrarla, como se muestra en la figura 11.10, sea j = 1 en el
ejemplo anterior donde xj = 3(1/2) y considere el nuevo subproblema con x1 ≤ 3.
Cuando se resuelve el relajamiento de PL para un descendiente de este
subproblema se obtiene x1 = 1(1/4). Entonces, x1 recurre como variable de
ramificación y los dos nuevos subproblemas creados tienen la restricción adicional
x1 ≤ 1 y x1 ≥ 2, respectivamente (así como la restricción adicional anterior, x1 ≤ 3).
Más adelante, cuando se resuelva el relajamiento de PL de un descendiente de,
por ejemplo, x1 ≤ 1, se supondrá que x1= 3 / 4. Entonces x1 recurre de nuevo
como variable de ramificación, y los dos nuevos subproblemas creados tienen x1
=0

17
(debido a la nueva restricción x1 ≤ 0 y la restricción de no negatividad sobre x1) y
x1 = 1 (debido a la nueva restricción x1 ≥ 1 y la anterior x1 ≤ 1).
El tercer cambio se hace en el paso de acotamiento. Antes, con un problema de
PE pura y coeficientes enteros en la función objetivo, el valor de Z de la solución
óptima del relajamiento de PL del subproblema se redondeaba hacia abajo para
obtener la cota, puesto que cualquier solución factible del problema debía tener
una Z entera. Ahora, con algunas variables sin la restricción de integridad, la cota
es el valor de Z sin redondear.

El cuarto (y último) cambio al algoritmo de PEB para obtener el algoritmo de PEM


se refiere a la prueba de sondeo 3. Antes, con un problema de PE pura, la prueba
consistía en que la solución al relajamiento de PL del subproblema fuera entera,
puesto que ello aseguraba una solución factible y, por tanto, óptima del
subproblema. Ahora, con un problema de PE mixta, la prueba requiere que sólo
las variables restringidas a enteras tengan valores enteros en la solución óptima
del relajamiento de PL del subproblema, puesto que esto es suficiente para
asegurar que la solución es factible y, por tanto, óptima para el subproblema.
La incorporación de estos cuatro cambios al resumen que se presentó en la
sección anterior sobre el algoritmo de programación entera binaria conduce al
siguiente resumen del nuevo algoritmo de programación entera mixta. (Como
antes, este resumen supone que se va a maximizar la función objetivo, pero el
único cambio necesario para la minimización consiste en cambiar la dirección de
la desigualdad de la prueba de sondeo 1.)
Algoritmo de ramificación y acotamiento de PEM
Paso inicial: Se establece Z* = - ∞. Se aplica el paso de acotamiento, el paso de
sondeo y la prueba de optimalidad que se describe después del problema
completo. Si no queda sondeado, se clasifica este problema como el único
subproblema restante para realizar la primera iteración completa.

18
Pasos de cada iteración:
1. Ramificación: Entre los subproblemas restantes (no sondeados), se selecciona
el de creación más reciente. (Los empates se rompen con la cota más grande.)
Entre las variables restringidas a enteros, que tienen valores no enteros en la
solución óptima del relajamiento de PL del subproblema, se elige la primera en el
orden natural como la variable de ramificación. Si xj es esta variable y xj su valor
en esta solución, se debe ramificar desde el nodo del subproblema para crear dos
nuevos subproblemas luego de agregar las restricciones respectivas xj ≤ [xj] y xj ≥
[xj] + 1.
2. Acotamiento: Se obtiene la cota de cada subproblema si se aplica el método
símplex (o el método símplex dual si se reoptimiza) al relajamiento de PL y se
utiliza el valor de Z para la solución óptima resultante.
3. Sondeo: Se aplican las pruebas de sondeo que se presentan a continuación a
cada nuevo subproblema y se descartan aquellos que quedan sondeados por
cualquiera de las pruebas.
Prueba 1: Su cota ≤ Z*, donde Z* es el valor de Z en la solución de apoyo actual.
Prueba 2: Su relajamiento de PL no tiene soluciones factibles.
Prueba 3: La solución óptima para su relajamiento de PL tiene valores enteros en
todas sus variables restringidas a enteros. (Si esta solución es mejor que la de
apoyo, se convierte en la nueva solución de apoyo y se vuelve a aplicar la prueba
1 con la nueva Z* a todos los subproblemas no sondeados.)
Prueba de optimalidad: El proceso se detiene cuando no hay subproblemas
restantes; la solución de apoyo actual es óptima. De otra manera, se realiza otra
iteración.
Ejemplo de PEM.
Ahora se ilustrará este algoritmo mediante su aplicación al siguiente problema de
PEM:

19
Observe que el número de variables restringidas a enteros es I = 3, de manera
que x4 es la única variable continua.
Paso inicial. Después de establecer Z* = - ∞, se forma el relajamiento de PL de
este problema mediante la eliminación del conjunto de restricciones si xj es entero
para j = 1, 2, 3. Si se aplica el método símplex a este relajamiento de PL, la
solución óptima es

Como tiene soluciones factibles y esta solución óptima tiene valores no enteros
para sus variables restringidas a enteros, se sondea todo el problema y el
algoritmo continúa abajo con la primera iteración completa.
Iteración 1. En esta solución óptima del relajamiento de PL la primera variable
restringida a enteros que tiene un valor no entero es x1 = (5/ 4), con lo cual ésta
se convierte en la variable de ramificación. Cuando se ramifica desde el nodo de
todo el problema (soluciones factibles de todo) con esta variable se crean los
siguientes dos subproblemas:
Subproblema 1:
Problema original más la restricción adicional x1 ≤ 1.

Subproblema 2:
Problema original más la restricción adicional x1 ≥ 2.
De nuevo se elimina el conjunto de restricciones a valores enteros y se resuelven
los relajamientos de PL de estos dos subproblemas; los resultados son:
Subproblema 1:

20
Subproblema 2:
Relajación PL: Soluciones no factibles.
Este resultado del subproblema 2 significa que queda sondeado por la prueba 2.
Igual que en el caso del problema completo, el subproblema 1 no pasa las
pruebas de sondeo.
En la fi gura 11.11 se resumen todos estos resultados en el árbol de solución.

Iteración 2. Con sólo un subproblema restante que corresponde al nodo x1 ≤ 1 en


la fi gura 11.11, la siguiente ramificación se hace desde ahí. Cuando se examina la
solución óptima del relajamiento de PL que se presenta en seguida, se observa
que este nodo revela que la variable de ramificación es x2, puesto que x2 = 6 / 5
es la primera variable restringida a enteros que no tiene un valor entero. Al
agregar una de las restricciones, x2 ≤ 1 o x2 ≥ 2, se crean los dos nuevos
subproblemas que siguen.
Subproblema 3:
Problema original más las restricciones adicionales
x1 ≤ 1, x2 ≤ 1.
Subproblema 4:
Problema original más las restricciones adicionales
x1 ≤ 1, x2 ≥ 2.
Al resolver sus relajamientos de PL se obtienen los siguientes resultados.
Subproblema 3:

Subproblema 4:

21
Como ambas soluciones existen (soluciones factibles) y tienen valores no enteros
de variables restringidas a enteros, ninguno de los subproblemas se sondea. (La
prueba 1 no es operativa, puesto que todavía Z* = - ∞, hasta que se encuentre la
primera solución de apoyo.) Hasta este punto, el árbol de solución se presenta en
la figura 11.12.

Iteración 3. De los dos subproblemas restantes (3 y 4) que se crearon al mismo


tiempo, se selecciona el que tiene la cota más grande (subproblema 3, con 14(1/6)
>12(1/6) para la siguiente ramificación. Como x1 = 5/6 tiene un valor no entero en
la solución óptima del relajamiento de PL de su subproblema, x1 se convierte en la
variable de ramificación. (Observe que x1 es ahora una variable de ramificación
recurrente, pues también se seleccionó en la iteración 1.) Esto conduce a los
siguientes subproblemas.
Subproblema 5:
Problema original más las restricciones adicionales

Subproblema 6:
Problema original más las restricciones adicionales

22
Los resultados que se obtienen cuando se resuelven los relajamientos de PL son
los siguientes.
Subproblema 5:

Subproblema 6:
Relajamiento LP No tiene soluciones factibles.
El subproblema 6 se sondea de inmediato con la prueba 2. Sin embargo, observe
que el subproblema 5 también se puede sondear. La prueba 3 pasa porque la
solución óptima de este relajamiento de PL tiene valores enteros (x1 = 0, x2 = 0,
x3 = 2) para las tres variables restringidas a enteros. (No importa que x4 = 1/2,
puesto que x4 no está restringida a enteros.) Esta solución factible para el
problema original se convierte en la primera solución de apoyo (incumbente):

.
Con esta Z* se vuelve a realizar la prueba de sondeo 1 al otro subproblema
(subproblema 4) y pasa la prueba, puesto que su cota 12(1/6) ≤ Z*.
Esta iteración tuvo éxito en el sondeo de las tres maneras posibles. Lo que es
más, ya no hay subproblemas restantes; por tanto, la solución de apoyo actual es
óptima.

Estos resultados se resumen en el árbol de solución de la fi gura 11.13.

23
En el OR Tutor se presenta otro ejemplo de aplicación del algoritmo de PEM.
Además, en la sección Worked Examples en el sitio en internet de este libro se
presenta un ejemplo pequeño (sólo dos variables, pero restringidas a enteros) que
incluye presentaciones gráficas. En el IOR Tutorial se incluye también una rutina
interactiva para ejecutar este algoritmo.

Problema de programación entera (Ejercicio 11.17)

1 2 3 4 1 2 3 4

1 0 0 0 1 17/12 1/12 5/12 0 57/4


X2 0 0 1 0 0 1/10 1/2 -1/10 0 3/2
H4 0 0 0 0 -4 -17/60 7/12 7/60 1 3/4
X1 0 1 0 0 0 1/12 5/12 1/12 0 5/4
X3 0 0 0 1 0 11/60 -1/12 -1/60 0 7/4
Base Z X X X X H H H H Solución

24
La solución óptima es:
Z = 57 / 4
X1 = 5 / 4
X2 = 3 / 2
X3 = 7 / 4
X4 = 0
Como X1 debe ser entera; se convierte en la variable de ramificación

• Subproblema 1= Todas las restricciones y se agrega X1 ≤ 1


• Subproblema 2= Todas las restricciones y se agrega X1 ≥ 2 ➢ Se
resuelven las 2 solturas de P.L. (de cada subproblema)
Parte 1
Se mantienen las restricciones originales y se agrega una nueva restricción.
Maximizar:
Z = 4X – 2X2 + 7X3 - X4,
Sujeta a
X1 + 5X3 ≤ 10
X1 + X2 - X3 ≤ 1
6X1 - 5X2 ≤ 0
-X1 + 2X3 – 2X4 ≤ 3
X1 ≤ 1
Xj ≥ 0 para j = 1, 2, 3, 4
Xj es entero, para j = 1, 2, 3.

Cuando lo resolvemos queda de la siguiente manera:

1 2 3 4 1 2 3 4 5

1 0 0 0 1 7/5 0 2/5 0 1/5 71/5


X2 0 0 1 0 0 0 0 -1/5 0 6/5 6/5

25
H2 0 0 0 0 0 1/5 1 1/5 0 -12/5 3/5
X1 0 1 0 0 0 0 0 0 0 1 1
X3 0 0 0 1 0 1/5 0 0 0 -1/5 9/5
Base Z X X X X H H H H H Solución

H4 0 0 0 0 -2 -2/5 0 0 1 7/5 2/5


La solución óptima es:
Z = 71 / 5
X1 = 1
X2 = 6 / 5
X3 = 9 / 5
X4 = 0
Parte 2
Se mantienen las restricciones originales y se agrega una nueva restricción
Maximizar:
Z = 4X – 2X2 + 7X3 - X4,
Sujeta a
X1 + 5X3 ≤ 10
X1 + X2 - X3 ≤ 1
6X1 - 5X2 ≤ 0
-X1 + 2X3 – 2X4 ≤ 3
X1 ≥ 2
Xj ≥ 0 para j = 1, 2, 3, 4
Xj es entero, para j = 1, 2, 3.
Cuando resolvemos obtenemos que ‘’No existe solución posible para el
problema’’
Al tener lo resultados siguientes, nos decidimos por el subproblema 1
Ya teniendo X1 entero pasamos a la siguiente variable de ramificación, que es X2
Y se divide en 2 subproblemas

26
Parte 3
Maximizar
Z = 4X1 – 2X2 + 7X3 - X4,
Sujeta a
X1 + 5X3 ≤ 10
X1 + X2 - X3 ≤ 1
6X1 - 5X2 ≤ 0
-X1 + 2X3 – 2X4 ≤ 3
X1 ≤ 1
X2 ≤ 1
Xj ≥ 0 para j = 1, 2, 3, 4
Xj es entero, para j = 1, 2, 3.
Cuando lo resolvemos queda como:
1 0 0 0 1 7/5 0 13/30 0 0 1/6 85/6
X2 0 0 1 0 0 0 0 0 0 1 1
H2 0 0 0 0 0 1/5 1 -1/5 0 0 -2 1
X1 0 1 0 0 0 0 0 1/6 0 0 5/6 5/6
X3 0 0 0 1 0 1/5 0 -1/30 0 0 -1/6 11/6
H5 0 0 0 0 0 0 0 -1/6 0 1 -5/6 1/6
H4 0 0 0 0 2 -2/5 0 7/30 1 0 7/6 1/6
Base Z 𝑋1 𝑋2 𝑋3 𝑋4 𝐻1 𝐻2 𝐻3 𝐻4 𝐻5 𝐻6 Solución

La solución óptima es:


Z = 85 / 6
X1 = 5 / 6
X2 = 1
X3 = 11 / 6
X4 = 0

27
Parte 4
Maximizar:
Z = 4X – 2X2 + 7X3 - X4,
Sujeta a
X1 + 5X3 ≤ 10
X1 + X2 - X3 ≤ 1
6X1 - 5X2 ≤ 0
-X1 + 2X3 – 2X4 ≤ 3
X1 ≤ 1
X2 ≥ 2
Xj ≥ 0 para j = 1, 2, 3, 4 Xj es entero, para j = 1, 2, 3.
Cuando lo resolvemos queda como:
1 0 0 0 1 0 0 0 25/6 73/6
X1
0 1 0 0 0 1/6 5/6 0 0 0 5/6 5/6
X2
H3 0 0 0 0 0 1/5 1 -1/5 0 0 -2 2
H4 0 0 0 0 0 -1 -5 1 0 0 -10 5
H5 0 0 0 0 2 -1/6 7/6 0 1 0 7/6 1/6
X3 0 0 0 0 0 -1/6 -5/6 0 0 1 -5/6 1/6
0 0 0 1 0 1/6 -1/6 0 0 0 -1/6 11/6
Base Z 𝑋1 𝑋2 𝑋3 𝑋4 𝐻1 𝐻2 𝐻3 𝐻4 𝐻5 𝐻6 Solución

La solución óptima es:


Z = 73 / 6
X1 = 5 / 6
X2 = 2
X3 = 11 / 6
X4 = 0
Como podemos observar ambos tienen solución, pero ninguno es todavía de
valores enteros para las variables enteras.

28
De ambos subproblemas (caso empate) seleccionamos el de cota más (+) grande,
en este caso sería el subproblema 3.
En la siguiente ramificación como X1 = 5/6; entonces X1 se convierte en la
variable de ramificación (variable de ramificación recurrente) X1 ≤ 0 X1 ≥ 1
Parte 5
Maximizar
Z = 4X – 2X2 + 7X3 - X4, Sujeta a X1 + 5X3 ≤ 10
X1 + X2 - X3 ≤ 1
6X1 - 5X2 ≤ 0
-X1 + 2X3 – 2X4 ≤ 3
X1 ≤ 1
X2 ≤ 1
X1 ≤ 0

Xj ≥ 0 para j = 1, 2, 3, 4
Xj es entero, para j = 1, 2, 3.
Cuando lo resolvemos queda como:
1 0 2 0 0 6/5 0 0 1/2 0 0 33/10 27/2
X4 0 0 0 0 1 1/5 0 0 -1/2 0 0 -7/10 1/2
H2 0 0 1 0 0 1/5 1 0 0 0 0 -6/5 3
H3 0 0 -5 0 0 0 0 1 0 0 0 -6 0
X3 0 0 0 1 0 1/5 0 0 0 0 0 -1/5 2
H5 0 0 0 0 0 0 0 0 0 1 0 -1 1
H6 0 0 1 0 0 0 0 0 0 0 0 1 1
X1 1 0 0 0 0 0 0 0 0 0 1 0
Base Z 𝑋1 𝑋2 𝑋3 𝑋4 𝐻1 𝐻2 𝐻3 𝐻4 𝐻5 𝐻6 𝐻7 Solución

La solución óptima es:


Z = 27 / 2 X1 = 0
X2 = 0

29
X3 = 2
X4 = 1 / 2
Parte 6
Maximizar:
Z = 4X – 2X2 + 7X3 - X4, Sujeta a X1 + 5X3 ≤ 10
X1 + X2 - X3 ≤ 1
6X1 - 5X2 ≤ 0
-X1 + 2X3 – 2X4 ≤ 3
X1 ≤ 1
X2 ≤ 1
X1 ≥ 1

Xj ≥ 0 para j = 1, 2, 3, 4
Xj es entero, para j = 1, 2, 3.
Cuando resolvemos obtenemos que ‘’No existe solución posible para el
problema’’
Resultado del ejercicio
Al terminar de resolver el problema, con esto nos pudimos dar cuenta y podemos
observar que en el subproblema 5, con las restricciones que tenemos y de igual
manera con X1, X2 y X3 sean enteros, podemos decir que el problema de
programación de enteros mixta va quedando como resulto lo siguiente:
La solución óptima es:
Z = 27 / 2
X1 = 0
X2 = 0
X3 = 2
X4 = 1 / 2

30
Conclusión
En la actualidad, las empresas deben de enfrentar problemas de todo tipo, las
cuales en algunos casos pueden poner en riesgo, no sólo la estabilidad, sino
también su permanencia en el mercado, por lo que deben de resolverlos en forma
rápida y expedita. Estos problemas pueden ser complejos, debido al número de
variables y parámetros que se conozcan y por el nivel de certidumbre de
información que se maneja. Para resolverlos, el ser humano crea modelos y aplica
uno de los tres procesos de solución que existen: procesos algorítmicos, procesos
heurísticos o la simulación.

Estos procesos son utilizados por los ingenieros, que son reconocidos como
solucionadores de problemas, para lo cual manejan diferentes herramientas,
dentro de las cuales está la investigación de operaciones. Esta herramienta nace
en la segunda guerra mundial para analizar las operaciones militares, cuyas
técnicas se aplicaron posteriormente para solucionar problemas del sector
productivo, dando tan buenos resultados que se extendió su uso.

La investigación de operaciones se puede definir como la aplicación del método


científico en la solución de problemas en las empresas, cuyo enfoque es la
modelación, es decir, crea modelos para representar los problemas y utiliza
diferentes técnicas, como la programación lineal y el análisis de decisiones, para
establecer la solución del mismo.

Es innegable que la esta herramienta tiene gran importancia, porque se puede


obtener una solución cuantitativa a problemas de diversos tipos y nos ayuda a
tomar decisiones, basadas en un proceso analítico. Tomar decisiones es la tarea
esencial de toda persona o grupo que tiene su responsabilidad el funcionamiento
de una organización entera o parte de ellas.

La decisión final la debe tomar el ser humano, que tiene conocimiento que no se
pueden cuantificar exactamente, y que puede ajustar los resultados del análisis
para llegar a una decisión conveniente.

31
Bibliografía

herrera, S. (12 de Marzo de 2017). Programación Lineal (Método Gráfico).


Obtenido de
https://www.gestiondeoperaciones.net/programacion_lineal/programacion-
lineal-metodo-grafico/
Lopez, B. S. (13 de Noviembre de 2021). Ingeniería industrial. Obtenido de
https://www.ingenieriaindustrialonline.com/investigacion-de-
operaciones/programacion-lineal/
Martínez, Á. (24 de Febrero de 2014). Programación entera. Obtenido de
http://www.dma.uvigo.es/~aurea/Programaci%C3%9Bn_entera_2015.pdf
Ortiz, A. (11 de Febrero de 2016). Qué es la Programación Entera. Obtenido de
https://www.gestiondeoperaciones.net/programacion-entera/que-es-la-
programacion-entera/
Sosa, J. (Enero de 2020). Ejemplos casos especiales de programación lineal
(método gráfico). Obtenido de https://www.celeberrima.com/ejemplos-
casos-especiales-de-programacion-lineal-metodo-grafico/
H. (2010). Introduccion A La Investigacion De Operaciones (9.a ed.).
mexico, mexico: MCGRAW HILL EDDUCATION.

32

You might also like