Sei sulla pagina 1di 9

PROGRAMACION ENTERA

Ing. Manuel Sánchez Terán


INVESTIGACION DE OPERACIONES II

PROGRAMACION LINEAL CON VARIABLES ENTERAS

 INTRODUCCION

Un programa lineal entero es aquel en que algunas o todas las variables están restringidas a tener valores
enteros (o discretos), o incluso están más restringidas tomando exclusivamente los valores 0 ó 1. El
empleo de variables enteras hace más complejo el problema de programación lineal, debido a la ausencia
de continuidad. Si todas las variables de decisión deben ser enteras, tenemos un problema de
programación lineal entero puro (PE); si sólo algunas variables de decisión deben ser enteras, pudiendo
ser continuas las demás, se trata de un problema de programación lineal entero mixto (PEM).

Existen otras situaciones en la que todas o algunas de las variables enteras sólo pueden tomar valores de
0 ó 1 para encontrar una lógica adecuada y solucionar el problema. A estas variables se les llama variables
binarias.

Uno puede llegar a pensar que es más fácil encontrar la solución a un programa lineal entero que a uno
continuo, después de todo, el número de soluciones continuas es infinito mientras que en las enteras es
finito. Pero desafortunadamente no es así. Cuando se tiene un problema de dos variables se puede
encontrar la solución óptima entera muy fácil a partir de la solución óptima continua utilizando el
método gráfico y explorando las soluciones enteras cercanas dentro del área de soluciones factibles. Pero
resulta que en la vida real (o sea aquella que está más allá de los problemas introductorios de los textos
guías) los problemas muy pocas veces, tienen dos variables pues en un fenómeno por sencillo que sea
tendrá muchísimas variables relevantes dentro de su comportamiento y el modelo matemático entre más
se simplifique menos representativo será. Los problemas enteros son más difíciles de resolver que los
continuos, aún no existe un algoritmo que pueda resolverlos en forma consistente; el más popular -por
ahora- es este algoritmo, el de Ramificación y Acotamiento (Branch And Bound), la mayoría de los programas
comerciales elaborados para resolver para problemas lineales enteros utilizan este algoritmo.

 APLICACIONES

• Cajeros a asignar en turnos de atención


• Camiones a comprar para reparto de mercadería
• Escritorios a elaborar para surtir un pedido
• Computadoras a reparar en una semana
• Acciones a comprar con propósito de inversión
• Tiraje de libros

 SOLUCION POR REDONDEO O TRUNCAMIENTO

Una primera aproximación a la solución de cualquier programa puede obtenerse ignorando el


requerimiento de variables enteras y resolviendo el programa lineal resultante. Si la solución óptima al
programa lineal fuese entera, entonces esta solución es también la solución óptima al programa entero
original. De otro modo se pueden redondear los componentes de la primera aproximación a los
enteros factibles más próximos y obtener una segunda aproximación. Este procedimiento se emplea a
menudo, especialmente cuando la primera aproximación involucra números muy grandes, pero puede
ser inexacta cuando los números son pequeños*.

* Una explicación más extendida sobre la consideración de la solución redondeada se encuentra en la lectura sugerida del capítulo 7:
Optimización con Enteros, Tema 1: Introducción a la optimización con enteros del libro INVESTIGACION DE OPERACIONES EN LA CIENCIA
ADMINISTRATIVA de G.D. Eppen y otros PRENTICE-HALL, México 2000, página 289.

Ing. Manuel Sánchez Terán 1


INVESTIGACION DE OPERACIONES II

En este último caso, la solución a un problema entero no debe determinarse mediante el redondeo de los
valores decimales que las variables adopten. Por ejemplo:

Un fabricante de muebles tiene 6 unidades de madera y 28 horas disponibles, durante las cuales fabricará estantes
decorativos. Estima que el modelo A requiere 2 unidades de madera y 7 horas de tiempo disponible, mientras que el
modelo B requiere 1 unidad de madera y 8 horas. Los precios de los estantes son $120 y $80, respectivamente.
¿Cuántos estantes de cada modelo debe fabricar con estos recursos si desea maximizar sus ingresos?

 Si las variables pudieran adoptar valores continuos

6
Declaración de variables:
A: # estantes del modelo A
5 B: # estantes del modelo B
Función objetivo:
4 Max Z = 120A + 80B
Restricciones:
3 2A + 1B ≤ 6
7A + 8B ≤ 28
A, B ≥ 0
2
Solución inicial:
A = 2.22; B = 1.56; Z = $391.11
1

A
1 2 3 4 5

 Reducción de la región factible considerando solamente enteros

Una vez realizada la gráfica de este problema, una solución entera obliga a la región factible a
reducirse a una malla de puntos dentro de la región anterior.

Declaración de variables:
6
A: # estantes del modelo A
B: # estantes del modelo B
5 Función objetivo:
Max Z = 120A + 80B
4 Restricciones:
2A + 1B ≤ 6
3 7A + 8B ≤ 28
A, B ≥ 0, y enteros
Solución inicial:
2
La solución anterior deja de ser factible
1

A
1 2 3 4 5

Ing. Manuel Sánchez Terán


2
INVESTIGACION DE OPERACIONES II

 Solución por redondeo

Nótese que si se redondea la solución óptima con decimales se tendría que A = 2 y B = 2, pero este
punto se encuentra fuera de la malla, así que no se la puede considerar siquiera como una solución
factible.

Declaración de variables:
6 A: # estantes del modelo A
B: # estantes del modelo B
5 Función objetivo:
Max Z = 120A + 80B
4
Restricciones:
2A + 1B ≤ 6
7A + 8B ≤ 28
3
A, B ≥ 0, y enteros
Solución inicial:
2
A = 2.22; B = 1.56; Z = $391.11
Solución por redondeo:
1 A = 2; B = 2; No es una solución factible

A
1 2 3 4 5

 Solución por truncamiento

El aparente punto solución sería el más cercano al óptimo continuo, sin embargo Z no llega al
máximo:

Declaración de variables:
6 A: # estantes del modelo A
B: # estantes del modelo B
5 Función objetivo:
Max Z = 120A + 80B
4
Restricciones:
2A + 1B ≤ 6
7A + 8B ≤ 28
3
A, B ≥ 0, y enteros
Solución inicial:
2
A = 2.22; B = 1.56; Z = $391.11
Solución por redondeo:
1 A = 2; B = 2; No es una solución factible
Solución por truncamiento:
A = 2; B = 1; Z=$320
A
1 2 3 4 5

Ing. Manuel Sánchez Terán 3


INVESTIGACION DE OPERACIONES II

 Solución óptima

B
Declaración de variables:
A: # estantes del modelo A
6
B: # estantes del modelo B
Función objetivo:
5
Max Z = 120A + 80B
Restricciones:
4 2A + 1B ≤ 6
7A + 8B ≤ 28
3 A, B ≥ 0, y enteros
Solución inicial:
2 A = 2.22; B = 1.56; Z = $391.11
Solución por redondeo:
1
A = 2; B = 2; No es una solución factible
Solución por truncamiento:
A = 2; B = 1; Z=$320
A Solución óptima:
1 2 3 4 5
A = 3; B = 0; Z=$360

 ALGORITMO DE RAMIFICACION Y ACOTAMIENTO (BRANCH AND BOUND)

Ramificación

Si la primera aproximación contiene una variable que no es entera, digamos xi, entonces
i1<xi<i2, donde i1 e i2 son enteros consecutivos no negativos; se generan dos nuevos programas
enteros al agregar al programa entero original una u otra de las siguientes restricciones: xi<i1 ,
xi>i2 . Este proceso, denominado ramificación, tiene el efecto de reducir la región factible en
forma tal, que elimina de consideraciones posteriores la solución anterior no entera para xi pero
conservando todas las posibles soluciones enteras al problema original.

Ejemplo: Como una primera aproximación al programa entero

Max Z = 10x1 + x2

Sujeto a: 2x1+ 5x2 < 11 (1)

x1 y x2 > 0, y enteros

Se considera el programa lineal eliminando la condición de que las variables sean enteras. Y se
determina la siguiente solución: x1 = 5.5, x2 = 0, con Z = 55. Ya que 5 < x1 < 6, por
ramificación se crean los dos nuevos programas enteros:

Ing. Manuel Sánchez Terán


4
INVESTIGACION DE OPERACIONES II

Max Z = 10x1 + x2

Sujeto a: 2x1+ 5x2 < 11 (2)

x1 < 5

x1 y x2 > 0, y enteros

Max Z = 10x1 + x2

Sujeto a: 2x1+ 5x2 < 11 (3)

x1 >6

x1 y x2 > 0, y enteros

Para los dos programas creados por el proceso de ramificación, se obtienen primeras
aproximaciones ignorando nuevamente los requerimientos de enteros y resolviendo los
programas lineales resultantes. Si cualquiera de las primeras aproximaciones es todavía no
entera, entonces el programa que la produjo se vuelve candidato para seguir realizando
ramificaciones. Z* = 50.2

2
x1 < 5 x1 = 5
Z* = 55 x2 = 0.2
1
x1 = 5.5
x2 = 0 x1 > 6 No factible

Encontramos que el programa (2) tiene la primera aproximación x1 = 5, x2 = 0.2, con Z = 50.2,
mientras que el programa (3) no tiene solución factible. Entonces, el programa (2) es candidato
para seguir realizando ramificaciones. Ya que 0 < x2 < 1, se agregan a (2) x2 < 0 ó x2 > 1, y
se obtienen los dos nuevos programas:

Max Z = 10x1 + x2

Sujeto a: 2x1+ 5x2 < 11 (4)

x1 < 5

x2 < 0 (en el cual x2 = 0)

x1 y x2 > 0, y enteros

Max Z = 10x1 + x2

Sujeto a: 2x1+ 5x2 < 11 (5)

x1 < 5

x2 > 1

x1 y x2 > 0, y enteros

Ing. Manuel Sánchez Terán 5


INVESTIGACION DE OPERACIONES II

Z* = 50

4
x2 < 0 x1 = 5
Z* = 50.2 x2 = 0
2
x1 < 5 x1 = 5
Z* = 55 Z* = 31
x2 = 0.2 x2 > 1
1 5
x1 = 5.5 x1 = 3
x2 = 0 No factible x2 = 1
x1 > 6
3

Ignorando los requerimientos de enteros, la solución al programa (4) es x1 = 5, x2 = 0, con Z = 50,


mientras que la solución al programa (5) es x1 = 3, x2 = 1, con Z = 31. Ya que ambas primeras
aproximaciones son enteras, no es necesario continuar las ramificaciones.

Acotamiento

Considérese que la función objetivo ha de maximizarse. El proceso de ramificación se continúa


hasta que se obtiene una primera aproximación entera (o sea, pues, una solución entera). El valor de
la función objetivo para esta primera solución entera se vuelve una cota inferior para el problema y
todos los programas cuyas primeras aproximaciones, enteras o no, den valores de la función
objetivo menores que la cota inferior, se descartan.

El programa (4) tiene una solución entera con Z = 50; entonces, 50 se vuelve una cota inferior para el
problema. El programa (5) tiene una solución con Z = 31. Ya que 31 es menor que la cota inferior
de 50, el programa (5) se elimina en cuanto a consideraciones posteriores y se le habría eliminado de esta
forma aun si su primera aproximación hubiera sido no entera.

La ramificación se continúa a partir de aquellos programas que tengan primeras aproximaciones no


enteras y que den valores a la función objetivo, mayores que la cota inferior. Si durante el proceso
se descubre una nueva solución que tenga un valor de la función objetivo mayor que la cota inferior
actual, entonces este valor de la función objetivo se vuelve la nueva cota inferior. El programa que
proporcionó la cota inferior anterior se elimina, así como todos aquellos programas cuyas primera
aproximaciones dan valores de la función objetivo menores que la nueva cota inferior. El proceso
de ramificación continúa hasta que ya no haya bajo consideración programas con primeras
aproximaciones no enteras. En este punto, la solución actual de cota inferior es la solución óptima
al programa entero inicial.

Si la función objetivo ha de minimizarse, el procedimiento es el mismo, excepto que se emplean


cotas superiores. Así, el valor de la primera solución entera se vuelve una cota superior para el
problema y se eliminan los programas cuando sus valores Z de primera aproximación son mayores
que la cota superior actual.

Ing. Manuel Sánchez Terán


6
INVESTIGACION DE OPERACIONES II

Consideraciones para los cálculos

Siempre se realizan las ramificaciones a partir de aquel programa que parece estar más cerca del
valor óptimo. Cuando existen varios candidatos para continuar las ramificaciones, se selecciona
aquél que tenga el mayor valor Z, si se va maximizar la función objetivo, o aquél que tenga el menor
valor Z, si se va a minimizar la función objetivo.

Las restricciones adicionales se agregan una a una. Si una primera aproximación incluye a más de
una variable no entera, las nuevas restricciones se imponen a aquella variable que esté más lejos de
ser un entero; esto es, aquella variable cuya parte fraccionaria esté más cerca de 0.5. En caso de
empate, se selecciona arbitrariamente una de las variables.

Finalmente, es posible que un programa entero o un programa lineal tengan más de una solución
óptima. En ese caso, se selecciona arbitrariamente a una de las soluciones como la óptima y dejando
a un lado las demás.

Ing. Manuel Sánchez Terán 7

Potrebbero piacerti anche