Sunteți pe pagina 1din 24

CAPTULO 3.

PROBLEMAS LINEALES ESPECIALES.



Se analizan en este captulo problemas de programacin lineal con una estructura
especial. En primer lugar se estudian problemas en variables enteras, en los que se requiere
que algunas o todas las variables de decisin del problema sean enteras. Seguidamente, se
estudia el problema de transporte y el de asignacin vindose, para todos ellos, algunos de
los mtodos que existen para su resolucin.
1.- Programacin Entera.
En muchos casos prcticos las soluciones no enteras de problemas de programacin
lineal no tienen sentido. Estudiamos a continuacin problemas de programacin lineal en los
que algunas o todas las variables del problema deben tomar valores enteros. El primero de
los casos se denomina problema entero general o puro y el segundo problema entero mixto.
La formulacin de los mismos es la siguiente:
Problema entero general:
Max c
t
x
s.a A x = b
x 0
x Z
Problema entero mixto:
Max c
t
x
s.a A x = b
x 0
x
k
Z, k {1, 2, ..., n}
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

en el que slo algunas de las variables del problema deben ser enteras.
Programacin Matemtica para Economistas

Cuando el conjunto de oportunidades est acotado, la resolucin de estos problemas
puede ser ms fcil que en el caso general, ya que al ser el nmero de soluciones enteras
factibles finito, bastara con evaluar el objetivo en cada una de ellas y escoger la que d
mayor valor para el objetivo. Sin embargo, si el nmero de soluciones enteras factibles es
grande, puede que no sea posible llevar a cabo dicha comparacin.
Existen numerosos mtodos para resolver este tipo de problemas. En general, todos
ellos comienzan resolviendo el problema sin tener en cuenta que algunas o todas las
variables del problema deben ser enteras, de manera que si la solucin obtenida es entera,
esa ser la solucin del problema entero. En caso contrario, se podra considerar como
ptimo del problema en variables enteras, aquella solucin factible resultante de redondear
la solucin obtenida, pero, en ese caso, podramos dar una solucin no factible o una
solucin factible no ptima.
Se hace necesaria, por tanto, la aplicacin de mtodos especficos para resolver este
tipo de problemas. Los dos mtodos ms representativos son el mtodo de los planos de
corte de Gomory y el mtodo de ramificacin y acotacin (branch and bound).
A continuacin analizamos ambos mtodos.
1.1.- Mtodo de planos de corte de Gomory.
En primer lugar, hemos de resolver el problema de manera tradicional, es decir sin
tener en cuenta que algunas o todas las variables del problema deben ser enteras. Si la
solucin obtenida, x*, es entera, sa ser la solucin a nuestro problema original. En caso
contrario se construye un PLANO DE CORTE, un hiperplano
t
x = , que divide el
conjunto de oportunidades, X, en dos subconjuntos. Uno de ellos contiene la solucin no
entera x* y el otro el conjunto de soluciones enteras del problema. A partir de una solucin
no entera se van construyendo planos de corte, de tal forma que los cortes asociados a los
mismos generan de forma iterada la solucin entera buscada, si existe.
Para ello se aade a las restricciones que definen el conjunto de oportunidades,
restricciones de desigualdad
t
x que verifican todas las soluciones enteras del problema
y elimina del conjunto de oportunidades algunas de las no enteras.
A) Caso general: Todas las componentes del vector solucin han de ser enteras:
Definicin 1.
Dado un nmero real, k, se define parte entera de k, [k|, al entero ms prximo a k
que verifique [k| k. Adems, k = [k| + f , donde f es la parte fraccionaria de k, f [0, 1)
Dado el problema:

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

Max c
t
x
Programacin Matemtica para Economistas

s.a A x = b
x 0
x Z
resolvemos:
Max c
t
x
s.a A x = b
x 0
Si la solucin obtenida, x*, es entera, sta es la solucin al problema entero. Si, por
el contrario, no lo es razonamos de la siguiente forma:
Supongamos que al resolver el problema por el mtodo del smplex, la base final, B,
est compuesta por los m primeros vectores:
B = {P
1
, ..., P
m
}
Descomponemos las componentes de x*, , y los coeficientes tcnicos del
problema en la tabla final en su parte entera y su parte fraccionaria:
x
i
*
x
i
*
= [ x ] + f
i
*
i

a
ij
= [a
ij
] + f
ij
i = 1, 2, ..., m; j = m + 1, ..., n
donde f
i
y f
ij
sern las denominadas partes fraccionarias de x y a
i
*
ij
, respectivamente, que
verifican 0 f
i
< 1 y 0 f
ij
< 1.
Una vez que tenemos todas las partes fraccionarias de la solucin x*, f
i
, elegimos la
mayor de todas:
f max f
i
k m
k
=
1

Para esa componente del vector x*, planteamos la siguiente ecuacin:
x
i
*
= x
i
+ a x
ij j
j m
n
= +

1
y descomponemos los dos lados de la igualdad en parte entera y fraccionaria:
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

| | | | ( ) | |
x f x a f x x a x f
i i i ij ij j i ij j
j m
n
j m
n
ij j
j m
n
*
+ = + + = + +
= + = + = +

1 1 1
x (1)
Programacin Matemtica para Economistas

Agrupando la parte entera de la ecuacin a un lado, tenemos:
| | | |
f f x x x a
i ij j
j m
n
i i ij
j m
n
= +
= + = +

1 1
*
x
j
<


Puesto que 0 < f
i
< 1 y , dado que 0 f f x
ij j
j m
n

= +
0
1
ij
<1:
f f x f
i ij j
j m
n
i

= +

1
1
y, dado que lo que queda a la derecha de (1) es entero, tenemos que:
f f x f
i ij j
j m
n
i

= +

1
0 f f x
i ij j
j m
n

= +

1
0
Esta condicin es la restriccin de Gomory para x y hemos de aadirla como
restriccin a la ltima tabla del smplex para que la solucin obtenida sea entera.
i
*
Dado que la restriccin que aadimos a la tabla es:

= +
f x f
ij j
j m
n
i
1

y -f
i
< 0, la solucin pasa a ser no admisible y hemos de aplicar el mtodo dual del smplex.
Una vez obtenida una nueva solucin, si sta tiene todas sus componentes enteras el
problema est resuelto. En caso contrario hemos de aplicar de nuevo el algoritmo.
En caso de que el algoritmo dual del smplex refleje el hecho de no existir solucin
admisible, el problema no tendra solucin.
Ejemplo:
Consideremos el siguiente problema donde imponemos que ambas variables sean
enteras, por tanto, sera un problema de programacin entera puro.
Max 5x
1
+ 2x
2
s.a 2x
1
+ 2x
2
9
3x
1
+ x
2
11
x
1
, x
2
0
x
1
, x
2
Z
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz


Programacin Matemtica para Economistas

Solucin:
Resolviendo el problema por el algoritmo del smplex, sin tener en cuenta que las
dos variables deben ser enteras, obtenemos la siguiente tabla final:
5 2 0 0
B C
B
P
0
P
1
P
2
P
3
P
4

P
2
2 5/4 0 1 3/4 -1/2
P
1
5 13/4 1 0 -1/4 1/2
75/4 0 0 -1/4 -3/2
La solucin es: x*=
|
\

|
.
|
13
4
5
4
0 0 , , , .
Hemos de construir, por tanto, un plano de corte de Gomory. Para ello se determina
la parte entera y fraccionaria de la solucin:
x x f f
1 2 1 2
* *
, , = + = + = = 3
1
4
1
1
4
1
4
por tanto, .
Puesto que f
1
= f
2
, podemos elegir cualquiera de las dos variables para construir el
plano de corte. Elegimos x
2
, y, la restriccin a aadir en la tabla es:

3
4
1
2
1
4
x x
3 4

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

con su correspondiente variable de holgura x
5
.
Programacin Matemtica para Economistas


5 2 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5

P
2
2 5/4 0 1 3/4 -1/2 0
P
1
5 13/4 1 0 -1/4 1/2 0
P
5
0 -1/4 0 0 -3/4 -1/2 1
75/4 0 0 -1/4 -3/2 0

Aplicando el mtodo dual del smplex sale de la base P
5
y entra P
3
. La nueva tabla
es:
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

5 2 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5

P
2
2 1 0 1 0 -1 1
P
1
5 10/3 1 0 0 2/3 -1/3
P
3
0 1/3 0 0 1 2/3 -4/3
56/3 0 0 0 -4/3 -1/3
Programacin Matemtica para Economistas

Puesto que la solucin no es entera, hemos de introducir un nuevo plano de corte,
considerando nuevamente la divisin de cada una de las variables en su parte entera y su
parte fraccionaria:
x x f f
1 3 1 3
* *
, , = + = = = 3
1
3
1
3
1
3
por tanto, .
Eligiendo la variable x
1
la restriccin a aadir en la tabla final es:

2
3
2
3
1
3
x x
4 5

con variable de holgura x
6
.



R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

5 2 0 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5
P
6

P
2
2 1 0 1 0 -1 1 0
P
1
5 10/3 1 0 0 2/3 -1/3 0
P
3
0 1/3 0 0 1 2/3 -4/3 0
P
6
0 -1/3 0 0 0 -2/3 -2/3 1
56/3 0 0 0 -4/3 -1/3 0
Programacin Matemtica para Economistas

Dado que la solucin obtenida es no admisible, aplicamos el mtodo dual del
smplex, sale de la base P
6
y entra P
5
.
5 2 0 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5
P
6

P
2
2 1/2 0 1 0 -2 0 3/2
P
1
5 7/2 1 0 0 1 0 -1/2
P
3
0 1 0 0 1 2 0 -2
P
5
0 1/2 0 0 0 1 1 -3/2
37/2 0 0 0 -1 0 -1/2
Como obtenemos de nuevo una solucin no entera, hemos de construir, de nuevo, un
plano de corte de Gomory, que en este caso es:

1
2
1
2
x
6

con holgura x
7
.

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz


Programacin Matemtica para Economistas

5 2 0 0 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5
P
6
P
7

P
2
2 1/2 0 1 0 -2 0 3/2 0
P
1
5 7/2 1 0 0 1 0 -1/2 0
P
3
0 1 0 0 1 2 0 -2 0
P
5
0 1/2 0 0 0 1 1 -3/2 -3/2
P
7
0 -1/2 0 0 0 0 0 -1/2 1
37/2 0 0 0 -1 0 -1/2 0

Aplicando el mtodo dual del smplex, sale de la base P
7
y entra P
6
.

5 2 0 0 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5
P
6
P
7

P
2
2 -1 0 1 0 -2 0 0 3
P
1
5 4 1 0 0 1 0 0 -1
P
3
0 3 0 0 1 2 0 0 -4
P
5
0 2 0 0 0 1 1 0 -9/2
P
6
0 1 0 0 0 0 0 1 -2
20 0 0 0 -1 0 0 -1

como obtenemos una solucin no admisible, aplicamos de nuevo el dual del smplex. Sale
de la base P
2
y entra P
4
.




R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz


Programacin Matemtica para Economistas

5 2 0 0 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5
P
6
P
7

P
4
0 1/2 0 -1/2 0 1 0 0 -3/2
P
1
5 7/2 1 1/2 0 0 0 0 1/2
P
3
0 2 0 1 1 0 0 0 -1
P
5
0 3/2 0 1/2 0 0 1 0 -3
P
6
0 1 0 0 0 0 0 1 -2
20 0 0 0 -1 0 0 -1

La solucin obtenida todava no es entera, hemos de introducir, por tanto, un nuevo
plano de corte de Gomory, que en este caso es:


1
2
1
2
1
2
x x
2 7


Introducimos la restriccin en la tabla final:
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz


Programacin Matemtica para Economistas

5 2 0 0 0 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5
P
6
P
7
P
8

P
4
0 1/2 0 -1/2 0 1 0 0 -3/2 0
P
1
5 7/2 1 1/2 0 0 0 0 1/2 0
P
3
0 2 0 1 1 0 0 0 -1 0
P
5
0 3/2 0 1/2 0 0 1 0 -3/2 0
P
6
0 1 0 0 0 0 0 1 -2 0
P
8
0 -1/2 0 -1/2 0 0 0 0 -1/2 1
20 0 -1/2 0 -1 0 0 -1 0

La solucin es no admisible, as que aplicamos el dual del smplex. Sale de la base
P
8
y entra P
2
.
5 2 0 0 0 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5
P
6
P
7
P
8

P
4
0 1 0 0 0 1 0 0 -1 -1
P
1
5 3 1 0 0 0 0 0 0 1
P
3
0 1 0 0 1 0 0 0 -2 2
P
5
0 1 0 0 0 0 1 0 -2 1
P
6
0 1 0 0 0 0 0 1 -2 0
P
2
2 1 0 1 0 0 0 0 1 -2
17 0 0 0 0 0 0 -2 -1
En esta tabla la solucin asociada es x* = (3, 1, 1, 1, 1, 1, 1, 0, 0), la cual ya es entera
y habramos terminado nuestro problema.
B) Caso entero-mixto:
Max c
t
x
s.a A x = b
x 0
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

x
k
Z, k {1, 2, ..., n}
Programacin Matemtica para Economistas

En este caso se exige que algunas de las variables del problema alcancen valor
entero, con lo que las condiciones que se van a exigir para determinar la solucin ptima del
problema son menos estrictas que en el caso puro, como veremos ms adelante.
Al igual que en el problema general, partimos de un problema cuya solucin ptima
es no entera. Si la solucin fuese entera en las variables que han de tomar valor entero, esa
ser la solucin ptima a nuestro problema. En caso contrario procedemos de la siguiente
forma:
Supongamos que la base final B est compuesta por los m primeros vectores: B =
{P
1
, ..., P
m
} y que la componente k-sima de x* es no entera.
Sea:
x x a x
k k kj
j m
n
*
= +
= +

1
j

Calculamos la parte fraccionaria de x
k
*
:
| | x x
k k
* *
= + f
k
j

Por tanto:
| | x x f a x
k k k kj
j m
n
*
+ =
= +

1

Para determinar el signo de [ x
k
*
| - x
k
+ f
k
, dado que a
kj
, j = m + 1, ..., n puede ser
positivo, negativo o nulo, definimos los siguientes conjuntos:
Sea
j
+

el conjunto de subndices j tales que a
kj
0
j
-

el conjunto de subndices j tales que a
kj
< 0.
Podemos as descomponer a x a x a x
kj j
j m
n
kj j
j j
kj j
j j = +
= +

1
*
Supongamos que f
k
+ [ x
k
*
] - x
k
0, dado que 0 < f
k
< 1, para que esta expresin sea no
negativa y entera debe ser cero o tomar valores enteros positivos (0, 1, 2 ...):
[x
k
] - x
k
= 0, 1, 2... f
k
+ [ x
k
*
] - x
k
f
k

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

con lo cual:
Programacin Matemtica para Economistas

a x a x f a x
kj j
j j
kj j
j j
k k
j j
+

+

j j
, dado que 0 :
a x f
kj j
j j
k

+
(2)
Supongamos que f
k
+ [ x
k
*
] - x
k
< 0, con lo cual:
f
k
- (x
k
- [ x
k
*
]) - x
k
< 0
Dado que
0 < f
k
< 1 y f
k
+ [ x
k
*
] - x
k
< 0 x
k
- [ x
k
*
] 1 -(x
k
- [ x
k
*
]) -1
por lo que, para que la componente k-sima sea entera ha de verificar que :
x
k
- [ x
k
*
] = 1, 2, ...
lo cual implica que:
f
k
- (x
k
- [ x
k
*
]) f
k
- 1 < 0
Luego
a x a x a x f a x
kj j
j j
kj j
j j
kj j
j j
k k
j j
+ <

+ +
1 0 0 , dado que ,
j j

por consiguiente:
a x f f
kj j
j j
k k
<


1, y como 1 0, multiplicando la expresin por
1
1 f
k

tenemos:
1
1
1
f
a x f
k
kj j
j j
k

|
\

|
.
|


, y multiplicando por nos queda:

f
f
a x f
k
k
kj j
j j
k

1
(3)
De las condiciones (2) y (3) obtenemos:
a x a x
f
f
f
kj j
j j
kj j
k
k
k
j j
+

|
\

|
.
|

+

1
(4)
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

que es la restriccin que hemos de aadir a las m restricciones del problema en la ltima
tabla del smplex. Al igual que en el caso general tendremos que aplicar el mtodo dual del
Programacin Matemtica para Economistas

smplex y obtener una nueva solucin. En caso de que alguna componente que deba ser
entera no alcance valor entero en la nueva solucin, hemos de aplicar de nuevo el algoritmo.

Ejemplo:
Max 5x
1
+ 2x
2

s.a 2x
1
+ 2x
2
9
3x
1
+ x
2
11
x
1
, x
2
0
x
1
Z
Solucin:
La solucin al problema cuando no exigimos que x
1
Z viene dada por la siguiente
tabla:

5 2 0 0
B C
B
P
0
P
1
P
2
P
3
P
4

P
2
2 5/4 0 1 3/4 -1/2
P
1
5 13/4 1 0 -1/4 1/2
75/4 0 0 -1/4 -3/2
Dado que x Z con parte fraccionaria
1
*
=
13
4
f
1
=
1
4
. Adems:
13
4
1
4
1
2
= + x x
1 3
x
4

A partir de (4) tenemos:
1
4
1
12
1
2
+ x x
3 4

Aadimos la restriccin:
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

+ =
1
12
1
2
1
4
x x x
3 4 5

Programacin Matemtica para Economistas

a la tabla anterior:
5 2 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5

P
2
2 5/4 0 1 3/4 -1/2 0
P
1
5 13/4 1 0 -1/4 1/2 0
P
5
0 -1/4 0 0 -1/12 -1/2 1
75/4 0 0 -1/4 -3/2 0
Aplicando el mtodo dual del smplex sale de la base P
5
y entra P
4
.
5 2 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5

P
2
2 3/2 0 1 5/6 0 -1
P
1
5 3 1 0 -1/3 0 1
P
4
0 1/2 0 0 1/6 1 -2
18 0 0 0 0 -3


1.2.- Mtodo de ramificacin y acotacin.
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

En este mtodo se obtiene la solucin ptima a un problema de programacin lineal
entera realizando dos operaciones bsicas sobre el conjunto de oportunidades del problema
lineal relajado. La primera de estas operaciones es la de ramificacin, en la que se divide el
Programacin Matemtica para Economistas

conjunto de oportunidades del problema relajado en subconjuntos, y se obtienen
subproblemas del problema original. Para ello se introducen restricciones mutuamente
excluyentes y que no eliminan del subconjunto soluciones enteras del problema original.
Estas restricciones eliminan partes del conjunto de oportunidades del problema relajado que
no pertenecen al conjunto de oportunidades del problema en variables enteras. En la
operacin de acotacin se determina una cota que se utiliza para ordenar las soluciones
ptimas de los subproblemas y, as, determinar la solucin ptima del problema entero.
Adems, en este mtodo se realiza un anlisis de los subconjuntos obtenidos en el apartado
de ramificacin, para descartar aquellos subconjuntos que no puedan contener la solucin
ptima.
Algoritmo de ramificacin y acotacin:
Paso 1: Resolver el problema sin considerar que las variables de decisin han de ser
enteras. Si la solucin ptima es entera, parar. Esta es la solucin ptima al problema entero.
En otro caso, determinar una cota inferior, z
I
, para el valor ptimo del objetivo entero. A
esta cota se le puede dar valor - o bien, si es posible, el valor de la funcin objetivo en
algn punto factible del problema entero.
Paso 2: Ramificacin: Elegir un subconjunto del problema de soluciones factibles
que quede sin sondear (en la primera iteracin se selecciona el conjunto de oportunidades
del problema relajado) mediante alguna regla de ramificacin. Resolver el subproblema
obtenido y elegir una componente no entera de la solucin del mismo. Particionar el
subconjunto en dos aadiendo restricciones que excluyan los valores fraccionarios de la
componente elegida.
Paso 3: Acotacin: Para cada nuevo subconjunto determinar una cota superior, z
S
,
para el valor del objetivo del problema entero.
Paso 4: Analizar los subconjuntos en los que se pueda encontrar la solucin ptima.
Se consideran como terminales los subconjuntos en los que:
i) el subconjunto es infactible
ii) z
S
z
I

iii) z
s
se alcanza en un punto factible para el problema entero y z
S
> z
I
.
En el ltimo caso, hacer z
S
= z
I
e ir al paso 5 para analizar otros subconjuntos.
Paso 5: Si todos los subconjuntos son terminales, parar. La solucin viene dada por
(iii). En caso contrario, ir a paso 1.
Ejemplo:
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

Vamos a resolver ahora nuestro problema utilizando el mtodo de Ramificacin y
Acotacin.
Programacin Matemtica para Economistas

Como se ha comentado, la resolucin de cualquier problema por este mtodo,
implica un procedimiento de incorporacin de restricciones atendiendo al valor que toma la
parte entera de la variable, por un lado y al valor que toma la funcin objetivo, por otro.
La primera iteracin resuelve el problema lineal asociado sin tener en cuenta el
carcter de integridad de sus variables obtenindose:
Iteracin 1:
0 x
1
Solucin: (3.25, 1.25)
0 x
2
z
1
= 18.75.
Como ninguna de las coordenadas es entera, se generaran cuatro subproblemas, los
cuales se construyen incorporando las restricciones x
i
[x
i
| y x
i
[x
i
| + 1, as pues en
nuestro ejemplo dichos subproblemas corresponderan a introducir:
x
x
x
x
x
x
1
1
1
2
2
2

3
4
1
2

0 x
1

0 x
2


x
1
x
2

0 x
1
3
0 x
2


4 x
1

0 x
2


0 x
1

0 x
2
1

0 x
1

2 x
2



Iteracin 2:
4 x
1
No existe solucin factible
0 x
2

Iteracin 3:
0 x
1
3 Solucin: (3, 1.5)
0 x
2
z
3
= 18.
Se generan:
x
x
2
2

1
2
Iteracin 4:
0 x
1
3 Solucin: (2.5, 2)
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

2 x
2
z
4
= 16.5.
Programacin Matemtica para Economistas

Se generan:
x
x
1
1

2
3
Iteracin 5:
3 x
1
3 No existe solucin factible
2 x
2

Iteracin 6:
0 x
1
2 Solucin: (2, 2.5)
2 x
2
z
6
= 15.
Se generan:
x
x
2
2

2
3
Iteracin 7:
0 x
1
2 Solucin: (1.5, 3)
3 x
2
z
7
= 13.5.
Se generan:
x
x
1
1

1
2
Iteracin 8:
2 x
1
2 No existe solucin factible.
3 x
2
.
Iteracin 9:
0 x
1
1 Solucin: (1, 3.5)
3 x
2
z
9
= 12.
Se generan:
x
x
2
2

3
4
Iteracin 10:
0 x
1
1 Solucin: (0.5, 4)
4 x
2
z
10
= 10.5.
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

Se generan:
x
x
1
1

0
1
Programacin Matemtica para Economistas

Iteracin 11:
1 x
1
1 No existe solucin factible.
4 x
2
.
Iteracin 12:
0 x
1
0 Solucin: (0, 4.5)
4 x
2
z
12
= 9.
Se generan:
x
x
2
2

4
5
Iteracin 13:
0 x
1
0 No existe solucin factible.
5 x
2
.
Iteracin 14:
0 x
1
0 Solucin: (0, 4)
4 x
2
4 z
14
= 8 Solucin Entera.
Las siguientes ramas se deducen de la mejora en la funcin objetivo.
Iteracin 15:
0 x
1
1 Solucin: (3, 3)
3 x
2
3 z
15
= 11 Solucin Entera.
Iteracin 16:
0 x
1
2 Solucin: (2, 2)
2 x
2
2 z
16
= 14 Solucin Entera.
Iteracin 17:
0 x
1
3 Solucin: (3, 1)
0 x
2
1 z
17
= 17 Solucin Entera ptima

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz


Programacin Matemtica para Economistas

Programacin Lineal con variables binarias.


Una variable binaria es una variable entera que slo puede tomar el valor 0 o el valor 1.
Estas variables son fundamentales en la Programacin Entera y aparecen en la mayora de
los problemas con variables enteras. La importancia de este tipo de variables reside en que
son fundamentales para representar situaciones que se dan en gran nmero de problemas
reales. Estas situaciones pueden ser del tipo llevar a cabo o no un determinado proceso,
comprar o no un determinado bien, asignar o no un agente a una tarea, etc. Se utilizan
tambin como ayuda para formular problemas de otros tipos. As son muy tiles para
formular funciones lineales a trozos, funciones definidas a trozos, restricciones disyuntivas,
restricciones disjuntas, restricciones condicionales, etc.

Aunque podemos encontrar variables binarias en problemas con variables continuas el
caso que resulta ms interesante es cuando todas las variables del problema son binarias ya
existe un gran nmero de problemas reales en los que todas las variables son binarias. En
virtud de esto aparecen los Problemas Enteros 0-1 o Problemas Binarios, es decir, los
problemas en los cuales todas las variables son binarias.

De entre todos los problemas de la Programacin Enteros 0-1, hay algunos de especial
importancia por la gran variedad de problemas reales que encuadran. En primer lugar
hemos de citar el Problema de la Mochila que es quizs el problema binario ms estudiado
debido a lo general de su formulacin y al gran nmero de situaciones reales que puede
representar. Debe su nombre al problema que quizs mejor representa el esquema de una
formulacin de este tipo. Este es el problema del senderista, que debe decidir que poner en
su mochila para encarar una jornada, teniendo en cuenta que esta mochila tiene una
limitacin de capacidad y que cada objeto que incluya en la mochila le reportar un
beneficio o utilidad distinto.
.
En general, en este problema se tienen n proyectos con un coste asociado c
i
que
reportan cada uno de ellos un beneficio asociado a
i
. Se tiene un presupuesto disponible P y
hay que escoger un subconjunto de proyectos de manera que se maximice el beneficio sin
exceder dicho presupuesto. La formulacin de este problema es la siguiente:
Max a

=
n
1 i
i
x
i

s.a : c

=
n
1 i
i
x
i
P j = 1, ... , n
x
i
{ 0, 1 } i = 1, ... , n
donde:
x
i
= 1 si se realiza el proyecto i.
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

x
i
= 0 si no se realiza el proyecto i .
Programacin Matemtica para Economistas


Este problema tiene una importancia especial puesto que en un gran nmero de
problemas aparecen restricciones de este tipo:

=
n
1 i
c
i
x
i
P

Estas restricciones se denominan restricciones mochila y existe una enorme variedad
de estrategias para resolver problemas incluyendo restricciones de este tipo.

Otro problema clsico es la asignacin de tareas a un conjunto de personas. Este tipo
de problema se conoce como Problema de Asignacin. En esta situacin se tienen n
personas y m tareas a realizar. Cada trabajo ha de ser hecho por una nica persona y cada
persona puede hacer a lo sumo una tarea. Se conoce el coste c
ij
asociado a que la persona i
realice la tarea j , y se pretende minimizar el coste total de completar todas la tareas. As, en
un problema de asignacin tenemos que distribuir los n trabajadores de manera que
consigamos m parejas tarea-trabajador que reporten un coste mnimo, pudiendo quedar
algn trabajador libre.

Para este problema se definen las siguientes variables:
x
i j
= 1 si la persona i realiza la tarea j, j = 1, ... , m, i = 1, ... , n.
x
i j
= 0 si la persona i no realiza la tarea j, j = 1, ... , m, i = 1, ... , n.

Puesto que cada tarea ha de ser realizada por exactamente una persona, tenemos las
siguientes restricciones:

=
n
1 i
x
i j
= 1 j = 1, ... , m
Puesto que cada persona realiza a lo sumo una tarea, hemos de incluir tambin la
siguiente restriccin:

=
m
1 j
x
i j
1 i = 1, ... , n
Con todo esto, la formulacin de un Problema de Asignacin es la siguiente:
Min c

=
n
1 i

=
m
1 j
i j
x
i j

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

s.a : x

=
n
1 i
i j
= 1 j = 1, ... , m
Programacin Matemtica para Economistas

x
=
m
1 j
i j
1 i = 1, ... , n
x
i j
{ 0, 1 } i = 1, ... , n j = 1, ... , m
donde:
x
i j
= 1 si la persona i realiza la tarea j.
x
i j
= 0 si la persona i no realiza la tarea j.

ste tambin es un ejemplo de utilizacin de variables binarias para un problema que se
da en multitud de situaciones reales. Una variante de este problema es el Problema del
Emparejamiento Perfecto, que es un problema de asignacin en el que no puede quedar
nadie libre. As, en este problema tenemos 2n personas que hay que distribuir en n
habitaciones dobles. El hecho de que el individuo i-simo y el j-simo compartan habitacin
reporta un beneficio c
ij
. En este problema se considera que el beneficio asociado a que el
individuo i y el j compartan habitacin es el mismo al reportado por compartir habitacin el
individuo j y el individuo i, y que por tanto c
ij
= c
ji

El objeto del problema es emparejar los individuos de la forma ms beneficiosa
posible y sin que nadie quede solo. La formulacin en este caso es la siguiente:

Max c

=
1 n 2
1 i

+ =
n 2
1 i j
i j
x
i j

s.a : x

< i k
k i
+ x

> i j
i j
= 1 i = 1, ... , 2n ( 1 )
x
i j
{ 0, 1 } i = 1, ... , n j = 1, ... , m
donde, para i < j definimos:
x
i j
= 1 si el individuo i comparte habitacin con el individuo j.
x
i j
= 0 en otro caso.
Si en la restriccin (1) sustituimos la igualdad por una desigualdad del tipo
obtenemos un Problema de Emparejamiento, que es el caso en que puede que alguien quede
slo en una habitacin.

Estos problemas precedentes muestran cmo se pueden representar con variables
binarias situaciones del tipo en que a lo sumo un determinado suceso de entre un conjunto
se puede dar, al menos uno de estos sucesos se ha de realizar, etc.. Sin embargo, podemos
representar con variables binarias situaciones ms complejas. As, dados el suceso 1 (
variable binaria x1 ) y el suceso 2 ( variable binaria x2 ), si :
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz


Programacin Matemtica para Economistas

- El suceso 1 y el suceso 2 se han de dar siempre simultneamente y si alguno de los dos
no se da, el otro tampoco se puede realizar. Es decir, o bien se realizan los dos o bien
ninguno de ellos. Esta situacin se representa mediante la siguiente ecuacin:
x
1
- x
2
= 0
- El suceso 2 puede realizarse solamente si se realiza el suceso 1, entonces lo
representaremos con la siguiente ecuacin:
x
2
- x
1
0
Incluso, podemos combinar variables continuas con variables binarias para representar
otras situaciones. As, supongamos que la variable continua y representa una actividad
acotada de la forma y u , de forma que esta actividad no se puede llevar cabo salvo que se
d un determinado suceso representado por la variable binaria x. Podemos representar esta
situacin mediante la siguiente ecuacin:

y u x 0

Un ejemplo de problemas que utilizan este tipo de ecuaciones son los Problemas de
Localizacin. Estos son unos de los problemas ms importantes en la Programacin Entera
debido a la gran cantidad de aplicaciones reales que se pueden formular bajo este esquema.
En este problema tenemos n posibles localizaciones para construir una fbrica, teniendo la
libertad de construir hasta n fbricas, y m clientes cada uno de ellos con una demanda de
producto d
i
. El coste de situar una fbrica en el lugar i es c
i
, la capacidad de produccin de
una fbrica situada en el lugar i es b
i
y el coste de llevar una unidad producida en el lugar i
al cliente j es h
ij
. El objetivo de este problema es encontrar el nmero de fbricas y su
localizacin idnea de manera que se satisfaga la demanda y se minimice el coste total.

Para representar esta situacin utilizaremos las siguientes variables:
x
i
= 1 si se construye una fbrica en el lugar i.
x
i
= 0 en otro caso.
y
ij
el nmero de unidades producidas en el lugar j que se envan al cliente i.
Para obligar a que se satisfaga la demanda de cada cliente, incluiremos la siguiente
restriccin:

=
n
1 j
y
i j
= d
i
i= 1, ... , m
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

En general, el nmero de unidades producidas en el lugar j que se envan al cliente i
no puede superar su capacidad de produccin. Sin embargo, si no se sita una fbrica en el
lugar j entonces no se puede producir ninguna unidad en dicho lugar. Esta situacin es la
que representa esta restriccin:
Programacin Matemtica para Economistas

=
m
1 i
y
i j
b
j
x
j
j = 1, ... , n
Con todo esto, la formulacin de un problema de Localizacin es la siguiente:
Min c

=
n
1 i
i
x
i
+ h

=
m
1 i

=
n
1 j
i j
y
i j

s.a :

y
=
n
1 j
i j
= d
i
i= 1, ... , m

y
=
m
1 i
i j
b
j
x
j
j = 1, ... , n
x
j
{ 0, 1 } j = 1, ... , n
y
ij
Z
+
i = 1, ... , m j = 1, ... , n

Esta es una muestra de algunos de los problemas ms utilizados en aplicaciones reales.
Pero tambin podemos encontrar formulaciones para problemas de flujos en redes,
asignacin de presupuestos, distribucin de trabajos, elaboracin de horarios, elaboracin de
rutas, etc..Las variables binarias constituyen adems una til herramienta para representar
otras situaciones de distintos mbitos. As, por ejemplo, se utilizan para representar
funciones lineales a trozos, restricciones disjuntas, problemas de teora de juegos, etc.

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

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