Técnicas de Búsqueda de Soluciones Técnicas de Búsqueda de Soluciones Inteligencia Artificial Técnicas de Búsqueda de Soluciones 1 Elizabeth Montero Ureta Técnicas de Búsqueda de Soluciones Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Departamento de Informática Universidad Técnica Federico Santa Marı́a Campus Santiago 1er Semestre 2009 1/18 Técnicas de Búsqueda de Soluciones Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda 2/18 Técnicas de Búsqueda de Soluciones Visiones: Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Árboles de Búsqueda ¿Tiene una solución? Definición: Estructura en forma de árbol que permite contruir instanciaciones en un problema de búsqueda. Encontrar una solución Encontrar todas las soluciones Encontrar el número de soluciones Un árbol de búsqueda posee tantos niveles como variables tiene el problema + 1 ¿Este valor pertenece a una solución? Un árbol tiene tantos descendientes por nivel como valores tenga el dominio de cada variable Encontrar todos los valores posibles para una variable Encontrar una solución óptima 3/18 4/18 Técnicas de Búsqueda de Soluciones Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Técnicas de Búsqueda de Soluciones Estructura Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Backtracking Backtracking Cronológico Backtracking Guiado por el Grafo de Restricciones Backtracking Guiado por los Conflictos 5/18 Técnicas de Búsqueda de Soluciones Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda 6/18 Técnicas de Búsqueda de Soluciones Backtracking Cronológico Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Backtracking Guiado por el Grafo de Restricciones En caso de error sobre una variable se regresa a la variable conectada por una restricción más recientemente instanciada. En cada nivel se busca un valor posible dentro del dominio de la variable que no genere conflictos con los valores de las variables ya instanciadas. Método interesante para los grafos de restricciones sparse. 7/18 8/18 Técnicas de Búsqueda de Soluciones Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Técnicas de Búsqueda de Soluciones Backtracking Guiado por Conflictos Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Estructura Para cada variable guardar el conjunto de conflictos Conf (xi ) Para cada valor erróneo registrar en Conf (xi ) la variable más prematuramente instanciada y en conflicto con el intento actual de instanciación. Cuando no quedan valores a intentar, el conjunto entrega las causas del problema y el punto de regreso será la variable más reciente g en el conjunto de conflictos. Se actualiza el conjunto de conflictos. 9/18 Técnicas de Búsqueda de Soluciones Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda 10/18 Técnicas de Búsqueda de Soluciones Forward Checking Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Real Full Look-Ahead Forward Checking Real Full Look-Ahead 11/18 12/18 Técnicas de Búsqueda de Soluciones Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Técnicas de Búsqueda de Soluciones Tipos de Heurı́sticas Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Heurı́sticas de elección Vertical: Elección de los Valores Heurı́sticas de elección Vertical: Elección de los Valores Heurı́sticas de elección Vertical Búsqueda de UNA solución: Elección de los menos restringidos → Heurı́stica de Minimización de Conflictos Heurı́sticas de elección Horizontal Búsqueda de la solución óptima: Elección del mejor localmente según el criterio a optimizar. Búsqueda de todas las soluciones: Orden indiferente. 13/18 Técnicas de Búsqueda de Soluciones 14/18 Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Técnicas de Búsqueda de Soluciones Heurı́sticas de elección Horizontal: Elección de las Variables Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Ejemplo: Elección de Variables Problema: Variables: i, j y k Dominios: Heurı́sticas de elección Horizontal: Elección de las Variables Di = {a, b} Dj = {a, b} Dk = {a, b, c} Orden Estático: Establecido antes de comenzar la búsqueda La variable asociada a la mayor cantidad de restricciones (Variable más conectada) La variable unida a las restricciones más difı́ciles Restricciones: i =k j =k Orden Dinámico: Cambia con el transcurso de la búsqueda Orden dinámico del dominio más pequeño Filtro por forward checking o look-ahead Considere los siguientes ordenes de instanciación: 15/18 1 i-j-k 2 k-j-i 16/18 Técnicas de Búsqueda de Soluciones Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Técnicas de Búsqueda de Soluciones Ejemplo I Árboles de Búsqueda Técnicas Look-Back Técnicas Look-Ahead Guı́a de Búsqueda Ejemplo II Considere el siguiente grafo que representa el problema de coloreo de grafos con 3 colores modificado Construya el árbol de búsqueda que realiza BT ¿Cambia en algo la búsqueda si decide comenzar con una variable con dominio más reducido?, ¿Por qué? Construya la red arco-consistente equivalente. ¿Cuál es el nuevo árbol de búsqueda? ¿Qué hace FC?, ¿Cuál es el árbol de búsqueda? ¿Qué hace RFL?, ¿Cuál es el árbol de búsqueda? ¿Qué hace GBJ? ¿Qué sucede con los cambios de orden en la instanciación? 17/18 18/18