Diseño y análisis de algoritmos

Slides:



Advertisements
Presentaciones similares
Ing. Victor Jaime Polo Romero
Advertisements

INGENIERIA INFORMATICA Y BUSQUEDAS CON ADVERSARIOS
Branch-and-bound Search
Búsqueda en árboles de juego
ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
INTELIGENCIA ARTIFICIAL
Diseño y análisis de algoritmos
Inteligencia Artificial
REDES SEMANTICAS Y BUSQUEDAS
IBD Clase 7.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
GRAFOS: ALGORITMOS FUNDAMENTALES
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA
Grupo 4 Matías Melgar Pablo Carbonell
Inteligencia Artificial Búsqueda informada y exploración
Métodos básicos de Búsqueda
Cap 4 Búsqueda Heurística
Búsqueda Informada Heurísticas.
Algoritmos Aleatorizados
Inteligencia Artificial Búsqueda informada y exploración
Solución de problemas por búsqueda inteligente

Inteligencia Artificial Resolver problemas mediante búsqueda
Tema Nº4.
Inteligencia Artificial Resolver problemas mediante búsqueda
Inteligencia Artificial Gonzalo Villarreal Farah
L. Enrique Sucar Marco López ITESM Cuernavaca
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Ordenamiento topológico
GRAFOS HUGO ARAYA CARRASCO.
Teoria de grafos.-clase 4
Temas importantes para el desarrollo de la segunda parte del TPE
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
Capítulo 4 BUSQUEDA INFORMADA.
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
Solución de problemas por Búsqueda
Optimización, Búsqueda Heurística
Agentes de resoluciones d problemas Parte I. Un agente puede adoptar una meta o un propósito para satisfacer.
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.
Diseño y análisis de algoritmos
(Organización y Manejo de Archivos)
Parte II. Algorítmica. 3. Algoritmos voraces.
Ramificación y acotación (Branch and Bound)
Diseño y análisis de algoritmos
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
Algoritmos de Búsqueda “Backtracking y Branch and Bound”
Capítulo 7 Gestión de memoria.
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Diseño y análisis de algoritmos
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP
Tema 13: Ramificación y poda
Búsqueda en profundidad Se elige la primera alternativa (por convención la de más a la izquierda) y se sigue hacia abajo hasta alcanzar la meta o hasta.
Toribio Sarmiento Miguel Sesarego Cruz Rosmery. Desde la aparición de las civilizaciones, los juegos han ocupado la atención de las facultades intelectuales.
Inteligencia artificial
Optimización Combinatoria y Grafos Búsqueda Tabú
ARBOLES GENERALIZADOS
Árboles Binarios de Búsqueda (ABB)
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.

Matemáticas Discretas MISTI
Algoritmos voraces Códigos de Huffman. Descripción del problema Tenemos un archivo de entrada. Asumiremos que el archivo está compuesto de bytes (enteros.
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 Introducción Aplicaciones Juegos: el juego de 15

Técnica de diseño Branch and Bound Introducción Similar a la técnica backtracking, o búsqueda con retoceso. También es conocida como ramificación y acotamiento: Se aplica a problemas de optimización con restricciones, se genera el espacio de soluciones, organizándolo en un árbol, no se genera el espacio de soluciones completo, sino que se podan batantes estados o nodos. Terminología Nodo vivo: nodo del espacio de soluciones del que no se han generado aún todos sus hijos. Nodo muerto :nodo del que no se van a generar más hijos porque No hay más No es compatible, i.e. Viola las restricciones No producirá una solución mejor que la solución en curso. Nodo en curso (o en expansión): nodo del que se están generando hijos.

Técnica de diseño Branch and Bound Introducción Diferencia fundamental con la técnica backtracking, o búsqueda con retoceso: Búsqueda con retroceso: Tan pronto como se genera un nuevo hijo del nodo en curso, este hijo pasa a ser el nodo en curso Branch and Bound Se generan todos los hijos del nodo en curso , antes de que cualquier otro nodo vivo pase a ser el nuevo nodo en curso En consecuencia Los únicos nodos vivos son aquellos, que están en el camino de la raíz al nodo en curso Pueden haber más nodos vivos. Se debe almacenar una estructura auxiliar:lista de nodos vivos.

Técnica de diseño Branch and Bound Introducción Existen diferentes estrategias para elegir el siguiente nodo de la lista de nodos vivos: FIFO: la lista de nodos vivos es una cola, lo que implica un recorrido por niveles o en anchura. LIFO: la lista de nodos vivos es un stack, lo que implica un recorrido en profundidad. Mínimo costo: la lista es una cola de prioridad. Lo que implica un recorrido sin un patrón establecido. La prioridad de un nodo se calcula de acuerdo con una función de estimación que mide cuanto de “prometedor” es un nodo. Un primer punto clave en este método es encontrar un buen recorrido (o ramificación) de los nodos, es decir, definir una buena función de prioridad para seleccionar los nodos vivos, de manera de encontrar rápidamente soluciones buenas.

Técnica de diseño Branch and Bound Introducción Esquema general Repita expandir el nodo vivo más prometedor ; generar todos sus hijos; una vez quenerados el padre se extrae de la lista (mata); para cada hijo hacer si tiene un costo esperado peor que el de la mejor solución en curso entonces se mata sino si tiene un coste esperado mejor que el de la mejor solución en curso y no es solución entonces se agrega a la lista de nodos vivos {tiene un costo mejor que el de la mejor solución en curso y es solución} pasa a ser la mejor solución en curso; se revisa toda la lista de nodos vivos, eliminado los nodos que prometen algo peor que lo conseguido fin si Hasta que la lista este vacia

Técnica de diseño Branch and Bound El juego de 15 Se tiene un tablero con quince fichas numeradas. Sólo se puede mover una ficha a la vez en un máximo de 4 direcciones(arriba,abajjo,izquierda,derecha). El tablero parte desordenado y hay que llevarlo a un orden de ficas ascendente dejendo el espacio en la última casilla, con el mínimo de movimientos. La solución de fuerza bruta: Buscar el espacio de estados,es decir, en todos los posibles estados alcanzados desde el problema propuesto, hasta alcanzar el objetivo El espacio de búsqueda es grande , hay 16! Posiciones iniciales. No todas las configuraciones iniciales tienen solución

Técnica de diseño Branch and Bound El juego de 15 Estados alcanzables: Se numerarán las casillas de 1 a 16 Dada una configuración o estado, sea pos(i) la posición (entre 1 y 16) de la ficha número i, y sea pos(16) la posición de la casilla vacía Dado un estado, para la ficha i , sea m(i) el número de fichas j , tales que j < i y pos(j) > pos(i) Ejemplo: Dado un estado, sea x=1 si la casilla vacía está está en alguna de las posiciones sombreadas y x=0 en caso contrario.

Técnica de diseño Branch and Bound El juego de 15 Teorema El estado objetivo es alcanzable, desde un cierto estado, si para ese estado se cumple: es par Para el ejemplo anterior la función toma el valor de 16, por lo que existe solución.

Técnica de diseño Branch and Bound El juego de 15 Hijos de cada nodo = movimientos de la casilla vacía (arriba,abajo,izquierda,derecha) Poda inicial: ningun nodo tiene un hijo igual a su padre

Técnica de diseño Branch and Bound El juego de 15 Estrategias ciegas de selección del siguiente nodo en la lista de nodos vivos: FIFO=recorrido por niveles o en anchura. Tal como aparecen numerados en la figura Relativamente útil si el nodo solución, está cerca de la raiz LIFO =recorrido en profundidad Orden de las movimientos : Sigue la rama izquierda del árbol No encuentra nunca la solución , a menos que esté en esa rama

Técnica de diseño Branch and Bound El juego de 15 Estrategias no ciegas implican diseñar una función de evaluación para elegirel mejor camino. La idea es poder calcular una función para cada nodo x del árbol: C(x)=longitud desde la raiz hasta el estado objetivo más cercano que es descendiente de x

Técnica de diseño Branch and Bound El juego de 15 Método: La raiz es el nodo en curso. Generar sus hijos hasta encontrar uno con igual valor de C que el padre, en el ejemplo 4. Repetir lo mismo , en el ejemplo 10 Hasta encontrar el objetivo, en el ejemplo 23 De esta manera se determinan los nodos en curso desde la raiz hasta la solución más cercana. El problema es determinar la función C Un ejemplo de problemas en los que es posible:aquellos en los que hay estrategias greedy En general, usar una función de estimación: Donde =longitud del camino de la raiz a x = estimación de la longitud del camino desde x hasta la solución más cercana Una estimación heurística para = número de casillas no vacías que no están en su sitio objetivo

Técnica de diseño Branch and Bound El juego de 15 Estrategia de mínimo costo usando La lista de nodos vivos es una cola de nodos x con prioridades En el ejemplo: Se generan sus hijos y se añaden a la cola Se elige el mínimo, x=4, se generan sus hijos y se elimina de la cola quedando:

Técnica de diseño Branch and Bound El juego de 15 Se elige el mínimo, el 10, se elimina de la cola y se incorporan sus hijos: El nodo 23 es objetivo y termina la búsqueda En este caso , el método es casi (hay que almacenar la cola de prioridades) tan eficiente como si se hubiera utilizado el c(x)