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

TRABAJO DE INVESTIGACION

METODO DE BRANCH & BOUND

Ramo:

Investigacin de Operaciones. Alicia Prez O. Erik Egaa. Nelson Prez Z. Juan Carmona V.

Profesora: Integrantes:

Fecha:

La Serena Enero 2014

INDICE 1. Introduccin 2. Objetivos generales 3. Objetivos especficos 4. Desarrollo I Definiciones y Conceptos Ramificacin Acotacin Eliminacin Seleccin Bsqueda en Profundidad (depth-first) Primero el Mejor (Best-first) Bsqueda en Anchura o por Niveles (Breadth-first) II Paralelismo y distribucin de cargas Sobrecarga de la bsqueda Decisin entre comunicacin y computacin Escalabilidad y algoritmos escalables Algoritmo de Ramificacin y Acotacin secuenciales y paralelas III Paradigma de la Orientacin a objetos 5. Conclusin. 6. Bibliografa.

Introduccin Branch-and-Bound (B&B) es una tcnica eficiente para la bsqueda de soluciones donde su objetivo es encontrar no solamente una solucin, pero si la ptima. El Mtodo de Branch and Bound se aplica mayoritariamente para resolver problemas de optimizacin. Esta tcnica, conocida tambin como tcnica de Ramificacin y poda, se interpreta como un rbol de soluciones, donde cada rama lleva a una posible solucin posterior a la actual. La caracterstica de esta tcnica, es que el algoritmo se encarga de detectar en qu ramificacin las soluciones dadas ya no estn siendo ptimas, para podar esa rama del rbol y no continuar malgastando recursos y procesos en casos que se alejan de la solucin ptima. Casi todas las otras tcnicas de bsquedas son distintas del mtodo B&B porque encuentran soluciones no ptimas o soluciones subptimas. El problema debe ser representado con un grafo de estados, donde el estado inicial significa el problema propuesto y el estado final es el objetivo a alcanzar. Hay variaciones como bsqueda con retroceso, programacin dinmica, los rboles de decisin Y/O y otros.

Objetivo General Entregar informacin sobre el mtodo de Branch & Bound, basado en el diseo de Algoritmos de Ramificacin y Poda.

Objetivos Especficos En este trabajo, ser presentado por 3 secciones: La primera seccin, algunas definiciones, conceptos y funcionamiento de lo algoritmo Branch-and-Bound.

La segunda seccin, el paralelismo y distribucin de carga para algoritmos paralelos.

La tercera seccin, la orientacin a objetos para esos algoritmos, conclusiones y bibliografa.

I Definiciones y Conceptos El funcionamiento general de lo algoritmo B&B consiste en reducir el espacio de bsqueda del problema podando las zonas del rbol an no exploradas que no pueden crear mejores soluciones que la solucin en curso. Para tanto, el mtodo de ramificacin y acotacin B&B busca siempre la ptima solucin y, nunca una buena solucin. Para comprenderemos mejor como el algoritmo B&B funciona, algunos conceptos deben ser descritos.

Ramificacin Significa elegir el prximo nodo en curso de la lista de nodos vivos, siendo el nodo vivo eliminado da lista y la continuacin ocurre generando sus hijos. Para elegir el prximo nodo en curso hay 3 estrategias:

FIFO: Se utiliza una cola para implementar la lista de nodos vivos, tiendo el nodo en curso el primero nodo de la lista de nodos vivos (LNV) y sus hijos se aaden al final de la lista. El recorrido aqu es por niveles.

LIFO: Se utiliza una pila para implementar la LNV. Aqu el prximo nodo vivo ser el primero de la LNV y sus hijos se aaden al inicio de la lista. Esta estrategia es muy similar al recorrido en profundidad, tiendo como diferencia de generar todos los hijos del nodo en curso antes de elegir el prximo nodo.

MINIMO COSTE: Se utiliza una cola con prioridades para implementar la LNV. Ahora, cada nodo de la LNV tiene una prioridad o coste, de forma que siempre el nodo con mayor prioridad ser elegido. Un problema de optimizacin con restricciones puede ser transformado en un problema de encontrar la solucin de mnimo coste. As, crease una funcin de estimacin. Encontrar una funcin de estimacin fcil de calcular no es una tarea fcil. Hay propiedades que la funcin debe cumplir. Se no se cumplen el algoritmo se detn al encontrar la primera solucin, la cual pude no ser la ptima.

En la fase de ramificacin es posible emplear poda para que el tamao del rbol de estados sea reducido. Esta poda no es la misma que a poda realizada por el mtodo. La poda realizada por el mtodo es para evitar una duplicacin de los estados en el rbol, evitando, as, que un mismo nodo sea explorado ms de una vez.

Acotacin Significa usar una funcin U para podar en el rbol del espacio de estados de los nodos que se ajusten a una regla de poda. La funcin U tiene, inicialmente, valor mximo determinado por una heurstica basada en informacin extra del problema, siendo que U nunca podr ser menor que la solucin de mnimo coste.

Eliminacin Significa podar los nodos que lo lmite es mayor que la solucin encontrada hasta ahora.

Seleccin Generalmente, la funcin de seleccin est determinada por una funcin de prioridad heurstica. Los subproblemas estn almacenados en la estructura de datos en un orden parcial o total, que no es decreciente de la funcin heurstica. Como la funcin de seleccin afecta su eficacia y al espacio de memoria requerido, algunas reglas de seleccin heurstica ms comunes son descritas como: profundidad, anchura o niveles y primero el mejor. Bsqueda en Profundidad (depth-first) La funcin de seleccionar el subproblemas, que debe estar a ms profundidad en el rbol, debe tener un menor valor de la funcin de prioridad heurstica. Para utilizarse este mtodo es necesario utilizar una estructura de almacenamiento llamado LIFO o pila. La complejidad de la pila se incrementa linealmente con el nivel del rbol de bsqueda alcanzado y el factor de divisin. Los subproblemas generados a partir del subproblemas elegido y descompuesto son introducidos en la pila siguiendo un orden decreciente de la funcin de prioridad heurstica. Las principales ventajas son: la primera, es el mtodo de seleccin ms econmico del punto de vista del espacio de memoria requerido y; la segunda es que conduce ms rpidamente a la obtencin de una mejor cota superior. En contrapartida, las desventajas son: el nmero de subproblemas inspeccionados es mayor que el realizado en otros tipos de selecciones y; se entra una rama del rbol que no lleva a la solucin ptima, necesitndose mucho tiempo para salir de esa ramificacin.

Primero el Mejor (Best-first) La funcin de seleccin elige aquel subproblema con un menor valor de la funcin de prioridad heurstica independientemente del nivel de profundidad en que se encuentre en un rbol de bsqueda. La estructura de almacenamiento usada es una lista ordenada. La ventaja es que difcilmente un problema es descompuesto innecesariamente. Se exploran menos nodos que usando otras estrategias; y la desventaja: la mejor cota superior, suele obtenerse en las fases finales del algoritmo y el crecimiento exponencial en el espacio de memoria necesario aumenta conforme la profundidad del rbol. Bsqueda en Anchura o por Niveles (Breadth-first) La funcin de seleccin elige, de entre aquellos subproblemas que estn a menor profundidad en el rbol de bsqueda, el que tenga un menor valor de la funcin de prioridad heurstica. La estructura de almacenamiento usado por este mtodo es FIFO o cola. La ventaja de utilizarse ese mtodo es que admite que la aplicacin haga teste de dominancia entre los subproblemas que se encuentra a la misma profundidad del rbol de bsqueda; y la desventaja es que ese tipo de estrategia no es recomendable ni desde el punto de vista del tiempo de computacin ni desde el del ahorro de memoria. Hay todava, otra estrategia llamada Modelo Hbrido que es una combinacin de la bsqueda en profundidad y de la bsqueda primero el mejor. Se basa en aplicar alternativamente cada una de las estrategias. Primero realizase una en profundidad hasta que no se pueda proseguir la bsqueda por la rama generada. De los nodos activos generados seleccionase uno aplicando la bsqueda primero el mejor y a partir de l se realiza una nueva bsqueda en profundidad, repitiendo el proceso hasta la finalizacin del algoritmo.

II Paralelismo y distribucin de cargas Cuando se tiene muchos problemas complejos el esfuerzo computacional exigido es muy grande e por eso, surge la necesidad de paralelizarlos, porque la paralelizacin es una de las opciones para facilitar el tratamiento de problemas reales. El factor ms relevante para la eficiencia de un algoritmo paralelo de B&B es la distribucin igualitaria do trabajo entre los procesos. Esto se hace atrevas de la distribucin de partes distintas del rbol para diversos procesadores. En este punto es importante que aja una comunicacin segura entre los procesadores, porque cuando un procesador encontrar una buena solucin, y ser una buena solucin para este subproblema, esta informacin deber ser pasada para los otros procesadores evitando que busquen la ptima solucin por nodos no necesarios. En un sistema paralelo B&B es fundamentalmente importante que la distribucin de performance sea hecha. As, ejecutase el algoritmo B&B para que el proceso sea acelerado dividiendo el problema en subproblemas, buscando la solucin atrevas de mltiplos procesos menores. Algoritmo de Ramificacin y Acotacin secuenciales y paralelas Los primeros algoritmos de ramificacin y acotacin describieron esquemas enumerativos para resolver problemas NP-completos. Por su generalidad y la efectividad que tena, fue ampliamente usado. Los mtodos de ramificacin y acotacin son algoritmos basados en rboles de bsqueda y sus principios se basan en hacer una descomposicin sucesiva del problema original en diversos subproblemas ms pequeos, hasta encontrar la solucin, solucin esta, que debe ser la ptima. Un rbol de bsqueda describe estos subproblemas y el proceso de descomposicin donde el objetivo consiste en una bsqueda heurstica, para que subproblemas que no contengan la solucin ptima no sean explorados.

Una buena comprensin de un problema a ser solucionado, es decir, hacer una buena eleccin de reglas bsicas (ramificacin, acotacin, seleccin, eliminacin). Los algoritmos de ramificacin y acotacin consisten en una secuencia de iteraciones en las que se aplican las reglas bsicas a una estructura de datos, que nada ms es do que una lista ordenada de subproblemas. Un subproblema de esta estructura de datos es seleccionado e descompuesto, y al asociado una solucin factible. La mejor solucin factible encontrada durante la ejecucin del algoritmo de ramificacin y acotacin ser un lmite superior a la solucin final y ser utilizado para eliminar aquellos subproblemas que no contengan. Una solucin mejor que la que ya se ha encontrado. La estructura de datos est compuesta por subproblemas activos, o sea, subproblemas que fueran generados en algn punto de la ejecucin del algoritmo pero no fueran eliminados ni descompuestos, y por esto tienen una solucin factible. As como los algoritmos secuenciales, los paralelos tambin deben encontrar las soluciones ptimas, donde una bsqueda exhaustiva en el rbol de bsqueda es impracticable. Estn basados, as como los algoritmos de ramificacin y acotacin secuenciales, en una descomposicin sucesiva del problema original en subproblemas ms pequeos, hasta encontrar la solucin ptima. La diferencia est en que en este tipo de algoritmo el procesamiento es paralelo. Esto porque el procesamiento paralelo ha sido considerado una fuente adicional de mejora en la eficiencia de la bsqueda, ya que los problemas que son generados durante la especificacin de estos algoritmos pueden resolver simultnea e independientemente, pudindose usar muchos procesadores para resolver concurrentemente varios subproblemas. Por eso, estos algoritmos se diferencian de otros, como por ejemplo, por sus conjuntos de datos sern irregulares y de tamaos distintos, en carga de trabajo no son uniforme, por poder o no depender del nmero de procesadores, la programacin tornase un trabajo preciso que hay que tener cuenta algunas posibilidades como:

Sobrecarga de la bsqueda Sobrecarga en las comunicaciones y tiempo ocioso debido a desbalanceo de la carga y a conflictos de acceso a memoria son algunos de los motivos de esta sobrecarga de bsqueda. As, si las implementaciones paralelas y secuenciales del algoritmo realizan la misma cantidad de trabajo, es normal que la ganancia en velocidad para n procesadores S(n) < n. Sin embargo, la cantidad de trabajo realizada en la implementacin paralela a menudo difiere de la realizada por la versin secuencial porque se exploran diferentes partes del rbol de bsqueda. Sea W el trabajo realizado por el algoritmo de bsqueda secuencial y W p el realizado por la versin paralela con p procesadores. Se define el factor de sobrecarga de la bsqueda del sistema paralelo como la relacin entre el trabajo realizado por la versin paralela y la secuencial, o W p / W. En la mayora de los algoritmos de bsqueda paralelos el factor de sobrecarga de la bsqueda es mayor que uno. Si el factor de sobrecarga es menor que uno, entonces el algoritmo no es el ms rpido para resolver el problema. Decisin entre comunicacin y computacin Como para muchos algoritmos la sobrecarga de la bsqueda es mayor que uno, esto implica decir que la implementacin paralela realiza ms trabajo que la secuencial. Si una regin de bsqueda es dividida entre procesadores y estos realizan una busca independiente, en conjunto ellos irn realizar una bsqueda mayor que en la versin secuencial, porque no hay comunicacin entre ellos. Si hubiera comunicacin, esta bsqueda, seguramente ser menor. Es importante acordar que con este intercambio de informaciones permitir que ms procesadores hacen uso de la regla de eliminacin, reduciendo la sobrecarga de la bsqueda, pero aumentando la sobrecarga de las comunicaciones.

Escalabilidad y algoritmos escalables La ganancia de velocidad no se incrementa linealmente con el nmero procesadores si se usa la versin paralela para resolverse un problema de tamao fijo. En estos casos, ha lnea de ganancia de ganancia de velocidad tiende a saturarse. Cuando se intenta paralelizar un algoritmo secuencial, normalmente se han de detectar las partes inherentemente secuenciales y las potencialmente paralelas. La descomposicin, generalmente, introduce una sobrecarga adicional como por ejemplo en las comunicaciones entre los procesadores. Para obtener buenas implementaciones paralelas hay que intentar que estas sobrecargas queden ocultas bajo otros clculos u operaciones del algoritmo. Sin embargo, cuando se tiene que decidir entre varios subproblemas que poseen la misma prioridad a cul de estos tiene mayor probabilidad de ser un camino crtico mnimo, aparece las anomalas debido a la naturaleza de los problemas, es difcil, si no imposible, decidir qu direccin de la bsqueda se debe seguir para reducir el trabajo a realizar.

III Paradigma de la Orientacin a objetos La mayora de los mtodos utilizados para el desarrollo de sistemas es basada en la descomposicin funcional y/o dirigidos a datos de lo sistema. En los mtodos orientados a objetos los datos tienen una integracin muy alta. La orientacin a objetos basase sus principios sobre el modelo de desarrollo donde sus fundamentos son interligados de forma sinergtica. Entonces, programacin orientada a objetos es un mtodo de implementacin en que programas son organizados como colecciones cooperativas de objetos, cada uno representando una instancia de alguna clase y cujas clases son miembros de una jerarqua de clases unidas a travs de herencia.

Para modelos B&B pdese definir un conjunto de reglas bsicas en un contexto y por lo tanto puede desarrollar en forma independiente de la aplicacin. Anteriormente fue descrito como funciona un algoritmo B&B y en este funcionamiento se pude notar algunas reglas que son: ramificacin para la descomposicin de los nodos, la regla de clculo de los lmites, la regla de escoger el siguiente nodo a avaluar, y la regla de eliminacin de los nodos a avaluar. En ordenadores secuenciales, la especificacin de las reglas es la parte ms importante para obtenerse un algoritmo til. Ya para obtener un algoritmo B&B paralelo eficiente, no es suficiente mirar solamente el problema. El desempeo de las implantaciones depende fuertemente de la arquitectura de lo que se busca, e inclusive en el rbol de bsqueda que se va a generar. En un ambiente orientado a objetos, es fcil acomodar a un gran nmero de diferentes implantaciones de B&B en diferentes arquitecturas paralelas. Un modelo de B&B puede ser implantado de una forma muy sencilla a travs do uso de objetos e poliformismo. El poliformismo permite manipular al evaluador un objeto nicamente conociendo su interfaz, no necesitando conocer su

implementacin. Tanto en los algoritmos secuenciales u paralelos del B&B hay que seguir el camino del conjunto de nodos que todava se pueden tener en cuenta para ser evaluados. Un algoritmo B&B para solucionar cada una de los implementaciones en cada caso especfico debe presentar una estructura flexible y debe acomodar a la mayor cantidad de soluciones como sea posible.

Conclusiones Actualmente los problemas exigen soluciones que deben ser encontradas rpida e precisamente, tiendo un bajo costo y encontrando la solucin ptima. Para tanto, algoritmos que utilizan tcnicas en reducir el espacio de bsqueda del problema, haciendo podas en las zonas an no exploradas hasta que la solucin ptima sea encontrada son los ms eficientes. En este sentido los algoritmos Branch-andBound tienen una gran aplicabilidad e eficiencia. Sin embargo, el conocimiento adquirido con la ejecucin de este trabajo fue, particularmente, importante porque la aplicabilidad del algoritmo Branch-andBound podr ser desarrollada en la realidad. El estudio deber ser mayor cuando se habla de distribucin de carga para que sea aplicado de manera correcta e eficiente dentro de la realidad que conocemos.

Bibliografa .inf.utfsm.cl mcriff fio ilp. tml sa.um .es asignaturas iarp ... teoria R .uv.es sala trentera.pdf eco-mat.ccee.uma.es mateco ocencia eccion id .pdf books.google.com Business & Economics Economics General .ingenieria-industrial.net inde .p p accion E R .pdf

Вам также может понравиться