Programacion Entera PL
Programacion Entera PL
Programacion Entera PL
valores continuos. Los modelos de programaci n entera pura son aquellos en los que todas las o variables toman valores enteros. Los modelos de programaci n entera 0-1 son aquellos en los que todas las o variables son binarias.
ww
Teniendo en cuenta los valores de las variables se tienen 3 tipos de modelos lineales enteros:
w.
at
em
at ic a1
En este tema introducimos problemas lineales en los que algunas o todas las variables est n restringidas a tomar valores enteros. Para resolver este tipo de proa blemas se han desarrollado las t cnicas de programaci n entera que, como veree o mos, requieren resolver varios problemas de programaci n lineal para obtener la o soluci n optima del problema entero. o El m todo simplex para resolver modelos lineales en los que las variables no e est n restringidas a tomar valores enteros, se basa en que el conjunto de soluciones a es convexo, con un n mero nito de puntos extremos y en que la soluci n se u o encuentra en uno de los puntos extremos. La restricci n de que las variables o tomen valores enteros simplica mucho el conjunto de soluciones pero diculta la obtenci n de la soluci n del problema porque el conjunto de soluciones no es o o convexo.
.c om
Da 1. Lunes 2. Martes
Trabajadores/as 15 13
om
4. Jueves
ic a
1.c
3. Mi rcoles e
15 18 14 16 10
Cada trabajador/a debe trabajar cinco das seguidos y descansar dos. El proble ma es determinar el n mero de trabajadores/as que entran a trabajar cada da de la u semana para garantizar el funcionamiento de la ocina. El objetivo es hacer frente a las necesidades de la ocina contratando un n mero mnimo de trabajadores/as. u Para plantear un modelo lineal denimos las variables de decisi n o xj : n mero de trabajadores/as que entran a trabajar el da j = 1, . . . , 7. u Para cada da de la semana se tiene una restricci n que garantiza que el n mero o u de trabajadores/as que est n trabajando ese da satisfacen las necesidades de la a
ww w.
6. S bado a 7. Domingo
at
em
5. Viernes
at
ocina. El modelo lineal es min z = x1 + x2 + x3 + x4 + x5 + x6 + x7 sujeto a x1 + x4 + x5 + x6 + x7 15 x1 + x2 + x5 + x6 + x7 13 x1 + x2 + x3 + x6 + x7 15 x1 + x2 + x3 + x4 + x7 18 x1 + x2 + x3 + x4 + x5 14 x2 + x3 + x4 + x5 + x6 16 x3 + x4 + x5 + x6 + x7 10 x1 , . . . , x7 0 y enteras Ejemplo 2. El problema de la mochila. Una mochila con capacidad de 12 kg se quiere llenar con objetos de peso y valor jado. En la siguiente tabla se da el peso y el valor de cada uno de los cuatro objetos.
at em
1 3 El modelo lineal es
ww w.
ic a
2 6 3 5 4 5 Valor (euros) 15 25 12 10 Se debe elegir qu objetos se meten en la mochila para maximizar su valor. e Para plantear un modelo lineal se denen las siguientes variables de decisi n. o 1 si el objeto j es seleccionado xj = 0 en caso contrario max z = 15x1 + 25x2 + 12x3 + 10x4 sujeto a 3x1 + 6x2 + 5x3 + 5x4 12 x1 , x2 , x3 , x4 = 0 o 1
at
Peso (kg)
1.c
om
Un planteamiento similar se puede dar para los modelos tipo mochila con m s a restricciones, por ejemplo, considerando el volumen de los objetos. Ejemplo 3. En una regi n en la que hay 6 ciudades se quiere construir la o cantidad mnima de estaciones de manera que haya una estaci n a no m s de 30 o a minutos de cada ciudad. El tiempo para ir de una ciudad a otra se da en la siguiente tabla: 1 1 2 3 4 5 6
0 35 20 40 30 60 0 45 35 20 70 0 15 55 20 0 65 35 0 40 0
om
2 35
3 20 45
4 40 35 15
5 30 20 55 65
El modelo lineal es
Cada restricci n esta asociada a una ciudad y asegura que dicha ciudad tiene una o estaci n a no m s de 30 minutos. Por ejemplo, la primera restricci n asegura que o a o hay al menos una estaci n a no m s de 30 minutos de la ciudad 1. o a
at
min z = x1 + x2 + x3 + x4 + x5 + x6 sujeto a x1 + x3 + x5 1 x2 + x5 1 x1 + x3 + x4 + x6 1 x3 + x4 1 x1 + x2 + x5 1 x3 + x6 1 x1 , x2 , x2 , x4 , x5 , x6 = 0, 1
em
at
ic a
1.c
6 60 70 20 35 40
x2
ww w.
max
at
em
at
ic a
1.c
x1
El n mero de puntos de la regi n es nito y, por lo tanto, se pueden calcular u o todos los puntos y el valor de la funci n objetivo en cada uno para identicar o la soluci n optima. Pero este m todo no es ecaz para problemas con muchas o e variables por la cantidad de puntos de la regi n. o As, aunque el n mero de soluciones de un problema lineal entero es mucho u menor que el n mero de soluciones del mismo problema lineal pero quitando la u
restricci n de enteras para las variables, veremos que obtener la soluci n optima o o requiere muchos m s c lculos. La raz n de esto es que el conjunto de soluciones a a o para un problema entero no es un conjunto convexo como ocurre para un problema lineal general. La propiedad de convexidad es la que permite la aplicaci n del o m todo simplex desarrollado en el Tema 2. e Otra manera de obtener una soluci n para el modelo entero es resolverlo sin o tener en cuenta la restricci n de que las variables deben tomar valores enteros y o obtener la soluci n entera optima por redondeo. Es decir, resolvemos el problema o de la p gina 147 quitando la restricci n de enteras a las variables; llamaremos a o a este problema relajado. En la siguiente gr ca se da la soluci n optima del a o problema relajado. x2
12x1 + 5x2 = 60 x1 + x2 = 7
em
at
ic a
ww w.
1.c M at
max P = (3.6, 3.4)
om
x1
En este caso, la soluci n optima del problema relajado se encuentra en el punto o xP R =(3.6, 3.4) y el valor optimo es zP R = 440. Este punto no es soluci n optima o del problema entero porque las variables optimas no son enteras. Podemos consi derar todas las aproximaciones por redondeo, (3, 3), (3, 4), (4, 3), (4, 4), y evaluar la funci n objetivo en todas las soluciones aproximadas para calcular la optima. o En este caso la soluci n optima sera el punto (4, 4). En la siguiente gr ca, donde o a se representan todas las aproximaciones por redondeo, se puede ver que el punto (4, 4) no verica las restricciones.
x2
12x1 + 5x2 = 60 x1 + x2 = 7
max
x1
Este m todo tambi n es cuestionable porque, como hemos visto en el ejeme e plo, en algunos casos puede ocurrir que la mejor aproximaci n por redondeo no o pertenezca a la regi n de soluciones. Adem s, para problemas grandes es neceo a sario calcular muchas aproximaciones. Por las razones apuntadas se han desarrollado t cnicas especcas para ree solver problemas enteros. En este tema se recoge la t cnica de ramicaci n y e o acotaci n. o
ww w.
at
em
at
ic a
1.c
om
ww w.
En la gr ca de la p gina 148 hemos visto que la soluci n optima del problema a a o relajado se encuentra en el punto xP R = (3.6, 3.4). El valor optimo del problema relajado es zP R = 440. Las variables no toman valores enteros. Veremos que se puede obtener la soluci n optima del problema entero resolviendo una serie de o problemas relajados. Para ello se divide el problema en dos excluyendo un trozo de la regi n de soluciones del problema relajado en el que no se puede encontrar o la soluci n del problema entero. o Elegimos una variable que teniendo que ser entera no lo es en la soluci n o actual. En este caso, tanto x1 como x2 deben ser variables enteras y, por tanto, ambas pueden ser elegidas. Si elegimos x1 , esta variable no puede tomar valores comprendidos en el intervalo 3 < x1 < 4. Dividimos la regi n en dos quitando o dicho intervalo, es decir acotando los valores de x1 de la siguiente manera: x1 3 y x1 4. As se obtienen los siguientes dos problemas:
at
em
at
ic a
1.c
om
Resolvemos los dos problemas reci n generados. Se puede observar en la e gr ca de la Figura 5.1 que los valores de x1 entre 3 y 4 han sido excludos. Las a zonas sombreadas son las regiones de soluciones del problema P2 y del problema P3, respectivamente.
x2
12x1 + 5x2 = 60 x1 = 3 x1 = 4 x1 + x2 = 7
P2
1.c
ww w.
om
P3
La soluci n del problema P2 es entera y se dice que es un problema terminal o porque ya no es necesario seguir ramicando. Dicha soluci n es una soluci n o o candidata y ser la soluci n optima del problema entero si no encontramos otra a o mejor. El valor optimo de la funci n objetivo para este problema es zP 2 = 420 y es o una cota inferior del valor optimo del problema entero. Fijamos la cota zI = 420. La soluci n del problema P3 no es una soluci n para el problema entero o o porque la variable x2 toma el valor 2.4. El valor de la funci n objetivo zP 3 = o 428 > zI es una cota superior para el problema entero en esa rama. Ramicando este problema es posible que se puedan obtener soluciones mejores que la soluci n o candidata. Hay problemas no terminales y hay que seguir ramicando. Elegimos un problema para ramicar, en este caso s lo tenemos la opci n de elegir el problema P3. o o En ese problema elegimos una variable para ramicar, en este caso s lo podemos o elegir la variable x2 . Se generan los dos problemas siguientes:
at
em
at
ic a
x1
La soluci n optima para los dos problemas reci n creados se recoge en la gr ca o e a de la Figura 5.2. x2
x1 + x2 = 7
ww w.
max
at
em
at
x2 = 3 x2 = 2
ic a
P5 P4 (4.16, 2) x1
Podemos ver que el problema P5 es infactible y, por lo tanto, es terminal. La soluci n optima del problema P4 es xP 4 = (4.16, 2) y zP 4 = 422.8 > 420 = zI . o El problema P4 no es terminal. Repetimos el proceso de ramicaci n. Eligiendo o
1.c
12x1 + 5x2 = 60
om
x1 = 4
el problema P4 y la variable x1 se a aden las restricciones x1 4 y x1 5 para n crear los siguientes problemas: P6 max z = 80x1 + 45x2 sujeto a x1 + x2 7 12x1 + 5x2 60 x1 4, x2 2, x1 4 x1 , x2 0 P7 max z = 80x1 + 45x2 sujeto a x1 + x2 7 12x1 + 5x2 60 x1 4, x2 2, x1 5 x1 , x2 0
En la gr ca de la Figura 5.3 se dan las soluciones optimas del problema P6 y del a problema P7.
x1 = 4 x1 = 5
max
ww w.
at
em
P6 (4, 2) P7 (5, 0) x1
x1 + x2 = 7
x2 = 2
Figura 5.3: Soluci n del P6 y del P7 o La soluci n del problema P6 es xP 6 = (4, 2) y zP 6 = 410 < zI = 420. o Por tanto, el problema P6 es terminal. La soluci n del problema P7 es xP 7 = o
at
ic a
12x1 + 5x2 = 60
1.c
x2
om
(5, 0) y zP 7 = 400 < zI = 420. Por tanto, el problema P7 es terminal. Todos los problemas son terminales y no es necesario seguir ramicando. La soluci n o optima del problema entero es la soluci n candidata o
x E = (x , x ) = (3, 4) y zP E = zI = 420. P 1 2
En el diagrama de la Figura 5.4 se recoge la soluci n optima de todos los proo blemas relajados generados por el m todo de ramicaci n y acotaci n. Para cada e o o problema el valor optimo de la funci n objetivo es una cota superior de la soluci n o o del problema entero en esa rama. PR xP R = (3.6, 3.4) zP R = 440 x1 3 P2 xP 2 = (3, 4) zP 2 = 420 zI = 420 Candidata Terminal xP 4 x1 4 P6 xP 6 = (4, 2) zP 6 = 410 Terminal
ww w.
P4 = (4.16, 2) zP 4 = 422.8
at
em
x2 2
at
ic a
1.c
terminal. Denici n 5.4.1 (Problema relajado) Dado un problema lineal entero, se llama o problema relajado al mismo modelo lineal pero prescindiendo de la restricci n o de que las variables sean enteras. Problema entero: PE max z = cT x sujeto a Ax b x 0 y entero Problema relajado: PR max z = cT x sujeto a Ax b x0
Denici n 5.4.2 (Soluci n candidata) Dado un problema entero, en cada iterao o ci n del proceso de resoluci n llamamos soluci n candidata a la mejor soluci n o o o o entera obtenida hasta el momento. Dado que la soluci n candidata puede ser la soluci n optima del problema o o entero, una vez obtenida una soluci n candidata se debe mantener hasta obtener o otra mejor. El valor de la funci n objetivo para la soluci n candidata ja una cota o o inferior zI para el problema entero. Esta cota sirve para cortar las ramas donde la funci n objetivo sea menor o igual que zI porque indica que en esas ramas no o se encuentra la soluci n optima del problema entero. Un problema de ese tipo es o llamado problema terminal. Adem s, tambi n son problemas teminales aquellos a e que tienen un valor objetivo mayor que la cota inferior pero cuya soluci n es o entera; en este caso esta soluci n pasa a ser la candidata y se actualiza la cota o inferior. Por ultimo, un problema es terminal si es infactible. En el algoritmo denotamos por zS el valor optimo de la funci n objetivo en o cada problema que, como hemos dicho, es una cota superior para el problema entero en esa rama.
ww w.
at
em
zPR zPE .
at
ic a
El problema relajado es una versi n menos restringida del problema entero. o Esto signica que la regi n factible para cualquier problema entero est contenida o a en la regi n factible del problema relajado correspondiente. Para el caso de maxio mizaci n de un problema entero se verica que o
1.c
om
ww w.
at
em
at
ic a
1.c
om
A pesar de que el proceso de b squeda de la soluci n optima requiere gran u o cantidad de c lculos, este es el algoritmo m s utilizado para resolver problemas a a enteros puros y mixtos. Se pueden ahorrar iteraciones si en el Paso 2 se seleccionan el problema para ramicar y la variable para acotar siguiendo determinados criterios. Un criterio sencillo para elegir problema es el de la mejor cota, es decir, elegir para ramicar el problema que tenga mayor valor para la funci n objetivo. Los criterios o de selecci n de variables son m s complicados y no se estudian es este tema, o a elegiremos la variable para ramicar al azar. Ejemplo. Resolver el problema de la p gina 147 utilizando el algoritmo de a ramicaci n y acotaci n. o o Primera iteraci n. o Paso 1. Inicializaci n. Resolver el problema relajado. La tabla optima es o x1 x2 0 a2 a1 0 1
ww w.
x3 20
x4
0 1
0 5 7
em
at
x3 20
12 7
12 7
ic a
1 7
1 7
1.c
x4 5 x5 0 0 1
1 7
5 440
24 7 25 7
Inicializar la cota inferior: zI = . Paso 2. Ramicaci n. La soluci n del problema relajado no es entera. Elegio o mos para ramicar la variable x1 y se crean dos nuevos problemas: el problema P2 y el problema P3 de la p gina 150. a Paso 3. Acotaci n. Resolvemos cada uno de estos problemas utilizando las o t cnicas de an lisis de sensibilidad. e a Soluci n del problema P2. En la tabla optima del PR se introduce la reso tricci n x1 3, sumando la correspondiente variable de holgura, x5 . Se tiene la o siguiente tabla: x1 x2 0 a2 a1 a5 0 1 1 0 1
at
0 440
24 7 25 7
1 7
0 5 7 0 0
om
x1 x2 0 a2 a1 a5 0 1 0 0 1
x3 20
12 7
x4 5 1 7
1 7
x5 0 440 0 0
24 7 25 7
5 0 7
5 7
1 7
1 4 7
Esta tabla no tiene factibilidad primal. Aplicando el algoritmo simplex dual se tiene la siguiente tabla que es optima para el problema P2. x1 x2 0 a2 a1
ww w.
x3
x4
om
x5 35 420 4 3 4
em
1 0
at
0
ic a
1
1.c
45 1 0 x3 20
12 7
0 1 0 1
at
Soluci n del problema P3. Partiendo de la tabla optima del PR, para a adir o n la restricci n x1 4 se multiplica por 1, x1 4, para poder sumar una o variable de holgura x5 que permite ampliar la base. Se tiene la siguiente tabla: x1 0 a2 a1 0 1 x2 0 1 x4 5 1 7
1 7
a4
0 5
1 7
x5 0 440 0 0 1
24 7 25 7
0 5 7 0 0
a5 1
x1 x2 0 a2 a1 a5 0 1 0 0 1
x3 20
12 7
x4 5 1 7
1 7 1 7
x5 0 440 0 0
24 7 25 7
0 5 7 0 5 7
3 1 7
La tabla no tiene factibilidad primal. Aplicando el simplex dual se tiene la tabla que es optima para el problema P3. x1 x2 x3 0 a2 a1 a3 0 1 0 0 1 0 0 0 0 0 x4 9
1 5
x5 28 428
om
12 5 12 5
Tenemos as las soluciones del problema P2 y del problema P3 del diagrama de la Figura 5.4. Paso 4. Problemas terminales. El problema P2 es terminal porque zS = 420 > zI y, adem s, la soluci n es entera, xS = (3, 4). Esta soluci n es candidata a o o y actualizamos zI = zS = 420. El problema P3 no es terminal porque no cumple ninguno de los criterios del Paso 4. Hay problemas no terminales y volvemos al Paso 2. Segunda iteraci n. o Paso 2. Ramicaci n. Seleccionamos un problema no terminal. En este caso o s lo tenemos un problema no terminal, el problema P3. Seleccionamos en dicho o problema una variable; en este caso seleccionamos la variable x2 que es la unica variable no entera. Ramicamos a adiendo al problema P3 la restricci n x2 2 n o para crear el problema P4 y x2 3 para crear el P5 (ver p gina 152). a Paso 3. Acotaci n. Resolver los dos problemas reci n creados. Para ello o e procedemos como en la iteraci n anterior siendo en este caso la tabla de partida o la tabla optima para el problema P3. Se obtienen las soluciones recogidas en el diagrama de la Figura 5.4.
ww w.
at
em
at
7 1 1 5 5
ic a
0 1
1.c
4
3 5
Paso 4. Problemas terminales. El problema P5 es terminal por ser infactible. El problema P4 tiene un valor zS = 422.8 > zI = 420 y la soluci n no es entera. Por tanto, no es terminal. o Volver al Paso 2. Tercera iteraci n. o Paso 2. Ramicaci n. Elegimos para ramicar el problema P4 que es el unico o no terminal. Seleccionamos la variable x1 por ser la unica no entera. Se crean as dos nuevos problemas, el problema P6 y el problema P7 (ver p gina 153). a Paso 3. Acotaci n. Resolver los dos problemas reci n creados. Para ello o e procedemos como en la primera iteraci n siendo en este caso la tabla de partida o la tabla optima para el problema P4. Se obtienen las soluciones recogidas en el diagrama de la Figura 5.4. Paso 4. Problemas terminales. El problema P6 es terminal porque zS = 410 < zI = 420. El problema P7 es terminal porque zS = 400 < zI = 420. Todos los problemas son terminales. La soluci n candidata es la soluci n o o optima del problema entero
at
x = 3, x = 4, zP E = zI = 420. 1 2
em
at
ic a
1.c
om
Cualquier modelo lineal se puede formular de manera que cumpla la condici n o (5.1) sin m s que hacer los cambios lineales necesarios. a
ww w.
Ejemplo. Sea el modelo de programaci n lineal entera 0-1 o max z = 6x1 4x2 sujeto a 3x1 + 2x2 10 x1 + x2 17 x1 , x2 = 0 o 1
at
em
at
ic a
Para que los coecientes de la funci n objetivo cumplan la condici n (5.1) se hace o o un cambio de variable. Elegimos en la funci n objetivo el menor coeciente en o valor absoluto, en este caso c2 ; hacemos x2 = y1 si el coeciente es positivo y x2 = 1 y1 si el coeciente es negativo. En este caso, como c2 es negativo, hacemos x2 = 1 y1 . El siguiente coeciente m s peque o en valor absoluto es a n c1 , como es positivo hacemos el cambio x1 = y2 . Sustituyendo estos cambios en el modelo se tiene el siguiente modelo lineal que ya cumple la condici n (5.1). o
1.c
om
2 Denici n 5.5.1 (Problema relajado) Dado un modelo lineal 0-1, el problema o lineal relajado es el modelo lineal prescindiendo de todas las restricciones del problema excepto de las restricciones 0-1 para las variables. Denici n 5.5.2 (Soluci n parcial) Dado un modelo lineal 0-1, se llama soluci n o o o parcial a una soluci n donde el valor de alguna variable est sin jar. o a Denici n 5.5.3 (Complecci n de una soluci n parcial) Dada una soluci n paro o o o cial de un modelo lineal 0-1, una complecci n es una soluci n obtenida a partir o o de una soluci n parcial dando valor a todas las componentes que est n sin jar. o a
Ejemplo. Dado el problema lineal 0-1 max z = x1 + 2x2 + 4x3 sujeto a x1 + x2 + 2x3 4 3x1 + x2 + 2x3 5 x1 , x2 , x3 = 0 o 1 el problema relajado es max z = x1 + 2x2 + 4x3 sujeto a x1 , x2 , x3 = 0 o 1 Por ejemplo, la soluci n x = (1, 1, ) es una soluci n parcial del problema reo o lajado. Esta soluci n tiene dos complecciones: (1, 1, 0) y (1, 1, 1). La soluci n o o x = (0, , ) es una soluci n parcial. Esta soluci n tiene cuatro complecciones: o o (0, 1, 1), (0, 1, 0), (0, 0, 1), (0, 0, 0). El problema relajado es f cil de resolver teniendo en cuenta que todos los a coecientes de la funci n objetivo son no negativos y que se han ordenado de o menor a mayor. As, la soluci n optima del problema relajado es (1, 1, 1). Si o esta soluci n no cumple la restricci n del problema entero 0-1, la siguiente mejor o o soluci n es (0, 1, 1), la siguiente (1, 0, 1) y as, sucesivamente, se pueden ordenar o las soluciones del problema relajado empezando desde la mejor. 2 A continuaci n exponemos el algoritmo de ramicaci n y acotaci n 0-1. El alo o o goritmo comienza desde la mejor soluci n del problema relajado, si no se verica o la restricci n del problema entero se ramica hasta encontar la soluci n optima o o del problema 0-1. Como veremos siempre se resuelven problemas relajados.
ww w.
at
em
at
ic a
1.c
om
En otro caso, comprobar si x = (0, 1, . . . , 1) cumple las restricciones del problema entero 0-1. Si es as es optima y parar. Si no, jar la cota inferior zI = 0 para el problema entero y una cota superior zS = z(xS ) con xS = (0, 1, . . . , 1). Asociar al problema el ndice k = 1. Paso 2. Ramicaci n. Seleccionar un problema no terminal y ramicar el o problema elegido en dos, a adiendo respectivamente las restricciones xk = n 0 y xk = 1. Paso 3. Acotaci n. Para cada nuevo problema, hacer xS igual a la como plecci n que tiene 0 en la componente k + 1 y 1 en el resto de componentes. o Calcular el valor zS para esta complecci n. o Asociar a estos problemas el ndice k = k + 1. Paso 4. Problemas terminales. Analizar los problemas que puedan contener la soluci n optima y considerar terminales los que cumplen una de las o siguientes condiciones:
Si todos los problemas son terminales parar. La soluci n optima es la o soluci n candidata. En otro caso, ir al Paso 2. o Ejemplo. Resolver el siguiente problema utilizando el algoritmo de ramicaci n y acotaci n 0-1. o o max z = 15x1 + 25x2 + 12x3 + 10x4 sujeto a 3x1 + 6x2 + 5x3 + 5x4 12 x1 , x2 , x3 , x4 = 0 o 1 Para ordenar los coecientes de la funci n objetivo se hacen los siguientes o cambios de variable: x4 = y1 , x3 = y2 , x1 = y3 , x2 = y4 y se tiene el problema entero 0-1 y el correspondiente problema relajado.
ww w.
at
em
(2) Si zS > zI y xS cumple las restricciones del problema entero, entonces xS es soluci n candidata y se actualiza zI = zS . o
at
ic a
(1) zS zI .
1.c
om
PE 0-1 max z = 10y1 + 12y2 + 15y3 + 25y4 sujeto a 5y1 + 5y2 + 3y3 + 6y4 12 y1 , y2 , y3 , y4 = 0 o 1
En el diagrama de la Figura 5.5 en cada nodo se muestra una soluci n parcial o del problema relajado correspondiente a ese nodo. Adem s se da la complecci n a o que permite calcular una cota superior para el problema en esa rama. Primera iteraci n. o Paso 1. Inicializaci n. o Comprobamos que la soluci n optima del problema relajado y = (1, 1, 1, 1) o no cumple la restricci n del problema entero 0-1. o Comprobamos que la siguiente mejor soluci n y = (0, 1, 1, 1) no cumple la o restricci n del problema 0-1. Calculamos el valor zS = 52 para la funci n objetivo o o en esa soluci n. o Hacemos k = 1 y jamos la cota inferior zI = 0. Paso 2. Ramicaci n. Seleccionamos un problema no terminal, en este caso o el PR y creamos dos nuevos problemas, el problema P2 y el problema P3, a an diendo al PR las restricciones y1 = 0 e y1 = 1, respectivamente.
ww w.
at
em
at
ic a
1.c
om
Paso 3. Acotaci n. o Para el problema P2 la complecci n yS = (0, 0, 1, 1) proporciona el valor de o la funci n objetivo zS = 40 que es una cota superior para el valor de la funci n o o objetivo del problema entero en esta rama.
Para el problema P3 la complecci n yS = (1, 0, 1, 1) proporciona el valor de o la funci n objetivo zS = 50 que es una cota superior. o Asociamos a estos problemas el valor k = 2. Paso 4. Problemas terminales. El problema P2 es terminal porque que zS > zI e yS =(0, 0, 1, 1) cumple las restricciones del problema entero 0-1. Esta soluci n es candidata y se actualiza la o cota inferior, zI = 40. El problema P3 no es terminal porque no cumple ninguna de las 3 condiciones. Volver al Paso 2. Segunda iteraci n. o Elegimos el problema P3 para ramicar, a adiendo la restricci n y2 = 0 para n o crear el problema P4 y a adiendo la restricci n y2 = 1 para crear el problema P5. n o
om
1.c
y3 , y4 = 0 o 1
ww w.
y1 = 1, y2 = 0
at
sujeto a
em
at
ic a
P4
P5
Para cada problema calcular las complecciones y el valor de la funci n objeo tivo, (ver Figura 5.5). Asociamos a estos problemas el valor k = 3. El problema P4 es terminal porque zS < zI . El problema P5 no es terminal porque no cumple ninguna de las 3 condiciones. Volver al Paso 2. Tercera iteraci n. o Elegimos el problema P5 para ramicar, a adiendo la restricci n y3 = 0 para n o crear el problema P6 y a adiendo la restricci n y3 = 1 para crear el problema P7. n o
Calculamos las complecciones y el valor de la funci n objetivo, (ver Figura o 5.5). Asociamos a estos problemas el valor k = 4. Los dos problemas son terminales porque tienen un valor zS < zI . No hay problemas no terminales, la ramicaci n ha terminado. o La soluci n optima del problema entero es la soluci n candidata que correso o ponde a la cota inferior zI = 40, es decir, yS = (0, 0, 1, 1). Deshaciendo los cambios de variable realizados se obtiene la soluci n optima o para el modelo entero inicial: x1 = x2 = 1, x3 = x4 = 0 y z = 40. PR yS = (0, 1, 1, 1) zS = 52
P3 P2 y = (1, , , ) y = (0, , , ) yS = (1, 0, 1, 1) yS = (0, 0, 1, 1) zS = 50 zS = 40 y2 = 1 y2 = 0 zI = 40 P4 P5 Candidata Terminal y = (1, 0, , ) y = (1, 1, , ) yS = (1, 1, 0, 1) yS = (1, 0, 0, 1) zS = 47 zS = 35 y3 = 0 y3 = 1 Terminal P6 P7 y = (1, 1, 0, ) y = (1, 1, 1, ) yS = (1, 1, 0, 0) yS = (1, 1, 1, 0) zS = 37 zS = 22 Terminal Terminal Figura 5.5: Diagrama de la soluci n optima del problema entero 0-1 o
ww w.
at
y1 = 0
em
at
ic a
y1 = 1
1.c
om