La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diseño y análisis de algoritmos

Presentaciones similares


Presentación del tema: "Diseño y análisis de algoritmos"— Transcripción de la presentación:

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

2 Temario Técnica de diseño Técnica Branch and Bound Introducción
Aplicaciones Juegos: el juego de 15

3 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.

4 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.

5 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.

6 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

7 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

8 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.

9 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.

10 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

11 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

12 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

13 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

14 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:

15 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)


Descargar ppt "Diseño y análisis de algoritmos"

Presentaciones similares


Anuncios Google