Universidad Rey Juan Carlos Inteligencia Artificial Ingenierı́a Informática Hoja de Problemas 3 Búsqueda Heurı́stica (I) Curso 2011–2012 1. Contesta a las siguientes preguntas: (a) ¿Cuál es el objetivo de una función heurı́stica aplicada a la búsqueda en el espacio de estados? (b) ¿Cuál es la definición de heurı́stica consistente? (c) ¿Cuál es la definición de heurı́stica optimista? (d) ¿Una función heurı́stica consistente es también optimista? (e) ¿Qué condiciones garantizan que el algoritmo A∗ sea óptimo? 2. Dado el siguiente problema de búsqueda: Figura 1: Red 2D regular e infinita, Estado inicial (0, 0), Estado final: (x, y) x, y ∈ Z, Movimiento entre estados directamente conectados a coste 1 Por un genérico nodo (u, v), ¿cuáles de las siguientes funciones heurı́sticas son optimistas? (a) h∗ ((u, v)) = |u − x| + |v − y| (b) h∗ ((u, v)) = |u − x| ∗ |v − y| (c) h∗ ((u, v)) = 2 ∗ min(|u − x|, |v − y|) (d) h∗ ((u, v)) = |u| + |x| + |v| + |y| (e) h∗ ((u, v)) = q (|u − x|2 + |v − y|2 ) 3. El juego de los “cuadrados latinos 3 x 3” consiste en lo siguiente: Tenemos un tablero 3 x 3 que inicialmente está vacı́o En cada posición colocamos un número del 1 al 9, ninguno de los cuales puede repetirse Página 1 de 5 Hoja de Problemas 3 Búsqueda Heurı́stica (I) El objetivo es tener un número en cada posición del tablero, tal que la suma de las diferentes filas, columnas y diagonales de siempre el mismo valor: 15 Suponga la configuración descrita en la figura, donde tenemos seis posiciones ocupadas, 3 libres y sólo una fila y una columna cumplen que la suma de sus números es 15 2 7 9 5 3 1 De acuerdo con las reglas del juego, se puede poner un número de los que faltan (4, 6, 8) en cualquiera de los huecos libres. (a) Modelice el juego de los “cuadrados latinos 3 x 3” como un espacio de estados, indicando el conjunto de posibles estados, estado inicial y final, ası́ como la función expandir que representa los operadores aplicables en cada estado (el orden en el que se añaden los números es irrelevante). Suponga que cada operador tiene coste uno. (b) Suponga la siguiente función heurı́stica: h∗ (n) = número de filas en n que no suman 15 + número de columnas en n que no suman 15 + número de diagonales en n que no suman 15. Desarrolle el árbol de búsqueda generado por el algoritmo A∗ con esta función heurı́stica suponiendo que el estado inicial es el que muestra la figura. Señale claramente los valores de g, h∗ y f ∗ de cada nodo del árbol, e indique el orden de expansión. Asimismo, exponga el estado de la lista abierta en cada paso del algoritmo. (c) ¿La función heurı́stica h∗ es optimista y/o consistente? 4. Las recientes lluvias han provocado daños en la infraestructura de un municipio que deben ser reparados con urgencia. Concretamente, hay N obras por realizar y se ha pedido presupuesto a M empresas constructoras para cada una de las obras. El coste de encargar cada obra a cada empresa viene dado por una tabla como la siguiente, donde Ci,j indica el coste de encargar a la empresa Ei la obra Oj EmpresaE1 EmpresaE2 ... EmpresaEM Obra O1 C1,1 C2,1 Obra O2 C1,2 C2,2 CM,1 CM,2 ... Obra ON C1,N C2,N CM,N El Ayuntamiento ha decidido asignar una sola obra por empresa. El problema consiste en decidir qué obra se asignará a cada empresa, de modo que se minimice el coste total. Los técnicos deciden utilizar el algoritmo A∗ para resolver el problema. (a) Defina una representación “eficiente” del problema, especificando el conjunto de posibles estados, estado inicial, estados finales, ası́ como operador(es) y su coste. Página 2 de 5 Hoja de Problemas 3 Búsqueda Heurı́stica (I) (b) Defina una “buena” función heurı́stica h∗ optimista para el problema general. ¿Es su función h∗ también consistente? (c) Considere el siguiente caso particular (los costes se expresan en millones de Euros) EmpresaE1 EmpresaE2 EmpresaE3 EmpresaE4 Obra O1 2 5 6 10 Obra O2 3 5 5 8 Obra O3 2 4 4 6 Obra O4 4 5 3 6 Desarrolle el árbol de búsqueda que genera el algoritmo A∗ (puede suponer el “mejor caso”). Indique el orden en el que se expanden los nodos, los valores de g, h∗ y f ∗ para cada nodo del árbol de búsqueda, y la evolución de la lista abierta. 5. El grafo que se muestra en la figura describe un problema de búsqueda. Suponga que A es el estado inicial y que F y E son estados meta. Los arcos están etiquetados con el coste real de los operadores. h∗ es una función heurı́stica, cuyos valores son Página 3 de 5 Hoja de Problemas 3 Búsqueda Heurı́stica (I) h∗ A 8 B 6 C 6 D 5 E 0 F 0 (a) Desarrolle el árbol de búsqueda que genera el algoritmo A∗ . Indique el orden en que se expanden los nodos. ¿Cuál de los nodos meta se encuentra primero? (b) ¿La función heurı́stica es consistente y/o optimista? Argumente su respuesta. 6. Considere el problema de búsqueda del ejercicio precedente. Suponga que A es el estado inicial y que F y E son estados meta. (a) Asigne los valores del coste real de los operadores y de la función heurı́stica h∗ , de modo que ésta resulte ser optimista y no consistente (b) Desarrolle el árbol de búsqueda que genera el algoritmo A∗ . ¿Es el algoritmo A∗ óptimo en este caso? 7. Considera el siguiente juego. En un tablero de hielo 9x6 (9 casillas de ancho, 6 casillas de alto), hay un pingüino, unos bloques de hielo, unos obstáculos, y un agujero. El pingüino y los bloques de hielo se pueden mover, mientras que los obstáculos y el agujero son fijos. En cada movimiento el pingüino o un bloque de hielo se deslizarán en la dirección del movimiento hasta o bien encontrar un obstáculo o bien llegar al fin del tablero (figura 2). Por lo tanto, el pingüino o un bloque de hielo pasará por encima del agujero (sin caer dentro), si justo detrás del agujero no hay nada que lo Página 4 de 5 Hoja de Problemas 3 Búsqueda Heurı́stica (I) Figura 2: Figura 3: pare (un obstáculo, otro bloque de hielo, el pingüino mismo, como en figura 2). El objetivo del juego es enviar el pingüino dentro del agujero con el mı́nimo nÃo mero de movimientos posible. Para ello se pueden mover (en las 4 direcciones) tanto el propio pingüino, como los bloques de hielo. (a) Modelar el problema como un problema de búsqueda, formalizando el estado, las acciones con sus precondiciones y efectos, la función de coste y el estado meta. (b) Resolver el problema, a partir del estado inicial en figura 3, utilizando el algoritmo A∗ y filtrando todos los estados repetidos. Indica el orden de expansión de los nodos, ası́ como los valores de f ∗ para cada nodo. Utiliza como función heurı́stica h∗ la distancia de Manhattan del pingüino respecto al agujero + la distancia de Manhattan de cada bloque respecto al agujero (si el pingüino está dentro del agujero, entonces h∗ = 0). ¿Es la solución encontrada por el algoritmo óptima? ¿Es la heurı́stica h∗ optimista? Página 5 de 5