You are on page 1of 15

Contenido

Introducción .......................................................................... Error! Bookmark not defined.


INTRODUCCIÓN Y CASOS DE APLICACIÓN ................................................................ 3
PROGRAMACIÓN ENTERA MIXTA ............................................................................. 7
MÉTODO DE GOMORY ...................................................................................................... 9
MÉTODO DE BIFURCACIÓN Y ACOTACIÓN ................................................................ 9
Conclusión. ........................................................................................................................... 14
Bibliografía ........................................................................................................................... 14

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

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.
No siempre es admisible que las variables de un PL tomen valores continuos,
existen:
• Decisiones dicotómicas (si-no)
• Decisiones que deben tomarse en unidades discretas
Si se requiere que todas las variables sean enteras, se dice que se habla de
Programación Lineal Entera Pura; si se necesita que algunas de las variables de
decisión sean números enteros, se tiene un problema de Programación Lineal
Entera Mixta.
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.

DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y BINARIO

Un modelo de programación entera es un modelo que contiene restricciones y una


función objetivo idénticas a las formuladas por planeación lineal. La única
diferencia es que una o más de las variables de decisión tienen que tomar un valor
entero en solución final.
Existen tres tipos de modelos de programación entera:
* Pura

3
* Mixta
* Binaria

PROGRAMACIÓN ENTERA PURA

Un modelo entero puro (PLE), es cómo su nombre lo indica, un problema en el


que se exige que todas las variables de decisión tengan valores enteros. Por
ejemplo

Min 6x1 + 5x2 + 4x3


s.a. 108x1 + 92x2 + 58x3 >= 576
7x1 + 18x2 + 22x3 >= 83
* X1, x2, x3> =0 y enteros

* 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:

Xij : # escritorios de modelo j = E, S a producir por semana en la planta i =


1, 2

F.O.
Máx Z = (350 - 250) X1E + (275 - 200) X1S +(350 - 260) X2E + (275 - 180) X2s

Restricciones de Capacidad:

7X1E + 4X1S <= 80 horas/semana Planta 1


6X2E + 5X2S <= 50 horas/semana Planta 2

Restricciones de Presupuesto:

250X1E + 260X2E <= $ 2000 Escritorios Ejecutivos


200X1S + 180X2S <= $ 2200 Escritorios Secretariales

Restricciones de No-Negatividad:

X1E ,X1S ,X2E ,X2S >= 0

Nuevas Variables y Restricciones:

binaria Yi = 1 se produce en la planta i = 1,2


0 no se produce
binaria Yj = 1 se producen escritorios del modelo j = E, S
0 no se producen

Decisión de Producción en cada Planta

7X1E + 4X1S <= 80 y1 Planta 1


6X2E + 5X2S <= 50 y2 Planta 2

Decisión de Producir cada Modelo

100 yE <= X1E + X2E <= M yE Escritorios Ejecutivos


100 yS <= X1S + X2S <= M yS Escritorios Secretariales

Función Objetivo Modificada:

5
Máx Z = (350 - 250) X1E + (275 - 200) X1S +(350 - 260) X2E + (275 - 180) X2s
- 600 y1 - 900 y2
PROBLEMA 2:

Xj : # onzas de alimento j = F1, F2 a consumir / día

F.O.
Min Z = 6 x1 + 8 x2

Restricciones de Requerimientos Nutritivos

100 x1 + 200 x2 >= 1000 unidades de A


400 x1 + 250 x2 >= 2000 unidades de B
200 x1 + 200 x2 >= 1500 unidades de C

Restricciones de No-Negatividad:

X1 ,X2 >= 0

a) Costos Semifijos de Pedidos

(binaria) Yj = 1 se ordena la compra de alimento j = F1, F2


0 no se ordena la compra

F.O.
Min Z = 6 x1 + 8 x2 + 5 y1 + 7.5 y2

x1 <= M y1
x2 <= M y2

b) Sólo es necesario satisfacer dos de los tres requerimientos nutritivos:

(binaria) Wk = 1 restricción k = 1, 2, 3 se considera en el modelo


0 no se considera

100 x1 + 200 x2 >= 1000 - M (1 - w1 )


400 x1 + 250 x2 >= 2000 - M (1 - w2 )
200 x1 + 200 x2 >= 1500 - M (1 - w3 )

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.

¿Cómo debe programarse la producción para obtener la máxima cantidad de


artículos?

Construcción del modelo


Para un mejor entendimiento elaboremos un diagrama de la situación

7
Definición de variables

Xi = Número de tandas de producción que realiza la máquina i.


Cada tanda de producción de las máquinas utiliza cierta cantidad de las materias
primas y produce cierta cantidad de los componentes A y B, con los cuales se
obtiene el ensamble del producto final.
Como para cada unidad del ensamble se utilizan cuatro unidades del componente
A y tres del componente B, se concluye que el número total de ensambles
obtenidos será el resultado de dividir por cuatro el número de componentes tipo A,
pero también debe ser igual al número de componentes tipo B, dividido por tres.
Necesitamos entonces definir también que

XA = número de componentes de tipo A obtenidas.


XB = número de componentes de tipo B obtenidas.

PROGRAMACIÓN ENTERA BINARIA


Utiliza variables binarias

En algunos problemas se restringe el valor de las variables a 0 o 1. Son de


particular interés debido a que se pueden usar las variables 0–1 para representar
decisiones dicotómicas (sí o no). Diversos problemas de asignación, ubicación de
plantas, planes de producción y elaboración de cartera, son de programación
lineal entera 0–1.
Existen dos métodos para generar las restricciones especiales que fuercen la
solución óptima del problema, hacia la solución óptima entera deseada:

- Método de ramificar y acotar.


- Método de planos de corte.

Desafortunadamente, ninguno de los dos métodos es efectivo en la solución de


problemas de programación lineal entera.

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

MÉTODO DE BIFURCACIÓN Y ACOTACIÓN


El método de bifurcación y acotación (B&B, de Branch and Bound) resuelve un
PPLE resolviendo una secuencia ordenada de PPLs que se obtienen relajando las
restricciones de integralidad y añadiendo restricciones adicionales. El número de
restricciones adicionales crece a medida que el método B&B progresa. Estas
restricciones permiten separar la región factible en subregiones complementarias.
El método B&B establece inicialmente cotas inferior y superior del valor óptimo de
la función objetivo. El mecanismo de bifurcación aumenta progresivamente el valor
de la cota inferior y disminuye también progresivamente el valor de la cota

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.

4.2 Si, por el contrario, la solución obtenida no satisface las restricciones de


integralidad y el valor de la correspondiente función objetivo esta entre las cotas
inferior y superior, se actualiza el valor de la cota inferior al valor de la función
objetivo del problema resuelto y se procede a bifurcar de nuevo. En caso de
maximizaciones, se actualiza el valor de la cota superior al valor de la función
objetivo del problema resuelto y se procede a bifurcar de nuevo.
4.3 Los problemas generados en el proceso de bifurcación se añaden a la lista de
problemas que han de resolverse.
Pasó 5: Poda
5.1 Poda por cotas: Tiene lugar si la solución no satisface las condiciones de
integralidad y además el valor de la función objetivo del problema resuelto es
mayor que la cota superior para minimizaciones o menor que la cota inferior para
maximizaciones. En este caso no es posible obtener soluciones mediante
bifurcaciones adicionales de esa rama.
5.2 Poda por infactibilidad: Tiene lugar si el problema es infactible.
5.3 Poda por integralidad: Tiene lugar si la solución del problema actual cumple las
restricciones de integralidad.

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.

En cuanto al punto 3, si el problema relajado y el subproblema generado mediante


bifurcación tan sólo difieren en la falta de alguna restricción, la poda puede
simplemente basarse en comprobar si la solución óptima de dicha relajación es
una solución factible para el subproblema, ya que en este caso dicha solución
también será óptima para este.

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