Professional Documents
Culture Documents
1
Introducción
Sus pioneros fueron Wagner (1950) y Manne (1959). Tradicionalmente estos
modelos se han considerado como subclases de la programación lineal, sin
embargo, las variables de decisión que aparecen en ellos sólo toman valores
enteros, por lo que realmente deben considerarse como problemas de
programación entera. El número de modelos lineales enteros y sus métodos de
solución es en la actualidad bastante extenso, lo que nos ha llevado a hacer una
selección considerando aquellos que creemos más interesantes y que aparecen
con mayor frecuencia en la realidad.
En algunas aplicaciones, sólo se permite que todas las variables tomen valores de
cero o uno, hablamos en estos casos de Programación Lineal Entera Binaria
(Digital); si se requiere que solamente algunas de las variables tomen valores de
cero o uno, se tiene un problema de Programación Lineal Entera Binaria Mixta.
2
INTRODUCCIÓN Y CASOS DE APLICACIÓN
3
* Mixta
* Binaria
* Es un modelo entero puro. Sin las restricciones adicionales x1, x2, x3 sean
enteros (o sea las condiciones de integralidad) sería un problema de programación
lineal
Ejemplo:
Corte de madera
Una marquetería debe enmarcar 175 cuadros de 119x96 cm.En el mercado puede
comparar varillas de la moldura indicada con longitud de 300 cm. ¿Cómo deben
cortase las varillas para obtener los marcos requeridos, obteniendo el menor
sobrante posible?
Solución
Modalidades de corte
X1: Número de varillas estándar cortadas en la modalidad i (i= 1, 2, 3)
Para 175 marcos se necesitan 350 piezas de cada longitud
Minimizar: 62x1 + 1x2 + 30x3 longitud sobrante
4
Sujeta a:
2x1 + 1x2 ≥ 350 piezas de longitud 119
2x2 + 3x3 ≥350 piezas de longitud 90
PROBLEMA 1:
F.O.
Máx Z = (350 - 250) X1E + (275 - 200) X1S +(350 - 260) X2E + (275 - 180) X2s
Restricciones de Capacidad:
Restricciones de Presupuesto:
Restricciones de No-Negatividad:
5
Máx Z = (350 - 250) X1E + (275 - 200) X1S +(350 - 260) X2E + (275 - 180) X2s
- 600 y1 - 900 y2
PROBLEMA 2:
F.O.
Min Z = 6 x1 + 8 x2
Restricciones de No-Negatividad:
X1 ,X2 >= 0
F.O.
Min Z = 6 x1 + 8 x2 + 5 y1 + 7.5 y2
x1 <= M y1
x2 <= M y2
w1 + w2 + w3 >= 2
6
PROGRAMACIÓN ENTERA MIXTA
Algunas de las variables de decisión tienen valores enteros. Las demás cumplen
con la suposición de divisibilidad.
Un problema en el que solo se requieren que algunas variables tengan valores
enteros mientras que otras pueden asumir cualquier número no negativo (es decir,
cualquier valor continuo) se llama programación lineal entera mixta (PLEM). Por
ejemplo, supóngase que en el problema solo x1 y x2 deben ser enteros y x3 no. El
problema resultante es:
Ejemplo:
Programación de la Producción de un Ensamble
Cierta empresa produce un artículo que se forma con cuatro piezas del
componente A y tres piezas del componente B.
Las piezas se pueden fabricar en cualquiera de las tres máquinas diferentes que
posee la compañía, las cuales transforman las dos materias primas en las piezas
que van al ensamble del producto final.
La tabla siguiente muestra el número de gramos de cada materia prima que deben
utilizarse en cada máquina para realizar un ciclo de producción de las
componentes. La misma tabla muestra el número de componentes de cada tipo
que se obtienen en cada ciclo de producción de cada una de las maquinas, así
como el número de gramos disponibles de las materias primas.
7
Definición de variables
8
MÉTODO DE GOMORY
(Método de los planos cortantes)
Éste método sirve para solucionar problemas de más de dos (2) variables.
Algoritmo
1.- Encontrar la solución, empleando el método simplex.
2.- Si la solución es entera, entonces estamos en el óptimo.
3.- Si no es entera, introducir una restricción nueva para la variable
No entera, que tenga la mayor parte fraccional (Quebrar empates arbitrariamente)
y resolver el nuevo problema mediante el método dual simplex.
Nueva restricción a partir de la restricción actual que tenga la variable cuyo valor
en su parte fraccional sea mayor.
a) Escriba cada constante como la suma de: Un número entero de cual quiera
signo y una fracción no negativa, menor que uno (1).
b) Cambiar la ecuación trasladando los coeficientes enteros al lado derecho
9
superior. La diferencia entre estas cotas es una medida de la proximidad de la
solución actual a la óptima, si ésta existe.
Al minimizar, se obtiene una cota inferior de la solución óptima relajando las
restricciones de integralidad del PPLE inicial y resolviendo el PPL resultante.
Además, el valor de la función objetivo para cualquier solución del PPLE original
es una cota superior de la solución óptima. De manera análoga, al maximizar, la
solución del PPL relajado es una cota superior para el óptimo y cualquier solución
del PPLE original es una cota inferior de la solución óptima.
A continuación se enumeran los pasos del algoritmo B&B para un PPLE Mixta:
Paso 1: Iniciación
1. Se establece una cota superior (∞) y una cota inferior (−∞) de la solución
óptima.
2. Se resuelve el PPLE Mixta inicial relajando las restricciones de integralidad.
3. A) Si el problema relajado es infactible, el original también lo es y no hay
solución.
4. B) Si la solución obtenida satisface las condiciones de integralidad, es óptima.
5. C) En cualquier otro caso, se actualiza el valor de la cota correspondiente con el
valor de la función objetivo resultante.
Pasó 2: Bifurcación
1. Empleando la variable xk que ha de ser entera y no lo es, se generan mediante
bifurcación dos problemas. Si el valor de la variable que ha de ser entera xk es
a.b, donde a y b son sus partes entera y fraccional respectivamente, los problemas
fruto de la bifurcación son los siguientes.
2. A) El primer problema es el PPLE relajado al que se la añade la restricción xk≤a
B) El segundo es el PPLE relajado al que se le añade la restricción xk≥a+1
3. Estos problemas se colocan ordenadamente en una lista de problemas a
procesar que son resueltos secuencialmente o en paralelo. Obsérvese que la
técnica de bifurcación propuesta cubre completamente el espacio de soluciones.
Pasó 3: Solución
3.1 Se resuelve el siguiente problema en la lista de problemas a procesar.
Pasó 4: Acotación
4.1 Si la solución del problema actual satisface las condiciones de integralidad y el
valor óptimo de su función objetivo es menor que la cota superior actual, dicha
10
cota se actualiza al valor óptimo de la función objetivo del problema resuelto, y el
minimizador actual se almacena como el mejor candidato a minimizador del
problema original. En caso de maximizaciones, la cota inferior actual se actualiza
al valor óptimo de la función objetivo del problema resuelto si éste es menor que
dicha cota inferior.
Pasó 6: Optimalidad
6.1 Si la lista de problemas a procesar no está vacía, se continúa con el paso 3.
6.2 Si la lista de problemas a procesar está vacía, el procedimiento concluye.
6.3 Concluido el problema, si existe un candidato a minimizador, dicho candidato
es el minimizador; en caso contrario, el problema es infactible.
El algoritmo de B&B devuelve la solución óptima o notifica la infactibilidad bien en
el paso 1 ó en el paso 6. El proceso de bifurcación concluye por la poda de la
rama correspondiente como consecuencia de una de las tres razones siguientes:
1. La solución del problema relajado es mayor que la cota superior disponible en el
11
caso de minimizaciones, o menor que la cota inferior disponible para el caso de
maximizaciones.
2. El problema considerado es infactible.
3. La solución obtenida satisface las condiciones de integralidad.
Como puede verse, los pasos centrales del algoritmo B&B son la bifurcación, la
acotación y la poda. La diferencia entre un algoritmo
B&B u otro radica en las diferentes estrategias que pueden llevarse a cabo a la
hora de implementar tales pasos.
Estrategias de bifurcación y procesamiento
Cualquier variable que deba ser entera pero que no lo sea en la solución actual, es
una variable candidata para bifurcación. Cuál escoger no es una cuestión trivial, y
su respuesta ha de basarse en la estructura del problema.
Los problemas almacenados para ser procesados pueden tratarse mediante
estrategias en profundidad, en anchura o mixtas. La siguiente figura ilustra las dos
primeras alternativas. Normalmente el conocimiento técnico del problema permite
establecer el tipo de estrategia a utilizar.
Búsqueda en profundidad
Búsqueda en anchura
• Una estrategia de procesado en profundidad origina rápidamente problemas
fuertemente restringidos que producen buenas cotas superiores e inferiores. Da
lugar asimismo a problemas infactibles y por tanto a una deseable eliminación de
ramas.
• Por el contrario, una estrategia en anchura permite tratar problemas muy
similares, de lo que pueden desprenderse ventajas computacionales como es la re
optimización eficiente del problema relajado actual partiendo de la solución del
anterior.
Estrategias de acotación
La acotación es normalmente llevada a cabo mediante la denominada relajación
lineal, consistente en la obtención de la cota a partir de la resolución del PPL
obtenido relajando las restricciones de integralidad del PPLE original.
Sin embargo, existen otras posibles relajaciones del PPLE original, como la
relajación Lagrangiana en la que todo el conjunto de restricciones (Ax ≤ b en
12
notación matricial) es eliminado y la función objetivo del problema Maximixar
z=cTx es reemplazada por
Maximizar zR=cTx – λ(Ax – b), donde λ ≥0 es un vector fijo.
Si x* es una solución óptima del problema original z ≤ zR, por lo que resolviendo la
relajación Lagrangiana el valor óptimo de zR proporciona una cota válida para el
problema original. Escogiendo adecuadamente el valor del vector λ dicha cota
tiende a ser similar a la proporcionada por la solución de la relajación lineal, pero
con la ventaja de que sin las restricciones del problema la resolución de la
relajación Lagrangiana puede llegar a ser mucho más rápida.
En contrapartida, la poda llevada a cabo tras la acotación mediante la relajación
Lagrangiana no suele ser tan potente como la llevada a cabo tras la relajación
lineal. En general, dos son los factores deseables a la hora de escoger una u otra
estrategia de acotación: (a) una rápida resolución del problema relajado; y (b) la
obtención de una buena cota. En general, la relajación lineal suele ofrecer un buen
compromiso entre ambos factores.
Estrategias de poda
Como se ha comentado anteriormente, la poda de la rama correspondiente tiene
lugar por una de las tres razones siguientes:
1 1. La solución del problema relajado es mayor que la cota superior disponible en
el caso de minimizaciones, o menor que la cota inferior disponible para el caso de
maximizaciones.
2. El problema considerado es infactible.
3. La solución obtenida satisface las condiciones de integralidad.
En cuanto al punto 1 puede optarse por convertir el problema a la forma estándar
de maximización (tal y como se vio en el Tema 4) y podar siempre que la solución
del problema relajado sea inferior al óptimo actual.
13
Conclusión.
Cualquier variable que deba ser entera pero que no lo sea en la solución actual, es
una variable candidata para bifurcación. Cuál escoger no es una cuestión trivial, y
su respuesta ha de basarse en la estructura del problema.
Los problemas almacenados para ser procesados pueden tratarse mediante
estrategias en profundidad, en anchura o mixtas.
Bibliografía
taha. (1995). investigacion de operacionesm. mexico: alfaomega.
winston, w. (1999). IO aplicaciones y algoritmos II. D.F: iberoamerica.
14
winston, w. l. (2005). IO aplicaciones y algoritmos . thomson.
15