Вы находитесь на странице: 1из 14

METODOS DE BIFURCACION Y ACOTACION

El mtodo de bifurcacin y acotacin, que es muy elegante y simple, redondea y acota variables
enteras, resultante de la solucin de los problemas lineales correspondientes. Este proceso de
acotamiento y redondeo se hace de una manera secuencial lgica heurstica, que permite eliminar
con anticipacin un buen nmero de soluciones factibles alejadas del ptimo a medida que se
itera. De tal suerte que si una variable entera Xj, j=1., n, est acotada entre un lmite inferior
entero dj, j=1,, n, y un lmite superior entero uj, j=1,, n, el proceso de bifurcacin y acotacin
slo analiza un nmero muy pequeo de todas las posibles soluciones. Para que el lector se d
cuenta de la tremenda cantidad de posibles soluciones, debe tener presente que solo la variable Xj
puede tomar cualquiera de los siguientes valores enteros: dj, dj+1, dj+2,, uj-2, uj-1, uj. Si se
tienes n variables enteras, imagnese el nmero de posibles combinaciones que se pueden
obtener.
ALGORITMO DE LAND-DOIG
El primer algoritmo de bifurcacin y acotacin se presenta en Land y Doig(84). El nombre de
bifurcacin y acotacin se lo dan posteriormente Little, Murty, Sweeney, Karel (89). El algoritmo
de Land y Doig, fue modificado ms tarde por Dakin (48), que lo hace un poco ms general. A
continuacin se presenta el algoritmo de algoritmo de bifurcacin y acotacin de Land y Doig con
la modificacin hecha por Dakin, y suponiendo que se
maximiza la funcin objetivo.
Paso 1.
Resuelva el problema entero por medio del mtodo simplex de la programacin lineal. Si la
solucin es entera, parte, se ha conseguido la solucin ptima. Si no, contine en el paso 2.
Paso 2.
Escjase arbitrariamente una variable entera Xj cuyo resultado en el paso 1 sea fraccional e igual a
XBj.
Paso 3.
Resuelva un par de nuevos problemas, similares al problema anterior, pero uno con la restriccin
adicional Xj * XBj+, mientras que el otro tendr la restriccin adicional Xj * XBj+ + 1.
Paso 4.
De los programas lineales resueltos en el paso 3, inclyase en anlisis a seguir, solo aquellos
programas cuya solucin (entera o fraccional) sea mejor a cualquiera de las soluciones enteras
conocidas.
Paso 5.
Seleccinese aquel programa lineal que tenga el mximo valor de la funcin objetivo. Si las
variables enteras tienen valor entero, se ha conseguido la solucin ptima. Si no, regrsese alpaso
2 con la estructura del problema lineal resuelto en este paso.

Figura 1
Se presenta un diagrama de flujo de este algoritmo para facilitar la ilustracin de este algoritmo se
recomienda al lector se ayude de la figura 2en la solucin del siguiente ejemplo.
Ejemplo. Resolver
Problema (0).
Max. Z = 5X1 + 2x2
Sujeto a
2X1+2X2+X3= 9
3X1+X2+X4= 11
X1, X2, X3, X4 0 y enteros.
Interaccin 1
Paso 1.
La solucin ptima del programa lineal correspondiente es

Paso 2.
Se escoge arbitrariamente X2 =1.25 y
se resuelven dos problemas lineales distintos,uno con la restriccin adicional X2 *1.25+= 1 y el
otro con la restriccin adicional X2 *1.25+ + 1 =2 es decir
Problema (1)
Max Z = 5x1 +2x2
Sujeto a
2X1+2X2+X3= 9
3X1+X2+X4= 11
X2 + X5 =1
X1, X2, X3, X4, X5 0 enteros.
Problema (2)
Max Z = 5x1 +2x2
Sujeto a
2X1+2X2+X3= 9

3X1+X2+X4= 11
X2 - X5 = 2
X1, X2, X3, X4, X5 0 enteros.
Paso 3.
Aplicando el anlisis de sensibilidad, cuando se agrega una restriccin adicional a un problema
lineal, o bien el mtodo de cota superior, ambos discutidos en el captulo 2, se tienen los
siguientes tableaus ptimo de los problemas lineales.

Z
X1
X2
X3
X4
XB

1
0
0.33
0
1.67
18.75

0
0
-1.33
1
-0.67
0.33
Problema (1)
0

1
-0.33
0
0.33
3.33

Z
X1
X2*
X3
X4
XB

1
0
3
2.5
0
16.5

0
0
-2
-1.5
1
1.5
Problema (2)
0

1
1
0.5
0
2.5

Paso 4.
Como no ha habido ninguna solucin entera en todo el proceso, se incluyen ambos tableaus en el
anlisis.
Paso 5.
Como la mejor funcin objetivo hasta el momento corresponde a una solucin no entera (Z =
18.67, X1 =3.33, X3 = 0.33), se regresa al paso 2. La estructura seleccionada es la que lleva el
nmero (1).
Interaccin 2.
Paso 2.
Arbitrariamente, de la estructura (1) se escoge la variable X1 =3.33 y se resuelven dos nuevos
problemas. Uno que es igual al problema (1) ms la restriccin X1 *3.33+ = 3. El otro que es igual
al problema (1)
ms la restriccin X1 *3.33+ + 1 =4. Es decir
Problema (3)
Max Z = 5x1 +2x2
Sujeto a
2X1+2X2+X3 = 9
3X1+X2+X4 = 11
X2 + X5 = 1
X1+X6 = 3
X1, X2, X3, X4, X5, X6 0 enteros.
Problema (4)
Max Z = 5x1 +2x2
Sujeto a
2X1+2X2+X3 = 9

3X1+X2+X4 = 11
X2 + X5 = 1
X1-X6 = 4
X1, X2, X3, X4, X5, X6 0 enteros.
Aplicando el mtodo de cota superior, o cualquier otro mtodo, se obtiene n las soluciones
ptimas al problema lineal correspondiente a la estructura (3). La estructura (4), no tiene solucin
factible (el problema es inconsciente), y por lo tanto no se le incluye en el listado de estructuras a
analizar.

Z
X1
X2
X3
X4
XB

1
5
2
0
0
17

0
-2
-2
1
0
1
Problema (3)

0
-3
-1
0
1
1

Paso 4.
Por ser una solucin entera se incluye en el anlisis.
Paso 5.
Por ser el mejor valor de la funcin objetivo y adems, ser entero, es la solucin ptima, es decir
= 17, X1 = 3- X1 = 0, X2 = 1- X2 = 0, X3 =1, o sea
Z = 17, X1 = 3, X2 = 1, X3 =1, X4 =1.
El problema anterior puede describirse por medio de una representacin grfica que est
constituida por una red con estructura de rbol, donde a cada nodo se le asocia lo siguiente: un
nmero (el de la estructura del problema lineal correspondiente), el valor de las variables y el de la
funcin objetivo, para esa estructura.

ALGORITMO PARA EL PROBLEMA ENTERO-MIXTO


Este mismo algoritmo de Lang-Doig puede usarse para la solucin del problema entero-mixto.
Basta analizar en cada nodo que no tenga una bifurcacin, si la solucin esfactible y si el valor de la
funcin objetivo asociada es la mejor hasta el momento.
Por ejemplo, se supone el siguiente problema
Max Z = 5x1 +2x2
Sujeto a
2X1+2X2+X3 = 9
3X1+X2+X4 = 11
X1 0 X2 0 X3 0 X4 0
X2 entero
El algoritmo anterior resuelve este problema, siendo la solucin ptima de la correspondencia al
nodo 1 de la figura 2 con

Z = 18.67, X1 = 3.33, X2 = 1, X3 =0.33, X4 = 0,


Por ser ese nodo el que, sin tener ninguna bifurcacin (arco que emana del nodo), tiene una
solucin factible, es decir X2 es entero, X1, X3, X4 continuos, y el valor de la funcin objetivo
asociada a ese nodo es la mayor de todas las funciones objetivo de los nodos sin bifurcacin.
Existe otro algoritmo para resolver problemas mixtos enteros, y es debido a Driebeek (52). Este
algoritmo, basado en el mtodo de Lang-Doig, convierte a todas las variables enteras en binaria
(cero-uno) de la siguiente manera. Sea Xi una variable entera, entonces

Donde
0 1, para toda i, k

Si ik= 1, esto implica que la variable entera . Una vez hecha la substitucin del problema original
en trminos de la ik, la solucin ptima se encuentra utilizado programacin lineal con ciertos
ajustes penales del siguiente tipo:
a) Por cada variable ik no bsica, el costo penal por incrementar ik =1, es decir, , es el es el
precio sombra de ik, es decir zik-cik del tableau
correspondiente.
b) Por cada variable ik bsica, el costo penal por incrementar ik al valor 1, es decir, hacer , es el
mnimo incremento en la funcin objetivo por hacer ik = 1 (o sea, hay que usar anlisis de
sensibilidad al hacer el termino independiente correspondiente al vector bsico ik al igual a uno).
El cambio mnimo en el valor de la funcin en la primera iteracin del mtodo dual simplex, al
hacer el cambio correspondiente en el lado derecho del tableau, este cambio es igual a

Donde Xbr es el valor del vector bsico ik y son los valores del tableau correspondiente.

De los costos penales en (a) se selecciona el mnimo. Si hay un empate, se escogen todos. Se
combinan entonces con el coste mnimo penal calculado en (b) y se selecciona aquella solucin
factible cuya suma de costos penales (los calculados en (a) y (b)) sea mnima.
Ejemplo. Resolver el siguiente problema entero-mixto.
Max Z = 5x1 +2x2
2X1+2X2+X3 = 9
3X1+X2+X4 = 11
X1 0 X2 0 X3 0 X4 0

X1 , X2 enteros
Se hace el cambio
X1 = 010 + 111 + 212 + 313 +
X2 = 020 + 121 + 222 + 323 +
Con
ij = 0 1,
y
10 + 11 + 12 + 13 += 1
20 + 21 + 22 + 23 += 1
Se tiene que X1 puede alcanzar un valor mximo factible de 3, y X2 de 4, se toman los 4 trminos
de 1j y los 5 primeros trminos de 2j, y el problema original se convierte en:
Mx z = 010 + 511 + 1012 + 1513 + 020 + 221 + 422 + 623 + 824
Sujeto a
410 + 611 + 012 + 013 +
220 + 221 + 422 + 623 + 824 + X3 = 9
410 + 311 + 612 + 913 + 020 + 121 + 222 + 323 + 424 + X4 = 11
110 + 111 + 112 +1 13 = 1
120 + 121 + 122 + 123 = 1
El tableau es

Despus de la interaccin del mtodo simplex se obtiene la siguiente solucin ptima no-entera:

El clculo de costos al pasar de ik 1 a ik = 1 es el siguiente


ij no bsicas

ij no bsicos

los costos penales mnimos se obtienen cuando:

X1 =3 y X2=1 (solucin factible) con costos penal total 0+0=0,


X1 =3 y X2=2 (solucin no factible) con costos penal total 0+0=0,
X1 =3 y X2=3 (solucin no factible) con costos penal total 0+0=0.
Como las dos ltimas soluciones no son factibles, pues violan alguna de las restricciones y la
primera solucin es factible, tambin lo es
Z =17, X1 =3, X2=1.
Como vera el lector el algoritmo de Driebeek determina una cota superior de la funcin objetivo
en caso maximizacin o una cota inferior de la funcin objetivo en caso de minimizacin, y por
medio de los costos penales se ajusta con el costo penal mnimo, la solucin ptima del problema
entero. Driebeek ha refinado un poco ese algoritmo a fin de que comercialmente sea ms
econmico resolverlo en una computadora, al parar de iterar cuando la solucin factible que se
tiene se aproxima en un 80%-90% a la solucin ptima.
ACELERACION DE LOS METODOS DE BIFURCACION Y ACOTACION
Los mtodos de bifurcacin y acotacin, pueden acelerarse, es decir, hacerlos
converger ms rpidamente a la solucin ptima, si se tiene un poco ms de cuidado en la
seleccin de la variable entera que genera una bifurcacin.
Se entiende por [X] al nmero entero de z ms grande, menor o igual a X, y por al nmero entero z
ms pequeo, mayor o igual a X. por ejemplo
[6.5]=6, [-6.5]=-7, [0.3]=0, [-0.3]=-1.
=7, =-6, =1, =0.
Los costos penales de Driebeek [52] sirven para seleccionar al mejor candidato. Dada una variable
bsica Xr = XBr cuyo resultado final debe ser entero, y por el momento es todava fraccionario, se
tiene que el costo penal de hacer Xr = [XBr] es

mientras que el costo penal de hacer Xr = es

Entonces, asociada a cada variable bsica Xr, que aun fraccionaria, pero que en la solucin ptima
debe ser entera, se tiene dos costos personales, uno asociado con el cambio Xr=[XBr] yel otro con
Xr=. Para identificacin, dentese al primer costo penal por [CP]r y al segundo por r. la variable
que se selecciona para ramificarse es aquella cuyo [CP]r r es el mximo entre todas las variables
bsicas Xr, que siendo an fracciones, deben ser enteras en la solucin ptima. Este proceso
acelera al mtodo, pues al elegir una variable bsica con costo penal alto, se evita aumentar el
nmero de interacciones al eliminar implcitamente soluciones peores a las actuales.
Ejemplo. Resolver
Max Z = 5x1 +2x2

Sujeto a
2X1+2X2+X3 = 9
3X1+X2+X4 = 11
20X1 - 10X2 - X5 = 51
X1, X2,
X3, X4, X5, 0 enteros.
La solucin ptima del problema lineal asociado es

Z = 18.75, X1 = 3.25, X2 = 1.25, X3 =X4 =0, X5 =1.5.


El calculo de los costos penales [CP]i ,i,i=1,2 para las variables bsicas (X1,X2) es:
[CP]1 = (3.25-3) Mn.
1 = (1-3.25+3) Mn.
[CP]2 = (1.25-1) Mn.
2 = (1-1.25+1) Mn.
La variable que se selecciona es la X2y las dos nuevas ramificaciones estarn dadas por las nuevas
restricciones X21 y X22. Termine usted este ejemplo.
Estos costos penales tienen la grandsima ventaja que permiten en cualquier instante del
algoritmo de bifurcacin y acotacin (aunque no se haya obtenido aun la solucin ptima),
calcular una cota superior en el caso de maximizacin y una cota inferior en el caso de
minimizacin entre la diferencia del valor de la funcin objetivo de la mejor solucin entera
obtenida hasta ese momento y el valor ptimo de la funcin objetivo. Esta cota se calcula de

Donde I es el conjunto de todos los vectores bsicos en la iteracin en cuestin (cuando se para el
algoritmo) y N es el conjunto de todos los vectores no-bsicos.
Ejemplo. Considere el siguiente problema entero.
Mn. Z =7X1 +3X2+4X3
X1+2X2+3X3-X4=8
3X1+X2+X3-X5=5
X1, X2, X3, X4, X50, enteros
Se supone que despus de ramificarse como lo indica la figura 3, se ha obtenido una solucin
entera y se para el algoritmo, se desea conocer cuan alejada se encuentra esa solucin de la
solucin ptima. el tableau asociada con el nodo 2 es:

FIGURA 3

Calculando los costos penales [CP]r y r para toda variable bsica (X3) se tiene:

=Mx. {Mn. (0,0), Mn. {4}}


=Mx. {0,4} = 4,
Lo que quiere decir que la funcin objetiva ptima no puede tener un valor mayor a -17 + 4 =-13.
Es decir 13 es una cota inferior del valor ptimo de la funcin objetivo del problema entero. De
hecho el valor ptimo es Z =15 con X2=5, X4=2, X1=X3=X5=0.
EL MTODO DE BIFURCACIN Y ACOTACIN Y EL PROBLEMA TIPO MOCHILA
El problema tipo mochila se presenta en dos versiones, a saber

Sujeto a

Sujeto a

Donde vi es el valor del articulo i,i = 1,,n; Ki es un volumen y K, la capacidad mxima de


almacenamiento.
La diferencia entre ambas fabulaciones es obvia. En la primera se pueden incluir varias unidades
de un mismo artculo, mientras que en el segundo (mochila tipo binario) se incluye o no una sola
unidad de cada artculo.
El mtodo que se explica a continuacin es de Kolesar [80] y sirve para resolver el segundo tipo de
problema. Es un mtodo de bifurcacin y acotacin. Este mtodo considera que un nodo lleva un
ndice i, si el articulo i se incluye e si no se incluye. Un nodo con ndice (i,j) significa que se incluye
el articulo i primero y despus el articulo j, mientras que el ndice ( j)significa que el articulo i no
se incluye pero el j s. Se supone el siguiente ejemplo.
Un grupo financiero tiene 5 proyectos de inversin. Cada proyecto i, i =1,2,,5 necesita de una
inversin de

ki millones de pesos, y se pronostica que ese proyecto rendir vi millones de pesos anuales de
utilidad cuando el proyecto est funcionando. La capacidad total de inversin K es de 91 millones
de pesos. La siguiente tabla resume los datos asociados a cada proyecto de inversin:

El grupo financiero debe tomar la decisin de aceptar o rechazar cada proyecto, Qu proyecto se
deben incluir y cuales rechazar con objeto de maximizar el retorno total anual?
Antes de empezar el mtodo de bifurcacin y acotacin, conviene volver a listar los proyectos de
inversin en orden descendiente en funcin a un ndice que proviene del siguiente cociente:
(retorno anual i) / (inversin i). Este cociente indica los millones de pesos que se reciben por milln
de pesos invertidos.

Nodo 1. Si se incluye el proyecto 1, se invierten 30 millones y se reciben 60. Como an quedan 9130=61 millones por invertir, se selecciona adems el proyecto 2, que consume otros 36 millones,
pero rinde 54 millones. An quedan por invertir 61-36=25 millones. Si se incluyera el proyecto 3
completo, este consumira 32 millones, o sea 7 ms de la capacidad total de inversin. Como esto
no es posible, y por lo tanto no es una solucin factible, se asocia a este nodo un valor de
60+54+32-7(1)=146 millones, que provienen de la suma de los retornos anuales del proyecto 12 y
2 completos (60+54) y del retorno asociado a 32-7=25 millones de inversin del proyecto 3 (que
por coincidencia es
igual a 32-7 1) =25millones). En forma tabular se tiene para este nodo:

Para el nodo 1 (no se puede invertir en el proyecto 1) se tiene ahora en forma tabular

De los dos nodos sin ramificaciones (1) y (1), el primero tiene mejor valor de la funcin objetivo
que el segundo (139 millones contra 103.25). Por lo tanto, se analizan ahora los nodos (1, 2) y
(1,2).
Para el nodo (1, 2) se tiene:

Para el nodo (1, 2) se tiene:

De los nodos sin ramificacin (1), (1, 2) y (1, 2) el que tiene el mejor valor de la funcin objetivo es
precisamente el segundo (1, 2), con 139 millones (comparado a 103.25 y112.50). Por lo tanto, se
ramifica del nodo (1, 2) a analizar los nodos (1, 2, 3) y (1, 2, 3).
Para el nodo (1, 2, 3) se tiene:

Como la solucin de este nodo es imposible se le asocia un valor a la funcin objetivo, que
garantice que el proceso no se ramifique de este nodo. Este valor puede ser - (ya que se esta
maximizndola funcin objetivo).
Para el nodo (1, 2, 3) se tiene:

De los cuatro nodos sin ramificar (1), (1, 2), (1, 2, 3) y (1, 2, 3). El tercero tiene el mejor valor de la
funcin objetivo (132.50 millones contra 103.25 millones, mientras de (1), 112.50 millones de (1,
2) y - millones de (1, 2, 3). Por lo tanto se analizan a continuacin los nodos (1, 2, 3, 4) y (1, 2, 3, 4).
Para el nodo (1, 2, 3, 4) se tiene un valor de las funcin objetivo de 132.50 millones, mientras que
para (1, 2, 3, 4) es de 126.50
millones. Se bifurca entonces del nodo (1, 2, 3, 4) y se analizan los nodos (1, 2, 3, 4, 5) y (1, 2, 3, 4,
5). Para el nodo (1, 2, 3, 4, 5) se obtiene un valor - por ser una solucin imposible (pues
necesariamente se deben incluir los proyectos 1, 2, 4, 5 con inversin total de 116 millones que
rebasan la capacidad de inversin de 91 millones). Para el nodo (1, 2, 3, 4, 5 ) se tiene un valor de
132 millones. De todos los nodos sin ramificar, a saber, el (1) con 103.25 millones, el (1, 2) con
112.50 millones, el (1, 2, 3)con - millones, el (1, 2, 3, 4) con 126.50 millones, el (1, 2, 3, 4, 5) con millones, y el (1, 2, 3, 4, 5) con 132 millones, el mejor es el (1, 2, 3, 4, 5). Como esta solucin es
factible, tambin es ptima. En la figura 4 se resume el proceso de bifurcacin y acotacin para
este problema tipo binario (cero-uno).

Figura 4
Hay que hacer notar que el nmero total de posibles soluciones a este problema es de 25 =32 y
que el proceso de bifurcacin y acotacin solo examino 10 de ellas (aproximadamente un 30% del
total), para determinar el ptimo. A medida que el nmero de proyectos tiende a crecer, el
porcentaje de posibles soluciones que el mtodo de bifurcacin y acotacin examina, tiende a
bajar, haciendo este mtodo mucho ms eficiente.
El mtodo de bifurcacin y acotacin y el problema del agente viajero