Diseño y análisis de algoritmos

Slides:



Advertisements
Presentaciones similares
Branch-and-bound Search
Advertisements

Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Guia ejercicios 5: D&AA Universidad Viña del Mar 1) Calcular la factibilidad de resolver el siguiente estado del juego de 15 Resolver el juego usando el.
Búsqueda con retroceso
Teoría de decisiones La teoría de decisiones consiste en tomar una decisión de un conjunto de posibles acciones. Se debe tener en cuenta que existe incertidumbre.
Inteligencia Artificial Búsqueda informada y exploración
KRIGING.
Búsqueda Informada Heurísticas.
Inteligencia Artificial Búsqueda informada y exploración
Solución de problemas por búsqueda inteligente
DERIVADAS PARCIALES Gráficas.
Complejidad Problemas NP-Completos
 La resolución de problemas algorítmicos no solamente implica que los informáticos sepan programar sino necesitan de otras habilidades como tener una.
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Programación de Computadores
Clase 2, Parte 2: Métodos Tradicionales de Optimización y Búesqueda
Universidad de los Andes-CODENSA
Estructuras de Datos MC Beatriz Beltrán Martínez.
Árboles, montículos y grafos Cola de prioridades, montículos
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Optimización Combinatoria usando Algoritmos Evolucionistas Problemas de Optimización. Idea: Encontrar una solución "factible" y "óptima" de acuerdo a algún.
Capítulo 4 BUSQUEDA INFORMADA.
EL PODER DE SOLVER.
Resolución de Problemas Método Simplex
Árbol recubridor mínimo Distancias
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
Optimización, Búsqueda Heurística
Problemas de Decisión y Optimización

Análisis Multicriterio
Diseño y análisis de algoritmos
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Diseño y análisis de algoritmos
Métodos de Búsqueda Informada. Búsqueda de la mejor Ruta En esta sección no sólo nos interesa encontrar una posible ruta, sino obtener aquella ruta que.
Parte I. Estructuras de Datos.
Sesión 6: Campos de Markov
ALGORITMOS APROXIMADOS
PROGRAMACIÓN LINEAL.
DEFINICIONES Sea (P) el siguiente problema de programación lineal:
Descomposición Factorial Unidad 5
Parte II. Algorítmica. 3. Algoritmos voraces.
Ramificación y acotación (Branch and Bound)
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
Algoritmos de Búsqueda “Backtracking y Branch and Bound”
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Programación entera y optimización combinatoria Mayo 2007 Módulo 2:
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Diseño y análisis de algoritmos
Parte II. Algorítmica. 4. Programación dinámica.
3- PROGRAMACION LINEAL PARAMETRICA
Parte I. Estructuras de Datos.
Tema 12. Backtracking. 1. Método general.
Parte I. Estructuras de Datos.
Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
Tema 13: Ramificación y poda
Flujo en redes Def: una red N es un grafo orientado conexo que tiene dos nodos distinguidos una fuente s con grado de salida positivo y un sumidero t con.
Solver complemento de excel
Árboles Binarios de Búsqueda (ABB)
Prof. Juan José Bravo B., M.Sc. ©
Resolución de Problemas Método Gráfico
6. Sistemas de ecuaciones diferenciales lineales
CONSTRUCCION DEL DISEÑO DE UN OVA, HACIENDO USO DE HERRAMIENTAS VIRTUALES EDGAR MAURICIO ALBA V. Presentado al Ing. John Alejandro Figueredo Luna en el.
Algoritmos voraces Códigos de Huffman. Descripción del problema Tenemos un archivo de entrada. Asumiremos que el archivo está compuesto de bytes (enteros.
1 Técnicas de Optimización en Modelos Organizacionales (PS-3161) Tema N° 4: Solución Gráfica:Casos Especiales Prof. Orestes G. Manzanilla Salazar Correo:
Transcripción de la presentación:

Diseño y análisis de algoritmos Técnica Branch and Bound

Temario Técnica de diseño Técnica Branch and Bound II Aplicación a problemas de optimización Aplicaciones Problema de la mochila 0-1

Técnica de diseño Branch and Bound II Problemas de optimización A diferencia del juego de 15 donde se la función de costo a minimizar era la distancia de la raiz al estado solución del juego, en un problema genérico de optimización se deme maximizar o minimizar una función dada. Por ejemplo si se está minimizando, el algoritmo hasa ahora planteado no necesariamente encontrará la solución óptima: Se expande la raiz, sus hijos se añaden a la cola de nodos vivos , se elige el nodo izquierdo, se expande y se obtiene una solución de costo 20, cuando la óptima es 10. Por qué? Por que:

Técnica de diseño Branch and Bound II Problemas de optimización Teorema: si para cada nodo x del árbol del espacio de estados, es una estimación de c(x) tal que para todo par de nodos y, z Entonces el algoritmo termina y encuentra siempre una solución de mínimo costo, óptima. Para maximizar es lo mismo, pero con las desigualdades invertidas. Problema: no es fácil encontrar o definir una función de estimación con tales características y fácil de calcular. Puesto que es difícil matener esta restricción, se manejará una función fácil de calcular y tal que para todo nodo x: y para cada solución En este caso el siguiente algoritmo ya visto, tal como se ejemplificó no siempre encuentra una solución de mínimo costo . Una nueva versión del algoritmo:

Técnica de diseño Branch and Bound II Problemas de optimización Algoritmo de minimización Algoritmo minimoCosto(ent x0:nodo) variables c:cola; {con prioridad, <x,costo(x)> ;exito:booleano;xcurso,x:nodo inicio creaVacia(c);{cola de nodos vivos} añadir(c,<x0,costo(x0)>); éxito:=falso; mientras not éxito and not esVacia(c) hacer xcurso:=min(c);{nodo en curso} eliminarMin(c); si esSol(xcurso) entonces escribir (xcurso) exito:=verdad sino para todo x hijo de xcurso hacer añadir(c,<x,costo(x)>); fin-para fin si fin mientras fin

Técnica de diseño Branch and Bound II Problemas de optimización Diferencia con el algoritmo original: El primer algoritmo: si encuentra un hijo que es solución factible, ya no incluye el resto de los hijos en la cola de nodos vivos con prioridades; El segundo algoritmo: incluye en la cola de nodos vivos con prioridades a todos sus hijos, sin mirar sin son solución factible o no. Este último es un aloritmo más “prudente”, pero más costoso. Teorema: si para cada nodo x del árbol del espacio de estados es una estimación de c(x) tal que Y para cada solución se verifica que Entonces si el algoritmo minimoCosto encuentra una solución, esta es óptima, es desir la de menor costo.

Técnica de diseño Branch and Bound II Problemas de optimización Hasta ahora se ha visto la técnica Branch o ramificación, pero para hacerla más eficiente, es necesario acotar (Bound) Aplicación en un problema de minimización de una función c(x), función objetivo. Se utiliza una función de estimación que sea una cota inferior de todas las soluciones obtenidas desde x Suponer que se conoce una cota superior, U, del valor mínimo de c. Cota pesimista de la solución del problema

Técnica de diseño Branch and Bound II Problemas de optimización Regla de acotación : o “poda” x,puede ser podado porque para todo y, solución descendiente de x: Valor inicial de U: Utilizar alguna heurística basada en información extra sobre el problema, o Infinito Si el valor inicial de U es mayor o igual que el costo de la solución de mínimo costo, la regla no elimina ningún nodo ascendente de una solución de coste mínimo.

Técnica de diseño Branch and Bound II Problemas de optimización Construcción del algoritmo Definición de la función de costo c(x) de forma que c(x) sea mínimo para todos los nodos que representen una solución óptima. De manera que: Si x es solución factible del problema de optimización : c(x) =función objetivo (x) Si x no es factible : c(x) = infinito Si x representa una solución parcial , por ejemplo, x puede ser completada a factible: c(x)=min{c(y) |y es descendiente de x} Para que cumpla todos estos requisitos, es muy difícil encontrar una c(x) Se utiliza una función estimadora tal que para todo x La función de estmación , estima el valor de la función objetivo y no del costo computacional de alcanzar una solución. Se debe encontrar un buen orden de recorrido o ramificación de los nodos, es decir una buena función de prioridad de los nodos vivos , para que las soluciones buenas se encuentren rápidamente. Encontrar una buena función de acotación o poda , U, para producir retroceso lo antes posible.

Técnica de diseño Branch and Bound II Problema de la mochila 0-1 El problema Es un problema ya tratado con dos técnicas, en sus variantes continuas, con un enfoque greedy, donde se elige la mejor razón utilidad peso. La variante 0-1, no permite cantidades fraccionales de objetos, o se incluye completo o no se incluye. Esta variación se resolvió con programación dinámica, pero con una restricción, que la capacidad de la mochila, los pesos de los objetos, sean enteros. Extender el paroblema a que W, la capacidad de cada objeto wi , y sus utilidades vi sean simplemente números reales positivos. Se puede usar backtracking, pero la idea es mejorar la eficiencia. Transformando el problema de maximización a un problema de minimización: minimizar sujeto a donde

Técnica de diseño Branch and Bound II Problema de la mochila 0-1 Espacio de soluciones Existen modos de asignar los valores 0 o 1 a las Dos formas de representar la solución: tuplas de tamaño fijo o variable. Tamaño fijo:

Técnica de diseño Branch and Bound II Problema de la mochila 0-1 Definición de función de costo,c: Las hojas x que ponen fin a caminos desde la raiz, tales que Representan soluciones no factibles, y para ellas c(x)=infinito El resto de las hojas x representan soluciones factibles. Para ellas Para nodos x que no sean hojas, c(x) es el mínimo entre y , siendo y los hijos izquierdo y derecho de x. Es este último punto, tan difícil e calcular como resolver el problema original

Técnica de diseño Branch and Bound II Problema de la mochila 0-1 Es por eso que es necesario definir dos funciones y U tales que Función U: Solución más sencilla, si x es un nodo de nivel j , con 0<=j<=n, se han asignado ya valores a , 1<=i<=j , por tanto: Ejemplo, beneficio actual cambiado de signo Función Es una función acotadora o “de poda”, que se calcula de la siguiente forma: En el nodo actual ya se han determinado , 1<=i<=j Relajar el requisito de integridad : , j+1<=i<=n se sustituye por , j+1<=i<=n Aplicar el criterio greedy

Técnica de diseño Branch and Bound II Problema de la mochila 0-1 Ejemplo: n=4, Nodo 1: primer nodo vivo, raiz, nivel 0 ninguna , asignada :calcular problema completo “relajado” usando greedy= -38 Calculando U cota superior, incluye todos los objetos menos el último, U(1)=-32 que es mayor que c estimado por lo que se expande el nodo:

Técnica de diseño Branch and Bound II Problema de la mochila 0-1 Nodo 2: siguiente nodo en curso , se expande primero que 3 pues su función estimadora es menor.(se está minimizando) Nodo 4 es el siguiente nodo en curso, se expande

Técnica de diseño Branch and Bound II Problema de la mochila 0-1 Siguiente nodo en curso?. Nodos 6 y 7 tienen la misma prioridad –38. Si se opta por orden de numeración, se elige el 6, se generan sus hijos: el izquierdo es eliminado por infactible, el derecho se añade en la cola de vivos (con prioridad –32 , mayor que el nodo 7), luego el siguiente elegido es el 7. Siguiente nodo en curso 7. Nuevo valor de U = -38, se expande ... Los nodos 9,5,3 tienen valores mayores que U, por lo que el nodo 8 comletó todas las variables con costo mínimo: -38. Solución (1,1,0,1)=38