Professional Documents
Culture Documents
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.
DEFINICION DEL
PROBLEMA
¿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.
𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑜 𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑓 = 𝑐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.
Formas de PPL:
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.
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
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
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)
Solución:
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:
1 2 3 4 5 6
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.
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,
Usando una lógica similar para los cinco fondos restantes, llegamos a:
Aplicando la técnica de agrupamiento debe llegar a identificar los siguientes tres grupos
de restricciones:
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.
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:
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:
De manera similar, la cantidad invertida en el fondo 3 debe ser tres veces la invertida
en el fondo 1:
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:
Formulación completa
Max: 0.30F1 + 0.20F2 + 0.15F3 + 0.12F4 + 0.l0F5 + 0.07 F6
OTRA FORMA:
Ejemplo 1:
Solución:
Ejemplo 2:
Min C = 3A + 2B
n. n. A, B ≥ 0
Solución:
Ejemplo 3:
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:
s. a. x + y < 100
2x + 3 y > 600
X < 40
n. n. x, y > 0
Solución:
𝑛 . 𝑛. 𝑥1 , 𝑥2 , . . . . , 𝑥𝑛 , ℎ1 , ℎ2 , ℎ3 . .. ℎ𝑛 ≥ 0
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.
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).
… … … … … … … … … … . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . … … … . ..
Ejemplo 1:
Solución:
Forma estándar
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
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
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
𝑚𝑖𝑛{−1.5𝑀 + 60, 0, −2.75𝑀 + 100, 𝑀 − 0.25𝑀 + 20, 0, 0, 1.25𝑀 − 20} = −2.75𝑀 + 100
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
Respuesta:
X1 = 0
X2 = 81.82
X3 = 72.73
S1 = 0
S2 = 0
S3 = 809.09
A1 = 0
A2 = 0
Z = 15272.73
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.
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.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
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:
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.
DEFINICIONES BASICAS
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.
Gastos ($ millones)/año
Solución:
𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 = (0, 1)
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
El siguiente ejemplo demuestra cómo se utilizan las variables binarias para volver el
modelo analíticamente soluble.
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
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.
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.
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
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”).
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, 𝑠𝑖 𝑗 𝑝𝑟𝑒𝑐𝑒𝑑𝑒 𝑎 𝑖
𝑥𝑖 ≥ 𝑥𝑗 + 𝑝𝑗 𝑜 𝑥𝑗 ≥ 𝑥𝑖 + 𝑝𝑖
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.
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
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):
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
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:
NB < 3 + 5EXP
NB – 5EXP < 3 (nuevas contrataciones en Mezclado)
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:
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:
1. Método Gráfico.
2. Método de Ramificación y Acotamiento (R y A).
3. Método del plano cortante.
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:
s. a. 3x + 6y < 50
–x+ y >0
x, y > 0 y enteras
SOLUCION:
Primero desecha el requerimiento entero
s. a. 3x + 6y < 50
20x + 20y < 180
–x+ y >0
x, y > 0
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
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
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:
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
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.
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.
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.
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.
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.
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.
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 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.
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 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:
s. a. x1 + x 2 + x 3 < 5
– x1 + 2x2 – x3 < 1
x1 + x 2 – x3 < 0
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:
s. a. x 1 + x 2 + x3 < 5
– x1 + 2x2 – x3 < 1
x1 + x 2 – x3 < 0
s. a. 1 + x 2 + x3 < 5 s. a. x2 + x3 < 4
1 + x 2 – x3 < 0 – x2 + x3 > 1
x2, x3 > 0 x2, x3 > 0
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
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.
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
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.
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.
2 + x 2 – x3 < 0 – x2 + x3 > 2
0 + x 2 – x3 < 0 – x2 + x3 > 0
Todos los nodos en el nivel 1, debajo del nodo (-, -, -), han sido examinados o eliminados.
Ir al paso 4.
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.
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
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:
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.
ITERACION 3
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
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:
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:
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.
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.
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:
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:
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.
Se obtiene la solución óptima del relajamiento de PL, (x1, x2, x3, x4) = (0, 1, 0, 1) con Z = 9.
4 4 1
La solución óptima del relajamiento es (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = (1, , 0, ) 𝑐𝑜𝑛 𝑧 = 16
5 5 5
Sondeo
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.
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.
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
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.
Subproblema 3:
Subproblema 5:
Max Z = 14 + 4x4
s. a. 2x4 < 1
3 _ 3x2 _ x4 < 1 (dos veces)
3x 2x4 es binaria.
Subproblema 6:
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.
Cota: Z < 16
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.
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:
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𝑘 𝑦𝑘
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.
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:
Utilizando las holguras S 1, S2 y S3 para las tres restricciones, el problema se escribe como
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.
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.
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
Solución:
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
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
7 (1 – x1) + 3 x3 – 4 x4 + 3 (1 – x5) + S2 = 8
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
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:
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).
Ij = ∑ min(0, si − aij )
todas i
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.