Sunteți pe pagina 1din 10

INVESTIGACIN

INGENIERA
INFORMTICA

PROGAMACIN LINEAL ENTERA


(PLE)
1. Introduccin
En este tema se presenta un tipo de problemas formalmente similares a los
problemas de programacin lineal, ya que en su descripcin solo se establecen
expresiones lineales. Sin embargo no responden a problemas lineales ya que
algunas (o todas) las variables del problema toman valores que no estn en un
conjunto continuo. Por ejemplo, pueden ser variables que toman valores 0 o 1
(binarias), o variables que toman valores enteros no negativos (0, 1, 2,...), etc.
Con el termino Programacin lineal entera, (PLE), nos referiremos al siguiente tipo
de Problemas: problemas que formalmente son problemas de programacin lineal,
Z =A x =b , x 0
Max / Min
pero en los que algunas variables estn restringidas a
tomar valores enteros.
Por ejemplo

x 1 0, x 2 0

y entera,

x 3 { 0,1 } , x 1

una variable como las que hemos

manejado hasta ahora, x2 una variable entera no negativa y x3 una variable


binaria, que toma nicamente dos valores, 0 o 1.
2. Aplicaciones De La Programacin Lineal Entera (Ple)
Las variables binarias

x j { 0,1 }

pueden utilizarse para modelar situaciones en las que

se decide si una accin se realiza,

x j=1

o si no se realiza

x j=0 . Un ejemplo tpico

de utilizacin de este tipo de variables es el problema de inversiones, a continuacin se


muestra una de sus versiones ms simplificadas.

EJEMPLO
Una empresa se dedica a la elaboracin de tres tipos de camisetas, C1, C2 y C3.
Para dicha elaboracin se utilizan horas de trabajo, metros de tela y tres
maquinas especificas (cada una para un tipo de camiseta). Dichas maquinas no
son de su propiedad por lo que deben alquilarlas, en la tabla siguiente se
muestran la disponibilidad diaria de horas de trabajo, metros de tela, costo de
elaboracin por tipo de camiseta, precio de venta de cada camiseta y el costo
Pgina 1

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

INVESTIGACIN

INGENIERA
INFORMTICA

diario de alquiler de las maquinas (una maquina se alquilara si se deciden


elaborar unidades del tipo de camisetas que la requieren). Con dicha informacin
hay que plantear un modelo de programacin lineal entera cuya
resolucin proporcione el plan de produccin de mximo beneficio.

Horas
Metros
Costo de produccin
Precio de venta
Costo de alquiler de
maquina

Camiseta
1
3
4
6
12
200

Camiseta
2
2
3
4
8
150

Camiseta
3
6
4
8
15
100

Disponibilida
d
150
160

SOLUCIN
Para plantear dicho problema en primer lugar se definen variables

x j , j=1,2,3

que

representan el nmero de camisetas de cada tipo elaboradas, una primera versin del
problema es:

Max Z=( 126 ) x 1 + ( 84 ) x 2 + ( 158 ) x 3


s.a.:

3 x1 +2 x 2+6 x 3 150
4 x 1 +3 x 2+ 4 x 3 160
x 1 , x 2 , x 3 0 y enteras
Pero en este planteamiento no se tiene en cuenta el costo del alquiler, para ello se

definen tres variables binarias

y j , j=1,2,3 , de tal forma que

elaboran camisetas de tipo j, es decir si


correspondiente. La variable

yj

y j >0

yj

toma valor 1 si se

y por tanto hay que alquilar la maquina

toma valor cero en caso contrario.

De esta forma la funcin objetivo se puede escribir en la forma

Max Z=( 126 ) x 1 + ( 84 ) x 2 + ( 158 ) x 3200 y 1150 y 2100 y 3


Pgina 2

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

INVESTIGACIN

INGENIERA
INFORMTICA

Ahora hay que garantizar que las variables

y j se comporten adecuadamente,

para ello se introducen las siguientes restricciones:

x1 M1 y1
x2 M2 y2
x3 M 3 y3
y 1 , y 2 , y3 { 0,1 }

Donde

Mj

ningn valor de

representa una cantidad grande que no pueda ser superada por

x j . Se puede observar que si

restriccin correspondiente debe tenerse que

x j >0

entonces para que se cumpla la

y j =1 . Por otro lado si

x j=0 entonces

y j podra tomar cualquier valor 0 o 1, pero como estamos maximizando e

yj

tiene

costo negativo entonces el propio algoritmo en el proceso de resolucin le asignara valor


0.

3. Resolucin de problemas de PLE


En esta seccin se desarrollan dos mtodos de resolucin de problemas de programacin
lineal entera. El primero de ellos esta diseado para problemas de programacin lineal
entera binaria (nicamente con variables 0,1) y el segundo para problemas de carcter
general, es decir para PLE puros o mixtos.
La idea bsica de ambos algoritmos es similar. Teniendo en cuenta que ciertas variables
del problema toman soluciones enteras (0,1, 2, 3,. . ., o 0/1) los algoritmos realizan

3.1 Mtodo enumerativo sencillo para PLE binarios puros


Este algoritmo solo es valido para problemas de programacin lineal entera con todas
las variables binarias.
Pgina 3

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

INVESTIGACIN

INGENIERA
INFORMTICA

Vamos a desarrollar el algoritmo para un formato especfico de los PLE: problema de


mnimo con todos los costos,

cj

no negativos

( c j 0, j )

Obviamente las dos imposiciones sobre los problemas no constituyen una restriccin
para el tipo de problemas a resolver. Si un problema es de mximo basta con considerar
la minimizacin de su funcin objetivo opuesta
algn

x j tiene

( Max Z Min(Z ) ) . Por otro lado, si

c j <0 entonces se realiza el cambio de variable

x j=1x j , esta nueva

variable tambin es una variable binaria y al realizar dicho cambio la nueva variable tiene
su costo igual a

c j =c j >0 . Por otro lado en la funcin objetivo aparece una constante

que se puede suprimir ya que no va a afectar al proceso de optimizacin.


Por tanto cualquier PLE binario se puede poner como mnimo con todos sus costos no
negativos.
EJEMPLO (Binarios Puros)

Max Z=3 x 1+ 2 x 25 x 32 x 4 +3 x5
s.a.:

x 1+ x 2 + x 3+ 2 x 4 + x 5 4
7 x1 +3 x 34 x 4 +3 x 5 8
11 x1 6 x2 +3 x 4 3 x 5 3
x j { 0,1 } , j=1,2, 5

Solucin

En primer lugar pasamos a mnimo considerando la funcin objetivo opuesto.

Min Z=3 x12 x 2 +5 x 3 +2 x 43 x 5

A continuacin, hacemos los cambios de variable

x 1=1x 1 ,

x 2=1x 2 ,

x 5=1x 5

sustituir obtenemos:

Min Z=3 x 1+2 x 2+ 5 x 3 +2 x 4 +3 x5 8


s.a.:

x 1x 2 + x 3+ 2 x 4 x5 1
7 x 1 +3 x3 4 x 4 3 x 5 2
Pgina 4

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

al

INVESTIGACIN

INGENIERA
INFORMTICA

11 x 1 +6 x 2+3 x 4 +3 x 5 1
x j { 0,1 } , j=1,2, 5
Y finalmente, para aplicar el algoritmo que vamos a desarrollar, ordenamos las variables
del problema segn el coeficiente de la funcin objetivo, de menor a mayor
(olvidndonos de la constante):

Min Z=2 x2 +2 x 4 +3 x 1+3 x 5 +5 x3


Una vez que se dispone el problema en la forma indicada, la idea del procedimiento es
muy sencilla. Por un lado mantenemos en una variable el mejor valor encontrado hasta el
momento, inicialmente Z = 1 (cota superior del valor optimo). Por otro lado tratamos de
buscar las soluciones en orden creciente de funcin objetivo (de mejor a peor soluciones).
La mejor solucin posible, si fuera factible, ser la solucin con todas las variables
tomando valor cero.

x 1=x 2=x3 =x 4=x 5=0 . Pero esta solucin no verifica la segunda restriccin (ni la

tercera), por tanto no puede ser candidata a ser solucin ptima.


Ahora continuamos considerando soluciones en las que solo una variable toma valor 1
y el resto son cero. La variable que toma valor 1 se toma siguiendo el orden que aparece
en la funcin objetivo, ya que, si por ejemplo

x 2=1

factible seguro que no podr ser mejorada por

y el resto cero, fuera una solucin

x 4=1

(resto cero), o

x 1=1

(resto

cero), etc.

x 2=1

y resto de variables valor cero. Solucin que no verifica la segunda

restriccin.
Consideramos la siguiente mejor solucin en la que solo una variable toma valor,
que es

x 4=1

y el resto cero.

x 4=1

x 1=1 (resto cero), solucin no factible por restriccin 3.

x 5=1

(resto cero), solucin no factible por restriccin 1.

(Resto cero), solucin factible de valor 3. Como dicho valor es mejor

(menor) que la mejor solucin almacenada (hasta el momento no tenemos ninguna


Pgina 5

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

INVESTIGACIN

INGENIERA
INFORMTICA

solucin almacenada), guardamos la solucin y actualizamos la cota superior Z =


3.
Aun queda una solucin en la que solo una variable toma valor

x3 ,

x 3 se encuentra a la derecha de

solucin no se comprueba por que

pero esta

x5

y su

coeficiente en la funcin objetivo ser igual o peor (mayor).


Tras comprobar las soluciones en las que solo una variable toma valor pasamos a
considerar las soluciones en las que dos variables toman valor 1 y el resto son cero. La
mejor de ellas ser la solucin en la que las dos primeras variables de la funcin objetivo
ordenada toman valor, despus cuando la primera y la tercera toman valor, despus
cuando la primera y la cuarta toman valor, y as sucesivamente.
Desde el momento el que se dispone de una cota superior Z lo primero que se
hace antes de comprobar la factibilidad es comprobar el valor de la funcin objetivo, si
dicho valor es peor que el de la cota, dicha solucin no merezca la pena y se elimina por
lo que denominaremos acotacin. Si el valor es mejor se procede con la comprobacin de
la factibilidad.

x 2=x 4=1 (resto cero). El VFO = 4 > Z = 3 por tanto independientemente de si

fuera factible o no dicha solucin no podr mejorar la que ya tenemos de antes,


por tanto se descarta.
Adems de descartar la solucin anterior por acotacin hay que tener en cuenta
que dicha solucin era, en cuanto a valor de la funcin objetivo, la mejor candidata de
todas (tiene las dos variables de ms a la izquierda de la funcin objetivo ordenada). Por
tanto, cualquier solucin de dos variables tomando valor 1 ser igual o peor que ella y
como ya es peor que la que nos defino la cota superior, descartamos automticamente,
por acotacin, todas las soluciones con dos variables tomando valor 1.
Las soluciones con 3, 4 o 5 variables tomando valor se descartan
automticamente, por que la mejor de cada una de ellas contiene en particular

x 2=x 4=1

que proporcionaba un valor peor que el de la cota superior almacenada.

Una vez estudiadas todas las soluciones, implcita o explcitamente, la solucin


ptima corresponde a la ltima vez que se actualiz la cota Z. En nuestro caso la
solucin es

x 5=1 ;

x 1=x 2=x3 =x 4=0

variable, obteniendo como solucin

Tras obtenerla deshacemos los cambios de

x 1=1 ;

x 2=1 ;

x 3=0 ;

x 4=0 ;

x 5=0

con un

VFO=5.

3.2 Mtodo de ramificacin y acotacin


Pgina 6

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

INVESTIGACIN

INGENIERA
INFORMTICA

En este apartado se considera la resolucin de problemas de programacin


lineal entera mixta con el formato siguiente:

Definicin 1. Llamaremos problema relajado de un problema de programacin


lineal entera al problema de programacin lineal obtenido al eliminar todas las
condiciones de integridad que existan sobre las variables.
EJEMPLO (Ramificacin y Acotamiento)

Max Z=4 x 1+3 x 2


s.a.:

2 x 1 +3 x 2 6
3 x 1 +2 x 2 3
2 x1 + x2 4
x 1 0, x 2 0 y

Resolucin Grafica

Pgina 7

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

INVESTIGACIN

INGENIERA
INFORMTICA

Punto A=

( 133 , 2413 )
( 57 , 187 )

Punto B=

( 32 ,1)

Punto C=

Z =A

324 84
+
=
( 43
13
13 ) 13

Z =B

Z =C
Si en los valores de

x 1 y x2

74
=
( 457 + 318
7 ) 7

( 432 +31)=9

en el punto B que es el punto optimo no son enteros se

deber aplicar el mtodo de Ramificacin y Acotamiento para la solucin y as


desaparecer los valores fraccionarios del valor optimo.

Ramificacin y
Acotamiento

En este mtodo partiremos del valor o valores fraccionarios del punto ptimo,
los cuales son:

Z =B

74
=
( 457 + 318
)
7
7

En caso de que hubiera dos o mas valores fraccionarios se tomara el valor ms


pequeo, en este caso tomaremos.

45 318 74
Z =B
+
=
7
7
7

Pgina 8

5
x 1= =0.71
7
0 xNACIONAL
1 1
UNIVERSIDAD
JOS F. SNCHEZ
CARRIN

INVESTIGACIN

INGENIERA
INFORMTICA

Max Z=4 x 1+3 x 2


s.a.:

3 x 1 +2 x 2 3

Max Z=4 x 1+3 x 2


s.a.:

2 x 1 +3 x 2 6

2 x1 + x2 4

2 x 1 +3 x 2 6

Max Z=4 x 1+3 x 2

3 x 1 +2 x 2 3
2 x1 + x2 4

s.a.:

2 x 1 +3 x 2 6
3 x 1 +2 x 2 3
2 x1 + x2 4

Resultados

x 1=0

( 32 )=4.5

ZCuando x1 vale 0 : 4( 0 ) +3

3 ( 0 ) +2 x 2=3
2 x 2=
Pgina 9

3
2

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

INVESTIGACIN

INGENIERA
INFORMTICA

ZCuando x1 vale 1 :4( 1 ) +3( 2 )=4+6=10

x 1=1
2( 1 ) + x 2=4
x 2=2

Pgina
10

La nueva utilidad es
Z=10 y los valores son:

x 1=1

x 2=2

UNIVERSIDAD NACIONAL JOS F. SNCHEZ


CARRIN

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