1
Método de Ramificación y Acotamiento (Branch and Bound)
RESUMEN Hasta el momento solo hemos visto métodos de resolución de problemas lineales continuos. Sin embargo es muy frecuente que la naturaleza del problema nos diga que las variables son enteras o binarias. Una alternativa es simplemente aproximar la solución hacia el entero mas cercano, pero esta estrategia podría ser bastante mala como de hecho ocurre para las variables variables binarias. El algoritmo algoritmo de ramificación y acotamiento (o de branch and bound) comienza comienza con una relajación relajación del problema problema (no considerar considerar restricciones de integralidad) y construye un árbol con soluciones enteras particionado el conjunto de soluciones factibles de modo de descartar soluciones fraccionarias. Sin embargo, este solo hecho de descomponer nos puede llevar a un problema inmanejable por lo que debemos podar el árbol de manera inteligente.
Abstract So far we have only onl y seen methods of solving continuous linear problems. However, it is very common for the nature of the problem to tell us that the variables are whole or binary. An alternative is simply to approximate the solution for the closest set, but this strategy could be quite bad as it actually happens happens for binary variables. variables. The branch branch and bound algorithm algorithm begins with a relaxation relaxation of the problem problem (does not need need integrality constraints) constraints) and builds a tree with whole solutions partitioning the set of feasible solutions in order to rule out
2 fractional solutions. However, this single fact of decomposing can lead to an unmanageable problem so we must prune the tree intelligently.
INTRODUCCION Un problema de programación entera es un problema de programación lineal. El sentido común dicta que este tipo de problemas deben ser mucho más sencillos que los problemas de programación lineales convencionales. Existen tres casos de programación entera: -Programación entera pura. -Programación entera mixta. -programación entera binaria.
Un enfoque para obtener soluciones enteras a un problema es resolver de la solución óptima obtenida de la solución del Simplex y redondear las soluciones a números enteros. Uno de los métodos más usados para solucionar este tipo de problemas es el método de ramificación y acotamiento
OBJETIVOS El objetivo de esta investigación es presentar un método para resolver problemas de programación entera (PE) mediante la técnica de ramificación y acotamiento.
3 Además de conocer la ramificación y acotación de programación entera y los pasos para llevarla acabo asimismo encontrar la solución optima del PE mediante la enumeración exhaustiva de los puntos en una región factible de un subproblema.
algoritmo de ramificación y acotamiento
OBJETIVOS ESFECIFICOS Plantear problemas de programación Entera. Aplicar el algoritmo de Ramificación y Acotamiento Utilizar el WinQSB para el analisis respectivo
MARCO TEÓRICO En 1960,Ailsa H.Land y Alison G. Doig, presentan el algoritmo Land-Doig. El nombre de bifurcacion y acotamiento (o bien, ramificación y acotamiento y en ingles “Branch and bound”) se lo dan posterirmente Little,Murty,Sweeney,Karel.Mas tarde, el algoritmo f ue
modificado por Darkin, haciendo de manera mas general. El método de ramificación y acotamiento que es muy elegante y simple, redondea y acota varaibles enteras, resultantes de la solución de los problemas lineales correspondientes.Este proceso de acotameinto y redondeo se hace de una manera secuencial lógica heurística que permite eliminar con anticipación un buen numero de soluciones factibles alejadas del optimo a medida que se itera,De tal suerte que su uan variable entera X j ,j=1,n esta acotada entre un
4 limite inferior entero d j, j=1,n y un limite superior entero u j,j=1,n el proceso de ramificación y acotación solo analiza un numero muy pequeño de toldas las soluciones posibles.
Método de ramificación y acotamiento Es un método usado para resolver un problema de programación entera en el que los nodos del arbol asociado se examinan de una manera sistematica tratando de eliminar por consideración tantos nodos terminales como sea posible. Con el método de ramificación y acotamiento, en vez de buscar nodos terminales directamente, comienza en el nivel superior del arbol y procede de nodo en nodo, se resuelve el programa lineal asociado.sobre la base de esta solución, se toma una decisión respecto a que nodos del arbol, si los hay, pueden eliminarese para otras consideraciones, lo que reduce el numero de nodos terminales que necesitan examinarse. Características claves
Si un problema de programación lineal en un nodo es infactible, entonces también lo es el problema entero asociado en ese nodo, así como todos los problemas asociados con los nodos debajo del actual. Si el programa lineal actual tiene una solución óptima, entonces el valor óptimo de la función objetivo del problema entero correspondiente, así como de cualquier programa lineal o entero asociado con un nodo debajo del actual, no puede exceder el del actual. Mientras más lejos se fije el valor de una variable de su valor en la solución óptima de un programa lineal, peor será el valor de la función objetivo óptima del programa lineal asociado
5 Una vez que un problema de programación lineal es infactible para un valor entero fijo de una variable mayor (menor) que su valor óptimo en el programa lineal, todos los valores mayores (menores) de esta variable originan problemas de programación lineal infactibles. Si el programa lineal en un nodo es ilimitado, el problema de programación entera es ilimitado o infactible.
Utilización
En algunos problemas los valores de las variables de decisión no pueden contener decimales, como por ejemplo, en el caso de fabricación de artefactos para su venta, debido que estos no pueden ser vendidos de forma incompleta, también se da el caso cuando se tiene la asistencia de personas a eventos, pues en ellos las variables solo pueden tomar valores de 01 (Binarios) los cuales indican si la persona asiste o no
BASES TEÓRICAS ALGORITMO DE RAMIFICACION Y ACOTAMIENTO Paso 1: Resuelva el Problema Lineal utilizando el método correspondiente. Paso 2: ¿La solución es entera? 2.1 Si, Se obtuvo la Solución Optima, ir al Paso 8. 2.2 No, ir al Paso 3. Paso 3: Escoger de la solución final una variable entera X j, cuyo resultado es fraccionario e igual a X bi.
6
Paso 4: Resolver 2 P.L. iguales al anterior uno con restricción restricción
X j <= [X bj] y el otro con
X j >= [X bj]+1
Paso 5: Incluir en el análisis aquellos programas cuyo resultado sea el mejor (máx., min.), a cualquiera de las soluciones enteros conocidos.
Paso 6: Seleccionar el Programa que tenga el máximo valor de la F.O. Paso 7: Ir al Paso 2. Paso 8: Fin. Diagrama de flujo Inic Resolver el P.L. (Método Simplex)
0
correspondiente
1 ¿La solución es
Escoja de esta estructura una variable entera Xj , cuyo resultado es
Solución Óptima
Resuelva dos P.L.s iguales al anterior uno con restricción adicional Xj <= [X Bj] y el otro FIN Incluir en el análisis aquellos programas cuyo resultado sea mejor a cualquiera de las soluciones enteros conocidos
Selecciónese el programa que
7 Ejemplo
Max F(X) = 8x1 + 10x2 s.a. 4x1 + 6x2 ≤ 24 8x1 + 3x2 ≤ 24 x1≥0,x2≥0, x1,x2∈Z+ Resolviendo en primer lugar el PL, es decir Max F(X) = 8x1 + 10x2 s.a. 4x1 + 6x2 ≤ 24 8x1 + 3x2 ≤ 24 x1≥0,x2≥0 método simplex x1 = 2, x2 = 8/3, f(x) = 128/3
Primera Ramificación: Solución: x1 = 2, x2 = 8/3, f(x) = 128/3 subproblema 1
subproblema 2
Max F(X) = 8x1 + 10x2 .
Max F(X) = 8x1 + 10x2
s.a. 4x1 + 6x2 ≤ 24
s.a. 4x1 + 6x2 ≤ 24
8x1 + 3x2 ≤ 24
8x1 + 3x2 ≤ 24
x2 ≥ 3
x2 ≤ 2
x1≥0,x2≥0
x1≥0,x2≥0
8
solución x1=1,5, x2=3, F(x)=42
solución x1=2,5, x2=2, F(x)=38
Segunda ramificación: Solución anterior mejor: x1=1,5, x2=3, F(x)=42
subproblema 1.1
subproblema 1.2
Max F(X) = 8x1 + 10x2 .
Max F(X) = 8x1 + 10x2
s.a. 4x1 + 6x2 ≤ 24
s.a. 4x1 + 6x2 ≤ 24
8x1 + 3x2 ≤ 24
8x1 + 3x2 ≤ 24
x2 ≥
3 x2 ≥ 3
x1 ≤ 1
x1 ≥ 2
x1≥0,x2≥0
x1≥0,x2≥0
solución x1=1, x2=10/3,F(x)=124/3
solución infactible.
Tercera ramificación Solución anterior mejor: x1=1, x2=10/3,F(x)=124/3 subproblema 1.1.1
subproblema 1.1.2
Max F(X) = 8x1 + 10x2 .
Max F(X) = 8x1 + 10x2
s.a. 4x1 + 6x2 ≤ 24
s.a. 4x1 + 6x2 ≤ 24
8x1 + 3x2 ≤24
8x1 + 3x2 ≤ 24
9 x2 ≥3
x2 ≥ 3
x1 ≤1
x1 ≥ 2
x2 ≤ 3
x2 ≥ 4
x1≥0,x2≥0
x1≥0,x2≥0
solución x1=1, x2=3,F(x)=38 solución x1=0, x2=4,F(x)=40
Solución OPTIMA x1 = 0, x2 = 4, F(x) = 40
El árbol del problema resuelto es el siguiente:
2 PL
1.1.1
X1=2,5,X2=2,F=3
X1=1,X2=2,F=3
X2≤3
X2≤2
X1=2,X2=8/3,F=128/3
1.1
X1=1,X2=10/3,F=124/3
X2≥3
X2≥4
X1≤1
1
1.1.2
X1=1,5,X2=3,F=4 X1≥2
1.2
INFACTIBLE
Gráfico 1
X1=0,X2=4,F=4
10
CONCLUSIONES -La programación entera representa problemas donde las variables de decisión son enteras, lo cual es un caso muy frecuente. -El método de Acotamiento y Ramificación ofrece una manera sencilla para solucionar problemas de programación entera de manera sencilla, aunque no siempre de manera eficiente. -A pesar de tener un número de soluciones finitas, los problemas de programación entera tienen un grado de dificultad considerable, y muchas veces no existe solución para estos problemas.
BIBLIOGRAFIA
Contreras, m. a. (2008). investigacion de operaciones. tacna: editorial S.A. Goic, M. (s.f.). Analisis Post Optimal. Obtenido de Algoritmo de ramificacion y acotamiento: https://www.ucursos.cl/ingenieria/2008/2/IN34A/2/material_docente/bajar?id_material=198948 Hillier, F. (1998). introduccion ala investigacion de operaciones. Mc Graw hill. Investigacion de Operaciones. (5 de
noviembre de 2011). Obtenido de
http://www.investigaciondeoperaciones.net/programacion_entera.html software TORA. (s.f.). Taha, H. a. (2004). investigacion de operaciones. mexico: person educacion.