You are on page 1of 75

TECNICA DE INVESTIGACION OPERATIVA I

UNIDAD I: PROGRAMACION LINEAL Y ENTERA


INTRODUCCION

LOS ORÍGENES DE LA INVESTIGACIÓN DE OPERACIONES

La primera actividad de Investigación de Operaciones se dio durante la Segunda


Guerra Mundial en Gran Bretaña, donde la Administración Militar llamó a un grupo de
científicos de distintas áreas del saber para que estudiaran los problemas tácticos y
estratégicos asociados a la defensa del país.

El nombre de Investigación de Operaciones fue dado aparentemente porque el


equipo estaba llevando a cabo la actividad de investigar operaciones (militares).

Motivados por los resultados alentadores obtenidos por los equipos británicos, los
administradores militares de Estados Unidos comenzaron a realizar investigaciones
similares. Para eso reunieron a un grupo selecto de especialistas, los cuales empezaron a
tener buenos resultados y en sus estudios incluyeron problemas logísticos complejos, la
planeación de minas en el mar y la utilización efectiva del equipo electrónico.

Al terminar la guerra, el éxito de la investigación de operaciones en las actividades


bélicas generó un gran interés en sus aplicaciones fuera del campo militar, los
administradores industriales empezaron a aplicar las herramientas de la Investigación de
Operaciones a la resolución de sus problemas que empezaron a originarse debido al
crecimiento del tamaño y la complejidad de las industrias tales como problemas en los
negocios, transporte, las telecomunicaciones, la construcción, el cuidado de la salud y el
gobierno, por nombrar solo unas cuantas.

Aunque se ha acreditado a Gran Bretaña la iniciación de la Investigación de


Operaciones como una nueva disciplina, los Estados Unidos tomaron pronto el liderazgo
en este campo rápidamente creciente. La primera técnica matemática ampliamente
aceptada en el medio de Investigación de Operaciones fue el Método Simplex de
Programación Lineal, desarrollado en 1947 por el matemático norteamericano George B.
Dantzig. Desde entonces las nuevas técnicas se han desarrollado gracias al esfuerzo y
cooperación de las personas interesadas tanto en el área académica como en el área
industrial.

Un segundo factor en el progreso impresionante de la Investigación de


Operaciones fue el desarrollo de la computadora digital, que con sus tremendas
capacidades de velocidad de cómputo y de almacenamiento y recuperación de
información, permitieron al tomador de decisiones rapidez y precisión.

Si no hubiera sido por la computadora digital, la Investigación de Operaciones con


sus grandes problemas de computación no hubiera crecido al nivel de hoy en día.

Actualmente la Investigación de Operaciones se está aplicando en muchas


actividades. Estas actividades han ido más allá de las aplicaciones militares e industriales,
para incluir hospitales, instituciones financieras, bibliotecas, planeación urbana, sistemas
de transporte y sistemas de comercialización.

Una de las características importantes de la investigación de operaciones es su


amplio punto de vista. De esta manera, intenta resolver los conflictos de interés entre los
componentes de la organización de forma que el resultado sea el mejor para la
organización.

Una característica adicional es que la investigación de operaciones intenta


encontrar una mejor solución, (llamada solución óptima) para el problema bajo
consideración. (Decimos una mejor solución y no la mejor porque puede existir muchas
soluciones que empaten como la mejor), esta “búsqueda de la optimalidad” es un aspecto
importante dentro de la investigación de operaciones.

La contribución del enfoque de Investigación de Operaciones proviene


principalmente de:

1. La estructuración de una situación de la vida real como un modelo matemático,


logrando una abstracción de los elementos esenciales para que pueda buscarse una
solución que concuerde con los objetivos del tomador de decisiones. Esto implica tomar
en cuenta el problema dentro del contexto del sistema completo.

2. El análisis de la estructura de tales soluciones y el desarrollo de procedimientos


sistemáticos para obtenerlas.

3. El desarrollo de una solución, incluyendo la teoría matemática si es necesario, que lleva


al valor óptimo de la medida de lo que se espera del sistema.

FASES DE UN ESTUDIO DE IO O METODOLOGIA DE LA INVESTIGACION DE OPERACIONES


Los estudios de investigación de operaciones se basan en la labor de equipo, donde los
analistas de IO y el cliente trabajan codo con codo. Los conocimientos de modelado de los
analistas de IO se deben complementar con la experiencia y cooperación del cliente para
quien realizan el estudio.
El proceso de aplicar métodos cuantitativos requiere una sucesión sistemática de pasos o
fases, los principales son:
1. Definición del problema: implica definir el alcance del problema investigado. Esta
función debe ser realizada por todo el equipo de IO. El objetivo es identificar tres
elementos principales del problema de decisión: (1) descripción de las alternativas de
decisión; (2) determinación del objetivo del estudio, y (3) especificación de las
limitaciones bajo las cuales funciona el sistema modelado.
2. Construcción del modelo: implica un intento de transformar la definición del
problema en relaciones matemáticas. Si el modelo resultante se ajusta a uno de los
modelos matemáticos estándar, como la programación lineal, se suele obtener una
solución utilizando los algoritmos disponibles. Por otra parte, si las relaciones
matemáticas son demasiado complejas como para permitir la determinación de una
solución analítica, el equipo de IO puede optar por simplificar el modelo y utilizar un
método heurístico, o bien considerarla simulación, si es lo apropiado.
3. Solución del modelo: es por mucho la más sencilla de todas las fases de IO porque
implica el uso de algoritmos de optimización bien definidos. Un aspecto importante de
la fase de solución del modelo es el análisis de sensibilidad. Tiene que ver con la
obtención de información adicional sobre el comportamiento de la solución óptima
cuando el modelo experimenta algunos cambios de parámetros. El análisis de
sensibilidad es particularmente necesario cuando no se pueden estimar con precisión
los parámetros del modelo. En estos casos es importante estudiar el comportamiento
de la solución óptima en el entorno de los parámetros estimados.

DEFINICION DEL
PROBLEMA

DESARROLLO DE UN RESOLUCION DEL


MODELO MATEMATICO Y MODELO SOLUCION
RECOLECCION DE DATOS MATEMATICO

¿ES VALIDA
MODELO LA
MODIFICADO SOLUCION?

IMPLEMENTACION
4. Validación del modelo: comprueba si el modelo propuesto hace en realidad lo que
dice que hace, es decir, ¿predice adecuadamente el comportamiento del sistema que
se estudia? Al principio, el equipo de IO debe estar convencido de que el resultado del
modelo no contenga “sorpresas”. En otras palabras, ¿tiene sentido la solución? ¿Los
resultados sin intuitivamente aceptables? Del lado formal, un método común de
comprobarla validez de un modelo es comparar su resultado con resultados históricos.
El modelo es válido si, en condiciones de datos de entrada iguales, reproduce de forma
razonable el desempeño pasado. Sin embargo, no suele haber seguridad de que el
desempeño futuro continuará copiando el comportamiento pasado. Además, como el
modelo se basa en el examen cuidadoso de datos pasados, la comparación propuesta
casi siempre es favorable. Si el modelo propuesto representara un sistema nuevo
(inexistente), no habría datos históricos disponibles. En esos casos podemos utilizar la
simulación como una herramienta independiente para comprobar el resultado del
modelo matemático.
5. La implementación de la solución de un modelo validado implica la transformación de
los resultados en instrucciones de operación comprensibles que se emitirán a las
personas que administrarán el sistema recomendado. La responsabilidad de esta tarea
recae principalmente en el equipo de IO.

La fase 3, que se ocupa de la solución del modelo, es la mejor definida y por lo general la
más fácil de implementar en un estudio de IO, porque maneja principalmente modelos
matemáticos precisos. La implementación de las fases restantes es más un arte que una
teoría.
UNIDAD I: MODELOS DE PROGRAMACION LINEAL
I) INTRODUCCION

Muchas personas clasifican el desarrollo de la Programación Lineal (PL) entre los avances
científicos más importantes de mediados del siglo XX. En la actualidad es una herramienta común
que ha ahorrado miles o millones de dólares a muchas compañías y negocios, incluyendo
industrias medianas en distintos países del mundo. ¿Cuál es la naturaleza de esta notable
herramienta y qué tipo de problemas puede manejar? Expresado brevemente, el tipo más común
de aplicación abarca el problema general de asignar recursos limitados entre actividades
competitivas de la mejor manera posible (es decir, en forma óptima). Este problema de asignación
puede surgir cuando deba elegirse el nivel de ciertas actividades que compiten por recursos
escasos para realizarlas. La variedad de situaciones a las que se puede aplicar esta descripción es
sin duda muy grande, y va desde la asignación de instalaciones productivas a los productos, hasta
la asignación de los recursos nacionales a las necesidades de un país; desde la planeación agrícola,
hasta el diseño de una terapia de radiación; etc. No obstante, el ingrediente común de todas estas
situaciones es la necesidad de asignar recursos a las actividades.

En este caso, la palabra programación no se refiere a programación en computadoras; en esencia


es un sinónimo de planeación. Así, la PL trata la planeación de las actividades para obtener un
resultado óptimo, esto es, el resultado que mejor alcance la meta especificada (según el modelo)
entre todas las opciones de solución. Aunque la asignación de recursos a las actividades es la
aplicación más frecuente, la PL tiene muchas otras posibilidades. De hecho, cualquier problema
cuyo modelo matemático se ajuste al formato general del modelo de PL es un problema de PL.

La programación lineal utiliza un modelo matemático para describir el problema. El


adjetivo lineal significa que todas las funciones matemáticas del modelo deben ser
funciones lineales. En este caso, la palabra programación es un sinónimo de planeación.

II) DEFINICIONES BASICAS DE PROGRAMACION LINEAL

La programación lineal es el estudio de modelos matemáticos concernientes a la


asignación eficiente de los recursos limitados en las actividades conocidas, con el objetivo
de satisfacer las metas deseadas, tal como maximizar beneficios o minimizar costos. El
propósito de la programación lineal es el de MAXIMIZAR o MINIMIZAR una función lineal
para los valores de las variables que satisfacen un conjunto de igualdades o desigualdades
lineales.

Se puede formular el modelo matemático (programación lineal) para el problema general


de asignar recursos a actividades. En particular, este modelo consiste en elegir valores de
𝑥1 , 𝑥2 , . . . , 𝑥𝑛 para:

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑜 𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑓 = 𝑐1 𝑥1 + 𝑐2 𝑥2 + . . . + 𝑐𝑛 𝑥𝑛 ,

𝑆𝑢𝑗𝑒𝑡𝑜 𝑎 𝑙𝑎𝑠 𝑟𝑒𝑠𝑡𝑟𝑖𝑐𝑐𝑖𝑜𝑛𝑒𝑠: 𝑎11 𝑥1 + 𝑎12 𝑥2 + . . . + 𝑎1𝑛 𝑥𝑛 (=, ≥ 𝑜 ≤) 𝑏1

𝑎21 𝑥1 + 𝑎22 𝑥2 + . . . + 𝑎2𝑛 𝑥𝑛 (=, ≥ 𝑜 ≤) 𝑏2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . … … … . ..

𝑎𝑚1 𝑥1 + 𝑎𝑚2 𝑥2 + . . . + 𝑎𝑚𝑛 𝑥𝑛 (=, ≥ 𝑜 ≤) 𝑏𝑛

𝑥1 ≥ 0, 𝑥2 ≥ 0, . . . , 𝑥𝑛 ≥ 0

𝐷𝑜𝑛𝑑𝑒
𝑐1, 𝑐2 , . . . , 𝑐𝑛 ∶ 𝑐𝑜𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑒𝑠 𝑑𝑒 𝑐𝑜𝑠𝑡𝑜𝑠 (𝑐𝑜𝑛𝑜𝑐𝑖𝑑𝑜𝑠)
𝑥1 , 𝑥2 , . . . , 𝑥𝑛 : 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑑𝑒 𝑑𝑒𝑐𝑖𝑠𝑖ó𝑛 (𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑜 𝑛𝑖𝑣𝑒𝑙𝑒𝑠 𝑑𝑒 𝑎𝑐𝑡𝑖𝑣𝑖𝑑𝑎𝑑)
𝑎𝑖 𝑗 , 𝑖 = 1, … , 𝑚; 𝑗 = 1, … , 𝑛: 𝑐𝑜𝑒𝑓𝑖𝑐𝑖𝑒𝑛𝑡𝑒𝑠 𝑡𝑒𝑐𝑛𝑜𝑙ó𝑔𝑖𝑐𝑜𝑠
𝑏1 , 𝑏2 , . . . , 𝑏𝑛 : 𝑟𝑒𝑞𝑢𝑒𝑟𝑖𝑚𝑖𝑒𝑛𝑡𝑜𝑠 / 𝑑𝑖𝑠𝑝𝑜𝑛𝑖𝑏𝑖𝑙𝑖𝑑𝑎𝑑𝑒𝑠
𝑓 = 𝑐1𝑥1 + 𝑐2𝑥2 + . . . + 𝑐𝑛 𝑥𝑛 : 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜
𝑎𝑖1 𝑥1 + 𝑎𝑖2 𝑥2 +. . . + 𝑎𝑖𝑛 𝑥𝑛 ≤ 𝑏𝑖 : 𝑖 – é𝑠𝑖𝑚𝑎 𝑟𝑒𝑠𝑡𝑟𝑖𝑐𝑐𝑖ó𝑛
𝑥1 , 𝑥2 , . .. , 𝑥𝑛 ≥ 0: 𝑟𝑒𝑠𝑡𝑟𝑖𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝑑𝑒 𝑛𝑜 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑖𝑑𝑎𝑑

La formulación del problema de programación lineal (PPL) anterior esta descrita de forma
de extensión y general.

Un problema de programación lineal consta:


CRITERIO FUNCION OBJETIVO
𝑛
Max o Min
𝑓 = ∑ 𝑐𝑗 𝑥𝑗
𝑗=1
𝑛
RESTRICCIÓN s. a.
∑ 𝑎𝑖𝑗 𝑥𝑗 ≤ 𝑏𝑖 𝑖 = ̅̅̅̅̅̅
1, 𝑚
𝑗=1
n. n. 𝑥𝑗 ≥ 0 𝑗 = ̅̅̅̅̅
1, 𝑛
Aquí la representación es de sumatoria y la siguiente es representación matricial.

Formas de PPL:

Forma Problema de Minimización Problema de Maximización


Min F = CX Max F = CX
Canónica s. a. AX ≥ B s. a. AX ≤ B
n. n. X ≥ 0 n. n. X ≥ 0
Min F = CX Max F = CX
Estándar s. a. AX = B s. a. AX = B
n. n. X ≥ 0 n. n. X ≥ 0
Min F = CX Max F = CX
s. a. A1 X ≤ B s. a. A1 X ≤ B
Mixta A2 X = B A2 X = B
A3 X ≥ B A3 X ≥ B
n. n. X ≥ 0 n. n. X ≥ 0

PROPIEDADES PARA TRANSFORMACIÓN DE PPL:

1) 𝑀𝑎𝑥 𝐹 ≡ −𝑀𝑖𝑛 − 𝐹 𝑀𝑖𝑛 𝐹 ≡ −𝑀𝑎𝑥 − 𝐹


2) 𝑎𝑥 ≤ −𝑏 ≡ −𝑎𝑥 ≥ 𝑏 𝑎𝑥 ≥ −𝑏 ≡ −𝑎𝑥 ≤ 𝑏
3) 𝑎𝑥 = 𝑏 ≡ 𝑎𝑥 ≤ 𝑏 ^ − 𝑎𝑥 ≤ −𝑏 ≡ 𝑎𝑥 ≥ 𝑏 ^ − 𝑎𝑥 ≥ −𝑏
4) 𝑥 ≤ 0 ≡ 𝑥 = −𝑥1 / 𝑥1 ≥ 0
5) 𝑥 𝑖𝑟𝑟𝑒𝑠𝑡𝑟𝑖𝑛𝑔𝑖𝑑𝑎 ≡ 𝑥 = 𝑥1 − 𝑥2 / 𝑥1 ≥ 0, 𝑥2 ≥ 0
6) 𝑎𝑥 ≤ 𝑏 ≡ 𝑎𝑥 + ℎ = 𝑏 / ℎ ≥ 0
7) 𝑎𝑥 ≥ 𝑏 ≡ 𝑎𝑥 − ℎ = 𝑏 / ℎ ≥ 0

III) FORMULACIÓN DE MODELOS DE PL.

SUGERENCIAS PARA FORMULAR UN PROBLEMA DE PROGRAMACIÓN LINEAL.

 Defina las variables de decisión, observando el carácter lineal que deben tener las
restricciones y la función objetivo.
 Escriba un enunciado verbal de la función objetivo y de cada restricción del problema.
 Escriba la función objetivo como función lineal de las variables de decisión.
 Escriba cada restricción como una igualdad o desigualdad lineal de las variables de
decisión.
Sin embargo, para poder representar un problema de optimización como un problema de
programación lineal, se requieren varias suposiciones que están implícitas en la
formulación de la programación lineal, estas son:

1. Proporcionalidad: El primer supuesto tiene que ver con la forma lineal de las funciones. Ya
que el objetivo es lineal, la contribución al objetivo de cualquier decisión es proporcional al
valor de la variable de decisión. Producir dos veces más de producto producirá dos veces más
de ganancia, contratando el doble de páginas en las revistas doblará el costo relacionado con
las revistas. De manera similar, si el valor de una variable se multiplica por cualquier
constante, su contribución a la restricción se multiplica por esa constante. Producir
tres veces más el producto contribuye en tres veces más el valor a cada propiedad
involucrada en su fabricación (materia prima, mano de obra etc.)
2. Aditividad: la contribución de una cada variable (ya sea la función objetivo o las
restricciones) se suma o sustrae a la de cada una de las otras variables o sea que es
independiente de los valores de las otras variables. La ganancia con una computadora
Notebook es de $10,750.00, independientemente de cuantas computadoras Desktop se
producen.
3. Divisibilidad: Es posible tomar una fracción de cualquier variable. Por ejemplo, en un
problema de marketing, qué significa comprar 2.67 avisos en la televisión?. Es posible que la
suposición de ser divisible sea insatisfecha en este ejemplo. O puede ser que tales unidades
de 2.67 avisos correspondan a 2,666.7 minutos de avisos, en cuyo caso redondeando la
solución serían 2,667 minutos con una mínima duda que esté cercana a la solución óptima. Si
la suposición de divisible no es válida, entonces se usará la técnica de Programación Lineal
Entera.
4. Certidumbre: Se supone que los valores asignados a cada parámetro de un modelo de
programación lineal son constantes conocidas o sea que no permite incertidumbre en los
valores.

PLANTEAMIENTO DE MODELOS DE PROBLEMAS DE PROGRAMACIÓN LINEAL.

Ejemplo 1: Una persona desea invertir 10 millones de Córdobas y le aconsejan que las
invierta en dos tipos de acciones, A y B. Las de tipo A tienen más riesgo pero
producen un beneficio del 10 %. Las de tipo B son más seguras, pero producen sólo el
7% anual. Después de varias deliberaciones decide invertir como máximo 6 millones
en la compra de acciones A y por lo menos, 2 millones en la compra de acciones B.
Además, decide que lo invertido en A sea, por lo menos igual a lo invertido en B.
¿Cómo deberá invertir 10 millones para que le beneficio anual sea máximo?
Solución:
Sean las variables de decisión:
x = cantidad invertida en acciones A
y = cantidad invertida en acciones B

ACCIÓN A ACCIÓN B DISPONIBILIDAD


CAPITAL 1 1 10
BENEFICIO 10% 7%
MÁXIMO EN A 1 6
DECISIÓN LO MENOS EN B 1 2
RELACIÓN A Y B 1 1 POR LO MENOS IGUAL

10 𝑥 7𝑦
La función objetivo es: 𝑓 (𝑥, 𝑦) = + 100
100

𝑥 + 𝑦 ≤ 10
𝑥≤6
y las restricciones son: 𝑦≥2
𝑥≥𝑦
𝑥 ≥ 0, 𝑦 ≥ 0
Ejemplo 2: Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de paseo
y de montaña que quiere vender, respectivamente a C$2000 y C$1500 cada una para sacar el
máximo beneficio. Para la de paseo empleará 1 kg. De acero y 3 kg. de aluminio, y para la de
montaña 2 kg. de ambos metales. ¿Cuántas bicicletas de paseo y de montaña venderá?

Solución:
Sean las variables de decisión:
X = el número de bicicletas de paseo a producir y vender.
Y = la cantidad de bicicletas de montaña a producir y vender.
Tabla de material empleado:
PASEO MONTAÑA DISPONIBILIDAD
ACERO 1 2 80
ALUMINIO 3 2 120
BENEFICIO 2000 1500

Max b = 2000 X + 1500 Y


s. a. X + 2 Y < 80
3 X + 2 Y < 120
n. n. X, Y > 0

Ejemplo 3: El taller SUPEROIL de José se especializa en cambios de aceite del motor y


regulación del sistema eléctrico. El beneficio por cambio del aceite es $7 y de $15 por
regulación. José tiene un cliente fijo con cuya flota, le garantiza 30 cambios de aceite por
semana. Cada cambio de aceite requiere de 20 minutos de trabajo y $8 de insumos. Una
regulación toma una hora de trabajo y gasta $15 en insumos. SUPEROIL paga a los
mecánicos $10 por hora de trabajo y emplea actualmente a dos de ellos, cada uno de los
cuales labora 40 horas por semana. Las compras de insumos alcanzan un valor de $1750
semanales. SUPEROIL desea maximizar el beneficio total. Formule el problema.

Solución:
Sea X1 = Cantidad de cambios del aceite.
X2 = El número de regulación del sistema eléctrico.
Max U = 7X1 + 15X2
s. a: X1 ≥ 30 Cliente fijo
20X1 + 60X2 ≤ 4800 Tiempo de trabajo
8X1 + 15X2 ≤ 1750 Materias primas
n. n. X1 ≥ 0, X2 ≥ 0.
El coste de trabajo de $10 por hora no se requiere para formular el problema desde el
beneficio por cambio del aceite y el ajuste toma en la consideración el coste de trabajo.
Una porción de un cambio del aceite o del ajuste no es factible. (Una piedra en el camino)

Ejemplo 4: Una hiladora ha recibido una orden para Algodón Seda


producir un hilo que debe contener al menos 45 onzas de A 30% 50%
algodón y 25 onzas de seda. La orden puede ser B 60% 10%
conformada para cualquier mezcla posible de dos tipos de Hilo (A y B). El Material A
cuesta $3 por onza y el B cuesta $2 por onza. Contienen las proporciones de algodón y
seda que se presentan en la siguiente tabla: Qué cantidades (onzas) de hilos A y B
deberían ser usadas para minimizar el costo de esta orden?

Solución:

Sea A el número de onzas de hilo tipo A que se usará.


B la cantidad de onzas a usarse de hilo tipo B
Min C = 3A + 2B

s. a. 0,30A + 0,60B ≥ 45 (condición de algodón)


0,50A + 0,10B ≥ 25 (condición de seda)
A, B ≥ 0

Ejemplo 5: Dos mataderos, P y Q, se encargan de suministrar la carne consumida


semanalmente en tres ciudades, R, S y T: 20, 22 y 14 toneladas, respectivamente. El
matadero P produce cada semana 26 toneladas de carne, y el Q 30. Sabiendo que los
costes de transporte, por tonelada de carne, desde cada matadero a cada ciudad, son los
reflejados en la siguiente tabla:
Matadero\Ciudad R S T
P 1 3 1
Q 2 1 1

Plantear el PPL para el cual la distribución de transporte sea un coste mínimo.


Solución:
Sea xi j la cantidad de carne en toneladas que se transporta del matadero i a la ciudad j,
donde i = 1, 2 j = 1, 2, 3 = ̅̅̅̅̅
1, 3

Min C = x11 + 3x12 + x13 + 2x21 + x22 + x23


s.a. x11 + x12 + x13 < 26
x21 + x22 + x23 < 30
x11 + x21 < 20
x12 + x22 < 22
x13 + x23 < 14
n. n. x11 , x12 , x13 , x21 , x22 , x23 ≥ 0

Ejemplo 6: Problema de Case Chemicals. Dos solventes, CS-01 y CS-02, se producen en la planta
de Cleveland. El departamento de mezclado de la planta actualmente tiene cinco empleados de
tiempo completo, cada uno trabajando 40 horas a la semana y dos trabajadores de tiempo parcial,
cada uno trabajando 15 horas a la semana. Estos empleados manejan maquinas que mezclan
ciertos químicos para producir cada solvente. Los productos, una vez mezclados, se refinan en el
departamento de purificación, que actualmente emplea seis trabajadores de tiempo complete a
40 horas a la semana cada uno y un trabajador de tiempo parcial que labora 10 horas a la semana.
Las horas requeridas en los departamentos de mezclado y purificación para producir cada uno de
los productos se muestran en la tabla:

Requerimiento de mezclado y purificación (hr/1000gal)


CS-01 CS-02
Mezclado 2 1
Purificación 1 2
Case Chemicals tiene un suministro prácticamente ilimitado de las materias primas requeridas
para producir los dos solventes y puede vender cualquier cantidad de CS-01. La demanda para el
producto más especializado, CS-02 está limitada a un máximo de 120 mil galones a la semana. El
departamento de contabilidad estima una ganancia neta de $0.30 por galón de CS-01 y $0.50 por
galón de CS-02. Como todos los empleados son asalariados y por lo tanto se le paga la misma
cantidad sin importar cuantas horas trabajan, estos salarios y costos de las máquinas se
consideran fijos y no se incluyen en et calculo del margen de ganancias. El gerente de planeación
de producción desea determinar la producción óptima semanal.
Solución:
Sea X1 = El número de miles de galones de CS-01 por producir a la semana. CS-02.
X2 = El número de miles de galones de CS-02 por producir a la semana.
Max P = 3X1 + 5X2
s. a: 2X1 + 2X2 < 230 Mezclado
2X1 + X2 ≤ 250 purificación
X2 ≤ 120 límite sobre CS-02
n. n. X1 ≥ 0, X2 ≥ 0.

Ejemplo 7: El objetivo global de un inversionista es obtener el más alto rendimiento


posible. Pero un alto rendimiento tiene un precio: el riesgo. Un inversionista debe
equilibrar rendimiento frente al riesgo. A menudo puede formularse un modelo de
programación lineal para diseñar una estrategia de inversión que logre el rendimiento
máximo, al mismo tiempo que satisfaga ciertos requerimientos de riesgo. Considere el
problema enfrentado por los socios generales de Pensión Palmer. Al gerente de cartera se
le ha pedido invertir $1000,000 de un gran fondo de pensiones. El departamento de
investigación de Inversiones ha identificado seis fondos mutuos con estrategias de
inversión variables, resultando en diferentes rendimientos potenciales y riesgos asociados,
como se resume en la siguiente tabla.

1 2 3 4 5 6

Precio ($/acción) 45 76 110 17 23 22

Devolución esperada (%) 30 20 15 12 10 7

Categoría de riesgo Alto Alto Alto Mediano Mediano Bajo

Una forma de controlar el riesgo es limitar la cantidad de dinero invertido en los diversos
fondos. Para ese fin, la administración de Pensión Palmer ha especificado las siguientes
pautas:

1. La cantidad total invertida en fondos de alto riesgo debe estar entre 50 y 75% de la
cartera.
2. La cantidad total invertida en fondos de mediano riesgo debe estar entre 20 y 30% de
la cartera.
3. La cantidad total invertida en fondos de bajo riesgo debe ser al menos de 5% de la
cartera.

Una segunda forma de controlar el riesgo es diversificar, esto es, esparcir el riesgo
invirtiendo en muchas alternativas diferentes. La gerencia de Pensión Palmer, ha
especificado que la cantidad invertida en los fondos de alto riesgo 1, 2 y 3 deben estar en
la tasa 1:2:3, respectivamente. La cantidad invertida en los fondos de mediano riesgo 4 y 5
debe ser 1:2.

Con estas pautas, ¿qué cartera debería el gerente de cartera, recomendar para maximizar
la tasa esperada de retorno?

Solución:
Identificación de las variables de decisión

En este problema, se puede controlar cuánto invertir en cada uno de los seis fondos
mutuos, dando así origen a seis variables de decisión. Como siempre, se debe especificar
las unidades asociadas con cada variable. Por ejemplo, para el fondo 1, podría definir
cualquiera de las siguientes variables:

Sea F1 el número de acciones del fondo 1 por comprar. O bien F1 el número de dólares
por invertir en el fondo 1. O F1 la fracción de la agenda por invertir en el fondo 1.
Cada opción conduce a un modelo matemático diferente o equivalente. Aquí se utiliza la
última opción.
Para cada uno de los fondos restantes, defina:
F2 la fracción de la cartera por invertir en el fondo 2.
F3 la fracción de la cartera por invertir en el fondo 3.
F4 la fracción de la cartera por invertir en el fondo 4.
F5 la fracción de la cartera por invertir en el fondo 5.
F6 la fracción de la cartera por invertir en el fondo 6.

Identificación de la función objetivo

El objetivo global es maximizar la tasa esperada de rendimiento, esto es,

𝑟𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 𝑡𝑜𝑡𝑎𝑙 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜


𝑇𝑎𝑠𝑎 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑎 𝑑𝑒 𝑟𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 =
𝑐𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑖𝑛𝑣𝑒𝑟𝑡𝑖𝑑𝑎

Si aplicamos la descomposición al numerador obtenemos:


𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜
Rendimiento total esperado = [ ]+ [ ]+
𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑑𝑒𝑙 𝑓𝑜𝑛𝑑𝑜 1 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑑𝑒𝑙 𝑓𝑜𝑛𝑑𝑜 2
𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜
+[ ]+ [ ]+ [ ]+
𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑑𝑒𝑙 𝑓𝑜𝑛𝑑𝑜 3 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑑𝑒𝑙 𝑓𝑜𝑛𝑑𝑜 4 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑑𝑒𝑙 𝑓𝑜𝑛𝑑𝑜 5
𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜
+[ ]
𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑑𝑒𝑙 𝑓𝑜𝑛𝑑𝑜 6

Para determinar el rendimiento esperado del fondo 1, trabaja con un ejemplo específico
en el que 10% de la cartera se invierte en el fondo 1, es decir, F1 = 0.10. En este caso, 0.10
* 1,000,000 = $100,000 de la cartera se invierte en el fondo 1. De acuerdo con los datos de
la tabla, se espera que este dinero devuelva 30% o 0.30 *100,000 = $30,000 Por tanto, en
términos de F1,

𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 cantidad invertida tasa de rendimiento


[ ]=( )∗ ( )
𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑑𝑒𝑙 𝑓𝑜𝑛𝑑𝑜 1 en el fondo 1 del fondo 1

= F1 ∗ 1,000,000) ∗ 0.30 = 300,000 F1

Usando una lógica similar para los cinco fondos restantes, llegamos a:

Rendimiento total esperado 300,000F1 + 200,000F2 + 150,000F3 + 120,000F4 +


100,000F5 + 70,000F6

Dividiendo esto entre la inversión total de $1,000,000 obtenemos la tasa de rendimiento y


por tanto la siguiente función objetivo:

Max: 0.30F1 + 0.20F2 + 0.15F3 + 0.12F4 + 0.l0F5 + 0.07 F6

Identificación de las restricciones

Aplicando la técnica de agrupamiento debe llegar a identificar los siguientes tres grupos
de restricciones:

 Limitaciones de inversión para controlar la cantidad invertida en cada una de las


tres categorías de riesgo.
 Restricciones de diversificación para extender la inversión dentro de cada
categoría de riesgo.
 Restricciones lógicas

Restricciones de limitación de inversión

Este grupo consiste en tres subgrupos de restricciones, uno para cada categoría de riesgo,
a saber:
1. La cantidad total invertida en fondos de alto riesgo debe estar entre 50 y 75% de la
cartera. Como F1, F2 y F3 representan la fracción de la cartera por invertir en fondos de
alto riesgo, la fracción de la cartera total invertida en fondos de alto riesgo es F1 + F2 + F3.

Estas restricciones son:

F1 + F2 + F3 ≥ 0.50 (mínimo en alto riesgo)

F1 + F2 + F3 ≤ 0.75 (máximo en alto riesgo)

2. La cantidad total invertida en fondos de mediano riesgo debe estar entre 20 y 30 % de


la cartera. Como F4 y F5 representan la fracción de cartera por invertir en fondos de
mediano riesgo, la fracción de la cartera total invertida en fondos de mediano riesgo es F4
+ F5. Estas restricciones son:

F4 + F5 ≥ 0.20 (mínimo en mediano riesgo)

F4 + F5 ≤ 0.30 (máximo en mediano riesgo)

3. La cantidad total invertida en fondos de bajo riesgo debe ser al menos 5 % de la cartera.
Como F6 es la fracción de la cartera invertida en fondos de bajo riesgo, esta restricción es:

F6 ≥ 0.05 (mínimo en bajo riesgo)

Restricciones de Diversificación

Este grupo de restricciones se utiliza para controlar el riesgo asegurando que la cantidad
invertida en los fondos pertenecientes a una categoría de riesgo dada esté dentro de la
tasa especificada, de la manera siguiente:

1. La cantidad invertida en los fondos de alto riesgo 1, 2 y 3 deben estar en la tasa 1:2:3.
Esta restricción específica que la cantidad invertida en el fondo 2 sea el doble de la
cantidad invertida en el fondo 1:

F2 = 2F1 ↔ – 2F1 + F2 = 0 (Proporción de F1 a F2)

De manera similar, la cantidad invertida en el fondo 3 debe ser tres veces la invertida
en el fondo 1:

F3 = 3F1 ↔ – 3F1 + F3 = 0 (Proporción de F1 a F3)

2. La cantidad invertida en los fondos 4 y 5 de mediano riesgo debe estar en la proporción


1:2, esto es, la cantidad invertida en el fondo 5 debe ser el doble de la del fondo 4:
F5 = 2F4 ↔ – 2F4 + F5 = 0 (Proporción de F4 a F5)

Restricciones Lógicas

Es claro que un conjunto de restricciones lógicas es que cada variable sea no negativa.
Asimismo, como es posible comparar acciones fraccionales de un fondo mutuo. Como las
variables de decisión representan la fracción de esta cartera por invertir en los diversos
fondos, esta restricción es:

La fracción total de $1,000,000 invertida debe ser igual a 1.

F1 + F2 + F3 + F4 + F5 + F6 = 1.0 (agenda total)

Formulación completa
Max: 0.30F1 + 0.20F2 + 0.15F3 + 0.12F4 + 0.l0F5 + 0.07 F6

s.a. F1 + F2 + F3 ≥ 0.50 (mínimo en alto riesgo)

F1 + F2 + F3 ≤ 0.75 (máximo en alto riesgo)

F4 + F5 ≥ 0.20 (mínimo en mediano riesgo)

F4 + F5 ≤ 0.30 (máximo en mediano riesgo)

F6 ≥ 0.05 (mínimo en bajo riesgo)

– 2F1 + F2 = 0 (Proporción de F1 a F2)

– 3F1 + F3 = 0 (Proporción de F1 a F3)

– 2F4 + F5 = 0 (Proporción de F4 a F5)

F1 + F2 + F3 + F4 + F5 + F6 = 1.0 (agenda total)

F1 + F2, F3, F4, F5, F6 ≥ 0

IV) MÉTODO GRÁFICO PARA PROBLEMAS DE PL.

4.1. Gráfico de las ecuaciones linéales.


𝑐 𝑐
 La recta ax + by = c, con a, b, c ≠ 0, Pasa por los puntos (𝑎 , 0) 𝑦 (0, 𝑏).
 La recta x = a es una recta perpendicular al eje x y lo corta en “a”
 La recta y = b es una recta perpendicular al eje y lo corta en “b”
𝑎
 La recta ax + by = 0, con a, b ≠ 0 para los puntos (0, 0) y (1, – 𝑏 ), o bien por (0, 0) y
𝑏
(− 𝑎 , 1).

4.2. Región de las desigualdades.

 El gráfico de la desigualdad ax + by ≤ c, se construye escogiendo como región de la


desigualdad la mitad del plano que se extiende de la recta en el sentido contrario con
el del valor normal de 𝑟⃗ = ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗
(𝑎, 𝑏).
 El gráfico de la desigualdad ax + by > c, se construye escogiendo como región de la
desigualdad la mitad del plano que se extiende de la recta en el sentido coincidente
con el del valor normal de 𝑟⃗ = ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗
(𝑎, 𝑏).

4.3. Procedimiento de solución método gráfico.


⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗
1. Se grafica el vector de costos 𝐶⃗ = (𝑐 1 , 𝑐2 ).
2. Se trazan rectas perpendiculares al vector de costos que corten a la región factible, y
se desplazan en el sentido del vector 𝐶⃗, si el problema es de maximizar, o en el sentido
contrario al del vector 𝐶⃗, si el problema es de minimizar. El último de los puntos de la
región factible cortada por las rectas que se desplazan es el punto de óptimo.
A veces es necesario resolver un Sistema de ecuaciones para obtener el punto óptimo.

OTRA FORMA:

4.1. Gráfico de las ecuaciones linéales.


El grafico de las ecuaciones lineales se puede realizar mediante una tabulación,
encontrando los valores de “y” para dos valores de “x” arbitrarios.

4.2. Región de las desigualdades.


La región de las desigualdades se puede obtener sustituyendo las variables por un punto
que no se encuentre en la ecuación de la restricción, si el resultado es verdadero la región
es la mitad del plano donde se encuentra el punto escogido, en caso contrario es la otra
mitad del plano.

4.3. Procedimiento de solución método gráfico.


La solución del PPL en el caso de maximizar es el mayor valor obtenido al sustituir los
vértices de la región factible de solución, para minimizar es el menor valor.

Ejemplo 1:

Max b = 2000 x + 1500 y


s. a. x + 2 y < 80
3 x + 2 y < 120
n. n. x, y > 0

Solución:
Ejemplo 2:

Min C = 3A + 2B

s. a. 0,30A + 0,60B ≥ 45 (condición de algodón)

0,50A + 0,10B ≥ 25 (condición de seda)

n. n. A, B ≥ 0

Solución:
Ejemplo 3:

Max F = 100X + 200Y

s. a. – x + y < 30
x – 4 y < 40
n. n. x, y > 0

Solución:

Ejemplo 4:

Max F = – 3X + Y

s. a. – x + y < 30
x – 4 y < 40
n. n. x, y > 0

Solución:
Ejemplo 5:

Min S = 70X + 100Y

s. a. x + y < 100
2x + 3 y > 600
X < 40
n. n. x, y > 0

Solución:

Región Acotada: una solución o infinitas soluciones.

Región No Acotada: no hay solución o una solución o infinitas soluciones.

No existe Región: no hay solución.


V) EL MÉTODO SIMPLEX: (PARA PPL MAXIMIZAR)

5.1. Transformar PPL en forma estándar.


1) Todas las variables de decisión mayor o igual que cero, x > 0.
2) Todo el lado derecho mayor o igual que cero, b > 0.
3) A cada restricción con ≤ se le suma en su lado izquierdo una variable llamada variable
de holgura, hi > 0, y se cambia el ≤ por =.
4) A cada restricción con ≥ se le resta en su lado izquierdo una variable llamada de
variable de holgura, hi > 0, y se cambia el ≥ por =.

5) 𝑀𝑎𝑥 𝑓 = 𝑐1𝑥1 + 𝑐2 𝑥2 + . . . + 𝑐𝑛 𝑥𝑛 + 0ℎ1 + 0ℎ2 + 0ℎ3 + . . . + 0ℎ𝑛

𝑠. 𝑎. 𝑎11 𝑥1 + 𝑎12 𝑥2 + . . . + 𝑎1𝑛 𝑥𝑛 + 1ℎ1 + 0ℎ2 + 0ℎ3 +. . . + 0ℎ𝑛 = 𝑏1


𝑎21 𝑥1 + 𝑎22 𝑥2 + . . . + 𝑎2𝑛 𝑥𝑛 + 0ℎ1 + 1ℎ2 + 0ℎ3 +. . . + 0ℎ𝑛 = 𝑏2
𝑎31 𝑥1 + 𝑎32 𝑥2 + . . . + 𝑎3𝑛 𝑥𝑛 + 0ℎ1 + 0ℎ2 + 1ℎ3 + . . . + 0ℎ𝑛 = 𝑏3
… … … … … … … … … … . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . … … … . ..

𝑎𝑚1 𝑥1 + 𝑎𝑚2 𝑥2 + . . . + 𝑎𝑚𝑛 𝑥𝑛 + 0ℎ1 + 0ℎ2 + 0ℎ3 + . . . + 1ℎ𝑛 = 𝑏𝑛

𝑛 . 𝑛. 𝑥1 , 𝑥2 , . . . . , 𝑥𝑛 , ℎ1 , ℎ2 , ℎ3 . .. ℎ𝑛 ≥ 0

5.2. La tabla simplex inicial


1) Se revisa cada restricción en busca de una variable que tenga +1 de coeficiente y
cero en las otras restricciones. Si tal variable existe se le llamará variable básica. Si
en una restricción no se encuentra una variable con estas características se le suma
en su lado izquierdo una variable llamada artificial, Aj > 0 y también variable básica.
2) Para cada variable artificial Aj agregada en alguna restricción se suma a la función
objetivo el termino M Aj en caso de minimizar o – M Aj en el caso de maximizar,
donde M se considera tan grande como sea conveniente.

Construya la tabla inicial

Cj Max: Z = C1 C2 C3 .. Cn 0 0 0 ..
Fila Coef Base X1 X2 X3 .. Xn S1 S2 S3 .. R.H.S Cocient
e
𝑏1⁄
R1 0 S1 a11 a12 a13 .. a1n 1 0 0 .. b1 𝑎1𝑘
𝑏2⁄
R2 0 S2 a21 a22 a33 .. a2n 0 1 0 .. b2 𝑎2𝑘
𝑏3⁄
R3 0 S3 a31 a32 a33 .. a3n 0 0 1 .. b3 𝑎3𝑘
… … ….. …. … … … … … … … … …… ….
𝑏𝑚⁄
Rm 0 An am1 am2 am3 amn 0 0 0 … bm 𝑎𝑚𝑘
Zj 0 0 0 … 0 0 0 0 … Z*= 0
Cj – Zj C – Z1
5.3. El algoritmo simplex
Después de haber transformado el problema inicial a la forma conveniente descrita y
construido la tabla simplex inicial.
5.3.1) Escoja el máximo de Cj – Zj, la variable que corresponda a ese máximo llámela
variable que entra a la base.
5.3.2) Si el máximo elegido en el paso anterior es menor o igual que cero, Cj – Zj < 0, fin y
diga:
a. Que el problema original tiene óptimo finito (Solución) en el punto que se obtiene
asignándole a las variables básicas el valor correspondiente del lado derecho, y
cero a las restantes; todo esto si todas las variables artificiales tienen valor cero.
b. Que el problema original es no factible (No hay solución), si existen variables
artificiales básicas con valor mayor que cero.
5.3.3) Si los elementos en el cuerpo principal debajo de la variable de entrada son todos
menores o iguales que cero, a i j < 0, termine el procedimiento diciendo que:
a. El problema original es no factible, si hay variables básicas artificiales con valores
mayores que cero.
b. El problema original es no acotado, si todas las variables artificiales toman valor
cero.

En caso contrario continúe.

5.3.4) Calcule la menor de las razones de los elementos del lado derecho entre los
correspondientes elementos positivos de la columna debajo de la variable que entra,
𝑏
𝑚𝑖𝑛 {𝑎 𝑖 /𝑎𝑖 𝑗 > 0} al elemento de la columna debajo de la variable que entra donde
𝑖𝑗
ocurre el mínimo llámelo pivote, y a la variable básica que corresponde a esa fila
llámela variable que sale de la base.
5.3.5) Realice operaciones entre renglones con el renglón pivote, el cuerpo principal y el
lado derecho de tal manera que la columna de pivote se transforme en una columna
de ceros y un único 1 en la posición del pivote.
5.3.6) Cambie en la lista de variables básicas la variable que sale de la base por la variable
que entra a la base, así como su coeficiente correspondiente en C.
5.3.7) Encuentre el nuevo valor de Zj, ∑𝑚 𝑘=1 𝑍𝑘 ∗ 𝐶𝑜𝑒𝑓𝑘 para cada columna k.
5.3.8) Calcule el valor de la función objetivo 𝑍 ∗ = ∑𝑚𝑘=1 𝑏𝑘 ∗ 𝐶𝑜𝑒𝑓𝑘
5.3.9) Regrese al 5.3.1).

PARA PROBLEMAS DE MINIMIZACIÓN SE CAMBIA

5.3.1) Escoja el mínimo de Cj – Zj y la variable que corresponda a ese mínimo llámela


variable que entra a la base.
5.3.2) Si el mínimo elegido en el paso anterior es menor o igual que cero, Cj – Zj > 0, fin y
diga: ….
5.3.3) Si los elementos en el cuerpo principal debajo de la variable de entrada son todos
menores o iguales que cero, a i j < 0, termine el procedimiento diciendo que: ….
𝑀𝑖𝑛 𝑓 = 𝑐1𝑥1 + 𝑐2 𝑥2 + . . + 𝑐𝑛 𝑥𝑛 + 0ℎ1 + 0ℎ2 + 0ℎ3 + . . + 0ℎ𝑛 − 𝑀𝐴1 − 𝑀𝐴2

𝑠. 𝑎. 𝑎11 𝑥1 + 𝑎12 𝑥2 + . + 𝑎1𝑛 𝑥𝑛 − 1ℎ1 + 0ℎ2 + 0ℎ3 +. . + 0ℎ𝑛 + 1𝐴1 + 0𝐴2 = 𝑏1


𝑎21 𝑥1 + 𝑎22 𝑥2 + . + 𝑎2𝑛 𝑥𝑛 + 0ℎ1 − 1ℎ2 + 0ℎ3 +. . + 0ℎ𝑛 + 0𝐴1 + 1𝐴2 = 𝑏2
𝑎31 𝑥1 + 𝑎32 𝑥2 + . + 𝑎3𝑛 𝑥𝑛 + 0ℎ1 + 0ℎ2 + 1ℎ3 +. . + 0ℎ𝑛 + 0𝐴1 + 0𝐴2 = 𝑏3

… … … … … … … … … … . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . … … … . ..

𝑎𝑚1 𝑥1 + 𝑎𝑚2 𝑥2 +. + 𝑎𝑚𝑛 𝑥𝑛 + 0ℎ1 + 0ℎ2 + 0ℎ3 +. . + 1ℎ𝑛 + 0𝐴1 + 0𝐴2 = 𝑏𝑛


𝑛 . 𝑛. 𝑥1 , 𝑥2 , . .. , 𝑥𝑛 , ℎ1 , ℎ2 , ℎ3 . .. ℎ𝑛 , 𝐴1 , +𝐴2 ≥ 0

Ejemplo 1:

Max b = 2000 X1 + 1500 X2


s. a. X1 + 2 X2 < 80
3 X1 + 2 X2 < 120
n. n. X1, X2 > 0

Solución:
Forma estándar

Max Z = 2000X1 + 1500X2 + 0S1 + 0S2


Sujeto a:
1X1 + 2X2 + 1S1 + 0S2 = 80
3X1 + 2X2 + 0S1 + 1S2 = 120
n. n. Xi >= 0

Tabla inicial del simplex

Ci Max: Z = 2000 1500 0 0


Fila Coef Base X1 X2 S1 S2 R.H.S Cociente
R1 0 S1 1 2 1 0 80 80
R2 0 S2 3 2 0 1 120 40
Zi 0 0 0 0 0
Ci – Zi 2000 1500 0 0

𝑚𝑎𝑥{𝐶𝑗 − 𝑍𝑗 } = 𝑚𝑎𝑥 {2000, 1500, 0, 0} = 2000

Variable que entra: X1


𝑏𝑘 80 120
𝑚𝑖𝑛 { } = 𝑚𝑖𝑛 { , } = 𝑚𝑖𝑛{80, 40} = 40
𝑎1 𝑘 1 3
Variable que sale: S2
Fila Pivote R2 3.0 2.0 0.0 1.0 120
Fila Pivote convertida 𝐑𝟐 1.0 0.67 0.0 0.33 40
𝐑𝟐 =
𝟑
Restricción 1 R1 1.0 2.0 1.0 0.0 80
Fila pivote * -1.0 -R2 -1.0 -0.67 0.0 -0.33 - 40
Nueva restricción 1 R1 0.0 1.33 1.0 -0.33 40

Ci Max Z = 2000 1500 0 0


Coef Base X1 X2 S1 S2 R.H.S Theta
0 S1 0 1.33 1 -0.33 40 30
2000 X1 1 0.67 0 0.33 40 60
Z 2000 1333.33 0 666.67 80000
Ci – Zi 0 166.67 0 -666.67

𝑚𝑎𝑥 {0, 166.67, 0, −666.67} = 166.67


Variable que entra: X2
40 40
𝑚𝑖𝑛 { , } = 𝑚𝑖𝑛{30, 60} = 30
1.33 0.67
Variable que sale: S1

Fila Pivote R1 0.0 1.3 1.0 -0.33 40


Fila Pivote convertida 𝐑𝟏 0.0 1.0 0.75 -0.25 30
𝐑𝟏 =
𝟏. 𝟑𝟑
Restricción 2 R2 1.0 0.67 0.0 0.33 40
Fila pivote * -0.67 -0.67*R1 0.0 -0.67 -0.50 0.17 -20
Nueva restricción 2 R2 1.0 0.0 -0.50 0.50 20

Max Z = 2000 1500 0 0


Coef Base X1 X2 S1 S2 R.H.S Theta
1500 X2 0 1 0.75 -0.25 30 30
2000 X1 1 0 -0.5 0.5 20 60
Z 2000 1500 125 625 85000
Ci-Zi 0 0 -125 -625

𝑚𝑎𝑥 {0, 0, −125, −625} ≤ 0, FIN

RESPUESTA X1 = 20
X2 = 30
S1 = 0
S2 = 0
Z = 85000
Ejemplo 2:

Min Z = 100X1+80X2+120X3
Sujeto a:
2X1 + X2 + 3X3 > 300
2X1 + 4X2 + X3 > 400
4X1 + 3X2 + 2X3 < 1200
Xi > 0, i = 1, 2, 3

Solución:
Forma estándar

Min Z = 100X1 + 80X2 + 120X3 + 0S1 + 0S2 + 0S3


Sujeto a:
2X1 + 1X2 + 3X3 - 1S1 + 0S2 + 0S3 = 300
2X1 + 4X2 + 1X3 + 0S1 - - 1S2 + 0S3 = 400
4X1 + 3X2 + 2X3 + 0S1 + 0S2 + 1S3 = 1200
Xi > 0, i = 1, 2, 3

Tabla inicial del simplex


Como solo aparece +1 y cero en el resto de la columna para S3, se agregan A1 y A2 variables
artificiales y básicas en las restricciones 1 y 2 respectivamente, además en la función
objetivo se agrega MA1, MA1, obteniendo así:

Min Z = 100X1 + 80X2 + 120X3 + 0S1 + 0S2 + 0S3 + 1MA1 + 1MA2


Sujeto a:
2X1 + 1X2 + 3X3 - 1 S1 + 0 S2 + 0 S3 + 1 A1 + 0 A2 = 300
2X1 + 4X2 + 1X3 + 0 S1 - 1 S2 + 0 S3 + 0 A1 + 1 A2 = 400
4X1 + 3X2 + 2X3 + 0 S1 + 0 S2 + 1 S3 + 0 A1 + 0 A2 = 1200
X1, X2, X3, S1, S2, S3, A1, A2 > 0

C Min Z = 100 80 120 0 0 0 M M


Coef Base X1 X2 X3 S1 S2 S3 A1 A2 R.H.S Theta
1M A1 2 1 3 -1 0 0 1 0 300 300
1M A2 2 4 1 0 -1 0 0 1 400 100
0 S3 4 3 2 0 0 1 0 0 1200 400
Z 4M 5M 4M -1M -1M 0 M M 700M
Ci-Zi -4M + 100 -5M + 80 -4M + 120 M M 0 0 0

𝑚𝑖𝑛{𝐶𝑗 − 𝑍𝑗 } = 𝑚𝑖𝑛{−4𝑀 + 100, −5𝑀 + 80, −4𝑀 + 120, 𝑀, 𝑀, 0, 0, 0} = −5𝑀 + 80

Variable que entra: X2


𝑏𝑘 300 400 1200
𝑚𝑖𝑛 { } = 𝑚𝑖𝑛 { , , } = 𝑚𝑖𝑛{300, 100, 400} = 100
𝑎1 𝑘 1 4 3

Variable que sale: A2

Fila Pivote 2.0 4.0 1.0 0.0 -1.0 0.0 0.0 1.0 400

Fila Pivote convertida 0.50 1.0 0.25 0.0 -0.25 0.0 0.0 0.25 100

R1 2.0 1.0 3.0 -1.0 0.0 0.0 1.0 0.0 300

Fila pivote * -1.0 -0.50 -1.0 -0.25 0.0 0.25 0.0 0.0 -0.25 -100

Nueva Restricción 1 1.5 0.0 2.8 -1.0 0.25 0.0 1.0 -0.25 200

Restricción 3 4.0 3.0 2.0 0.0 0.0 1.0 0.0 0.0 1200

Fila pivote * -3.0 -1.5 -3.0 -0.75 0.0 0.75 0.0 0.0 -0.75 -300

Nueva Restricción 3 2.5 0.0 1.3 0.0 0.75 1.0 0.0 -0.75 900

C Min Z = 100 80 120 0 0 0 M M


Coef Base X1 X2 X3 S1 S2 S 3 A1 A2 R.H.S Theta
1M A1 1.5 0 2.75 -1 0.25 0 1 -0.25 200 72.73
80 X2 0.5 1 0.25 0 -0.25 0 0 0.25 100 400
0 S3 2.5 0 1.25 0 0.75 1 0 -0.75 900 720
Z 1.5M + 40 80 2.75M + 20 -1M 0.25M-20 0 M -0.25M + 20 200M + 8000
Ci - Zi -1.5M + 60 0 -2.75M + 100 M -0.25M + 20 0 0 1.25M-20

𝑚𝑖𝑛{−1.5𝑀 + 60, 0, −2.75𝑀 + 100, 𝑀 − 0.25𝑀 + 20, 0, 0, 1.25𝑀 − 20} = −2.75𝑀 + 100

Variable que entra: X3

200 100 900


𝑚𝑖𝑛 { , , } = 𝑚𝑖𝑛{72.73, 400,720} = 72.73
2.75 0.25 1.25

Variable que sale: A1

Fila Pivote 1.5 0.0 2.8 -1.0 0.25 0.0 1.0 -0.25 200

Fila Pivote convertida 0.55 0.0 1.0 -0.36 0.091 0.0 0.36 -0.091 73

Restricción 2 0.50 1.0 0.25 0.0 -0.25 0.0 0.0 0.25 100

Fila pivote * -0.25 -0.14 0.0 -0.25 0.091 -0.023 0.0 -0.091 0.023 -18
Nueva restricción 2 0.36 1.0 0.0 0.091 -0.27 0.0 -0.091 0.27 82

Restricción 3 2.5 0.0 1.3 0.0 0.75 1.0 0.0 -0.75 900

Fila pivote * -1.3 -0.68 0.0 -1.3 0.45 -0.11 0.0 -0.45 0.11 -91

Nueva restricción 3 1.8 0.0 0.0 0.45 0.64 1.0 -0.45 -0.64 810

C Min Z = 100 80 120 0 0 0 M M


Coef Base X1 X2 X3 S1 S2 S3 A1 A2 R.H.S Theta
120 X3 0.55 0 1 -0.36 0.09 0 0.36 -0.09 72.73 72.73
80 X2 0.36 1 0 0.09 -0.27 0 -0.09 0.27 81.82 400
0 S3 1.82 0 0 0.45 0.64 1 -0.45 -0.64 809.09 720
Z 94.55 80 120 -36.36 -10.91 0 36.36 10.91 15272.73
Ci-Zi 5.45 0 0 36.36 10.91 0 M-36.36 M-10.91

𝑚𝑖𝑛{5.45, 0, 0, 36.36, 10.91, 0, 𝑀 − 36.36, 𝑀 − 10.91} = 0 ≥ 0, FIN

Respuesta:

X1 = 0
X2 = 81.82
X3 = 72.73
S1 = 0
S2 = 0
S3 = 809.09
A1 = 0
A2 = 0
Z = 15272.73

VI) PROGRAMAS DE COMPUTACION PARA RESOLVER PPL

Existe una variedad de documentación relativa a los programas de computación que se


utilizan resolver problemas de programación Lineal, adicionalmente, se pueden bajar con
fines académicos, con miras a resolver los problemas propuestos del curso y no deben ser
utilizados con fines comerciales ya que los mismos están protegidos por las leyes de
derechos de autor.

6.1. PROGRAMA SOLVER DE EXCEL (MICROSOFT)


Para conocer la aplicación del método SOLVER de EXCEL (Microsoft), se utilizará un
ejemplo práctico:

Max Z = 10 X1 + 8 X2
Sujeto a:
30X1 + 20X2 <= 120
2X1 + 2X2 <= 9
4X1 + 6X2 <= 24

X1, X2 >= 0

La única dificultad que tenemos es el de modelar el programa dentro del Excel, y eso, es
muy fácil. Por supuesto, hay infinidad de maneras de hacerlo, aquí propongo una.

Se activa Excel y en una hoja...

6.2. PROGRAMAS DE COMPUTACIÓN

Adicional al programa SOLVER, incluido en EXCEL-2000 de MIcrosoft (cuya explicación


didáctica del funcionamiento del programa Solver (445 kb), se incluye en este documento
que puede ser bajado por Usted), se incorporan otros programas que operan bajo
sistema WIndows 98/ME/2000/XP, debiendo disponer de una computadora actualizada
con procesador Pentium II y superiores, memoria mínima de 256 kb y capacidad de disco
de 50 MB y los cuales pueden ser bajados a continuación:.

A.1) El programa WinQSB (3.9 Mb), cuya propiedad intelectual es del Dr. Yih-Long Chang y
es aplicable a todos los problemas de Investigación de Operaciones. Para conocer sus usos
y aplicaciones, se incorpora el MANUAL DE USO del WINQSB.

A.2) El programa PrgLin, cuya propiedad es de la Universidad de Lisboa (Portugal), el cual


se aplica para soluciones gráficas de problemas de dos dimensiones.

A.3) El programa InvOp (361 kb), desarrollado por la Universidad del Cuyo en Argentina, se
aplica para la solución de problemas relacionados con transporte y redes.

A.3) El programa Lingo, propiedad de Lindo Systems Inc (USA), que dado su gran tamaño
(18.9 Mb), se recomienda que Usted lo recupere directamente de la pagina Web del
propietario de dicha tecnologia http:// www.lindo.com

Posteriormente se irán incorporando otros programas de computación específicos para


cada caso y cuyo uso será descrito mediante ejemplos en la Clase. http://
www.zweigmedia.com/utilities/lpg/index.html para método gráfico. ingeniería-
industrial.net/software/jsimplex para el método simplex

PROGRAMA WINQSB

Es una aplicación versátil que permite la solución de una gran cantidad de problemas:
administrativos, de producción, de recurso humano, dirección de proyectos, etc... El
acceso se puede hacer a través del botón INICIO del sistema Operativo WINDOWS, en el
menú PROGRAMAS en la carpeta WINQSB.
WINQSB es una herramienta poderosa para el manejo de métodos cuantitativos, el cual
está conformado por 19 módulos:

1. Análisis de muestreo de aceptación (Acceptance Sampling Analysis)


2. Planeación agregada (Aggregate Planning)
3. Análisis de decisiones (Decision Analysis)
4. Programación dinámica (Dynamic Programming)
5. Diseño y localización de plantas (Facility Location and Layout)
6. Pronósticos (Forecasting)
7. Programación por objetivos (Goal Programming)
8. Teoría y sistemas de inventarios (Inventory Theory and System)
9. Programación de jornadas de trabajo (Job Scheduling)
10. Programación lineal y entera (Linear and integer programming).
11. Procesos de Harkov
12. Planeación de Requerimiento de Materiales
13. Modelación de redes (Network Modeling)
14. Programación no lineal (Nonlinear Programming)
15. PERT y CPM (PERT_CPM)
16. Programación cuadrática (Quadratic Programming)
17. Cartas de control de calidad (Quality Control Chart)
18. Sistemas de cola (Queuing Analysis)
19. Simulación de sistemas de cola (Queuing Analysis Simulation).

Una vez seleccionado el módulo con el cual se desee trabajar, aparecerá una
Ventana cuyas características iniciales serán similares para todos los módulos del
WINQSB.

VII) PROGRAMACION LINEAL ENTERA

DEFINICIONES BASICAS

En algunos Problemas de Programación Lineal todas o algunas variables están restringidas


a tener valores enteros. Tales modelos se denominan Problemas de Programación lineal
Entera (PPLE). El requerimiento entero sobre las variables a menudo significa que aún que
la función objetivo y las restricciones sean lineales, el problema no puede ser resuelto por
un algoritmo de programación lineal. La razón es que no existe garantía de que los valores
de las variables de solución óptima así obtenida sean enteros. Redondear los valores en la
solución de Programación Lineal óptima da como resultado una solución entera óptima en
algunos casos o dar como resultado una solución factible con un valor de función objetivo
significativamente peor que la solución óptima. Peor aún una solución infactible. Para
evitar esto se han desarrollado algoritmos especializados.

Por lo general, las aplicaciones de programación lineal entera (PLE) caen dentro de dos
categorías: directa y transformada. En la categoría directa, la naturaleza de la situación
impide la asignación de valores fraccionarios a las variables del modelo. Por ejemplo, el
problema puede implicar la determinación de si se emprende o no un proyecto (variable
binaria), o la determinación del número óptimo de máquinas necesarias para realizar una
tarea (variable general entera). En la categoría transformada se utilizan variables enteras
auxiliares para convertir analíticamente situaciones insolubles en modelos que pueden
resolverse por medio de algoritmos de optimización disponibles. Por ejemplo, en la
secuencia de dos trabajos, A y B, en una sola máquina, el trabajo A puede preceder al
trabajo B o viceversa. La naturaleza “o” de las restricciones es lo que hace al problema
analíticamente insoluble, porque todos los algoritmos de programación matemáticos
tratan con sólo restricciones “y”. Aquí se muestra cómo se utilizan las variables binarias
auxiliares para transformar las restricciones “o” en “y”, sin modificar la naturaleza del
modelo.

PLANTEAMIENTO DE PROBLEMAS DE PROGRAMACION LINEAL ENTERA

La toma de decisiones de emprender o no un proyecto suele hacerse conforme a


consideraciones y prioridades preestablecidas de presupuesto limitado. El siguiente
ejemplo presenta una de estas situaciones.

1) Problema de Presupuesto del capital

Se están evaluando cinco proyectos a lo largo de un horizonte de planeación de 3 años. La


siguiente tabla presenta los rendimientos esperados y los gastos anuales que conllevan.

Gastos ($ millones)/año

Proyecto 1 2 3 Rendimientos ($ millones)


1 5 1 8 20
2 4 7 10 40
3 3 9 2 20
4 7 4 1 15
5 8 6 10 30
Fondos disponibles ($ millones 25 25 25
¿Cuáles proyectos deben seleccionarse a lo largo del periodo de 3 años?
El problema se reduce a una decisión “sí-no” para cada proyecto. Defina la variable binaria
xj como
1, si se selecciona el proecto j
xi = {
0, si no se selecciona el proyecto j

Solución:

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 20𝑥1 + 40𝑥2 + 20𝑥3 + 15𝑥4 + 30𝑥5

s. a. 8𝑥1 + 10𝑥2 + 2𝑥3 + 𝑥4 + 10𝑥5 ≤ 25

𝑥1 + 7𝑥2 + 9𝑥3 + 4𝑥4 + 6𝑥5 ≤ 25

5𝑥1 + 4𝑥2 + 3𝑥3 + 7𝑥4 + 8𝑥5 ≤ 25

𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 = (0, 1)

La solución óptima entera: 𝑥1 = 𝑥2 = 𝑥3 = 𝑥4 = 1, 𝑥5 = 0 𝑐𝑜𝑛 𝑧 = $95 𝑚𝑖𝑙𝑙𝑜𝑛𝑒𝑠


La solución excluye el proyecto 5 de la combinación de proyectos.

2) Problema del cargo fijo

El problema de cargo fijo tiene que ver con situaciones en que la actividad económica
incurre en dos tipos de costos: un costo fijo necesario para iniciar la actividad y un costo
variable proporcional al nivel de la actividad. Por ejemplo, el herramental inicial de una
máquina antes de iniciar la producción incurre en un costo de preparación fijo
independientemente de cuántas unidades se fabriquen. Una vez completa la preparación
de la máquina, el costo de la mano de obra y del material es proporcional a la cantidad
producida. Dado que F es el cargo fijo, c es el costo unitario variable, y x es el nivel de
producción, la función de costo se expresa como:

F + cx, si x ≥ 0
𝐶(x) = {
0, en caso contrario

La función C(x) es analíticamente insoluble porque implica una discontinuidad en x = 0.

El siguiente ejemplo demuestra cómo se utilizan las variables binarias para volver el
modelo analíticamente soluble.

3) Selección de una compañía telefónica

Tres compañías telefónicas me ofrecen suscribirme a su servicio de larga distancia en


Estados Unidos. MaBell cobra una cuota fija de $16 por mes más $0.25 por minuto. PaBell
cobra $25 por mes pero reduce el costo por minuto a $0.21. En cuanto a BabyBell, la cuota
fija mensual es de $18, y el costo por minuto es de $0.22. Usualmente ocupo un promedio
de 200 minutos de llamadas de larga distancia al mes. Suponiendo que no tenga que pagar
la cuota fija mensual a menos que realice llamadas y que pueda repartirlas entre las tres
compañías como me plazca, ¿cómo debería utilizar las tres compañías para minimizar mi
recibo telefónico mensual?

Solución:
x1 = Minutos de larga distancia de MaBell por mes
x2 = Minutos de larga distancia de PaBell por mes
x3 = Minutos de largo distancia de BabyBell por mes
y1 = 1 si x1 > 0 y 0 si x1 = 0
y2 = 1 si x2 > 0 y 0 si x2 = 0
y3 = 1 si x3 > 0 y 0 si x3 = 0
Podemos asegurar que yj es igual a 1 cuando xj es positiva por medio de la restricción
xj < M yj, j =1, 2, 3
El valor de M debe seleccionarse lo bastante grande como para no restringir
artificialmente la variable xj . Como ocupo aproximadamente 200 minutos de llamadas al
mes, entonces xj = 200 para todas las j, es seguro seleccionar M = 200.
El modelo completo es

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 0.25𝑥1 + 0.21𝑥2 + 0.22𝑥3 + 16𝑦1 + 25𝑦2 + 18𝑦3


𝑠, 𝑎, 𝑥1 + 𝑥2 + 𝑥3 = 200
𝑥1 ≤ 200𝑦1
𝑥2 ≤ 200𝑦2
𝑥3 ≤ 200𝑦3
𝑥1 , 𝑥2 , 𝑥3 ≥ 0
𝑦1 , 𝑦2 , 𝑦3 = (0, 1)

La formulación muestra que la j-ésima cuota mensual fija formará parte de la función
objetivo z sólo si y1 = 1, lo cual puede suceder sólo si xj > 0 (de acuerdo con las últimas tres
restricciones del modelo). Si xj = 0 en el óptimo, entonces la minimización de z, junto con
el hecho de que el coeficiente objetivo de y1 sea positivo, hace que yj sea igual a cero
como se desea.
La solución óptima resulta x3 = 200, y3 = 1, y todas las variables restantes iguales a cero, lo
que demuestra que debo seleccionar a BabyBell como mi proveedor de larga distancia.
Recuerde que la información ofrecida por y3 = 1 es redundante porque x3 > 0 (= 200)
implica el mismo resultado. En realidad, la razón principal para utilizar y1, y2 y y3 se explica
por la cuota mensual fija. De hecho, las tres variables binarias transforman un modelo (no
lineal) de mal comportamiento en una formulación analíticamente soluble. Esta
conversión ha dado por resultado la introducción de las variables (binarias) enteras en un
problema que de lo contrario sería continuo .
4) Problema del vendedor viajero
El programa de producción diaria en la compañía XXX incluye lotes de pinturas blancas
(B), amarillas (A), roja (R) y negra (N). Debido a que XXX utiliza las mismas instalaciones
para los cuatro tipos de pintura, es necesaria una limpieza a fondo de los lotes. La
siguiente tabla resume el tiempo de limpieza en minutos cuando el color designado en el
renglón va seguido del color designado en la columna. Por ejemplo, cuando el blanco va
seguido por el amarillo, el tiempo de limpieza es de 10 minutos. Debido a que un color
no se puede seguir a sí mismo, se designa a las entradas correspondientes un tiempo de
preparación infinito. Determine la secuencia óptima para la producción diaria de los
cuatro colores, que minimizará el tiempo total de limpieza asociado.

El tiempo de limpieza dado para la siguiente pintura es


Pintura actual Blanca Amarilla Negra Roja
Blanca ∞ 10 17 15
Amarilla 20 ∞ 19 18
Negra 50 44 ∞ 25
Roja 45 40 20 ∞
Solución:
N
La figura resume el problema. Cada pintura 20
está representada por un nodo y los arcos
direccionales representan el tiempo de 50 17 19
limpieza necesario para llegar de un nodo a 25
otro. Por consiguiente, la situación se 45
B
reduce a determinar el ciclo más corto que R
20 15
empieza en un sentido (pinturas) y pasa a
través de cada uno de los tres nodos 44 18
restantes exactamente una vez, antes de 40
regresar al nodo inicial. Los problemas de 10
A
este tipo se conocen como el problema del
vendedor viajero, debido a que
parafrasean la situación en la cual una persona desea determinar el recorrido más
corto para visitar n ciudades, en donde cada ciudad se visita exactamente una vez,
Podemos resolver el problema enumerando en forma exhaustiva los seis posibles
ciclos de la red. [(4 – 1)! = 3! = 6]
La tabla muestra que Circulo de Producción Tiempo de limpieza
B A R N B B A N R B 10 + 19 + 25 + 45 = 99
Es el ciclo óptimo. Esto B A R N B 10 + 18 + 20 + 50 = 98
es práctico solo para B N A R B 17 + 44 + 18 + 45 = 124
problemas pequeños, B N R A B 17 + 25 + 40 + 20 = 102
por tanto es necesario B R N A B 15 + 20 + 44 + 20 = 99
una formulación más B R A N B 15 + 40 + 19 + 50 = 125
eficiente.
Sea xi j = 1 si se llega al nodo j desde el nodo i, 0 de lo contrario. Una condición
necesaria para un recorrido es que la ciudad i solo conecta una ciudad y que se llega a
una ciudad j exactamente desde una ciudad. Si dejamos que M sea un valor positivo
suficientemente grande, la formulación del problema XXX es:

Min z = MxBB + 10xBA + 17xBN + 15xBR + 20xAB + MxAA + 19xAN + 18xAR + 50xNB + 44xNA + MxNN + 25xNR
+ 45xRB + 40xRA + 20xRN + MxRR
s. a. xBB + xBA + xBN + xBR = 1
xAB + xAA + xAN + xAR = 1
xNB + xNA + xNN + xNR = 1
xRB + xRA + xRN + xRR = 1
xBB + xAB + xNB + xRB = 1
xBA + xAA + xNA + xRA = 1
xBN + xAN + xNN + xRN = 1
xBR + xAR + xNR + xRR = 1
xi j = (0, 1) para todas las i y j.

5) Problema de cobertura de conjuntos

Para promover la seguridad en el campus el Departamento de Seguridad Pública de la


Universidad de Arkansas se encuentra en proceso de instalación de teléfonos de
emergencia en lugares seleccionados. El departamento desea instalar una cantidad
mínima de estos aparatos que presten servicio a cada una las calles principales del campus
donde el mapa muestra dichas calles.
Es lógico maximizar la utilidad de los teléfonos si se les coloca en intersecciones de calles.
De este modo, una sola unidad puede prestar servicio al menos a dos calles Es lógico
instalar los teléfonos en las intersecciones de las calles, de manera que cada teléfono sirva
por lo menos a dos calles, la figura muestra que el trazo de las calles requiere un máximo
de ocho ubicaciones para los teléfonos.
Solución:
Las restricciones del problema requieren que se instale al menos un teléfono en cada una de las
11 calles (A a K). Por lo tanto, el modelo es:

11 calles (A a K). Por lo tanto, el modelo es

Min z = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8

sujeto a x1 + x2 ≥ 1 (calleA)
x2 + x3 ≥ 1 (calle B)
x4 + x5 ≥ 1 (calle C)
x7 + x8 ≥ 1 (calle D)
x6 + x7 ≥ 1 (calle E)
x2 + x6 ≥ 1 (calle F)
x1 + x6 ≥ 1 (calle G)
x4 + x7 ≥ 1 (calle H)
x2 + x4 ≥ 1 (calle I)
x5 + x8 ≥ 1 (calle J)
x3 + x5 ≥ 1 (calle K)
xj = (0, 1), j = 1, 2, . . . , 8

La solución óptima del problema requiere que se instalen cuatro teléfonos en las
intersecciones 1, 2, 5 y 7.
Comentarios. En el sentido estricto, los problemas de cobertura se caracterizan por los
siguientes criterios:
(1) Las variables xj, j = 1, 2,…, n son binarias;
(2) los coeficientes del lado izquierdo de las restricciones son 0 o 1;
(3) el lado derecho de cada restricción es de la forma (≥ 1),
(4) la función objetivo minimiza c1x1 + c2x2 + … + cnxn, donde cj > 0 para toda j = 1, 2,...,n.
En este ejemplo, cj = 1 para todas las j. Si cj representa el costo de instalación en la
intersección j, entonces estos coeficientes pueden asumir valores diferentes de 1

6) Problema de restricciones de uno a otro y si, …, entonces.

En el problema de cargo fijo (sección 9.1.3), se utilizan variables binarias auxiliares para
manejar la discontinuidad en la función de costo objetivo. Esta sección se ocupa de
modelos en los que las restricciones no se satisfacen al mismo tiempo (Uno - u - otro) o
son dependientes (Si - entonces), utilizando de nueva cuenta variables binarias auxiliares.
La transformación utiliza un artificio matemático para presentar la restricción especial
como restricciones “and” (“y”).

(Modelo de secuenciación de trabajos)


Jobco utiliza una sola máquina para procesar tres trabajos. Tanto el tiempo de
procesamiento como la fecha límite (en días) de cada trabajo aparecen en la siguiente
tabla. Las fechas límite se miden a partir de cero, el tiempo de inicio supuesto del primer
trabajo.

Trabajo Tiempo de procesamiento Fecha límite Penalización por retraso


(días) (días) ($/día)
1 5 25 19
2 20 22 12
3 15 35 34

El objetivo del problema es determinar la secuencia de los trabajos que minimice la penalización
por retraso en el procesamiento de los tres trabajos.

Solución:

Sea xj = Fecha de inicio en días del trabajo j (medida a partir del tiempo cero)
1, 𝑠𝑖 𝑖 𝑝𝑟𝑒𝑐𝑒𝑑𝑒 𝑎 𝑗
𝑦𝑖𝑗 = {
0, 𝑠𝑖 𝑗 𝑝𝑟𝑒𝑐𝑒𝑑𝑒 𝑎 𝑖

El problema tiene dos tipos de restricciones: las restricciones de no interferencia (que


garantizan que no se procesen dos trabajos al mismo tiempo) y las restricciones de fecha
límite. Considere primero las restricciones de no interferencia.
Dos trabajos i y j con tiempo de procesamiento pi y pj no se procesarán al mismo tiempo si
(dependiendo de qué trabajo se procese primero),

𝑥𝑖 ≥ 𝑥𝑗 + 𝑝𝑗 𝑜 𝑥𝑗 ≥ 𝑥𝑖 + 𝑝𝑖

Con M lo bastante grande, las restricciones “o” se transforman en restricciones “y” por
medio de
𝑀𝑦𝑖𝑗 + (𝑥𝑖 − 𝑥𝑗 ) ≥ 𝑝𝑗 𝑦 𝑀(1 − 𝑦𝑖𝑗 ) + (𝑥𝑗 − 𝑥𝑖 ) ≥ 𝑝𝑖

La conversión garantiza que sólo una de las dos restricciones puede estar activa en
cualquier momento. Si yij = 0, la primera restricción está activa, y la segunda es
redundante (porque su lado izquierdo incluye a M, la cual es mucho mayor que pk).
Si yij = 1, la primera restricción es redundante, y la segunda está activa.

A continuación, dado que di es la fecha límite para el trabajo j, el trabajo se retrasa


si xj + pj > dj. Podemos utilizar dos variables no negativas, y para determinar el estado de
un trabajo j completado con respecto a su fecha límite, es decir, la restricción de fecha
límite puede escribirse como 𝑥𝑗 + 𝑝𝑗 + 𝑠𝑗− − 𝑠𝑗+ = 𝑑𝑗
El trabajo j se adelanta si 𝑠𝑗− > 𝑜 y se retarda si 𝑠𝑗+ > 𝑜. El costo de penalización por
retraso es por lo tanto proporcional a 𝑠𝑗+.

El modelo del problema dado es:

Min z = 19𝑠1+ + 12𝑠2+ + 34𝑠3+

s. a.
𝑥1 −𝑥2 +𝑀𝑦12 ≥ 20
−𝑥1 +𝑥2 −𝑀𝑦12 ≥ 5−𝑀
𝑥1 −𝑥3 +𝑀𝑦13 ≥ 15
−𝑥1 +𝑥3 −𝑀𝑦13 ≥ 5−𝑀
𝑥2 −𝑥3 +𝑀𝑦23 ≥ 15
−𝑥2 +𝑥3 −𝑀𝑦23 ≥ 20 − 𝑀
𝑥1 +𝑠1− −𝑠1+ = 25 − 5
𝑥2 +𝑠2− −𝑠2+ = 22 − 20
𝑥3 +𝑠3− −𝑠3+ = 35 − 15

𝑥1 , 𝑥2 , 𝑥3 , 𝑠1−, 𝑠1+𝑠2−, 𝑠2+, 𝑠3−, 𝑠3+ ≥ 0

𝑦12 , 𝑦13 , 𝑦23 = (0, 1)

El modelo resultante es un PLE combinado.


Para resolverlo, seleccionamos M = 100, un valor que es mayor que la suma de los
tiempos de procesamiento de las tres actividades. La solución óptima es x1 = 20, x2 = 0, y
x3 = 25. Ésta indica que el trabajo 2 se inicia en el tiempo 0, que el trabajo 1 se inicia en el
tiempo 20, y que el trabajo 3 se inicia en el tiempo 25, y por lo tanto se obtiene la
secuencia de procesamiento óptima 2: 1: 3. La solución requiere que el trabajo 2 se
complete en 0 + 20 = 20 días, el trabajo 1 en un tiempo de 20 + 5 = 25 días y el trabajo 3
en 25 + 15 = 40 días. El trabajo 3 se retrasa 40 – 35 = 5 días después de la fecha límite a un
costo de 5 * $34 = $170.
7) Problema de Case Chemicals

Dos solventes, CS-01 y CS-02, se producen en la planta de Cleveland. El departamento de


mezclado de la planta actualmente tiene cinco empleados de tiempo completo, cada uno
trabajando 40 horas a la semana y dos trabajadores de tiempo parcial, cada uno trabajando 15
horas a la semana. Estos empleados manejan maquinas que mezclan ciertos químicos para
producir cada solvente. Los productos, una vez mezclados, se refinan en el departamento de
purificación, que actualmente emplea seis trabajadores de tiempo complete a 40 horas a la
semana cada uno y un trabajador de tiempo parcial que labora 10 horas a la semana. Las horas
requeridas en los departamentos de mezclado y purificación para producir cada uno de los
productos se muestran en la tabla:

Requerimiento de mezclado y purificación (hr/1000gal)


CS-01 CS-02
Mezclado 2 1
Purificación 1 2
Case Chemicals tiene un suministro prácticamente ilimitado de las materias primas requeridas
para producir los dos solventes y puede vender cualquier cantidad de CS-01. La demanda para el
producto más especializado, CS-02 está limitada a un máximo de 120 mil galones a la semana. El
departamento de contabilidad estima una ganancia neta de $0.30 por galón de CS-01 y $0.50 por
galón de CS-02.

Sea X1 = El número de miles de galones de CS-01 por producir a la semana. CS-02.


X2 = El número de miles de galones de CS-02 por producir a la semana.
Max P = 3X1 + 5X2
s. a: 2X1 + 2X2 < 230 Mezclado
2X1 + X2 ≤ 250 purificación
X2 ≤ 120 límite sobre CS-02
n. n. X1 ≥ 0, X2 ≥ 0.

El plan de producción óptimo es: X1 = 70, X2 = 90 con una ganancia semanal de $66000.
Para incrementar ganancias, el presidente está considerando una expansión:
Con las actuales instalaciones pueden contratarse hasta tres trabajadores más de tiempo
completo en cada uno de los departamentos de mezclado y parificación a un costo semanal $800
por empleado. La gerencia también puede considerar ampliar las instalaciones de producción a un
costo estimado de $20000 a la semana. Esta expansión permitiría a la compañía contratar hasta
ocho trabajadores adicionales en cada departamento, cinco más de los que se podrían contratar
en cada departamento sin la expansión, Como gerente del departamento de producción, se le ha
pedido que haga recomendaciones de contratación y expansión apropiadas.

Solución:
Tiene libertad para determinar el número de empleados adicionales a contratar en cada
departamento. Surgen dos nuevas variables de decisión (además de las variables
de producción x1 y x2):

Sea, NB = El número de nuevos empleados por contratar en el departamento de mezclado.


NP = El número de nuevos empleados por contratar en el departamento de purificación.

Otra decisión que necesita tomar, es si debe emprenderse o no la expansión. Para modelar esta
decisión “si/no”, defina 1a siguiente variable 0-1:
1 si se emprende La expansion
𝐸𝑋𝑃 = {
0 de otra manera

Refiriéndonos a la función objetivo, las decisiones de las nuevas contrataciones y expansión


reducen las ganancias semanales globales. E1 costo semanal de los empleados es 800(NB + NP) =
8(NB + NP) cientos de dólares y el de la expansión es 20000EXP = 200EXP cientos de dólares. Así
que la nueva función objetivo, expresada en cientos de dólares, debe maximizar:

Ganancia semanal neta = (ganancia de la producción) – (costo de las nuevas contrataciones) –


– (costo de expansión)
= (3x1 + 5x2) – 8(NB + NP) + 200EXP
= 3x1 + 5x2 – 8NB – 8 NP + 200EXP

Las nuevas contrataciones incrementan el número de horas de mano de obra disponible en ambos
departamentos. Recuerde que sin las nuevas contrataciones se dispone de 230 horas en el
departamento de mezclado. Cada nueva contratación en este departamento da como resultado 40
horas adicionales. Como se contratan NB de estas personas, la nueva restricción para el
departamento de mezclado es:

2x1+ x2 < 230 + 4ONB


2x1 + x2 – 40NB < 230 (mezclado)

De manera similar, para el departamento de purificación, la nueva restricción es:


X1 + 2x2 < 250 + 40NP
X1 + 2X2 – 40NP < 250 (purificación)

Sin embargo, un nuevo grupo de restricciones es el límite sobre el número de nuevas


contrataciones. Ese límite depende de si se emprende 1a expansión. Por ejemplo, para el
departamento de mezclado:

3 si no se emprende ninguna expansion (es decir, EXP = 0)


𝑁𝐵 ≤ {
8 si se emprende una expansion (es decir, EXP = 1)
Como la expansión permite Ia contratación de cinco trabajadores adicionales, las dos condiciones
anteriores Pueden escribirse en términos de la variable EXP como la Siguiente restricción sencilla:

NB < 3 + 5EXP
NB – 5EXP < 3 (nuevas contrataciones en Mezclado)

De manera similar para las nuevas contrataciones en el departamento de purificación


NP < 3 + 5EXP
NP – 5EXP < 3 (nuevas contrataciones en Purificación)

Finalmente, añada la restricción de que no pueden producirse más de 120 galones de CS-02 y las
restricciones lógicas de que NB y NP son enteros no negativos, que EXP es una variable 0-1 y que
X1 y X2 son variables no negativas. La formulación de programación entera mezclada completa
para el problema de expansión de Case Chemicals es la siguiente:

Max P = = 3X1 + 5X2 – 8NB – 8 NP + 200EXP

s. a. 2X1 + X2 – 40NB < 230 (mezclado)

X1 + 2X2 – 40NP < 250 (purificación)


X2 ≤ 120 límite sobre CS-02
NB – 5EXP < 3 (nuevas contrataciones en Mezclado)
NP – 5EXP < 3 (nuevas contrataciones en Purificación)

X1, X2 ≥ 0,
NB, NP, EXP ≥ 0 y enteras.

VIII) ALGORITMOS:

Los algoritmos del PLE se basan en explorar el fantástico éxito de la PL en los cálculos con
computadora. La estrategia de estos algoritmos implica tres pasos:

PASO 1. Disminuya el espacio de la solución del PLE, reemplazando cualquier variable


binaria y con la gama continua 0 < y < 1, y tachando las restricciones enteras en todas
las variables enteras. El resultado de la disminución es un PL regular.
PASO 2. Resuelva el PL e identifique su solución óptima continua.
PASO 3. Empezando desde el punto óptimo continuo, añada restricciones especiales que
modifiquen iterativamente el espacio de la solución del PL en una forma que a la larga
rendirá un punto extremo óptimo que satisfaga los requerimientos enteros.
Tres métodos generales para generar las restricciones especiales a las que se refiere el
paso 3 son:

1. Método Gráfico.
2. Método de Ramificación y Acotamiento (R y A).
3. Método del plano cortante.

Aunque ninguno de estos métodos es consistentemente efectivo para resolver PLE, la


experiencia con los cálculos computarizados muestra que el método de Ramificación y
Acotamiento es mucho más exitoso que el método del plano cortante.

METODO GRAFICO PARA PLE

Un enfoque gráfico promueve la comprensión de las complejidades asociadas con la


resolución de problemas de programación lineal entera. En primer lugar haga una
relajación de la programación lineal del problema original o sea, la programación lineal
obtenida al eliminar los requerimientos enteros sobre las variables en un problema de
programación entera.

Una forma de obtener gráficamente una solución óptima entera es comenzar con la
solución óptima de programación lineal y, reconociendo que los valores son fraccionarios,
mover la línea de la función objetivo paralelamente a sí misma hacia las soluciones
enteras factibles hasta que la línea pase por los primeros
de estos puntos.

EJEMPLO 1:

Max Z = 15x + 12y

s. a. 3x + 6y < 50

20x + 20y < 180

–x+ y >0

x, y > 0 y enteras

SOLUCION:
Primero desecha el requerimiento entero

Max Z = 15x + 12y

s. a. 3x + 6y < 50
20x + 20y < 180

–x+ y >0

x, y > 0

Al resolver gráficamente la solución óptima es x = 4.5, y = 4.5 con Z


= 121.5.

Esta solución fraccionaria es infactible con respecto al


requerimiento entero sobre las variables. Una forma de obtener
gráficamente una solución óptima entera es comenzar con la
solución óptima de programación lineal, y mover la línea de la
función objetivo paralelamente a si misma hacia las soluciones
enteras factibles hasta que la línea pase por el primero de estos puntos. En este caso la
solución óptima entera es: x = 4, y = 5 con Z = 120.

La idea de mover la línea de la función objetivo de la solución óptima de programación


lineal hacia las soluciones enteras factibles no es un enfoque viable para la computadora,
porque no existe una forma práctica de determinar cuándo se encuentra la primera
solución entera. Al examinar los valores enteros vecinos alrededor de la solución óptima
de programación lineal, esto es redondear cada valor fraccional de una variable a su valor
entero (mayor o menor) más cercano.

x y Valor de Función Objetivo


4 4 108
4 5 120 (óptimo)
5 4 123 infactible
5 5 135 infactible
Desafortunadamente redondear no funciona en general, veamos algunos ejemplos:

EJEMPLO 2:

Max Z = 3x + 2y

s. a. x + 4y < 8

– x + 4y > 4

x, y > 0 y enteras

SOLUCION:
Primero desecha el requerimiento entero
Max Z = 3x + 2y

s. a. x + 4y < 8

– x + 4y > 4

x, y > 0

la solución óptima de programación lineal es: x = 2, y = 1.5 con Z = 9.

x y Valor de Función Objetivo


2 1 8 infactible
2 2 10 infactible
El óptimo es:
X = 0, Y = 2 con Z = 4

EJEMPLO 3:

Max Z = 4x + 5y

s. a. 3x + 4y < 20

4x + 2y < 16

y >2

x, y > 0 y enteras

SOLUCION:
Primero desecha el requerimiento entero

Max Z = 4x + 5y

s. a. 3x + 4y < 20

4x + 2y < 16

y >2

x, y > 0

La solución óptima de programación lineal es: x = 2.4, y = 3.2 con Z = 25.6


x y Valor de Función Objetivo
2 3 23 factible
2 4 28 infactible
3 3 21 infactible
3 4 32 infactible
La solución óptima es x = 0, y = 5 con Z = 25

METODO ASOCIADO A UN ARBOL PROBLEMAS DE PROGRAMACION LINEAL ENTERA

El método gráfico para PPLE no puede utilizarse en computadoras porque estas usan
álgebra. El método asociado a un árbol se usa para obtener la solución óptima evaluando
todas las soluciones (combinaciones) enteras posibles para las variables en un PPLE.

Para resolver un PPLE es necesario: Hacer una lista de todas las soluciones enteras
posibles e identificar de todas ellas aquella cuyo valor de función objetivo sea el mejor.
Para que este enfoque funcione en una computadora, todas las soluciones enteras
posibles deben enumerarse de una manera sistemática, enfoque que se describe usando
un árbol en que:

1) Cada nodo, o círculo, en el árbol indica que a algunas variables del problema ya se
les han otorgado valores enteros específicos.
2) De cada nodo, un arco, o flecha, conduce a un nuevo nodo para indicar que a una
nueva variable se le está dando un valor entero específico.

Árbol: Un diagrama que consiste de nodos y arcos usados para enumerar todas las
posibles combinaciones de valores enteros para variables en un problema de
programación entera.

Nodo: Un círculo en el árbol asociado con un programa entero que indica que algunas
variables del problema se han fijado para especificar valores enteros.

Arco: Una línea con una flecha que conecta un nodo con otro nodo (de un nivel a otro) en
un árbol asociado con un programa entero para indicar que una nueva variable se está
fijando en un valor entero específico.

Nodo terminal: Un nodo que está en el último nivel de un árbol asociado con un
programa entero, correspondiente a un conjunto específico de valores para las variables
enteras.
EJEMPLO:

Max Z = 3x1 + 2x2 + x3

s. a. x 1 + x 2 + x3 < 4

2 x 1 – x2 – x3 < 0

x1 + x 2 – x3 < 0

x1 < 2

x2 < 2

x3 < 2

x1, x2, x3 > 0 y enteras

SOLUCION:

Las restricciones 4, 5 y 6 dan pie a los tres valores enteros posibles de 0, 1 y 2 para cada
una de las tres variables. Por tanto es necesario enumerar las 27 combinaciones de
valores enteros para x1, x2 y x3.

Observe que se enumeran los tres valores para x1 y, para cada uno, se enumeran los tres
valores de x2, lo que se producen nueve combinaciones. Para cada una de estas nueve, se
enumeran los tres valores para x3, obteniendo 27 combinaciones en total.
En el nodo superior 0 etiquetado (–, –, –) en el nivel 0 del árbol indica que aún no se ha
fijado el valor de ninguna variable. El arco que va hacia el nodo 1, denominado (0, –, –) en
el nivel 1, indica que x1 está siendo fijada en el valor entero 0, mientras que x 2 y x3 todavía
no están fijas. El arco que va hacia el nodo 2, denominado (1, –, –), indica que x1 está
siendo fijada con el valor entero 1. El arco que va hacia el nodo 3, denotado (2, –, –),
indica que x1 está siendo fijada con el valor 2.

Considere el nodo 1, donde x1 = 0, el arco que va hacia el nodo 4, denominado (0, 0, –) en


el nivel 2, indica que x2 se fija con el valor 0, mientras que x3 todavía no está fija. El arco
hacia el nodo 5, denotado (0, 1, –), indica que x2 está siendo fijada con el valor 1. El arco
que va hacia el nodo 6, denominado (0, 2, –), indica que x2 se fija con el valor 2. Este
proceso se repite para cada nodo del nivel1.

Repitiendo este proceso en el nivel 2, donde el valor de x3 se fija un valor entero, se llega a
27 combinaciones de valores para x1, x2 y x3.

Cualquier otra secuencia de valores en los niveles funciona igual, cada árbol produce las
mismas 27 soluciones enteras, solo el orden de estas soluciones difiere.

Una vez enumeradas las 27 combinaciones de valores para x 1, x2 y x3 en el árbol, el


siguiente paso es identificar cuáles de los 27 nodos terminales corresponden a soluciones
factibles, esto es, evaluar la función objetivo en cada solución factible para encontrar la
óptima.

Esta es: x1 = 2, x2 = 2, x3 = 2 con Z = 12.

Si existen k variables enteras, un árbol con k niveles da todas las combinaciones posibles
de n valores enteros y nk combinaciones, esto es sumamente tedioso, digamos para 10
variables, 10 posibles valores para las variables y 10 mil millones de combinaciones.

Si se elimina uno de los tres nodos del nivel 1 del árbol en el ejemplo anterior, (por tanto
todos los nodos por debajo se eliminarían) se reduce de 27 a 18 nodos terminales.

Para esto, para cada nodo se sustituyen los valores de las variables y requerimientos
enteros, obteniendo las soluciones óptimas a estos PPL y reducir los nodos terminales y
obtener las soluciones óptimas se utiliza el siguiente método.

MÉTODO DE RAMIFICACIÓN Y ACOTAMIENTO (R Y A).

El Método de R y A es usado para resolver un problema de programación lineal entera en


el que los nodos del árbol asociado se examinan de una manera sistemática tratando de
eliminar por consideración tantos nodos como sea posible. Se inicia en el nivel superior
del árbol y se procede de nodo a nodo hacia la base del árbol y los nodos terminales. En
cada nodo, se resuelve el programa lineal asociado, sobre la base de esta solución se toma
una decisión a qué nodo del árbol, si los hay, pueden eliminarse para otras
consideraciones, lo que reduce el número de nodos terminales que necesitan examinarse.

Después de resolver el PPL asociado con el nodo actual, es posible eliminar ese nodo y
todos los que están debajo de él de consideraciones posteriores cuando ocurren algunas
de las siguientes condiciones:

1).- El programa lineal es infactible. Todos los nodos por debajo de éste pueden
eliminarse de futuras consideraciones o sea, que ningún PPL asociado con un nodo
por debajo del actual puede producir una mejor solución.
2).- La solución óptima al PPL satisface todos los requerimientos enteros. En este caso
la solución actual también es infactible para el PPE original y por tanto proporciona
una cota inferior.
3).- El valor óptimo de la función objetivo del programa lineal es menor o igual que el
valor de la cota inferior actual.

Cota Inferior: Es un valor obtenido con el método de ramificación y acotamiento; la


función objetivo óptima de un programa entero se sabe que es al menos tan grande como
este valor.

PROPIEDADES DE LOS PROBLEMAS DE RELAJACIÓN DE LA PROGRAMACIÓN LINEAL.

Estas propiedades o hechos justifican matemáticamente el funcionamiento del algoritmo


y su técnica, el primer paso en la resolución de un problema de programación entera es
usar un árbol para enumerar las combinaciones posibles de valores enteros para las
variables. Por tanto, es posible asociar con cada nodo del árbol:

1. un problema de programación entera obtenido al reemplazar todas las variables fijas


con sus valores enteros específicos.

2. un problema de programación lineal obtenido al eliminar temporalmente el


requerimiento entero sobre las variables restantes.

El método de ramificación y acotamiento esté diseñado para usar la solución a los


programas lineales en cada nodo para determinar qué nodos, si los hay, pueden
eliminarse del árbol. Recordemos que cualquier programa lineal es infactible, óptima o
ilimitado.

Un programa lineal en un nodo es infactible.


En el caso de que un programa lineal en un nodo sea infactible:

1).- El problema de programación entera asociado en ese nodo también es infactible.


2).- Todos los problemas de programación lineal (y por tanto, programas enteros
correspondientes) asociados con los nodos debajo de este nodo también son
infactibles.

Propiedad 1: Si un problema de programación lineal en un nodo es infactible, entonces


también lo es el problema entero asociado en ese nodo, así como todos los problemas
asociados con los nodos debajo del actual.

Un programa lineal en un nodo es óptimo.

Cuando el programa lineal asociado con un nodo tiene una solución óptima, tal solución
proporciona el mejor valor posible de la función objetivo con las restricciones dadas.
Cualquier programa lineal con restricciones adicionales no puede tener un mejor valor
óptimo de la función objetivo. En particular:

1).- El valor óptimo de la función objetivo del programa entero asociado en un nodo no
puede exceder el del programa lineal correspondiente.
2).- El valor óptimo de la función objetivo de cualquier programa lineal, y en consecuencia,
el programa entero correspondiente, asociado con un nodo debajo del actual no
puede exceder el del actual programa lineal.

Propiedad 2: Si el programa lineal actual tiene una solución óptima, entonces el valor
óptimo de la función objetivo del problema entero correspondiente, así
como de cualquier programa lineal o entero asociado con un nodo debajo del actual, no
puede exceder el del actual.

Propiedad 3: Si, en cualquier nodo, sucede que la solución óptima al problema lineal
satisface todos los requerimientos enteros, entonces esa solución también es óptima para
el problema de programación entera asociado con ese nodo. Más aun, como se ha
encontrado la mejor solución entera a todos los programas lineales y enteros debajo de
este nodo, no hay necesidad de examinar ningún nodo debajo de éste.

Las propiedades 1, 2 y 3 ayudan a eliminar nodos debajo del actual.

Para eliminar nodos en cualquier lado del actual, así como todos los nodos por debajo de
éstos, se usan las siguientes:
Propiedad 4: Mientras más lejos se fije el valor de una variable de su valor en la solución
óptima de un programa lineal, peor será el valor de la función objetivo óptima del
programa lineal asociado.
Propiedad 5: Una vez que un problema de programa lineal es infactible para un valor
entero fijo de una variable mayor (menor) que en valor optima en el programa lineal,
todos los valores mayores (menores) de esta variable originan problemas de
programación lineal infactibles.

Un programa lineal en un nodo es ilimitado.

Cuando un programa lineal en un nodo es ilimitado, podría pensar que el problema de


programación entera también es ilimitado. Sin embargo, éste no siempre es el caso.

Puede suceder que el programa de programación entera sea infactible.

Propiedad 6: Si el programa lineal en un nodo es ilimitado, el problema de programación


entera es ilimitado o infactible.

Sondear o acotar soluciones de un PL (sondear a fondo) significa que ya no es posible


obtener una solución de programación lineal mejor y ya no se requiere ninguna otra
ramificación que provenga del nodo.

ALGORITMO DE RAMIFICACIÓN Y ACOTAMIENTO.

Para un problema de programación entera dado puede encontrarse una solución óptima
con el método de ramificación y acotamiento aplicando los siguientes pasos:

Paso 0. Inicialización: resolver el programa lineal asociado con el nodo 0.


a. Si este problema es Infactible, detenerse. El programa entero también
b. Si este problema tiene una solución óptima que satisface todos los requerimientos
enteros, detenerse. Esta solución también es óptima para el problema entero.
c. Si este problema tiene una solución óptima que no satisface todos los requerimientos
enteros, vea si redondear hacia abajo esta solución proporciona una solución entera
factible y por tanto, una cota inferior. De cualquier forma, llame al nodo 0 el nodo
actual y vaya al paso 1.

Paso 1. Dé un paso hacia adelante: Descienda un nivel en el árbol (1) seleccionando una
variable cuyo valor fraccional actual esté lo más alejado de un entero y (2) fijándola en el
menor valor entero mayor que su valor fraccional. Llame a éste el nodo actual y vaya al
paso 2 para examinarlo.

Paso 2. Examine un nodo: resuelva el programa lineal asociado con el nodo


actual.

a. Si este problema lineal es infactible, elimine éste y todos los nodos debajo y al mismo
lado que éste, y vaya al paso 3.
b. Si este programa lineal tiene una solución óptima que satisface todos los
requerimientos enteros, entonces determine si la solución entera factible proporciona
una cota inferior mayor que la cota inferior actual. De cualquier forma, elimine todos
los nodos debajo y al mismo lado que éste, y vaya al paso 3.
c. Si este programa lineal tiene una solución óptima que no satisface todos los
requerimientos enteros, entonces determine si el valor de la función objetivo es
menor que la cota inferior actual. Si es así, elimine todos los nodos debajo y al mismo
lado que éste, y vaya al paso 3. De otra forma, vea si redondear hacia abajo la solución
actual da como resultado una solución entera factible con una mejor cota inferior que
la actual. De cualquier forma llame a este nodo el actual y vaya al paso 1 a dar otro
paso hacia adelante.

Paso 3. Dé un paso lateral: muévase hacia el nodo no examinado más cercano en el


mismo nivel y a la derecha del nodo actual y vaya al paso 2. Si no existe tal nodo, muévase
hacia el nodo no examinado más cercano a la izquierda y vaya a1 paso 2. Si no existe tal
nodo, vaya al paso 4.

Paso 4. Dé un paso hacia atrás: retroceda un nivel del nodo actual al nuevo nodo actual.
Si el nuevo nodo actual es el nodo 0, deténgase. La solución entera asociada con la mejor
cota inferior es la solución óptima al problema entero original. Si el nuevo nodo actual no
es el nodo 0, vaya al paso 3. Si no encuentra la solución entera factible, el problema
original entero es infactible.

EJEMPLO:

Max Z = 2x1 + 3x2 + x3

s. a. x1 + x 2 + x 3 < 5

– x1 + 2x2 – x3 < 1

x1 + x 2 – x3 < 0

x1, x2, x3 > 0 y enteras

SOLUCION:
Primero, determinar el árbol en el que los nodos terminales del nivel inferior
corresponden a todos los valores enteros posibles, 3 variables y 6 posibles valores para las
variables, 63 = 216, el grafico muestra el árbol con las soluciones enteras posibles
correspondientes a los terminales numerados del 43 al 258.
ITERACIÓN 0: Inicialización: resolver el programa lineal asociado con el nodo 0.
Paso 0: Primero, examine el nodo 0 del árbol de la figura donde no se ha fijado ninguna de
las variables. El programa lineal asociado en este nodo es:

Max Z = 2x1 + 3x2 + x3

s. a. x 1 + x 2 + x3 < 5

– x1 + 2x2 – x3 < 1

x1 + x 2 – x3 < 0

x1, x2, x3 > 0

Usando Excel Solver para resolver


este problema da como resultado
la solución óptima de x1 = 0.5, x2 =
2 y x3 = 2.5, con un valor de
función objetivo de Z = 9.5. Ni x1 ni
x3 satisfacen los requerimientos
enteros así que se requiere
examinar más nodos. El nodo 0 es
el nodo actual, ir al paso 1.

Paso 1. Dé un paso hacia adelante


Como x1 = 0.5 y x3 = 2.5 son igualmente distantes de valores enteros, por lo que x1 se
selecciona arbitrariamente para ramificación. Como se ve en la figura, su valor esta fijo en
1, que es el primer entero mayor que 0.5.

ITERACIÓN 1: EXAMINAR EL NODO (1,-,-).

El programa lineal en este nodo es:

Max Z = 2 + 3x2 + x3 Max z = 2 + 3x2 + x3

s. a. 1 + x 2 + x3 < 5 s. a. x2 + x3 < 4

– 1 + 2x2 – x3 < 1 2x2 – x3 < 2

1 + x 2 – x3 < 0 – x2 + x3 > 1
x2, x3 > 0 x2, x3 > 0

Resolver este problema se llega a la solución óptima de x1 = 1, x2 = 1.5 y x3 = 2.5, con un


valor de la función objetivo de Z = 9. Dado que x2
y x3 no satisfacen los requerimientos enteros, la
misma regla de ramificación se utiliza
nuevamente para descender al árbol. Ahora x2 se
selecciona y se fija en el valor de 2, como se
muestra en la figura:

ITERACIÓN 2: EXAMINAR EL NODO (1 .2,-):

El programa lineal en este nodo es:

Max Z = 2 + 6 + x3 Max Z = 8 + x3

s. a. 1 + 2 + x3 < 5 s. a. x3 < 2

– 1 + 4 – x3 < 1 x3 > 2

1 + 2 – x3 < 0 x3 > 3

x3 > 0 x3 > 0

Este problema es infactible. De acuerdo a las propiedades 1 al 5, los siguientes nodos se


eliminan de consideraciones posteriores:
1).- Todos los nodos debajo del nodo (1, 2,-) debido a propiedad 1.
2).- Todos los nodos del nivel 2 a la derecha del nodo (1, 2, -) debajo del nodo (l, -, -).,
debido a la propiedad 5.

No se necesita tomar otro paso hacia adelante porque la propiedad 1 ha eliminado todos
los nodos debajo del nodo actual (1, 2, -). El
método de ramificación y acotamiento ahora
lo dirige a examinar todos los nodos en el
mismo nivel que el nodo actual (1, 2, -), esto
es, los otros nodos que surgen del nodo (1, -, -
). Para hacer esto de una manera sistemática,
tome un paso lateral hacia el nodo más
cercano a la derecha del nodo actual (1, 2, -)
que todavía no se ha examinado. Si no hay
ninguno, tome un paso lateral hacia el nodo
más cercano a la izquierda que no haya sido
examinado todavía.
Paso 3. Dé un paso lateral.

En este caso, por la condición 2, todos los nodos a la derecha del actual ya han sido
eliminados. Por tanto, debiera tomar un paso lateral al nodo más cercano a la izquierda
para examinar e1 nodo (1, 1, -), como se muestra en el gráfico.

ITERACIÓN 3: EXAMINAR EL NODO (1, 1, -).

El programa lineal en este nodo es:

Max Z = 2 + 3 + x3 Max Z = 6 + x3
s. a. 1 + 1 + x3 < 5 s. a. x3 < 3

– 1 + 2 – x3 < 1 x3 > 0

1 + 1 – x3 < 0 x3 > 2

x3 > 0 x3 > 0

La solución óptima para este problema es x1 = 1, x2 = 1 y x3 = 3, con un valor de


función objetivo de Z = 8. Como esta solución satisface todos los requerimientos enteros,
se cumplen las siguientes condiciones:

Esta solución es factible para el programa entero original. Como resultado, el valor
óptimo de la función objetivo para el problema entero original debe ser

1).- Al menos el de esta solución factible de Z = 8 es ahora una cota inferior para el
programa entero original. Por la propiedad 3, todos los nodos debajo del actual
pueden eliminarse. Por la propiedad 4, e1 valor óptimo de la función objetivo del
programa lineal asociado.
2).- Con todos los nodos a la izquierda del actual no puede exceder el del actual.
3).- Por tanto, ninguno de estos nodos puede producir una solución entera con un mejor
valor de la función objetivo que la cota inferior de 8.

En este punto, todos los nodos en el nivel 2, debajo del nodo (1, -, -), han sido examinados
o eliminados, y la actual cota inferior es 8. No hay más nodos debajo del nodo (1, -, -) por
examinar, ir paso 4.

Paso 4. Dé un paso hacia atrás.

Se usa un paso hacia atrás para seleccionar el siguiente nodo. Retroceda hacia el anterior
nivel, es decir, al nodo (1, -, -), y aplique un paso lateral, primero a la derecha y luego a la
izquierda del nodo (1, -, -), a la derecha implica examinar el nodo (2, -, -), como se ve en la
figura.

ITERACIÓN 4: EXAMINAR EL NODO (2, -, -).

El programa lineal en este nodo es:

Max Z = 4 + 3x2 + x3 Max z = 4 + 3x2 + x3


s. a. 2 + x 2 + x3 < 5 s. a. x2 + x3 < 3

– 2 + 2x2 – x3 < 1 2x2 – x3 < 3

2 + x 2 – x3 < 0 – x2 + x3 > 2

x2, x3 > 0 x2, x3 > 0

Resolviendo este PPL se


obtiene una solución óptima de
x1 = 2, x2 = 0.5 y x3 = 2.5, con un
valor Z = 8 para la función
objetivo. De acuerdo con la
propiedad 2, ningún nodo
debajo de éste puede
proporcionar una solución
entera factible con un valor de
la función objetivo mejor que
la cota inferior actual de 8
[asociada con la solución
entera x1 = 1, x2 = 1 y x3 = 3 obtenida en el nodo (1, 1,-)]. Así que todos los nodos debajo
del nodo (2, -, -) se eliminan.

De las propiedades 4 y 5, se sabe que el


programa lineal asociado con todos los nodos
a la derecha del nodo actual (2, -, -) serán
infactibles o tendrán un valor óptimo de la
función objetivo máximo de 8, el valor
optima en el nodo (2, -, -). Ninguno de estos
nodos puede producir una mejor solución
entera factible, por lo que puede eliminarlos.

No se requiere un paso hacia adelante, así que ir paso 3.


Paso 3. Dé un paso lateral.
Todos los nodos a la derecha del nodo (2, -, -) han sido ahora examinados o eliminados.
Un paso lateral a la izquierda se usa para examinar el nodo (0, -, -), como se ve en gráfico.

ITERAClÓN 5: EXAMINAR EL NODO (0, -, -).

El programa lineal en este nodo es:

Max Z = 0 + 3x2 + x3 Max z = 3x2 + x3


s. a. 0 + x 2 + x3 < 5 s. a. x2 + x 3 < 5

– 0 + 2x2 – x3 < 1 2x2 – x3 < 1

0 + x 2 – x3 < 0 – x2 + x3 > 0

x2, x3 > 0 x2, x3 > 0

La Solución óptima de este problema x1 = 0, x2 = 2 y x3 = 3, con un valor de función


objetivo asociado de Z = 9.
Como se ve en la figura, dado
que esta solución satisface
todos los requerimientos
enteros:

1).- Esta es otra solución


factible al problema
entero original. Mas aún,
su valor de función
objetivo es mejor que la
cota inferior anterior de 8.
Esta última solución
proporciona una nueva cota inferior de 9.
2).- Por propiedad 2, todos los nodos debajo del nodo actual (0, -, -) pueden eliminarse.

Todos los nodos en el nivel 1, debajo del nodo (-, -, -), han sido examinados o eliminados.
Ir al paso 4.

Paso 4. Dé un paso hacia atrás.

Un paso hacia atrás se usa a continuación para moverse al nodo 0. Pero el nodo 0 ya ha
sido examinado, y de esta forma todos los nodos del árbol ya han sido examinados o
eliminados. Esto, a su vez, significa que se ha obtenido la solución al problema de
programación entera original, a saber, la solución entera factible asociada con la cota
inferior actual. En este caso, esa solución es x1 = 0, x2 = 2 y x3 = 3, con un valor de función
objetivo de Z = 9.

Observe que aunque todo el árbol en este ejemplo tiene 216 nodos terminales, el
algoritmo de ramificación y acotamiento le permitía encontrar la solución óptima al
examinar solo seis nodos. El ahorro en tiempo y esfuerzo es incluso más significativo para
problemas mayores. En particular, observe cómo la cota inferior se usa para eliminar
muchos nodos. Mientras más grande sea la cota inferior, es más probable que los nodos
puedan, eliminarse. Por tanto, es importante obtener rápidamente una cota inferior lo
más grande posible.

Por ejemplo, si conoce una solución entera factible al problema original, o si se puede
obtener una redondeando hacia abajo la solución al programa lineal asociado, debería
usar esa solución entera como cota inferior inmediatamente. Esta misma idea puede
aplicarse a cualquier nodo. Por ejemplo, en la iteración 0, correspondiente al nodo 0,
redondear hacia abajo la solución al programa lineal asociado no tiene como resultado
una solución entera factible. Sin embargo, redondear hacia abajo la solución en la
iteración 1, correspondiente al nodo (1, -, -), se tiene como resultado una solución factible
x1 = 1, x2 = 1 y x3 = 2, con un valor de función objetivo, y por tanto, una cota inferior, de 7.

Programación entera mixta

El algoritmo de ramificación y acotamiento puede ampliarse a problemas combinados (en


los que sólo algunas de las variables son enteras). Nunca se selecciona una variable
continua como variable de ramificación. Un subproblema factible proporciona una nueva
cota del valor objetivo si los valores de las variables discretas son enteros con un valor
objetivo mejorado.

Resolución del problema de expansión de Case Chemicals.

Max P = = 3X1 + 5X2 – 8NB – 8 NP + 200EXP

s. a. 2X1 + X2 – 40NB < 230 (mezclado)

X1 + 2X2 – 40NP < 250 (purificación)


X2 ≤ 120 límite sobre CS-02
NB – 5EXP < 3 (nuevas contrataciones en Mezclado)
NP – 5EXP < 3 (nuevas contrataciones en Purificación)

X1, X2 ≥ 0,
NB, NP, EXP ≥ 0 y enteras.
SOLUCION:

En muchos problemas se requiere que todas las variables sean enteras. En algunos problemas, sin
embargo, sólo algunas variables necesitan tener valores enteros, mientras que otras pueden ser
continuas. Tales problemas se denominan Problemas de programación entera mezclada o mixta.
Estos problemas, una vez formulados, se resuelven precisamente de la misma manera que
aquellos en los que todas las variables están restringidas a ser enteros.

ITERACION 0

Siguiendo el procedimiento de ramificación y acotamiento, primero resolver el problema lineal


asociado con el problema original, en que se eliminan todas las restricciones enteros obteniendo
solución óptima al programa lineal en el nodo 0, esto es:

X1 = 215; X2 = 120; NB = 8; NP = 5.125; EXP = 1 valor objetivo P = 940

Esta solución corresponde al nodo 0 del árbol de la


figura. Los nodos posteriores están numerados en el
orden en el que son examinados.

ITERACION 1

Como NP es fraccional en el valor 5.125, es necesario tomar un paso hacia adelante fijando NP en
6, el primer valor entero mayor que 5.125. La solución óptima al programa lineal asociado con este
nodo, etiquetado 1 en la figura, es:

X1 = 215; X2 = 120; NB = 3; NP = 6; EXP = 1; valor


objetivo = 933 Como esta solución satisface
todos los requerimientos enteros, se cumple lo
siguiente:

1. Ahora se dispone de una cota inferior de


933.
2. Todos los nodos debajo del nodo 1 pueden eliminarse, como lo establece la propiedad 3.
3. Todos los nodos a la derecha del nodo 1 (correspondientes a valores mayores de NP) pueden
eliminarse, como lo establecen las propiedades 4 y 5.

ITERACION 2

Procediendo con un paso lateral a la izquierda del nodo 1 se obtiene una fijación de NP en 5 en el
nodo 2. Ver gráfico.

La resolución del programa lineal asociado tiene como resultado la solución óptima al programa
lineal en el nodo 2.

X1 = 210; X2 = 120; NB = 7.75; NP = 5; EXP = 0.95; valor objetivo P = 938


Como el valor óptimo de la función objetivo de 938 es mayor
que la cota inferior actual de 933, la propiedad 2 no puede
usarse para eliminar ningún nodo. Más aun, la solución actual
no satisface todos los requerimientos enteros. Por
consiguiente, es necesario un paso hacia adelante.

ITERACION 3

Al usar la regla de ramificación en un paso hacia adelante, se


selecciona NB y se fija en el valor 8 en el nodo 3, ver figura.

Al solucionar el programa lineal asociado en el que NP = 5


y NB = 8 se llega a la siguiente solución óptima al
programa lineal en el nodo 3:

X1 = 216.667; X2 = 116.667; NB = 8; NP = 5; EXP = 1; valor


objetivo = 929.33

Observe que X1 y X2 tienen valores fraccionales. Sin


embargo, estas variables no están restringidas a tener
valores enteros en la formulación original de
programación entera mezclada, así que no se toma ningún
paso hacia adelante para fijar estas variables en valores
enteros. Más aún, como el valor óptimo de la función objetivo de P = 929.33 es menor que la
actual cota inferior de 933, se cumple lo siguiente:

1. Todos los nodos debajo del nodo 3 pueden eliminarse, como lo establece el hecho 2.
2. Los nodos a la derecha del nodo 3 (correspondientes a valores mayores de NP) pueden
eliminarse, como lo establece la propiedad 2.

ITERACION 4

Ahora se da un paso lateral del nodo 3, fijando NB en 7 en el


nodo 4 en la figura. La solución optima al programa lineal
asociado en el nodo 4 en el que NP = 5 y NB = 7 es:

X1 = 195; X2 = 120; NB = 7; NP = 5; EXP = 0.8; P = 929

Éste valor óptimo de la función objetivo de 929 es menor que


la cota inferior actual de 933.33 cumple lo siguiente:

1. Todos los nodos debajo del nodo 4 pueden eliminarse,


como lo establece el hecho 2.
2. Todos los nodos a la izquierda del nodo 4 (correspondientes a valores menores de NB) pueden
eliminarse, como lo establecen los hechos 4 y 5.
ITERAClON 5

Todos los valores de NB asociados con los nodos debajo del nodo 2 han sido examinados o
descartados. Un paso hacia atrás fija NP en 4 en el nodo 5 de la figura. La solución optima al
programa lineal asociado en el nodo 5 en el que NP = 4 es:

X1 = 170; X2 = 120; NB = 5.75; Np = 4; EXP = 0.55; valor objetivo = 922

Este valor óptimo de la función


objetivo de 922 es menor que la
actual cota inferior de 933, por lo
que:

1. Todos los nodos debajo del nodo


5 pueden eliminarse, por el
hecho 2
2. Todos los nodos a la izquierda del
nodo 5 (correspondientes a valores menores de NP) pueden eliminarse, por los hechos 4 y 5.

Ahora todos los nodos han sido examinados o descartados. La solución óptima al problema de
Case Chemicals es la solución asociada con la cota inferior actual de 933:

X1 = 215 X2 = 120 NB = 8 NP = 6 E103 = 1. Valor de la función objetivo = 933

Esto significa que el presidente de Case Chemicals:

1. Ampliará las instalaciones de producción (porque EXP = 1)


2. Contratar ocho empleados adicionales en el departamento de mezclado (porque NB = 8).
3. Contratar seis empleados adicionales en el departamento de purificación (por que NP = 6).
4. Producir 215 000 galones de CS-01 y 120 000 galones de CS-02 (porque X1 = 215 y X2 =
120).

Estas decisiones dan como resultado una ganancia semanal de $93 300, que es mayor que
$66000, obtenida antes de la expansión y las nuevas contrataciones.

Programación entera binaria

Dado que cualquier problema acotado de programación entera pura tiene solo un número
finito de soluciones factibles, resulta natural considerar el uso de algún tipo de
procedimiento de enumeración para encontrar una solución óptima. Desafortunadamente,
como se mencionará en el siguiente tema, este número finito puede ser, y casi siempre es,
muy grande, por lo que es imperativo que cualquier procedimiento de enumeración se
estructure con habilidad para que solo sea necesario examinar una pequeña fracción de
estas soluciones factibles.
La idea básica en la que se apoya la técnica de ramificación y acotamiento es divide y
conquistarás. Como es demasiado complicado resolver en forma directa el problema
original “grande”, se divide en subproblemas cada vez más pequeños hasta que estos se
puedan vencer. La división se hace mediante una partición del conjunto completo de
soluciones factibles en subconjuntos más pequeños. En parte, la conquista o sondeo se
hace mediante el acotamiento de la mejor solución del subconjunto para después
descartar los subconjuntos cuya cota indique que no es posible que contenga una solución
óptima para el problema original.

Ejemplo—el problema de California Manufacturing Co.

Max Z = 9x1 + 5x2 + 6x3 + 4x4


s. a. 6x1 + 3x2 + 5x3 + 2x4 < 10
3 _ 3x2 _ 5x3 + x4 < 1
– x1 3x + 5x3 < 0
_ – x2 _ 5x3 + x4 < 0
xj es binaria, para j = 1, 2, 3, 4.
SOLUCION:

Iteración 1.

Ramificación
Cuando se manejan variables binarias, la forma más sencilla de partir el conjunto de
soluciones factibles es fijar el valor de una variable (por ejemplo, x1) en x1 = 0 para un
subconjunto y en x1 = 1 para el otro. Al hacer esto en el ejemplo prototipo, el problema
completo queda dividido en dos subproblemas más pequeños, como se presentan a
continuación.

Subproblema 1:

Se fija x1 = 0, con lo que el subproblema que resulta es


Max Z = 5x2 + 6x3 + 4x4
s. a. 3x2 + 5x3 + 2x4 < 10
3 _ 3x2 _ x 3 + x4 < 1
3x 2 5x3 < 0
_ – x2 _ 5x + x4 < 0
xj es binaria, para j = 2, 3, 4.
Subproblema 2:
Se fija x1 = 1, con lo que el subproblema que se obtiene es
Max Z = 9 + 5x2 + 6x3 + 4x4
s. a. 3x2 + 5x3 + 2x4 < 4
3 _ 3x2 _ x3 + x4 < 1
3x 2 5 x3 < 1
_ – x2 _ 5x + x4 < 0
xj es binaria, para j = 2, 3, 4.

En la figura se muestra esto con una división (ramificación) en subproblemas.

Acotamiento

Ahora es necesario obtener, para cada subproblema, una cota que muestre el nivel de
precisión de su mejor solución factible. La forma más común de hacerlo es resolver con
rapidez un relajamiento sencillo del subproblema. Casi siempre, el relajamiento de un
problema se obtiene eliminando (“relajando”) un conjunto de restricciones que dificultan
obtener una solución. En los problemas de PE, las restricciones más incómodas son las que
requieren que las variables sean enteras. Para el PL original se obtiene mediante la
sustitución del último renglón del modelo (xj es binaria, para j = 1, 2, 3, 4) por la siguiente
nueva (relajada) versión de su restricción 0 < xj < 1 para j = 1, 2, 3, 4. Esto es:

Max Z = 9x1 + 5x2 + 6x3 + 4x4


s. a. 6x1 + 3x2 + 5x3 + 2x4 < 10
3 _ 3x2 _ x3 + x4 < 1
5 – x1 + x3 < 0
_ – x2 _ 5x + x4 < 0
x1 < 1
x2 < 1
x3 < 1
x4 < 1
x1, x2 , x3 , x4 > 0
Usando el método simplex para resolver con su relajación PL se obtiene la solución
5 1
óptima: (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = (6 , 1, 0, 1) 𝑐𝑜𝑛 𝑧 = 16 2

1
Por tanto, 𝑧 ≤ 16 2 para todas las soluciones factibles del problema original Binario
(puesto que estas soluciones son un subconjunto de las soluciones factibles del
1
relajamiento de PL). Esta cota de 16 2 se puede redondear a 16, porque todos los
coeficientes de la función objetivo son enteros y, por ende, deben dar un valor entero de
Z. Cota de todo el problema: Z < 16.

La cota del subproblema 1, donde se fija x1 = 0, puede expresarse de manera apropiada en


su relajación PL mediante la suma de la restricción que x1 < 0 puesto que cuando se
combinan con la restricción actual 0 < x1 < 1 obliga a que x1 = 0. Aplicando el método
simplex en los PL:

Max Z = 9x1 + 5x2 + 6x3 + 4x4


s. a. 6x1 + 3x2 + 5x3 + 2x4 < 10
3 _ 3x2 _ x 3 + x4 < 1
5 – x1 x3 < 0
_ – x2 _ 5x + x4 < 0
x1 < 0
x1 < 1
x2 < 1
x3 < 1
x4 < 1
x1, x2 , x3 , x4 > 0

Se obtiene la solución óptima del relajamiento de PL, (x1, x2, x3, x4) = (0, 1, 0, 1) con Z = 9.

De manera similar, se fija x1 = 1 en el subproblema 2 nos lleva a sumar la restricción x1 > 1


para su relajamiento de PL.
Max Z = 9x1 + 5x2 + 6x3 + 4x4
s. a. 6x1 + 3x2 + 5x3 + 2x4 < 10
3 _ 3x2 _ x 3 + x4 < 1
5 – x1 x3 < 0
_ – x2 _ 5x + x4 < 0
x1 > 1
x1 < 1
x2 < 1
x3 < 1
x4 < 1
x1, x2 , x3 , x4 > 0

4 4 1
La solución óptima del relajamiento es (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = (1, , 0, ) 𝑐𝑜𝑛 𝑧 = 16
5 5 5

En la figura se resumen estos resultados. En ella, los números que se encuentran


exactamente abajo de los nodos son las cotas, y debajo de cada cota se presenta la
solución óptima que se obtuvo para el relajamiento de PL.

Sondeo

Un subproblema se puede conquistar (sondear), y, por tanto, ya no tomarse en cuenta, en


las tres formas que se describen a continuación.

Una forma se ilustra con los resultados del subproblema 1 que se dieron en el nodo x1 = 0,
la solución óptima (única) de este relajamiento de PL, (x1, x2, x3, x4) = (0, 1, 0, 1), es una
solución entera. En consecuencia, esta solución debe ser también la solución óptima del
subproblema 1, que debe guardarse como la primera solución factible que se ha
encontrado hasta ahora del problema completo, junto con su valor de Z. Este valor se
denota por Z* = valor de Z de la solución actual, de manera que en este punto Z* = 9.
Como esta solución se guarda, no hay razón para seguir considerando el subproblema 1 y
ramificar el nodo x1 = 0. Hacerlo sólo conduciría a otras soluciones factibles inferiores a la
de apoyo que no son de interés. Ahora, como ya se resolvió, el subproblema 1 se sondea
(elimina).

Los resultados anteriores sugieren una segunda prueba de sondeo importante. Como Z* =
9, no existe razón alguna para tomar en cuenta ningún subproblema cuya cota sea < 9,
puesto que tales subproblemas no pueden tener soluciones factibles mejores que la
solución factible. Establecido en forma general, un subproblema se sondea siempre que su
Cota < Z*.

Este resultado no ocurre en la iteración actual del ejemplo porque el subproblema 2 tiene
una cota de 16 que es mayor que 9. No obstante, puede ocurrir más adelante, para los
descendientes de este subproblema (nuevos problemas más pequeños creados al
ramificar más este subproblema y quizá después al ramificarlo más en “generaciones”
subsecuentes). Lo que es más, a medida que se encuentren nuevas soluciones de apoyo
con valores más grandes de Z* será más fácil sondear de esta manera.

La tercera forma de sondeo es bastante directa. Si el método simplex encuentra que el


relajamiento de PL de un subproblema no tiene soluciones factibles, entonces el
subproblema en sí no debe tener soluciones factibles, de forma que puede eliminarse
(sondearse).

En los tres casos, se lleva a cabo la búsqueda de una solución óptima mediante la
investigación de sólo aquellos subproblemas que es posible que tenga una mejor solución
factible que la de apoyo actual.

Resumen de las pruebas de sondeo. Un subproblema se sondea (se descarta para su


consideración posterior) si Prueba 1: Su cota # Z*, o Prueba 2: Su relajamiento de PL no
tiene soluciones factibles, o Prueba 3: La solución óptima para su relajamiento de PL es
entera. (Si esta solución es mejor que la de apoyo, se convierte en la nueva solución de
apoyo y se aplica de nuevo la prueba 1 a todos los subproblemas no sondeados, con la
nueva mejor Z*.)

En el gráfico se resumen los resultados después de aplicar


estas tres pruebas a los subproblemas 1 y 2; se muestra el
árbol de solución actual. Sólo el subproblema 1 fue
sondeado por la prueba 3, como lo indica F(3) junto al
nodo x1 = 0. La solución de apoyo también se identifica
debajo de este nodo.

Las iteraciones siguientes ilustrarán la aplicación exitosa de las tres pruebas, pero antes de
continuar con el ejemplo se resumirá el algoritmo que se aplica a este problema de PEB.
(El algoritmo supone que la función objetivo se maximizará, que todos los coeficientes de
la función objetivo son enteros y que, para efectos de simplicidad, el orden de las
variables de la ramificación es x1, x2, . . . , xn. Como se pudo observar anteriormente, gran
parte de los algoritmos de ramificación y acotamiento utilizan complejos métodos para
seleccionar las variables de ramificación.)
Técnica de ramificación y acotamiento de PEB

Paso inicial: Se establece Z* = – ∞. Se aplica al problema completo el paso de


acotamiento, el de sondeo y la prueba de optimalidad que se describió. Si no se sondea,
este problema se clasifica como el único “subproblema” restante para realizar la primera
iteración completa.

Pasos de cada iteración:

1. Ramificación: Entre los subproblemas restantes (no sondeados) se elige el de creación


más reciente. (Los empates se rompen con el que tenga la cota más grande.) Se ramifica
este nodo de ese subproblema para crear dos nuevos subproblemas luego de establecer la
siguiente variable (la variable de ramificación), ya sea en 0 o en 1.

2. Acotamiento: En cada nuevo subproblema, aplique el método simplex a su relajación


LP para obtener una solución óptima que incluya el valor de Z para esta relajación LP. Si
este valor de Z no es entero, redondéelo a un entero. (Si lo era, no es necesario ningún
cambio.) Este valor entero de Z es el acotado para el subproblema.

3. Sondeo: A cada nuevo subproblema se le aplican las tres pruebas de sondeo que se
resumieron antes y se descartan aquellos que son sondeados por cualquiera de las tres
pruebas.

Prueba de optimalidad: El proceso termina cuando no existen subproblemas restantes; la


solución de apoyo actual es óptima.

De otra manera, se realiza otra iteración.

Iteración 2. El único subproblema que queda corresponde al nodo x 1 = 1 en el gráfico


anterior, por lo que se ramificará este nodo para crear dos nuevos subproblemas.

Subproblema 3:

Se fija x1 = 1, x2 = 0 de manera que el subproblema que resulta es

Max Z = 9 + 6x3 + 4x4


s. a. 5x3 + 2x4 < 4
3 _ 3x2 _ x3 + x4 < 1
3x 2 x3 < 1
_ _ 5x x4 < 0
xj es binaria, para j = 3, 4.
Subproblema 4:

Se fija x1 = 1, x2 = 1 de manera que el subproblema que resulta es

Max Z = 14 + 6x3 + 4x4


s. a. 5x3 + 2x4 < 1
3 _ 3x2 _ x 3 + x4 < 1
3x 2 5x3 < 1
_ x4 < 1
xj es binaria, para j = 3, 4.

Los relajamientos de PL de estos subproblemas se obtienen consumando la restricción


adicional que se muestra a continuación de la versión relajada de la restricción binaria. Sus
soluciones óptimas se muestran también a continuación.

Relajamiento de PL del subproblema 3: x 1 > 1, x2 < 0 y 0 < xj < 1 para j = 1, 2, 3, 4.


4 4
Solución óptima: (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = (1, 0, 5 , 0) 𝑐𝑜𝑛 𝑧 = 13 5

Relajamiento de PL del subproblema 4: x1 > 1, x2 > 1 y 0 < xj < 1 para j = 1, 2, 3, 4.


1
Solución óptima: (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = (1, 1, 0, 2) 𝑐𝑜𝑛 𝑧 = 16

Las cotas que resultan para los subproblemas son

Cota del subproblema 3: Z < 13,

Cota del subproblema 4: Z < 16.

Observe que estas cotas son más grandes que Z* = 9, por


lo que la prueba de sondeo 1 fracasa en ambos casos. La
prueba 2 también fracasa, puesto que ambos
relajamientos de PL tienen soluciones factibles (como lo
indica la existencia de una solución óptima). De la misma
manera, la prueba 3 fracasa porque ambas soluciones
óptimas incluyen variables con valores no enteros.

La figura muestra el árbol de solución resultante en este


punto. La falta de una F a la derecha de cualquiera de los nuevos nodos indica que ambos
quedan sin sondear.
Iteración 3. Hasta aquí, el algoritmo creó cuatro subproblemas. El subproblema 1 fue
sondeado y el subproblema 2 se sustituyó por (se dividió en) los subproblemas 3 y 4, pero
estos dos quedan bajo consideración. Como fueron creados al mismo tiempo y el
subproblema 4 (x1 = 1, x2 = 1) tiene una cota más grande (16 > 13), la siguiente
ramificación se hace desde el nodo (x1, x2) = (1, 1) en el árbol de solución, lo que crea los
siguientes subproblemas nuevos (en donde la restricción 3 desaparece porque no
contiene a x4).

Subproblema 5:

Se fija x1 = 1, x2 = 1, x3 = 0 y el subproblema que resulta es

Max Z = 14 + 4x4
s. a. 2x4 < 1
3 _ 3x2 _ x4 < 1 (dos veces)
3x 2x4 es binaria.
Subproblema 6:

Se fija x1 = 1, x2 = 1, x3 = 1 de manera que el subproblema que resulta es

Max Z = 20 + 4x4
s. a. 2x4 < – 4
3 _ 3x2 _ x4 < 0
x4 < 1
3x 2x4 es binaria.
Las relajaciones PL correspondientes tienen la versión relajada de la restricción binaria, la
solución óptima y la acotada (cuando existe) que se muestra en seguida.

Relajamiento de PL del subproblema 5: x1 > 1, x2 > 1, x3 < 0 y 0 < xj < 1 para j = 1, 2, 3, 4.


1
Solución óptima: (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = (1, 1, 0, 2) 𝑐𝑜𝑛 𝑧 = 16

Cota: Z < 16

Relajamiento de PL del subproblema 6: x1 > 1, x2 > 1, x3 > 1 y 0 < xj < 1 para j 5 1, 2, 3, 4.

Solución óptima: Ninguna, puesto que no hay soluciones factibles.

Cota: ninguna.
En ambos subproblemas, la versión relajada de la restricción binaria tiene el efecto de
fijar los valores e x1, x2 y x3 en los deseados y, por tanto, requieren que 0 < x4 < 1. Por ello,
los relajamientos PL de estos subproblemas se reducen a las premisas de los
subproblemas que se plantearon antes, excepto por el reemplazo de la restricción binaria
por 0 < x4 < 1. Si se reducen estas relajaciones PL problemas de una variable (más los
valores fijos de x1, x2 y x3) se hace más sencillo ver que la solución óptima de la relajación
PL del subproblema 5 es, en realidad, el que se proporcionó antes.

De manera similar, observe que la combinación de la restricción 1 y 0 < x4 < 1 en el


relajamiento e PL del subproblema 6 evita las soluciones factibles. Por tanto, este
subproblema se sondea mediante la prueba 2. No obstante, el subproblema 5 no pasa
1
esta prueba, ni la 1 (16 > 9), ni la prueba 3 (x4 = no es un entero), así que permanece
2
bajo consideración.

Iteración 4. Los subproblemas que corresponden a


los nodos (1, 0) y (1, 1, 0) de la figura permanecen
bajo consideración, pero el último nodo es el de
creación más reciente, por lo que se selecciona para
ramificación. Como la variable de ramificación x4 es la
última variable, si se fija su valor en 0 o en 1, se crea
una solución y no un subproblema que requiera más
investigación. Las soluciones creadas son

x4 = 0: (x1, x2, x3, x4) = (1, 1, 0, 0) es factible, con Z = 14,

x4 = 1: (x1, x2, x3, x4) = (1, 1, 0, 1) es factible.

Mediante la aplicación formal de las pruebas de sondeo, se comprueba que la primera


solución pasa prueba 3 y la segunda la prueba 2. Además, la primera solución factible es
mejor que la de apoyo 14 > 9), por lo cual se convierte en la nueva solución de apoyo, con
Z* =14.

Como se encontró una nueva solución de apoyo, se vuelve a aplicar la prueba 1 con el
nuevo valor más grande de Z* al único subproblema que queda, el del nodo (1, 0).

Subproblema 3:

Cota = 13 < Z* = 14.

Entonces, este subproblema queda sondeado.


Se tiene ahora el árbol de solución de la figura. Observe que no hay subproblemas
restantes (sin sondear). En consecuencia, la prueba de optimalidad indica que la solución
de apoyo actual

(x1, x2, x3, x4) = (1, 1, 0, 0) es óptima con z = 14.

IX) ENUMERACION IMPLICITA

Cualquier variable entera x con una cota superior finita u (0 < x < u) se puede expresar en
términos de variables binarias, 0 – 1, utilizando la sustitución:

𝑥 = 20 𝑦0 + 21 𝑦1 + 22 𝑦2 + ⋯ + 2𝑘 𝑦𝑘

Donde k es un entero más pequeño que satisface 2𝑘+1 − 1 ≥ 𝑢 𝑦 𝑦0, 𝑦1, … , 𝑦𝑘 es 0 – 1


variables. Este resultado, conjuntamente con lo que alguna vez pareció ser un algoritmo
simple para resolver el PLE 0-1, ha aumentado la esperanza de que el PLE general se
pueda resolver de una manera más eficiente como un problema de 0-1. Por desgracia,
esta línea de investigación no produjo un adelanto en los cálculos.

El primer algoritmo especial 0 – 1, llamado el algoritmo aditivo, fue desarrollado en 1965,


unos siete años después del desarrollo del de R y A. Inicialmente, el algoritmo parecía no
estar relacionado con el algoritmo general de R y A porque no requería resolver las PL y su
cálculo principal solo implicaba sumas y restas sencillas. Sin embargo, poco después, el
vínculo entre los dos algoritmos se hizo aparente, en el sentido de que el algoritmo aditivo
solo es una caso especial del algoritmo general de R y A.

El diseño del método heurístico de sondeo en el algoritmo aditivo requiere la presentación del
problema 0 – 1 en una forma conveniente que satisfaga los siguientes requerimientos:

1. La función objetivo es del tipo de minimización, con todos los coeficientes no negativos.
2. Todas las restricciones deben ser del tipo (<), con todos los lados derechos negativos, de ser
necesario, Después, estas restricciones se convierten a ecuaciones utilizando variables de
holgura (continuas) en el lado izquierdo de las restricciones.

Ejemplo: Convierta el siguiente problema 0 – 1 para satisfacer los requerimientos iniciales


del algoritmo aditivo.

Max z = 3 x1 – 5 x2
s.a. x 1 + x2 = 5
4 x1 + 6 x 2 > 4
x1 , x2 = (0, 1)

SOLUCION:

Primero convertimos el problema a uno de minimización con todas las restricciones (<)
como sigue:

a) Multiplique z por –1 para obtener la minimización de w = – 3x1 + 5x2.


b) Convierta la ecuación de restricción en dos restricciones del tipo (<) para obtener
x1 + x2 < 5 y – x1 – x2 < – 5
c) Multiplique la segunda restricción por –1 para obtener – 4 x1 – 6 x2 < – 4

Utilizando las holguras S 1, S2 y S3 para las tres restricciones, el problema se escribe como

Min w = – 3x1 + 5x2

s.a. x1 + x 2 + S 1 = 5

– x1 – x2 + S 2 = – 5

– 4 x1 – 6 x2 + S 3 = – 4

x1 , x2 = (0, 1)

S1, S2 , S3 > 0
Para asegurarse de que los coeficientes de la función objetivo son no negativos, sustituya
xj = 1 – xj’ para cualquier xj con un coeficiente negativo en la función objetivo. Por
consiguiente, sustituimos x1 = 1 – x1’ y ajustamos el lado derecho de las restricciones
conforme a ello. El algoritmo aditivo ahora trata con x 1’ y x2.

Igualmente que en la R y A, la ramificación en el primer algoritmo aditivo también se basa


en el empleo de una variable de ramificación x j = 0 y xj = 1 porque xj es un variable binaria.
El acontecimiento se trata de la misma manera como en el algoritmo de R y A, en el
sentido de que una solución entera mejorada proporciona una cota superior sobre el valor
mínimo de la función objetivo.

El desentrañamiento de los subproblemas puede ocurrir en una de las tres formas.

1. El subproblema no puede conducir a una solución factible.


2. El subproblema no puede conducir a una cota superior mejor.
3. El subproblema produce una solución entera factible.

Estas reglas son las mismas que en R y A. la principal diferencia es que no resolvemos una
PL en su lugar, utilizamos la heurística.

Ejemplo: Resuelve el siguiente problema 0 – 1.

Max w = 3 y1+ 2 y2 – 5 y3 – 2 y4 + 3 y5

s. a. y1 + y2 + y3 + 2 y4 + y5 < 4

7 y1 + 3 y3 – 4 y4 + 3 y5 < 8

11 y1 – 6 y2 + 3 y4 – 3 y5 > 3

y1, y2, y3, y4, y5 = (0, 1)

Solución:

El problema se puede poner en la forma especial requerida por el algoritmo aditivo

Min z = – 3 y1 – 2 y2 + 5 y3 + 2 y4 – 3 y5

s. a. y1 + y2 + y3 + 2 y4 + y5 + S1 < 4

7 y1 + 3 y3 – 4 y4 + 3 y5 + S2 < 8

– 11 y1 + 6 y2 – 3 y4 + 3 y5 + S3 < – 3

y1, y2, y3, y4, y5 = (0, 1)


Min z = – 3 y1 – 2 y2 + 5 y3 + 2 y4 – 3 y5

s. a. y1 + y2 + y3 + 2 y4 + y5 + S1 = 4

7 y1 + 3 y3 – 4 y4 + 3 y5 + S2 = 8

– 11 y1 + 6 y2 – 3 y4 + 3 y5 + S3 = – 3

y1, y2, y3, y4, y5 = (0, 1)

Haciendo las siguientes sustituciones de variables: y1 = 1 – x1, y2 = 1 – x2, y5 = 1 – x5, y3 = x3,


y4 = x 4 y en la función objetivo z = z´ + 8 obtenemos:

Min z´ + 8 = – 3 (1 – x1) – 2 (1 – x2) + 5 x3 + 2 x4 – 3 (1 – x5)

s. a. (1 – x1) + (1 – x2) + x3 + 2 x4 + (1 – x5) + S1 = 4

7 (1 – x1) + 3 x3 – 4 x4 + 3 (1 – x5) + S2 = 8

– 11 (1 – x1) + 6 (1 – x2) – 3 x4 + 3 (1 – x5) + S3 = – 3

x1, x2, x3, x4, x5 = (0, 1)

Min z´ = 3 x1 + 2 x2 + 5 x3 + 2 x4 + 3 x5

s. a. – x1 – x2 + x3 + 2 x4 – x5 + s1 =1

– 7 x1 + 3 x 3 – 4 x4 – 3 x5 + s2 =–2

11 x1 – 6 x2 – 3 x4 – 3 x5+ s3 = – 1

x1, x2, x3, x4, x5 = (0, 1)

Debido a que el problema modificado busca la minimización de una función objetivo con
todos los coeficientes positivos, una solución inicial lógica debe consistir en variables
binarias todas cero. En este caso, las holguras actuaran como variables básicas y sus
valores los dan los lados derechos de la ecuación. Esto es:

Solución básica factible X1 X2 X3 X4 X5 S1 S2 S3 Solución


S1 –1 –1 1 2 –1 1 0 0 1
S2 –7 0 3 –4 –3 0 1 0 –2
S3 11 –6 0 –3 –3 0 0 1 –1
Coeficientes objetivo 3 2 5 2 3
Dada una solución binaria inicial toda cero, la solución de la holgura asociada es:
(s1, s2, s3) = (1, – 2, – 1), z = 0.

Si todas las variables fueran no negativas, concluiríamos que la solución binaria todas cero
es óptima. Sin embargo, debido a que algunas variables son no factibles (negativas),
necesitamos elevar una o más variables binarias al nivel 1 para lograr la factibilidad (o
concluimos que el problema no tiene una solución factible).

La elevación de una o de algunas de las variables binarias cero al nivel 1 ocurre en el


algoritmo aditivo una a la vez. La variable elegida se llama variable de ramificación y su
elección se basa en el empleo de pruebas especiales.

La variable de ramificación debe tener el potencial de reducir la no factibilidad de las


holguras. En la tabla anterior, x3 no se puede seleccionar como una variable de
ramificación, debido a que sus coeficientes de restricción en la segunda y tercera
restricciones son no negativos. Por tanto, la determinación de x 3 = 1 solo puede empeorar
la no factibilidad de s2, y s3. A la inversa, cada una de las variables restantes tiene por lo
menos un coeficiente de restricción negativo en las restricciones 2 y 3, de allí que una
combinación de estas variables puede producir holguras factibles. Por consiguiente,
podemos excluir a x3 y considerar a x1, x2, x4 y x5 como las únicas candidatas posibles para
la variable de ramificación.

La selección de la variable de ramificación entre las candidatas x1, x2, x4 y x5 se basa en el


empleo de la medida de no factibilidad de la holgura. Esta medida, que se basa en la
suposición de que una variable cero xj se elevará al nivel 1, se define como

Ij = ∑ min(0, si − aij )
todas i

Donde s1 es el valor actual de la variable i y aij es el coeficiente de restricción de la variable


x1 en la restricción i.

De hecho, Ij no es más que la suma de las variables negativas resultantes al elevar x j al


nivel 1. La fórmula, aparentemente complicada, se puede simplificar a

Ij = ∑ (negativo si valor xj = 1)
todas i

x1 x2 x4 X5
S1 = 1 – (– 1 ) = 2 S1 = 1 – (– 1 ) = 2 S1 = 1 – 2 = – 1 S1 = 1 – (– 1 ) = 2
S2 = – 2 – (– 7 ) = 5 S2 = – 2 – 0 = – 2 S2 = – 2 – (– 4 ) = 2 S2 = – 2 – (– 3) = 1
S3 = – 1 – 11 = – 12 S3 = – 1 – (– 6) = 5 S3 = – 1 – (– 3) = 2 S3 = – 1 – (– 3) = 2
I1 = – 12 I2= – 2 I4= – 1 I5 = 0
Si elegimos x3 se excluyó por no prometedora. Debido a que I5 produce la medida más
pequeña de no factibilidad, se selecciona x 5 como la variable de ramificación. En el gráfico
vemos las dos variables asociadas con x 5= 1 y x5 = 0 y
los nodos 1 y 2. El nodo 1 produce los valores de
holgura factibles (s1, s2, s3) = (2, 1, 2), z = 3. Por lo
tanto se sondea el nodo 1 y z = 3 define la cota
superior actual sobre el óptimo valor objetivo.

Después de sondear el nodo 1, avanzamos al nodo 2, para lo cual x 5 = 0.


Aquí tenemos (s1, s2, s3) = (1, – 2, – 1), z = 0 que no es
factible.
Las variables x1, x2, x3 y x4 son las candidatas para la
variable de ramificación. Observe que aun cuando las
soluciones del nodo 0 y nodo 2 son idénticas, el nodo
2 difiere en que x5 ya no es candidata para la
ramificación. Igual que con el nodo 1 x3 no es
prometedora, debido a que no hace avanzar a s2, y s3
hacia la factibilidad. Las x1 y x3 también son no
prometedoras, porque su coeficiente objetivo (3 y 5)
producirán un valor objetivo peor que la cota superior actual (z̅ = 3). Para las variables
restantes, x2 y x4, calculamos las medidas de factibilidad como I 2 = – 2, I4 = – 1, por
consiguiente, x4 es la variable de ramificación del nodo 2.
La figura muestra las ramificaciones x4 = 1 y x4 = 0, que conducen a los nodos 3 y 4. En el
nodo 3, definido al terminar x5 = 0 y x4 = 1, obtenemos (s1, s2, s3) = (– 1, 2, 2), z = 2 que es
factible. Las candidatas para la ramificación son x1, x2 y x3. Sin embargo, la elevación de
cualquiera de estas variables al nivel 1 empeorará el valor de z en relación a la cota
superior actual z̅ = 3. Por consiguiente, todas las variables candidato se excluyen y el nodo
3 se sondea.
Después en el nodo 4, definido por x5 = x4 = 0 tenemos (s1, s2, s3) = (1, – 2, – 1), z = 0.
Las variables x1 y x3, se excluyen por medio de la prueba de la cota superior. Observe que
x3 también se puede excluir
debido a que no produce la
factibilidad de la holgura. La
variable faltante, x2, no
puede ser excluida por la
cota superior o por la
promesa de factibilidad. Por
tanto x2 es una variable de
ramificación.

El gráfico muestra la adición


de los nodos 5 y 6 que
emanan del nodo 4. En el nodo 5, tenemos (s1, s2, s3) = (2, – 2, 5), z = 2 y x1 y x3 como las
candidatas a ramificación. La variable x1 se excluye por medio de la prueba de la cota
superior y x3 se excluye por las pruebas tanto de la factibilidad de la holgura como de la
cota superior. Esto significa que el nodo 5 se sondea. El nodo 6 es también sondeado
debido a que ni x1 ni x3 pueden producir una mejor solución factible.

Ahora se han sondeado todos los nodos pendientes terminando el algoritmo de R y A. la


solución óptima asociada con el nodo 1, es decir, x 5= 1, z= 3 y todas las demás variables
son cero. En términos de las variables originales, la solución es y1 = y2 = 1 y y3= y4 = y5 = 0
con w = 5.

La figura muestra que, mientras más pequeño es el número de ramificaciones


conducentes a un nodo sondeado, más eficiente es el algoritmo. Por ejemplo, el nodo 1 se
define fijando una ramificación (x5 = 1) y su sondeo implica automáticamente de 25 – 1 = 16
soluciones binarias (todas aquellas que tienen x5 = 1). A la inversa, e1 nodo 3 se define
fijando dos variables binarias y su sondeo implícitamente implica de 25 – 2 = 8 soluciones
binarias únicamente.

X) EL MODULO DE PLE DEL QSB

You might also like