Programacion Entera ML IO1 IIN

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 23

- Investigación de

Operaciones I -
Dr. Juan Pérez
Material de lectura
Unidad VI

Facultad Politécnica
Facultad Politécnica UNA
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Contenido
1 PROGRAMACIÓN LINEAL ENTERA (PLE) .......................................... 3

1.1 INTRODUCCIÓN Y CONCEPTOS .............................................................. 3


1.2 APLICACIONES DE LOS MODELOS MATEMÁTICOS DE PLE ............................ 4
1.3 PROGRAMACIÓN ENTERA BINARIA (ENTERO CERO – UNO) ......................... 4
1.4 PROGRAMACIÓN ENTERA MIXTA ....................................................... 11
1.5 ALGORITMO DE RAMIFICACIÓN Y ACOTAMIENTO ................................... 16

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

2
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Unidad IV: Programación entera


1 Programación Lineal Entera (PLE)

1.1 Introducción y conceptos

Los programas lineales enteros son aquellos en los que algunas o todas las
variables están restringidasa tener valores enteros (o discretos).
Por lo general, las aplicaciones de programación lineal entera (PLE) caen
dentro de dos categorías: directa y transformada.
- Directa: Por 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).
- Transformada: Cuando 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 loque hace al problema analíticamente
insoluble, porque todos los algoritmos de programaciónmatemáticos
tratan sólo con restricciones “y”. Más adelante se muestra cómose
utilizan las variables binarias auxiliares para transformar las
restricciones “o” en“y”, sin modificar la naturaleza del modelo.

Por comodidad, un problema se define:

• Programa Entero Puro cuando todas las variables son enteras.


• ProgramaEntero Combinado (PEC), o Mixto (PEM),implica una
combinación de variables enteras y continuas.
• Programa Entera Binaria (PEB), cuando las variables del problema
son variables de decisión restringidas a sólo dos valores, por ejemplo,
0 y1 (variables binarias).

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

3
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

1.2 Aplicaciones de los modelos matemáticos de PLE

La programación lineal entera (PLE) tiene aplicaciones prácticas importantes.


Los siguientes problemas que se presentan en esta unidad son problemas
especiales que bien pueden ser formulados mediante la Programación
Lineal, pero debido a su estructura, estas pueden ser modeladas de una
manera quizás más sencilla, y son:

1. Presupuesto de capital

2. Problema de cobertura de conjunto

3. Problema de cargo fijo

4. Restricciones “o bien”

1.3 Programación Entera Binaria (entero cero – uno)

El modelo PEB
Algo sencillo como construir fábricas en ambas ciudades, pero ningún
almacén.
Se formulará el modelo de programación entera con propósitos ilustrativos.
Todas las variables de decisión tienen la forma binaria
1, 𝑠𝑖 𝑙𝑎 𝑑𝑒𝑐𝑖𝑠𝑖ó𝑛 𝑗 𝑒𝑠 𝑠í
𝑥𝑗 = 𝑗 = (1,2,3,4)
0, 𝑠𝑖 𝑙𝑎 𝑑𝑒𝑐𝑖𝑠𝑖ó𝑛 𝑗 𝑒𝑠 𝑛𝑜

Sea 𝑍= valor presente neto de estas decisiones.


Si se hace la inversión para construir una instalación dada —de manera que
la variable de decisión correspondiente tenga valor de 1—, el valor presente
neto estimado de estas inversiones aparece en la cuarta columna de la tabla
siguiente.

Tabla 1: Tabla de parámetros del Ejemplo

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

4
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Si la inversión no se hace —y, por tanto, la variable de decisión es igual a 0—,


el valor presente neto es 0. Entonces, con unidades de millones de dólares,
𝑍 = 9𝑥1 + 5𝑥2 + 6𝑥3 + 4𝑥4

La última columna de la tabla de arriba (Tabla 1) indica que la cantidad de


capital que se gastará en las cuatro instalaciones no puede exceder a 10
millones de dólares.

En consecuencia, si se sigue con el uso de estas unidades de millones de


dólares, una restricción del modelo es
6𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥4 ≤ 10

Como las últimas dos decisiones representan alternativas mutuamente


excluyentes—la compañía quiere construir cuando mucho un almacén
nuevo—, se necesita la restricción
𝑥3 + 𝑥4 ≤ 1

Aun mas, las decisiones 3 y 4 son contingentes —o condicionales— porque


dependen de las decisiones 1 y 2, respectivamente (la compañía consideraría
la construcción de un almacén en determinada ciudad solo si la nueva fábrica
va a estar ahí). Por tanto, en caso de tomar la decisión 3, se requiere que
𝑥3 = 0 si 𝑥1 = 0. Esta restriccion sobre 𝑥3 (cuando𝑥1 = 0) se impone al
agregarla restricción
𝑥3 ≤ 𝑥1

De manera similar, el requerimiento de que 𝑥4 = 0 si 𝑥2 = 0 se impone con la


restriccion
𝑥4 ≤ 𝑥2

Por tanto, después de escribir de nuevo estas dos restricciones para que
todas las variables queden en el lado izquierdo, el modelo completo de PEB
es:

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

5
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 9𝑥1 + 5𝑥2 + 6𝑥3 + 4𝑥4


𝑠𝑢𝑗𝑒𝑡𝑎 𝑎
6𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥4 ≤ 10
6𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥4 ≤ 10
−𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥4 ≤ 0 1
6𝑥1 + −𝑥2 + 5𝑥3 + 2𝑥4 ≤ 01
6𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥𝑗 ≤ 10
6𝑥1 + 3𝑥2 + 5𝑥3 + 2𝑥𝑗 ≥ 00
y
𝑥𝑗 es entera, para 𝑗 = 1,2,3,4

De manera equivalente, las tres últimas líneas de este modelo se


puedensustituir por una solarestricción
𝑥𝑗 es binaria, para 𝑗 = 1,2,3,4

Excepto por su tamaño pequeño, este ejemplo representa muchas


aplicaciones reales de programación entera en las que las decisiones básicas
que se toman son del tipo sí o no. Al igual que el segundo par de decisiones
de este ejemplo, muchos grupos de decisiones sí o no constituyen grupos de
alternativas mutuamente excluyentes, tales que sólo una decisión de ese
grupo puede ser sí. Cada grupo requiere una restricción que obligue a la
suma de las variables binarias correspondientesa ser igual a 1 si exactamente
una decisión de ese grupo debe ser sí, o menor o igual a 1 (si cuando mucho
una decisión de ese grupo puede ser sí).

En ocasiones, las decisiones del tipo sí o no son decisiones contingentes,


es decir, dependen de decisiones anteriores. Por ejemplo, se dice que una
decisión es contingente respecto a otra si se permite que sea si sólo si la otra
es sí. Esta situación ocurre cuando una decisión contingente implica una
acción que sigue a otra y que se vuelve irrelevante, o imposible, si la otra
decisión es no. La forma de la restricción que se obtiene se ilustra en la cuarta
y quinta restricciones del ejemplo anterior visto.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

6
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

1. Presupuesto de capital

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.

Ejemplo. Selección de un proyecto

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.

Tabla 2: Tabla de parámetros del Ejemplo

¿Cuáles proyectos deben seleccionarse a lo largo del periodo de 3 años?

Formule el problema como un modelo de PLE.

Solución

El problema se reduce a tomar una decisión “𝑠í − 𝑛𝑜” para cada proyecto.
Se define la variable binaria 𝑥𝑗 como sigue:
1, 𝑠𝑖 𝑠𝑒 𝑠𝑒𝑙𝑒𝑐𝑐𝑖𝑜𝑛𝑎 𝑒𝑙 𝑝𝑟𝑜𝑦𝑒𝑐𝑡𝑜 𝑗
𝑥𝑗 = para 𝑗 = 1,2,3,4,5
0, 𝑠𝑖 𝑛𝑜 𝑠𝑒 𝑠𝑒𝑙𝑒𝑐𝑐𝑖𝑜𝑛𝑎 𝑒𝑙 𝑝𝑟𝑜𝑦𝑒𝑐𝑡𝑜 𝑗

Entonces, el programa lineal entero es:

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


𝑠𝑢𝑗𝑒𝑡𝑎 𝑎
5𝑥1 + 4𝑥2 + 3𝑥3 + 7𝑥4 + 8𝑥5 ≤ 25
𝑥1 + 7𝑥2 + 9𝑥3 + 4𝑥4 + 6𝑥5 ≤ 25
8𝑥1 + 10𝑥2 + 2𝑥3 + 𝑥4 + 10𝑥5 ≤ 25
𝑥1 , 𝑥2 , 𝑥3 𝑥4 , 𝑥5 = (0,1)

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

7
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

La función objetivo maximiza los ingresos que generan los proyectos, donde
las variables de decisión son del tipo sí-no (elegir o no, todos o alguno, de los
proyectos).

Las restricciones del problema son los fondos disponibles que se tienen por
cada año dentro de los 3 del horizonte de planeación. Por ejemplo para el Año
1 se tiene disponible como máximo 25 millones $ presupuestado, cada uno de
los proyectos generan un gasto, en el caso de elegir alguno de ellos, el
proyecto 1 tiene un gasto de 5 millones $, el proyecto 2 tiene un gasto de 4
millones $, el 3 un gasto de 3 millones $, el 4 un gasto de 7 millones $ y el 5
un gasto de 8 millones $, la suma de cada uno de estos gastos por proyecto
debe ser exactamente 25 millones $ o menos, no puede superarlo; lo mismo
se da para los años 2 y 3. La última restricción nos indica que las variables de
decisión pueden tomar valores 0 o 1 (binario); no se les permite asumir
valores positivos continuos.

Comentarios. Es interesante comparar la solución de PL continua con la


solución del PLE. La solución óptima de PL, obtenida reemplazando 𝑥𝑗 = (0,1)
con 0 ≤ 𝑥𝑗 ≤ 1 para todas las 𝑗, da por resultado 𝑥1 = 0.5789,𝑥2 = 𝑥3 = 𝑥4 =
1, 𝑥5 = 0.7368, y 𝑍 = 108.68 ($ 𝑚𝑖𝑙𝑙𝑜𝑛𝑒𝑠). La solución no tiene sentido porque
la 𝑥1 y 𝑥5 binarias asumen valores fraccionarios. Podemos redondear la
solución al entero más cercano, lo que da𝑥1 = 𝑥5 = 1. Sin embargo, la
solución resultante infringe las restricciones.
Además, el concepto de redondeo carece de sentido en este caso porque 𝑥𝑗
representa una decisión “sí-no”.

2. Problema de cobertura de conjunto

En esta clase de problemas, varias plantas ofrecen servicios que se traslapan


a varias instalaciones. El objetivo es determinar la cantidad mínima de plantas
que cubren (es decir, que satisfacen las necesidades de servicio de) cada
instalación. Por ejemplo, se pueden construir plantas de tratamiento de agua
en varios lugares, y cada planta sirve a un grupo de ciudades. El traslape
ocurre cuando a una ciudad dada le da servicio más de una planta.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

8
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Ejemplo.Instalación de teléfonos de seguridad

Para promover la seguridad en la universidad, el Departamento de Seguridad


de la U de A está en proceso de instalar teléfonos de emergencia en lugares
seleccionados. Dicho departamento desea instalar la cantidad mínima de
teléfonos, para que cada una de las calles principales dela universidad tenga
al menos un teléfono. La Figura 1 es un mapa de las calles principales (A a K)
de la universidad.

Figura 1: Esquema del problema

Es lógico poner los teléfonos en los cruces de las calles, para que cada uno
dé servicio cuando menos a dos calles. En la Figura 1 se ve que la
distribución de las calles requiere un máximo de ocho ubicaciones de
teléfono.

¿En qué lugares se debe instalar un teléfono?

Formule el problema como un modelo de PLE.

Solución

Se definirá

1, 𝑠𝑖 𝑢𝑛 𝑡𝑒𝑙é𝑓𝑜𝑛𝑜 𝑒𝑠𝑡á 𝑒𝑛 𝑒𝑙 𝑙𝑢𝑔𝑎𝑟 𝑗


𝑥𝑗 = para 𝑗 = 1,2,3,4,5,6,7,8
0, 𝑒𝑛 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑟𝑖𝑜

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

9
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Para cumplir con las restricciones del problema se requiere instalar al menos
un teléfono en cada una de las 11 calles (A a K). Así, el modelo viene a ser

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8
𝑠𝑢𝑗𝑒𝑡𝑎 𝑎
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (Calle A)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleB)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleC)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleD)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleE)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleF)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleG)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleH)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleI)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleJ)
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 ≥1 (CalleK)
𝑥𝑗 = (0,1) , 𝑗 = 1,2,3, … , 8
La función objetivo de arriba minimiza la cantidad total de teléfonos que deben
instalarse en las calles. Las variables de decisión 𝑥𝑗 indican que un teléfono 𝑗
debe o no instalarse en dicho lugar. Cada una de las restricciones muestra
que para una calle dada debe instalarse al menos un teléfono. Por ejemplo
sobre la Calle A, se tiene dos posibles instalaciones (instalar el teléfono 1 y el
2, o al menos uno de los dos teléfonos, ya que la restricción dice que si o si la
Calle A debe contar con al menos un teléfono. Las variables de decisión en
este caso asumen necesariamente valores binarios (0-1) no pueden asumir
valores continuos positivos ni valores enteros positivos superiores al 1.

Comentarios. En el sentido estricto, los problemas de cobertura se


caracterizan por los siguientes criterios: (1) Las variables 𝑥𝑗 , 𝑗 = 1, 2, … , 𝑛 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), y (4) la función
objetivo minimiza 𝑐1 𝑥1 + 𝑐2 𝑥2 + … + 𝑐𝑛 𝑥𝑛 , donde𝑐𝑗 > 0 para toda 𝑗 =
1, 2, . . . , 𝑛.
En este ejemplo, 𝑐𝑗 = 1 para todas las 𝑗. Si 𝑐𝑗 representa el costo de
instalación en la intersección 𝑗, entonces estos coeficientes pueden asumir
valores diferentes de 1.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

10
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

1.4 Programación Entera Mixta

3. Problema de 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 𝐹 es el cargo fijo, 𝑐 es el costo unitario variable, y 𝑥 es el
nivel de producción, la función de costo se expresa como:

𝐹 + 𝑐𝑥, 𝑠𝑖 𝑥 > 0
𝐶(𝑥) =
0, 𝑒𝑛 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑟𝑖𝑜

La función 𝐶(𝑥) es analíticamente insoluble porque implica una discontinuidad


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

Ejemplo.Selección de una compañía telefónica

Tres empresas telefónicas pidieron que me suscribiera a su servicio de larga


distancia dentro del país. MaBell cobra $16 fijos por mes, más $0.25 por
minuto. PaBell cobra $25 por mes, pero el costo por minuto se reduce a
$0.21. Y con BabyBell, la tarifa fija es $18 mensual, y la proporcional es $0.22
por minuto. Suelo hacer un promedio de 200 minutos de llamadas de larga
distancia al mes. Suponiendo que no pague el cargo fijo si no hago llamadas,
y que puedo repartir a voluntad mis llamadas entre las tres empresas, ¿cómo
debo repartir las llamadas entre las tres empresas para minimizar mi recibo
telefónico mensual?

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

11
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Restricciones “Uno - u – otro” y “Si – entonces”

En el problema de cargo fijo, 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”).

Se definen:

𝑥1 = 𝑀𝑖𝑛𝑢𝑡𝑜𝑠 𝑑𝑒 𝑙𝑎𝑟𝑔𝑎 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑝𝑜𝑟 𝑚𝑒𝑠 𝑐𝑜𝑛 𝑀𝑎𝐵𝑒𝑙𝑙 Variables de decisión


𝑥2 = 𝑀𝑖𝑛𝑢𝑡𝑜𝑠 𝑑𝑒 𝑙𝑎𝑟𝑔𝑎 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑝𝑜𝑟 𝑚𝑒𝑠 𝑐𝑜𝑛 𝑃𝑎𝐵𝑒𝑙𝑙
𝑥3 = 𝑀𝑖𝑛𝑢𝑡𝑜𝑠 𝑑𝑒 𝑙𝑎𝑟𝑔𝑎 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑝𝑜𝑟 𝑚𝑒𝑠 𝑐𝑜𝑛 𝐵𝑎𝑏𝑦𝐵𝑒𝑙𝑙

𝑦1 = 1, si 𝑥1 > 0 y 0 si 𝑥1 = 0
Variables binarias
𝑦2 = 1, si 𝑥2 > 0 y 0 si𝑥2 = 0
𝑦3 = 1, si 𝑥3 > 0 y 0 si 𝑥3 = 0

Se puede asegurar que 𝑦𝑗 sea igual a 1 si 𝑥𝑗 es positiva usando la restricción


𝑥𝑗 ≤ 𝑀𝑦𝑗 , 𝑗 = 1, 2, 3

Se debe seleccionar el valor de 𝑀 lo suficientemente grande como para no


restringir en forma artificial a las variables 𝑥𝑗 . Como hago aproximadamente
200 minutos de llamadas por mes,entonces 𝑥𝑗 ≤ 200 para toda 𝑗, y se puede
seleccionar 𝑀 = 200 con seguridad.
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)

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

12
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Esta formulación indica que la tarifa fija del 𝑗 − é𝑠𝑖𝑚𝑜 mes será parte de la
función objetivo 𝑍 sólo si 𝑦𝑗 = 1, lo cual sólo puede suceder si 𝑥𝑗 > 0 (de
acuerdo con las últimas tres restriccionesdel modelo). Si 𝑥𝑗 = 0 en el óptimo,
entonces la minimización de 𝑍, junto con el hecho de que el coeficiente
objetivo de 𝑦𝑗 es estrictamente positivo, obligará a que 𝑦𝑗 sea igual a cero, que
es lo que se quería.

4. Restricciones “o bien”

Ejemplo. Modelo de secuenciación de trabajos

Jobco usa una sola máquina para procesar tres trabajos. El tiempo de
procesamiento y la fecha de entrega (en días) para cada trabajo se ven en la
siguiente tabla. Las fechas de entrega se miden a partir de la referencia cero,
que es el tiempo supuesto de inicio del primer trabajo.

Tabla 4: Tabla de parámetros del Ejemplo

El objetivo del problema es determinar la secuencia mínima de penalización


por retraso al procesar los tres trabajos.

Solución

Definiremos a
𝑥𝑗 = 𝐹𝑒𝑐ℎ𝑎 𝑑𝑒 𝑖𝑛𝑖𝑐𝑖𝑜 𝑑𝑒𝑙 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑗 (𝑒𝑛 𝑑í𝑎𝑠 𝑎 𝑝𝑎𝑟𝑡𝑖𝑟 𝑑𝑒 𝑙𝑎 𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎 𝑐𝑒𝑟𝑜)

El problema tiene dos clases de restricciones: las de no interferencia (para


que los trabajos no se procesen al mismo tiempo) y las restricciones de fecha
de vencimiento.

Primero se examinarán las restricciones de no interferencia.


Dos trabajos, 𝑖 y 𝑗, con tiempos de procesamiento 𝑝𝑖 y 𝑝𝑗 , no se procesarán al
mismo tiempo si 𝑥𝑖 ≥ 𝑥𝑗 + 𝑝𝑗 o si 𝑥𝑗 ≥ 𝑥𝑖 + 𝑝𝑖 , dependiendo de si el trabajo 𝑗 es
anterior al 𝑖, o viceversa. Como todos los programas matemáticos manejan

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

13
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

sólo restricciones simultáneas, se transformarán las restricciones “o bien”


(también se llaman “uno u otro”) a las siguientes restricciones simultáneas.

1, 𝑠𝑖 𝑖 𝑒𝑠 𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑎 𝑗
𝑦𝑖𝑗 =
0, 𝑠𝑖 𝑗 𝑒𝑠 𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟 𝑎 𝑖

Para 𝑀 suficientemente largo, la restricción “o bien” se convierte a las


restricciones simultáneas siguientes
𝑀𝑦𝑖𝑗 + (𝑥𝑖 − 𝑥𝑗 ) ≥ 𝑝𝑗 y 𝑀(1 − 𝑦𝑖𝑗 ) + (𝑥𝑗 − 𝑥𝑖 ) ≥ 𝑝𝑖

Esta conversión garantiza que sólo puede estar vigente una de las dos
restricciones en cualquier momento. Si 𝑦𝑖𝑗 = 0, la primera restricción es activa
y la segunda es redundante (porque en su lado izquierdo estará 𝑀, que es
mucho mayor que 𝑝𝑖 ). Si 𝑦𝑖𝑗 = 1, la primera restricción es redundante y la
segunda es activa.

A continuación se examina la restricción de la fecha de vencimiento. Como 𝑑𝑗


es la fecha de vencimiento para el trabajo 𝑗, sea 𝑠𝑗 la variable no restringida.
Entonces, la restricción correspondiente es
𝑥𝑗 + 𝑝𝑗 + 𝑠𝑗 = 𝑑𝑗
Si 𝑠𝑗 ≥ 0, se cumple con la fecha de entrega, y si 𝑠𝑗 < 0, se incurre en una
penalización por retraso.

Si se usa la sustitución
𝑠𝑗 = 𝑠𝑗+ − 𝑠𝑗− , 𝑠𝑗+ , 𝑠𝑗− ≥ 0

la restricción se vuelve
𝑥𝑗 + 𝑠𝑗+ − 𝑠𝑗− = 𝑑𝑗 − 𝑝𝑗
El costo de penalización por retraso es proporcional a 𝑠𝑗− .

El modelo para este problema es

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 19𝑠1− + 12𝑠2− + 34𝑠3−


𝑠𝑢𝑗𝑒𝑡𝑎 𝑎
−𝑥1 − 𝑥2 + 𝑥3 + 𝑀𝑦12 + 𝑀𝑦13 + 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 20 − 𝑀
−𝑥1 + 𝑥2 + 𝑥3 − 𝑀𝑦12 + 𝑀𝑦13 + 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 50 − 𝑀

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

14
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

−𝑥1 + 𝑥2 − 𝑥3 + 𝑀𝑦12 + 𝑀𝑦13 + 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 15 − 𝑀
−𝑥1 + 𝑥2 + 𝑥3 + 𝑀𝑦12 − 𝑀𝑦13 + 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 50 − 𝑀
−𝑥1 + 𝑥2 − 𝑥3 + 𝑀𝑦12 + 𝑀𝑦13 + 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 15 − 𝑀
−𝑥1 − 𝑥2 + 𝑥3 + 𝑀𝑦12 + 𝑀𝑦13 − 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 20 − 𝑀
−𝑥1 + 𝑥2 + 𝑥3 + 𝑀𝑦12 + 𝑀𝑦13 + 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 25 − 5
−𝑥1 + 𝑥2 + 𝑥3 + 𝑀𝑦12 + 𝑀𝑦13 + 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 22 − 20
−𝑥1 + 𝑥2 + 𝑥3 + 𝑀𝑦12 + 𝑀𝑦13 + 𝑀𝑦23 + 𝑠1+ − 𝑠1− + 𝑠2+ − 𝑠2− + 𝑠3+ − 𝑠3− ≥ 35 − 15
𝑥1 , 𝑥2 , 𝑥3 , 𝑠1+ , 𝑠1− , 𝑠2+ , 𝑠2− , 𝑠3+ , 𝑠3− ≥ 0
𝑦12 , 𝑦13 , 𝑦23 = (0,1)

Las variables enteras, 𝑦12 , 𝑦13 , 𝑦23 , se introducen para convertir las
restricciones de uno u otro en restricciones simultáneas. El modelo que
resulta es un Programa Lineal Entero Mixto (PLEM).
Para resolverlo, se escoge 𝑀 = 1000, valor que es mayor que los tiempos de
procesamientode las tres actividades.

ALGORITMOS DE PROGRAMACIÓN ENTERA


Los algoritmos de PLE se basan en la explotación del tremendo éxito
computacional de la PL. La estrategia de estos algoritmos implica tres pasos.

Paso 1. Desahogue el espacio de soluciones del PLE al eliminar la restricción


entera en todas las variables enteras y reemplazar cualquier variable binaria y
con el intervalo continuo 0 ≤ 𝑦 ≤ 1. El resultado del desahogo es una
programación lineal.

Paso 2. Resuelva la PL, e identifique su óptimo continuo.

Paso 3. Comenzando desde el punto óptimo continuo, agregue restricciones


especiales que modifiquen iterativamente el espacio de soluciones de PL de
modo que finalmente dé un punto extremo óptimo que satisfaga los
requerimientos enteros.

Se desarrollaron dos métodos generales para generar las restricciones


especiales en el paso 3.
1. Método de ramificación y acotación (B&B)
2. Método de plano de corte

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

15
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Ninguno de los dos métodos es computacionalmente efectivo de forma


consistente. Sin embargo, la experiencia muestra que el método B&B (de
ramificación y acotamiento) es mucho más exitoso que el método del plano de
corte, por tal motivo será el método que estudiaremos en este curso.

1.5 Algoritmo de Ramificación y Acotamiento

El primer algoritmo de ramificación y acotamiento fue desarrollado en 1960


por A. Land y G. Doig para el problema general de PLE combinada o pura.
Más adelante, en 1965, E. Balas desarrolló el algoritmo aditivo para resolver
PLEs con variables binarias puras (cero o uno). Los cálculos del algoritmo
aditivo eran tan simples (principalmente sumas y restas) que en un inicio fue
aclamado como un posible gran avance en la solución de la PLE. Por
desgracia, no produjo las ventajas computacionales deseadas. Además, se
demostró que el algoritmo, que inicialmente no parecía estar relacionado con
la técnica de ramificación y acotamiento, era simplemente un caso especial
del algoritmo general de Land y Doig.

Esta sección presenta sólo el algoritmo de ramificación y acotamiento de


Land-Doig. Se utiliza un ejemplo numérico para proporcionar los detalles.

Ejemplo

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 5𝑥1 + 4𝑥2


𝑠𝑢𝑗𝑒𝑡𝑎 𝑎
10𝑥1 + 6𝑥2 ≤ 5

10𝑥1 + 6𝑥2 ≤ 45

𝑥1 , 𝑥2 enteras no negativas

Los puntos de cuadrícula en la Figura 2 de abajo definen el espacio de


soluciones de PLE.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

16
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Figura 2: Espacio de soluciones de PLE

El problema PL1 continuo asociado en el nodo 1 (área sombreada) se define


a partir de la PLE eliminando las restricciones enteras. La solución óptima de
PL1 es 𝑥1 = 3.75, 𝑥2 = 1.25 y 𝑍 = 23.75.

Como la solución óptima de PL1 no satisface las restricciones enteras, el


espacio de soluciones, se subdivide de una manera sistemática que
finalmente localiza el óptimo de la PLE. En primer lugar, el algoritmo de
ramificación y acotamiento selecciona una variable entera cuyo valor óptimo
en PL1 no es entero. En este ejemplo, tanto 𝑥1 como 𝑥2 califican.
Seleccionando 𝑥1 (= 3.75) arbitrariamente, la región 3 < 𝑥1 < 4 del espacio de
soluciones de PL1 contiene valores no enteros de 𝑥1 , y por lo tanto puede ser
eliminada. Esto equivale a reemplazar el PL1 original con dos problemas de
PL nuevos.

Espacio de PL2 = Espacio de PL1 + (𝑥1 ≤ 3)


Espacio de PL3 = Espacio de PL1 + (𝑥1 ≤ 4)

La Figura 3 ilustra los espacios de PL2 y PL3. Los dos espacios combinados
contienen los mismos puntos enteros factibles que la PLE original, es decir,
que no se pierde información cuando PL1 se reemplaza con PL2 y PL3.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

17
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Figura 3: Espacios de soluciones de PL2 y PL3

Si de una forma inteligente imponemos restricciones secuenciales que


excluyan las regiones libres de enteros (por ejemplo 3 < 𝑥1 < 4 en PL1),
estaremos reduciendo el espacio de soluciones continuo de PL1 a varios
subproblemas de programación lineal cuyos puntos extremos óptimos
satisfacen las restricciones enteras. El mejor de estos subproblemas es la
solución óptima de PLE.
Las nuevas restricciones, 𝑥1 ≤ 3 y 𝑥1 ≥ 4, son mutuamente excluyentes, de
modo que el PL2 y el PL3 en los nodos 2 y 3 deben tratarse como
programaciones lineales distintas, como se muestra en la Figura 4 de abajo.
Esta dicotomización da lugar al concepto de ramificación en el algoritmo de
ramificación y acotamiento. Es este caso, 𝑥1 se llama variable de
ramificación.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

18
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Figura 4: Ramificación del espacio de soluciones en PL2 y PL3

La PLE óptima queda o en PL2 o en PL3. Por consiguiente, ambos


subproblemas deben ser examinados. Arbitrariamente examinamos primero
PL2 (asociada con 𝑥1 ≤ 3):

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑍 = 5𝑥1 + 4𝑥2


𝑠𝑢𝑗𝑒𝑡𝑎 𝑎
10𝑥1 + 6𝑥2 ≤ 5

10𝑥1 + 6𝑥2 ≤ 45

10𝑥1 + 6𝑥2 ≤ 35

𝑥1 , 𝑥2 ≥ 0

La solución de PL2 es 𝑥1 = 3, 𝑥2 = 2 y 𝑍 = 23. La solución de PL2 satisface


los requerimientos enteros para 𝑥1 y 𝑥2 . De ahí que se dice que PL2 debe ser
sondeado a fondo, lo que significa que ya no puede dar una solución de
programación lineal entera mejor y ya no se requiere ninguna otra
ramificación que provenga del nodo 2.

En este momento no podemos decir que la solución entera obtenida con PL2
sea óptima para el problema original, porque PL3 puede producir una mejor
solución entera. Todo lo que podemos decir es que 𝑍 = 23 es una cota
inferior del valor objetivo óptimo (máximo) de la PLE original. Esto significa
que cualquier subproblema no examinado que no puede producir un mejor

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

19
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

valor objetivo que la cota inferior, debe ser desechado como no promisorio. Si
un subproblema no examinado produce una mejor solución entera, entonces
el límite inferior debe ser actualizado como corresponde.

Dada la cota inferior 𝑍 = 23, examinamos PL3 (el único subproblema restante
no examinado en este momento). Debido al óptimo 𝑍 = 23.75 en el PL1 y a
que sucede que todos los coeficientesde la función objetivo son enteros, es
imposible que PL3 pueda producir una mejor solución entera (con 𝑍 > 23). En
consecuencia, desechamos PL3 y concluimos que fue sondeado a fondo.

El algoritmo de ramificación y acotamiento ya está completo porque PL2 y


PL3 se examinaron y sondearon a fondo, el primero para producir una
solución entera y el segundo porque no produjo una mejor solución entera.
Por lo tanto concluimos que la solución de programación lineal óptima es la
asociada con la cota inferior, o sea, 𝑥1 = 3,𝑥2 = 2 y 𝑍 = 23.

Considerando el algoritmo resultan dos preguntas:

1. En PL1, ¿podríamos haber seleccionado 𝑥2 como la variable de


ramificación en lugar de 𝑥1 ?
2. Cuando seleccionamos el siguiente subproblema a ser examinado,
¿podríamos haber solucionado primero PL3 en lugar de PL2?

La respuesta a ambas preguntas es “sí” pero los cálculos subsiguientes


pueden diferir dramáticamente.
La figura siguiente (Figura 5) demuestra este punto.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

20
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Figura 5: Ramificación del espacio de soluciones en PL2 a PL7

Supongamos que examinamos primero PL3 (en lugar de PL2 como lo hicimos
en la figura anterior). La solución es 𝑥1 = 4, 𝑥2 = 0.83 y 𝑍 = 23.33.
Como 𝑥2 (= 0.83) no es entera, PL3 se examina más a fondo creando los
subproblemas PL4 y PL5 por medio de las ramas 𝑥2 ≤ 0 y 𝑥2 ≥ 1,
respectivamente. Esto significa que:

Espacio de PL4 = Espacio de PL3+ (𝑥 ≤ 0)


= Espacio PL1+ (𝑥1 ≥ 4) + (𝑥2 ≤ 0)
Espacio de PL5 = Espacio de PL3+ (𝑥2 ≥ 1)
= Espacio PL1 + (𝑥1 ≥ 4) + (𝑥2 ≥ 1)

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

21
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Ahora tenemos tres subproblemas “desconectados” que se deben examinar:


PL2, PL4 yPL5. Supongamos que arbitrariamente examinamos primero PL5.
No tiene ninguna solución factible, y por consiguiente se sondeó a fondo. A
continuación, examinamos PL4. La solución óptima es 𝑥1 = 4.5, 𝑥2 = 0 y 𝑍 =
22.5. El valor no entero de 𝑥1 conduce a las ramificaciones 𝑥1 ≤ 4 y 𝑥1 ≥ 5 y
la creación de los subproblemas PL6 y PL7 a partir del PL4.

Espacio de PL6 = Espacio de PL1+ (𝑥1 ≥ 4) + (𝑥2 ≤ 0) + (𝑥1 ≤ 4)


Espacio de PL7 = Espacio de PL1 + (𝑥1 ≥ 4) + (𝑥2 ≤ 0) + (𝑥1 ≥ 5)

Ahora, los subproblemas PL2, PL6 y PL7 permanecen sin ser examinados. Si
seleccionamos PL7 para examinarlo, el problema está sondeado a fondo
porque no tiene ninguna solución factible. A continuación, seleccionamos PL6.
El problema da por resultado la primera solución entera (𝑥1 = 4, 𝑥2 = 0, 𝑍 =
20), y, por lo tanto, proporciona la primera cota inferior (= 20) del valor
objetivo óptimo de la PLE. Sólo falta examinar el subproblema PL2, y da una
mejor solución entera (𝑥1 = 3, 𝑥2 = 2,𝑍 = 23). De estemodo, la cota inferior se
actualiza de 𝑍 = 20 a 𝑍 = 23. A estas alturas, todos los subproblemas han
sido sondeados (examinados) a fondo, y la solución óptima es la asociada
con la cota inferior más actualizada, es decir, 𝑥1 = 3,𝑥2 = 2 y 𝑍 = 23.

La secuencia de solución para obtener la solución en la Figura 5 de arriba


(PL1 → PL3 → PL5 →PL4 →PL7 →PL6 →PL2) es un escenario del peor caso
que, sin embargo, muy bien puede ocurrir en la práctica. En la Figura 4,
tuvimos suerte de “tropezarnos” con una buena cota inferior en el primer
subproblema (PL2), y que a su vez nos permitiera examinar a fondo PL3 sin
necesidad de ningún examen adicional. En esencia, completamos el
procedimiento resolviendo un total de dos subproblemas PL. En la Figura 5 la
historia es diferente, resolvimos siete subproblemas PL para completar el
algoritmo de ramificación y acotamiento.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

22
Departamento de Ciencias Básicas
Facultad Politécnica DCB_03_00
Universidad Nacional de Asunción

Comentarios. El ejemplo apunta hacia una debilidad importante en el


algoritmo de ramificación y acotamiento. Dado que tenemos múltiples
opciones, ¿cómo seleccionamos el siguiente subproblema y su variable de
ramificación? Aun cuando hay métodos para mejorar la habilidad del algoritmo
de ramificación y acotamiento para “prever” cual rama puede conducir a una
solución de PLE mejorada, no existe una teoría sólida con resultados
consistentes, y aquí yace la dificultad que afecta los cálculos en la PLE.
Desafortunadamente, hasta la fecha, y después de décadas de investigación
junto con tremendos avances en las computadoras, los códigos de PLE no
son totalmente confiables. Sin embargo, los solucionadores comerciales
disponibles (por ejemplo CPLEX y XPESS) son excelentes para resolver
problemas muy grandes.

Bibliografía
• Hillier, F. y Lieberman, G. (2010). Introducción a la Investigación de
Operaciones, México, D.F. :McGRAW-Hill/Interamericana Editores, S.A. de C.V.

• Render, B.; Stair, R. y Hanna, M. (2012). Métodos cuantitativos para los


negocios. Undécima edición. México : Pearson Educación.

• Taha, H. A. (2004). Investigación de Operaciones, México, D.F. : Pearson


Educación.

• Winston, W. (2005). Investigación de operaciones. Aplicaciones y algoritmos.


México D.F., México: International Thomson Editores.

Facultad Politécnica UNA | www.pol.una.py – www.educa.una.py/politecnica

23

También podría gustarte