Sunteți pe pagina 1din 13

PROGRAMACION ENTERA

Ing. Manuel Snchez Tern

INVESTIGACION DE OPERACIONES II

PROGRAMACION LINEAL CON VARIABLES ENTERAS

INTRODUCCION
Un programa lineal entero es aquel en que algunas o todas las variables estn
restringidas a tener valores enteros (o discretos), o incluso estn ms
restringidas tomando exclusivamente los valores 0 1. El empleo de
variables enteras hace ms complejo el problema de programacin lineal,
debido a la ausencia de continuidad. Si todas las variables de decisin
deben ser enteras, tenemos un problema de programacin lineal entero
puro (PE); si slo algunas variables de decisin deben ser enteras, pudiendo
ser continuas las dems, se trata de un problema de programacin lineal
entero mixto (PEM).
Existen otras situaciones en la que todas o algunas de las variables enteras
slo pueden tomar valores de 0 1 para encontrar una lgica adecuada y
solucionar el problema. A estas variables se les llama variables binarias.
Uno puede llegar a pensar que es ms fcil encontrar la solucin a un
programa lineal entero que a uno continuo, despus de todo, el nmero 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 solucin ptima entera muy fcil a partir
de la solucin ptima continua utilizando el mtodo grfico y explorando las
soluciones enteras cercanas dentro del rea de soluciones factibles. Pero
resulta que en la vida real (o sea aquella que est ms all de los problemas
introductorios de los textos guas) los problemas muy pocas veces, tienen dos
variables pues en un fenmeno por sencillo que sea tendr muchsimas
variables relevantes dentro de su comportamiento y el modelo matemtico
entre ms se simplifique menos representativo ser. Los problemas enteros
son ms difciles de resolver que los continuos, an no existe un algoritmo
que pueda resolverlos en forma consistente; el ms popular -por ahora- es
este algoritmo, el de Ramificacin y Acotamiento (Branch And Bound), la
mayora de los programas comerciales elaborados para resolver para
problemas lineales enteros utilizan este algoritmo.

APLICACIONES

Cajeros a asignar en turnos de atencin


Camiones a comprar para reparto de mercadera
Escritorios a elaborar para surtir un pedido
Computadoras a reparar en una semana
Acciones a comprar con propsito de inversin
Tiraje de libros

SOLUCION POR REDONDEO O TRUNCAMIENTO


Una primera aproximacin a la solucin de cualquier programa puede
obtenerse ignorando el requerimiento de variables enteras y resolviendo el
programa lineal resultante. Si la solucin ptima al programa lineal fuese
entera, entonces esta solucin es tambin la solucin ptima al programa
entero original. De otro modo se pueden redondear los componentes de la

Ing. Manuel
Snchez Tern

INVESTIGACION DE OPERACIONES II

primera aproximacin a los enteros factibles ms prximos y obtener una


segunda aproximacin.
Este procedimiento se emplea a menudo,
especialmente cuando la primera aproximacin involucra nmeros muy
grandes, pero puede ser inexacta cuando los nmeros son pequeos*.
* Una explicacin ms extendida sobre la consideracin de la solucin redondeada se encuentra en la
lectura sugerida del captulo 7: Optimizacin con Enteros, Tema 1: Introduccin a la optimizacin con
enteros del libro INVESTIGACION DE OPERACIONES EN LA CIENCIA ADMINISTRATIVA de G.D. Eppen y otros
PRENTICE-HALL, Mxico 2000, pgina 289.

Ing. Manuel
Snchez Tern

En este ltimo caso, la solucin 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.
Cuntos estantes de cada modelo debe fabricar con estos
recursos si desea maximizar sus ingresos?

Si las variables pudieran adoptar valores continuos


B

Declaracin de variables:
A: # estantes del modelo A
B: # estantes del modelo B
Funcin objetivo:
Max Z = 120A + 80B
Restricciones:
2A + 1B 6
7A + 8B 28
A, B 0
Solucin inicial:
A = 2.22; B = 1.56; Z = $391.11

Reduccin de la regin factible considerando solamente enteros


Una vez realizada la grfica de este problema, una solucin entera
obliga a la regin factible a reducirse a una malla de puntos dentro de la
regin anterior.
B

Declaracin de variables:
A: # estantes del modelo A
B: # estantes del modelo B
Funcin objetivo:
Max Z = 120A + 80B
Restricciones:
2A + 1B 6
7A + 8B 28
A, B 0, y enteros
Solucin inicial:
La solucin anterior deja de ser
factible

Solucin por redondeo


Ntese que si se redondea la solucin ptima con decimales se tendra 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 solucin factible.
B

Declaracin de variables:
A: # estantes del modelo A
B: # estantes del modelo B
Funcin objetivo:
Max Z = 120A + 80B

Restricciones:
2A + 1B 6
7A + 8B 28
A, B 0, y enteros
Solucin inicial:
A = 2.22; B = 1.56; Z = $391.11
Solucin por redondeo:
A = 2; B = 2; No es una solucin

factible

Solucin por truncamiento


El aparente punto solucin sera el ms cercano al ptimo continuo, sin
embargo Z no llega al mximo:
B

Declaracin de variables:
A: # estantes del
modelo A B: #
estantes del modelo
B
Funcin objetivo:
Max Z = 120A + 80B
Restricciones:
2A + 1B 6
7A + 8B 28
A, B 0, y enteros
Solucin inicial:
A = 2.22; B = 1.56; Z = $391.11
Solucin por redondeo:
A = 2; B = 2; No es una solucin
factible
Solucin por truncamiento:
A = 2; B = 1; Z=$320

Solucin ptima
B

Declaracin de variables:
A: # estantes del
modelo A B: #
estantes del modelo
B
Funcin objetivo:
Max Z = 120A + 80B
Restricciones:
2A + 1B 6
7A + 8B 28
A, B 0, y enteros
Solucin inicial:
A = 2.22; B = 1.56; Z = $391.11
Solucin por redondeo:
A = 2; B = 2; No es una solucin
factible
Solucin por truncamiento:
A = 2; B = 1; Z=$320
Solucin ptima:
A = 3; B = 0; Z=$360

ALGORITMO DE RAMIFICACION Y ACOTAMIENTO (BRANCH AND


BOUND)

Ramificaci
n
Si la primera aproximacin 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 ramificacin, tiene el efecto
de reducir la regin factible en forma tal, que elimina de
consideraciones posteriores la solucin anterior no entera para xi pero
conservando todas las posibles soluciones enteras al problema original.

Ejemplo:
Como
una
primera
aproximacin al programa entero
Max Z = 10x1 + x2
Sujeto a:

2x1+ 5x2 < 11


x1 y x2 > 0, y enteros

(1)

Se considera el programa lineal eliminando la condicin de que las


variables sean enteras. Y se determina la siguiente solucin: x1 = 5.5,
x2 = 0, con Z = 55. Ya que 5 < x1 < 6, por ramificacin se crean los
dos nuevos programas enteros:

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 ramificacin, se
obtienen primeras aproximaciones ignorando nuevamente los
requerimientos de enteros y resolviendo los programas lineales
resultantes. Si cualquiera de las primeras aproximaciones es todava
no entera, entonces el programa que la produjo se vuelve
candidato para seguir realizando
Z* = 50.2
ramificacio
2
nes.
Z* =
55

x1 <
5

x1 = 5
x2 = 0.2

1
x1 =
5.5
x2 = 0

No factible
x1 >
6

Encontramos que el programa (2) tiene la primera aproximacin x1 = 5,


x2 = 0.2, con Z = 50.2, mientras que el programa (3) no tiene solucin
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


x1 <
5
x2 > 1
x1 y x2 > 0, y enteros

(5)

Z* = 50
Z* =
50.2
x1 <
5
Z* = 55

2
x1 = 5
x2 = 0.2

1
x1 = 5.5
x2 = 0

x1 >
6

x2 <
0

No
factible

x2 >
1

4
x1 =
5
x2 =
0

Z* =
31

5
x1 = 3
x2 =
1

Ignorando los requerimientos de enteros, la solucin al programa (4) es x1


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

Acotamie
nto
Considrese que la funcin objetivo ha de maximizarse. El proceso de
ramificacin se contina hasta que se obtiene una primera aproximacin
entera (o sea, pues, una solucin entera). El valor de la funcin objetivo
para esta primera solucin entera se vuelve una cota inferior para el
problema y todos los programas cuyas primeras aproximaciones, enteras
o no, den valores de la funcin objetivo menores que la cota inferior, se
descartan.
El programa (4) tiene una solucin entera con Z = 50; entonces, 50 se
vuelve una cota inferior para el problema. El programa (5) tiene una
solucin 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
habra eliminado de esta forma aun si su primera aproximacin hubiera
sido no entera.
La ramificacin se contina a partir de aquellos programas que tengan
primeras aproximaciones no enteras y que den valores a la funcin
objetivo, mayores que la cota inferior. Si durante el proceso se descubre
una nueva solucin que tenga un valor de la funcin objetivo mayor que la
cota inferior actual, entonces este valor de la funcin 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 funcin objetivo menores que la nueva
cota inferior. El proceso de ramificacin contina hasta que ya no haya
bajo consideracin programas con primeras aproximaciones no enteras.

En este punto, la solucin actual de cota inferior es la solucin ptima al


programa entero inicial.
Si la funcin objetivo ha de minimizarse, el procedimiento es el mismo,
excepto que se emplean cotas superiores. As, el valor de la primera
solucin entera se vuelve una cota superior para el problema y se
eliminan los programas cuando sus valores Z de primera aproximacin son
mayores que la cota superior actual.

Consideraciones para los


clculos
Siempre se realizan las ramificaciones a partir de aquel programa que
parece estar ms cerca del valor ptimo. Cuando existen varios
candidatos para continuar las ramificaciones, se selecciona aqul que
tenga el mayor valor Z, si se va maximizar la funcin objetivo, o aqul que
tenga el menor valor Z, si se va a minimizar la funcin objetivo.
Las restricciones adicionales se agregan una a una. Si una primera
aproximacin incluye a ms de una variable no entera, las nuevas
restricciones se imponen a aquella variable que est ms lejos de ser un
entero; esto es, aquella variable cuya parte fraccionaria est ms 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 ms de una solucin ptima. En ese caso, se selecciona
arbitrariamente a una de las soluciones como la ptima y dejando a un lado
las dems.

S-ar putea să vă placă și