Este documento presenta varios problemas y ejercicios relacionados con métodos de optimización lineal entera y el algoritmo Branch and Bound (B&B). En el primer problema, se evalúan afirmaciones sobre B&B y programación lineal entera. Los problemas 2 y 3 presentan ejemplos concretos de problemas de optimización lineal entera y su resolución mediante B&B. El problema 4 aborda casos en los que se puede detener la ramificación en B&B y si una solución entera parcial es el óptimo general. Finalmente, el problema 5 p
Este documento presenta varios problemas y ejercicios relacionados con métodos de optimización lineal entera y el algoritmo Branch and Bound (B&B). En el primer problema, se evalúan afirmaciones sobre B&B y programación lineal entera. Los problemas 2 y 3 presentan ejemplos concretos de problemas de optimización lineal entera y su resolución mediante B&B. El problema 4 aborda casos en los que se puede detener la ramificación en B&B y si una solución entera parcial es el óptimo general. Finalmente, el problema 5 p
Este documento presenta varios problemas y ejercicios relacionados con métodos de optimización lineal entera y el algoritmo Branch and Bound (B&B). En el primer problema, se evalúan afirmaciones sobre B&B y programación lineal entera. Los problemas 2 y 3 presentan ejemplos concretos de problemas de optimización lineal entera y su resolución mediante B&B. El problema 4 aborda casos en los que se puede detener la ramificación en B&B y si una solución entera parcial es el óptimo general. Finalmente, el problema 5 p
Mtodos de Optimizacin: Ejercicios de Programacin Lineal Entera
Problema 1. Estudie si las siguientes afirmaciones son verdaderas o falsas:
1.- Para resolver problemas lineales enteros, la idea de B&B es ir agregando restricciones que eliminan las soluciones fraccionales (o continuas) y resolver la relajacin lineal.
Respuesta. Verdadero. La idea del mtodo de B&B es en un primer paso, resolver la relajacin lineal del problema original, y posteriormente, si la solucin es fraccional, agregar restricciones que obliguen a las variables a tomar valores enteros. En cada nodo de B&B se resuelve una relajacin lineal.
2.- Un problema de programacin lineal entera es un conjunto convexo.
Respuesta. Falso. Basta con tomar un problema de 2 variables, y mostrar en un grfico que el conjunto de soluciones factibles en un problema entero es un conjunto de puntos en particular. El dominio claramente no es convexo, ya que al tomar un par de puntos y unirlos con una recta (dada la definicin de convexidad), la recta no contiene soluciones enteras vlidas.
3.- El valor de la mejor solucin entera disponible en cada iteracin se llama incumbente.
Respuesta. Verdadero. Al encontrar una solucin entera, se debe verificar que esta solucin entera es mejor que la encontrada anteriormente. En el caso que sea mejor, la mejor solucin se denomina incumbente.
4.- Un plano cortante es una restriccin redundante para la formulacin entera pero que corta soluciones fraccionarias de la relajacin lineal.
Respuesta. Verdadero. Un plano cortante corta soluciones fraccionarias y se aproxima a la solucin entera. A esto tambin se le denomina desigualdad vlida. En el dibujo se muestra un plano cortante:
5.- Un problema de programacin lineal ms restringido es ms ptimo
Respuesta. Falso. Cada vez que se resuelve un problema ms restringido, la regin de soluciones factibles se hace ms pequea (esto sin considerar restricciones redundantes) y, por ende, el problema restringido es menos ptimo. 6.- Si un problema de Programacin Entera es infactible, entonces la relajacin lineal no puede ser factible.
Respuesta: La relajacin lineal puede ser factible y no contener ningn punto con coordenadas enteras, tomen por ejemplo la regin:
2 ( , ) : 0 1;0, 25 0, 75; , enteros f x y x y x y que es vaca, pero que en el relajado es perfectamente factible.
Problema 2. Don Zippy, un humilde y emprendedor microempresario, est planeando adquirir la franquicia de la prestigiosa cadena de comida rpida estadounidense McChrono. Don Zippy tiene todo listo: la negociacin est en una etapa avanzada, por lo que desea desde ya saber cuntas unidades de cada una de sus hamburguesas va a producir.
La franquicia le da derecho a producir 2 de las hamburguesas de McChrono: McChrono Salvaje y McChrono Extra Queso. Cada unidad de McChrono Salvaje requiere de 3 hamburguesas para su preparacin, mientras que una unidad de McChrono Extra Queso requiere solo una. Asimismo, una unidad de McChrono Salvaje necesita de 2 lminas de queso, mientras que una de McChrono Extra Queso requiere de 5 lminas. Don Zippy considera que los dems ingredientes son despreciables para su clculo, y cuenta con un total de 200 hamburguesas y 300 lminas de queso.
Solucin.
Variables de Decisin: X = Cantidad de hamburguesas McChrono Salvaje Y = Cantidad de hamburguesas McChrono Extra Queso
Primero se resuelve el problema relajado, que es la interseccin de las dos restricciones, as se obtiene: X = 53,8 e Y = 38,6 Luego se procede a la ramificacin, comenzando con el incumbente z=-. La resolucin se muestra en el rbol siguiente, es importante aclarar que cada nodo contiene adems de la restriccin que se especifica en el mismo, las restricciones de toda la rama superior a l.
La solucin entera es X = 54, Y = 38 y Z = 111000.
Observaciones: 1.- En el nodo amarillo se dejo de ramificar pues en l, el valor de Z es igual que el incumbente. 2.- En los dems nodos se dejo de ramificar por haber llegado a una solucin entera. 2.- Se puede comenzar a ramificar por la variable Y, y se debe llegar al mismo resultado.
Problema 3. La empresa Mxima S.A., luego del fracaso de Pulschuper para encontrar a la famosa maleante Carmen SanDego, decidi despedirla, motivo por el cual Pulschuper debe abandonar la oficina y no volver nunca ms. El problema es que solo llevo una mochila pequea con capacidad de 2lt. y en su estante tiene su notebook, una foto de su hija, su polern favorito y un lpiz. Si los utensilios utilizan una capacidad de 1.2, 0.6, 0.8 y 0.3 respectivamente y tienen utilidades de 8, 10, 5 y 1 respectivamente, utilice el algoritmo Branch & Bound para ayudar a Pulschuper a decidir que utensilios llevarse a su casa.
Respuesta
Este es el problema de la mochila, en su versin binaria:
Variables de Decisin:
1 x = 1 si lleva notebook, 0 si no. 2 x = 1 si lleva foto, 0 si no. 3 x = 1 si lleva polern, 0 si no. 4 x = 1 si lleva lpiz, 0 si no.
Modelo: 1 2 3 4 8 10 5 1 Max Z x x x x s.a. 1 2 3 4 1, 2 0, 6 0,8 0, 3 2 x x x x
1 2 3 4 , , , 0,1 x x x x
Entonces, para encontrar la solucin del problema relajado, no es posible graficar el problema. El truco es obtener primero las mejores razones de beneficio y volumen:
a.- Para notebook: 8/1,2 = 6,67 b.- Para foto: 10/0,6 = 16,67 c.- Para polern: 5/0,8 = 6,25 d.- Para lpiz: 1/0,3 = 3,33
La solucin del problema relajado consiste en llevar los artculos que tengan mejor razn hasta completar la capacidad, por lo tanto la solucin ptima del problema relajado es:
1 2 3 4 0 1, 1, 0, 25, 0, 19, 25 x x x x Z
La ramificacin sera la siguiente:
Problema 4.
a) En qu casos se puede detener la ramificacin en un nodo durante la aplicacin del algoritmo Branch & Bound (B&B)? Mencione 3 casos con justificacin.
b) Suponga que al resolver un problema de programacin entera, en la primera ramificacin del algoritmo de B&B en una de las ramas le da un ptimo con coordenadas enteras. Puede afirmar que es el ptimo del problema general? Por qu?
Respuesta a) El nodo gener un problema infactible. La solucin del problema en ese nodo es entera. La solucin del problema en ese nodo es fraccionaria pero es peor que alguna entera que ya ha sido obtenida (el valor de la incumbente).
b) No se puede afirmar que sea el ptimo del problema general pues se pueden presentar varias situaciones: Si en la otra rama tambin da una solucin entera, el ptimo del problema general es el de la rama con mejor valor en la funcin objetivo. Si en la otra rama la solucin no es entera y el valor de la funcin objetivo es peor que el de la rama con solucin entera, entonces la rama con solucin entera es el ptimo pues ramificar la otra rama slo empeorar el valor de la funcin objetivo. Si en la otra rama la solucin no es entera pero el valor de la funcin objetivo es mejor que el de la rama con solucin entera, entonces se debe ramificar la rama y no se puede afirmar que sea el ptimo del problema general.
Problema 5. Se tiene el siguiente problema de transporte generalizado con la siguiente formulacin, donde ij x : Cantidad de flujo a enviar desde el oferente i al demandante j.
Suponga que ha resuelto un problema entero original y tambin la relajacin lineal para ver el salto de integralidad" (CASO1). Adicionalmente ha realizado dos casos de generacin de cortes en los cuales ha agregado los cortes a la relajacin lineal, y posteriormente ha resuelto con Branch and Bound para ver si disminuye el nmero de nodos generados, y tambin ver el valor relajado lineal correspondiente. Estos dos casos los llamaremos CASO2 y CASO3. No importa aqu qu tipo especfico de corte est usando, digamos que a partir de los resultados relajados usted aplica una idea que se le ha ocurrido para generar cortes. La siguiente tabla muestra los resultados obtenidos.
Problema Relajacin Lineal Valor ptimo entero Nmero de nodos de B&B CASO 1 532,11 585 185 CASO 2 575,20 585 132 CASO 3 579,20 593 232
Le parecen razonables estos resultados? Interprete y Discuta.
Respuesta:
Se debe fundamentar principalmente lo siguiente:
Al agregar cortes, el valor de la relajacin lineal mejora.
Existe una disminucin de nodos de branch-and-bound al aplicar cortes a la solucin relajada del CASO1 al CASO2. Esto se explica debido a que la generacin de cortes ayuda a acercarse a la solucin ptima entera, con lo que CPLEX tiende a utilizar menos nodos de branch-and-bound.
Lo que debe notarse principalmente es que en el CASO3, el valor ptimo entero cambia (aumenta). Esto significa que el corte agregado en el CASO3 est incorrecto, ya que est cortando la solucin ptima del problema. Grficamente:
Problema 6. El siguiente diagrama muestra el rbol desarrollo por el algoritmo de Branch and Bound para un problema entero de maximizacin dado, el nmero en cada nodo indica el orden en que fueron generados durante la bsqueda, siendo el nodo 1 la relajacin lineal del problema entero original. Adems en cada nodo se indica el valor ptimo del subproblema lineal correspondiente. Los nodos 4 y 7 presentan soluciones enteras.
a) Si el proceso se detiene aqu, cul debiera ser el valor del incumbente (mejor valor entero) para este problema? Cunto es garantizadamente el error en la estimacin de la funcin objetivo?
b) Se ramifica ahora el nodo 3 dando origen a los nodos 8 y 9. El nodo 8 es infactible y el nodo 9 tiene una solucin con valor igual a 94. Qu se debe hacer? Qu puede decir sobre el valor ptimo entero buscado?
Respuesta:
a) El incumbente es la mejor solucin entera disponible hasta el momento. Dado que estamos maximizando, ese corresponde al valor del nodo 7, que es 95. La mejor cota relajada corresponde al valor 112, por lo que 112 > z*, donde z* es el valor ptimo que buscamos. El mejor valor entero obtenido es 95, entonces, la solucin ptima estar entre 95<z*<112. Si bien, no conoceramos el valor ptimo verdadero, ya tenemos un intervalo en el que estamos seguros que est contenido, y con una estimacin cuyo error es del orden del 15%.
b) Cuando se considera el nodo 9, con valor 94, entonces la rama que sale de este nodo puede ser podada, ya que 94 es menor a 95 (valor del nodo 7) y cualquier solucin entera que pueda generarse en esa rama, no va a ser mejor que la actual que tiene valor 95. Por su parte, el nodo 8 debe ser podado inmediatamente por su infactibilidad. Por lo tanto, la solucin ptima segn esta ramificacin es la del nodo 7, con valor 95.
Problema 7. Considere un problema de Programacin Entera de la forma:
Suponga que el valor ptimo de la relajacin lineal es 12.324.657. Suponga que ha aplicado * min s.a. 0, T z c x Ax b x entero
el algoritmo de Ramificacin y Acotamiento (Branch and Bound), generando hasta ahora
378 nodos, todos con soluciones fraccionarias. Ahora ramifica y genera un nuevo nodo, obteniendo una solucin con valores enteros y cuya funcin objetivo vale 11.134.629. Esta es la primera solucin entera que obtiene.
a) De un rango de error para el valor ptimo z*, en estos momentos. Justifique con precisin.
Respuesta: Dado que la relajacin lineal da una cota superior (estamos maximizando) y la solucin entera es factible (no podemos asegurar nada ms), tenemos que 11.134.629 * 12324657 z
b) Suponga que ahora genera otro nuevo nodo de ramificacin y se obtiene una nueva solucin entera con valor 11.200.173. Qu hace? Justifique con precisin.
Respuesta: Esta solucin entera tiene mejor valor que la anterior, as que nos quedamos con esta como incumbente.
c) Ahora genera otro nodo ms, obteniendo una solucin fraccionaria, donde la variable de ndice 35 vale x 35 = 0,34, y donde el valor de funcin objetivo de esa solucin es 11.146.987. Qu hace ahora? Explique con precisin
Respuesta: No es necesario ramificar ya que cualquier solucin entera que pueda surgir por esta rama tendr un valor de funcin objetivo menor a 11.146.987 y ya tenemos una solucin entera mejor que eso, con valor de incumbente igual a 11.200.173. Por lo tanto, ese nodo se poda".