Tema 2: Juegos unipersonales Resumen: 2. Juegos unipersonales 2.1. Representación básica 2.2. Juegos con información completa 2.3. Recursos limitados en juegos con información completa 2.4. Juegos con información incompleta –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Juegos unipersonales • Juegos sin contrario (pasatiempos) • Ejemplos: – n-Puzzle: - Laberinto: 1 2 6 4 8 7 3 S 5 A – n Reinas: • El agente es el único jugador –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Componentes que definen un problema Problema: – Descripción de los estados (posibles situaciones) – Descripción de los operadores (acciones) • determina en que condiciones (estados) se puede aplicar una acción • determina el resultado de realizar una acción (el estado resultante) – Función de coste que asigna un coste a cada acción ( o secuencia de acciones) – Descripción de la solución • un estado objetivo (4 reinas) • una acción (laberinto) • una secuencia de acciones (8-puzzle) Instanciación del problema: – Estado meta – Estado inicial (situación actual) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejemplo: 8-Puzzle Problema: Instanciación: Estado inicial • Estados: – posición de cada una de las piezas • Acciones: – mover pieza adyacente a la posición del “hueco” – de 2 a 4 operadores aplicables, según el estado 1 2 3 7 8 4 6 5 Estado meta • Coste: – La aplicación de cada operador vale una unidad • Solución: 1 2 8 7 3 4 6 5 – secuencia de acciones que lleva de un estado inicial al estado meta –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Representación de problemas / búsqueda en el espacio de estados Ejemplo con 3-Puzzle 2 1 1 3 Solución óptima 2 1 3 3 2 1 3 1 2 3 2 3 1 estado inicial 2 1 3 2 Instanciación estado meta 2 1 3 2 3 1 2 3 3 1 2 –2– 3 1 1 2 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en espacios de estados Espacio de estados: modelo del mundo representado por un grafo mundo situacion acción y sus efectos solución modelo estado operador plan (secuencia de acciones); acción; estado representación nodo arco camino; arco; nodo Problema de búsqueda: espacio de estados + actitud del agente actitud estados meta eficiencia de un plan estado inicial representación conjunto de nodos coste de un camino nodo inicial Objetivo: encontrar el plan más eficiente que lleve del estado inicial a un estado meta –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Formalización del problema • Ejemplo 3-Puzzle: – Representación (eficiente) de estados – Estado inicial 1,2 0,3 – Estado meta 3,1 2,0 x11 , x12 x , x 21 22 – Coste de un operador: 1 para todos los operadores – Coste de un plan: suma de los costes de los operadores – Tipo de solución: plan –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Formalización del problema • Ejemplo 3-Puzzle: – Operadores: OP1: OP2: OP3: OP4: 0, x y, z 0, x y, z x,0 y, z y, x 0, z x,0 y, z x,0 y, z 0, x y, z x, z y,0 –2– OP4: OP5: OP6: OP7: y, x 0, z y, x 0, z y, x z ,0 0, x y, z x, z y,0 x, z y,0 x, z 0, y x,0 y, z Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.1 Problema de búsqueda / formalización: En una mesa se encuentran dos jarras, una con una capacidad de 3 litros (llamada Tres), y la otra con una capacidad de 4 litros (llamada Cuatro). Inicialmente, Tres y Cuatro están vacías. Cualquiera de ellas puede llenarse con el agua de un grifo G. Asimismo, el contenido tanto de Tres como de Cuatro puede vaciarse en una pila P. Es posible echar todo el agua de una jarra a la otra. No se dispone de dispositivos de medición adicionales. Se trata de encontrar una secuencia de operadores que deje exactamente dos litros de agua en Cuatro. a) Modele este problema como un problema de búsqueda. Con tal fin, defina una representación eficiente de los estados, el estado inicial, el conjunto de estados meta, los operadores con precondiciones y postcondiciones, tipo de solución, así como el coste de cada operador. b) Encuentre una solución al problema. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.2 Problema de búsqueda / formalización: Modela el problema de las Torres de Hanoi A B C Objetivo: • Trasladar los discos de la aguja A a B en el mismo orden A Restricción: • un disco mayor nunca debe reposar sobre uno de menor tamaño –2– B C Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Método general de búsqueda Arbol de búsqueda: Método de búsqueda: • estrategia para explorar el espacio de estados • en cada paso se expande un estado • se desarrolla sucesivamente un árbol de búsqueda 1 2 3 1 2 3 2 1 3 2 1 3 1 2 3 1 2 3 1 3 2 1 2 3 Método general de búsqueda: 1. seleccionar nodo hoja 2. comprobar si es nodo meta 3. expandir este nodo hoja 1 3 2 –2– 1 3 2 3 1 2 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Algoritmo general de búsqueda Elementos del algoritmo • el árbol se representa en base a un registro del tipo nodo • s0 estado inicial • abierta es una lista de nodos, con las hojas actuales del árbol • vacía? determina si una lista es vacía • primero quita el primer elemento de una lista • ordInsertar añade un nodo a una lista, según una función de orden (determina el método de búsqueda) {búsqueda general} abierta ← s0 Repetir Si vacía?(abierta) entonces devolver(negativo) nodo ← primero(abierta) Si meta?(nodo) entonces devolver(nodo) sucesores ← expandir(nodo) Para cada n∈sucesores hacer n.padre ← nodo ordInsertar(n,abierta,<orden>) Fin {repetir} • expandir devuelve los hijos de un nodo –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Conocimientos mínimos a priori de un agente • Conocimientos mínimos a priori de un agente de búsqueda en el espacio de estados: – s0 Estado inicial – expandir: s {si1, ..., sin} Aplica los posibles operadores a s y devuelve todos los posibles estados succesores – meta?: s verdad | falso Compara el estado s con los estados meta y devuelve verdad si s es un estado meta – c: (si, sj ) v, v∈ℵ Coste de un operador ( ) n −1 ( c si1 si2 sin = ∑ c sik , sik +1 ) Coste de un plan k =1 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Estados repetidos Problema: • el mismo estado puede repetirse varias veces en el árbol de búsqueda • puede generarse el mismo subárbol varias veces Soluciones: • ignorarlo • evitar ciclos simples: – no añadir el padre de un nodo al conjunto de sucesores • evitar ciclos generales: – no añadir un antecesor de un nodo al conjunto de sucesores • evitar todos los estados repetidos: – no añadir ningún nodo existente en el árbol al conjunto de sucesores –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Clasificación de métodos de búsqueda Características: • Completitud: se encuentra una solución si existe • Optimalidad: se encuentra la mejor solución si hay varias • Complejidad en tiempo: ¿cuánto se tarda en encontrar la solución? • Complejidad en espacio: ¿cuánta memoria se utiliza en la búsqueda? Tipos de métodos de búsqueda: • no informados: utilizan sólo los conocimientos a priori • heurísticos: además utilizan información aproximada, y específica del problema, para guiar la búsqueda –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Métodos de búsqueda para juegos unipersonales Juegos con información completa: – Búsqueda en amplitud y en profundidad – Búsqueda de profundización iterativa – Búsqueda bidireccional Recursos limitados – – – – – Búsqueda voraz Búsqueda A* Búsqueda con subobjetivos Búsqueda por ascenso de colinas Búsqueda con horizonte Juegos con información incompleta – Búsqueda A* en tiempo real – Búsqueda con aprendizaje del A* en tiempo real –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Tema 2: Juegos unipersonales Resumen: 2. Juegos unipersonales 2.1. Representación básica 2.2. Juegos con información completa Búsqueda en amplitud Búsqueda en profundidad Búsqueda en profundidad limitada Búsqueda de profundización iterativa Búsqueda bidireccional 2.3. Recursos limitados en juegos con información completa 2.4. Juegos con información incompleta –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejemplo base: 8-Puzzle Problema: Instanciación: Estado inicial • Estados: – posición de cada una de las piezas • Acciones: – mover pieza adyacente a la posición del “hueco” – de 2 a 4 operadores aplicables, según el estado 1 2 3 7 8 4 6 5 Estado meta • Coste: – La aplicación de cada operador vale una unidad • Solución: 1 2 8 7 3 4 6 5 – secuencia de acciones que lleva de un estado inicial al estado meta –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en amplitud Búsqueda en amplitud: • inglés: breadth first search • Estrategia: – generar el árbol por niveles de profundidad – expandir todos los nodos de nivel i, antes de expandir nodos de nivel i+1 • Resultado: – considera primero todos los caminos de longitud 1, después los caminos de longitud 2, etc. – Se encuentra el estado meta de menor profundidad –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Árbol de búsqueda en amplitud (evitando ciclos simples) 1 2 3 7 8 4 6 5 Nivel 1 1 2 3 7 4 6 8 5 Nivel 2 Nivel 3 1 2 3 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 7 4 6 8 5 3 1 7 2 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 8 4 6 5 7 1 2 3 7 8 6 5 4 2 3 1 7 4 6 8 5 1 2 3 7 4 5 6 8 1 2 7 4 3 6 8 5 1 3 7 2 4 6 8 5 1 3 7 2 4 6 8 5 2 3 1 8 4 7 6 5 ... ... ... ... ... ... 1 2 3 8 4 7 6 5 1 2 3 8 7 6 5 4 1 2 7 8 3 6 5 4 Nivel 4 ... Nivel 5 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Algoritmo para búsqueda en amplitud {búsqueda en amplitud} abierta ← s0 Repetir Si vacía?(abierta) entonces devolver(negativo) nodo ← primero(abierta) Si meta?(nodo) entonces devolver(nodo) sucesores ← expandir(nodo) Para cada n∈ sucesores hacer n.padre ← nodo ordInsertar(n,abierta,final) Fin {repetir} Algoritmo: • usar el algoritmo general de búsqueda • añadir nuevos sucesores al final de la lista abierta • abierta funciona como cola – inserción al final – recuperación desde la cabeza • estructura FIFO: – siempre expandir primero el nodo más antiguo (es decir: menos profundo) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Árbol de búsqueda en amplitud 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 3 1 7 2 4 6 8 5 1 2 3 2 3 6 7 4 1 7 4 8 5 6 8 5 1 3 7 2 4 6 8 5 ... ... ... ... 1 2 3 7 4 5 6 8 1 2 7 4 3 6 8 5 ... ... 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 8 4 7 6 5 1 2 3 7 8 6 5 4 1 3 7 2 4 6 8 5 2 3 1 8 4 7 6 5 1 2 3 8 7 6 5 4 1 2 7 8 3 6 5 4 1 2 3 8 4 7 6 5 Lista abierta: 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 ... ... 3 1 7 2 4 6 8 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 3 1 7 2 4 6 8 5 1 2 3 7 4 6 8 5 3 1 7 2 4 6 8 5 1 2 3 8 4 7 6 5 1 2 3 7 8 6 5 4 1 3 7 2 4 6 8 5 2 3 1 8 4 7 6 5 1 2 3 8 4 7 6 5 1 3 7 2 4 6 8 5 2 3 1 8 4 7 6 5 1 2 3 8 4 7 6 5 1 2 3 8 7 6 5 4 1 2 7 8 3 6 5 4 ... ... ... 1 2 3 8 4 7 6 5 ... –2– 1 2 3 8 4 7 6 5 1 2 3 8 7 6 5 4 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf 1 2 7 8 3 6 5 4 Complejidad Complejidad en espacio: • proporcional al número de nodos abiertos Complejidad en tiempo: • proporcional al número de nodos expandidos Suponemos que en el árbol de búsqueda • el factor de ramificación es b • el mejor nodo meta tiene profundidad d Mejor caso Caso medio 0 1 d–1 d 0 0 1 ... d–2 Peor caso 1 ... d–1 d–1 d d d+1 d+1 ... espacio: 1+b+...+bd-1 +bd ∈ O(bd) 1+b+...+bd +bd+1/2 ∈ O(bd) 1+b+...+bd + bd+1-b ∈ O(bd) tiempo: 1+b+...+bd-1 ∈ O(bd) 1+b+...+bd -1 ∈ O(bd) 1+b+...+bd /2 ∈ O(bd) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Requerimientos de tiempo y memoria Requerimientos de recursos de una búsqueda en amplitud exponencial • factor de ramificación efectivo: 10 • tiempo: 1000 nodos/segundo • memoria: 1000 bytes/nodo profundidad 0 2 4 6 8 10 12 14 tiempo nodos (abiertos) 1 111 11.111 106 108 1010 1012 1014 1 100 11 18 31 128 35 3500 –2– ms ms s min horas días años años memoria 100 11 1 111 11 1 111 11.111 Bytes KB MB MB GB TB TB TB Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en amplitud: análisis Ventajas: • completo: – siempre se encuentra un nodo meta si existe • óptimo (para operadores de coste uno): – siempre se encuentra el nodo meta menos profundo Problemas: • complejidad – exponencial incluso en el mejor caso – los problemas de espacio son aún más graves que los problemas de tiempo –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.3 Búsqueda en amplitud: El grafo que se muestra al lado determina un problema de búsqueda. Cada nodo representa un estado; los arcos modelan la aplicación de operadores. Suponga que A es el estado inicial y que K y E son estados meta a) desarrolle el árbol de búsqueda que genera la búsqueda en amplitud. ¿Cuál de los nodos meta se encuentra primero? b) indique el orden en que se expanden los nodos c) ponga el estado de la lista abierta en cada paso del algoritmo –2– A D G F H C B K E Z Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf W Búsqueda en profundidad Búsqueda en profundidad: • inglés: depth first search • Estrategia: – expandir el árbol de “izquierda a derecha” (los nodos más profundos primero) – si se llega a un nodo sin sucesores, dar vuelta atrás y expandir el siguiente nodo más profundo • Resultado: – el método va explorando un “camino actual” – no siempre se encuentra el nodo de profundidad mínima –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Árbol de búsqueda en profundidad (evitando ciclos simples) 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 8 4 7 6 5 3 1 7 2 4 6 8 5 1 2 3 8 4 7 6 5 2 3 1 7 4 6 8 5 1 2 3 6 7 4 5 8 Solución óptima 1 2 3 6 4 8 7 5 1 2 3 6 7 4 8 5 1 2 3 6 4 8 7 5 1 2 3 6 4 8 7 5 3 1 6 2 4 8 7 5 ... 1 2 3 8 4 7 6 5 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en profundidad Algoritmo: • usar el algoritmo general de búsqueda • añadir nuevos sucesores en la cabeza de la lista abierta • abierta funciona como pila – inserción en la cabeza de la lista – recuperación desde la cabeza • estructura LIFO: – siempre expandir primero el nodo más reciente (es decir: el más profundo) • al guardar todos los sucesores de un nodo expandido en abierta, se permite la “vuelta atrás” –2– {búsqueda en profundidad} abierta ← s0 Repetir Si vacía?(abierta) entonces devolver(negativo) nodo ← primero(abierta) Si meta?(nodo) entonces devolver(nodo) sucesores ← expandir(nodo) Para cada n∈ sucesores hacer n.padre ← nodo ordInsertar(n,abierta,cabeza) Fin {repetir} Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Árbol de búsqueda en profundidad 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 3 1 7 2 4 6 8 5 1 2 3 6 7 4 5 8 1 2 3 6 4 8 7 5 1 2 3 6 7 4 8 5 1 2 3 6 4 8 7 5 1 2 3 6 4 8 7 5 3 1 6 2 4 8 7 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 3 1 2 3 1 2 3 1 2 3 1 7 4 7 2 4 7 8 4 7 8 4 6 5 6 5 6 8 5 6 8 5 2 3 1 2 3 1 3 1 2 3 1 2 1 7 4 7 4 7 2 4 7 8 4 7 8 6 8 5 6 8 5 6 8 5 6 5 6 5 2 3 1 2 3 1 3 1 2 3 1 2 1 7 4 7 4 7 2 4 7 8 4 7 8 6 8 5 6 8 5 6 8 5 6 5 6 5 1 2 3 1 2 3 6 4 6 7 4 8 7 5 8 5 2 3 1 7 4 6 8 5 1 2 3 1 2 3 6 4 6 4 8 7 5 8 7 5 3 1 6 2 4 8 7 5 1 7 6 1 6 8 3 1 6 2 4 8 7 5 1 2 3 6 7 4 8 5 2 4 8 2 7 5 3 5 3 4 3 1 7 2 4 6 8 5 2 3 1 7 4 6 8 5 3 4 3 4 1 2 3 7 8 4 6 5 ... 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 ... ... 1 2 3 8 4 7 6 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 6 7 4 5 8 2 3 1 7 4 6 8 5 Lista abierta: 1 2 3 8 4 7 6 5 –2– 1 2 3 6 4 8 7 5 2 3 1 7 4 6 8 5 ... Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf 1 2 3 7 8 4 6 5 Límites de profundidad Problema: • si existen caminos infinitos sin nodo meta, es posible que la búsqueda en profundidad no termine • la búsqueda en profundidad sólo es completa: – en el caso de árboles de búsqueda finitos – para espacios de búsqueda finitos; si se controla nodos repetidos en la misma rama del árbol Solución: • búsqueda en profundidad limitada: – – – – inglés: depth limited search búsqueda en profundidad con límite de profundidad d* antes de expandir un nodo, compruebe su profundidad expandir sólo nodos con profundidad d<d* ... • incompleto si la profundidad del mejor nodo meta es mayor que d* –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Árbol de búsqueda en profundidad limitada (evitando ciclos simples) limite d*=4 1 2 3 7 8 4 6 5 0 1 1 2 3 7 4 6 8 5 2 3 4 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 3 1 7 2 4 6 8 5 1 2 3 8 4 7 6 5 1 2 3 6 7 4 8 5 2 3 1 7 4 6 8 5 1 2 3 7 4 5 6 8 1 2 7 4 3 6 8 5 1 3 7 2 4 6 8 5 1 3 7 2 4 6 8 5 2 3 1 8 4 7 6 5 1 2 3 6 7 4 5 8 2 3 1 7 4 6 8 5 1 2 3 7 4 5 6 8 1 2 7 4 3 6 8 5 7 1 3 2 4 6 8 5 1 3 4 7 2 6 8 5 2 3 1 8 4 7 6 5 –2– 1 2 3 7 8 4 6 5 1 2 3 8 4 7 6 5 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en profundidad limitada: complejidad Complejidad en tiempo: • proporcional al número de nodos expandidos • factor de ramificación b / límite de profundidad d* / nodo meta con profundidad d≤d* • mejor caso: – d∈ O(d) (se expanden sólo los nodos del camino meta) • peor caso: – 1+b+...+bd*-1∈ O(bd*) (se expanden todos los nodos de prof. < d*) Complejidad en espacio: • sólo los nodos del camino actual y sus “vecinos” (sucesores) necesitan almacenarse en la memoria • lineal en la profundidad del árbol de búsqueda – mejor caso (si se encuentra la solución): 1+b·d ∈ O(b·d) – peor caso (si no hay solución hasta profundidad d*): 1+b·d* ∈ O(b·d*) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en profundidad limitada: análisis Ventajas: • mejora significativa de la complejidad en espacio con respecto a la búsqueda en amplitud (lineal frente a exponencial): • completo para límites de profundidad d* adecuados Problemas: • no es óptima: el nodo meta que se encuentra puede no ser de profundidad mínima • es común que unos límites “buenos” de profundidad sólo pueden establecerse cuando el problema ya haya sido resuelto • en general, no se puede asegurar que la profundidad d de un nodo meta sea d≤d*, es decir no se puede garantizar la completitud. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.4 Búsqueda en profundidad: El grafo que se muestra al lado determina un problema de búsqueda. Cada nodo representa un estado; los arcos modelan la aplicación de operadores. Suponga que A es el estado inicial y que K y E son estados meta a) desarrolle el árbol de búsqueda que genera la búsqueda en profundidad. ¿Cuál de los nodos meta se encuentra primero? b) indique el orden en que se expanden los nodos c) ponga el estado de la lista abierta en cada paso del algoritmo d) ¿cómo cambiaría el proceso de búsqueda si aplicamos límites de profundidad, p.e. d*=2? –2– A D G F H C B K E Z Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf W Ejercicio 2.5 Búsqueda en profundidad (limitada): La búsqueda en profundidad puede implementarse fácilmente con un programa recursivo. a) Especifique una implementación recursiva de la búsqueda en profundidad en pseudocódigo. b) Modifique el pseudocódigo del ejercicio a) para incorporar límites de profundidad. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda de profundización iterativa • Inglés: iterative deepening search • Idea: – esquivar el problema de elegir d*, al probar todos los posibles límites de profundidad • Estrategia: – enumerar todos los límites de profundidad d´, empezando por 0 – realizar búsqueda de profundidad limitada hasta d´ • Algoritmo: {búsqueda de profundización iterativa} abierta ← s0 desde d´ ← 0 hasta ∝ hacer si búsqueda-en-prof-limitada(problema, d´) = éxito entonces devolver(nodo-meta) fin {desde} –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda de profundización iterativa límite d*=1 límite d*=2 fallo fallo límite d*=3 éxito ... ... –2– ... Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda de profundización iterativa: complejidad Complejidad en espacio: • igual que la búsqueda en profundidad: sólo se almacenan los nodos vecinos del camino actual • lineal en la profundidad del árbol de búsqueda: todos los casos O(b·d) Complejidad en tiempo: • normalmente el coste adicional es relativamente pequeño • argumento intuitivo: – – – – – suponga un árbol de búsqueda de profundidad d los nodos interiores (prof. <d) se expanden varias veces los nodos hoja (prof. = d) se expanden sólo una vez en un árbol de búsqueda exponencial “casi todos” los nodos son hojas en consecuencia, para árboles de búsqueda grandes, la búsqueda de profundización iterativa no expande “muchos más” nodos que la búsqueda en profundidad limitada –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda de prof. iterativa: complejidad en tiempo 1 nodo 2 nodos 15 nodos factor de ramificación =2 4 nodos 8 nodos 16 nodos 1 nodo 10 nodos ... ... factor de ramificación =10 ... ... ... ... –2– 111 nodos 100 nodos ... 1000 nodos Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda de prof. iterativa: complejidad en tiempo Complejidad en tiempo en el peor caso: • nº de nodos expandidos por la búsqueda en prof. limitada hasta prof. d: N pl (d ) = 1 + b + b 2 ++ b d −1 bd −1 = b −1 • nº de nodos expandidos por la búsqueda de prof. iterativa hasta prof. d: d N pi (d ) = ∑ N ( j ) pl j =0 = = = b j −1 = ∑ j =0 b − 1 d 1 d j b 1 − ∑ b − 1 j =0 1 d j d ∑ b − ∑1 = b − 1 j =0 j =0 b d +1 − b − bd + d ( ) 1 b d +1 − 1 ( ) d 1 − + b − 1 b − 1 (b − 1)2 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda de prof. iterativa: complejidad en tiempo Coste adicional de tiempo de la búsqueda de profundización iterativa: (d ) N pl (d ) N pi = = = lim d →∞ b d +1 −b −bd + d (b −1)2 b d −1 b −1 b d +1 − b − bd + d b − 1 ⋅ d = 2 b −1 (b − 1) ( (b − b d b − bbd − bbdd + bdd b d bd bd − b bd b − b d1−1 − b dd−1 + bdd b − 1 − d1−1 + 1d b b + 1 bd ) ) = b d +1 − b − bd + d b d +1 − b d − b + 1 b − b d1−1 − b dd−1 + bdd b − 1 − b d1−1 + b1d b−0−0+0 b = = b −1 − 0 + 0 b −1 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en prof. iterativa: complejidad en tiempo Coste adicional de tiempo de la búsqueda de profundización iterativa: • para d→∞ se obtiene: N pi N pl N pi • Ejemplo: b= 10 N pl = b b −1 = 10 9 = 1.11 • para b=10 y nodos meta profundos, la búsqueda de profundización iterativa expande sólo un 11% más nodos que la búsqueda en profundidad limitada • complejidad en tiempo en el peor caso de la búsqueda de profundización iterativa : O(bd) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.6 Búsqueda de profundización iterativa: El grafo que se muestra al lado determina un problema de búsqueda. Cada nodo representa un estado; los arcos modelan la aplicación de operadores. Suponga que A es el estado inicial y que K y E son estados meta a) desarrolle la secuencia de árboles de búsqueda generadas por la búsqueda de profundización iterativa, indicando para cada uno de ellos el orden en que se expanden los nodos A D G F H C B K E Z b) ¿Cuál de los nodos meta se encuentra primero? –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf W Ejercicio 2.7 Búsqueda de profundización iterativa: Describa características relevantes de los espacios de búsqueda en los que el rendimiento de la búsqueda de profundización iterativa es mucho peor que el de la búsqueda en profundidad estándar. Ponga un problema ejemplo que ilustre dichas características. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda bidireccional Búsqueda bidireccional: • Estrategia: – generar dos árboles de búsqueda en amplitud en paralelo: • uno desde el estado inicial • uno desde el estado meta (con operadores invertidos) – comprueba en cada paso si un nodo a expandir se encuentre en los nodos hoja del otro árbol • Resultado: – Si un mismo nodo es hoja en ambos árboles, el camino a través de él es la solución – Se encuentra el estado meta de menor profundidad –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Árboles de búsqueda bidireccional (evitando ciclos simples) 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 1 2 3 8 6 4 7 5 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 8 4 7 6 5 3 1 7 2 4 6 8 5 1 2 3 8 6 4 7 5 1 2 3 8 6 4 7 5 1 2 3 8 4 7 6 5 1 2 3 8 4 7 6 5 1 3 8 2 4 7 6 5 1 2 3 8 4 7 6 5 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Algoritmo para búsqueda bidireccional {búsqueda bidireccional} abierta ← s0 /smeta Repetir Si vacía?(abierta) entonces devolver(negativo) nodo ← primero(abierta) Si comprobar(nodo) entonces nodo_m ← conectar(árboles) devolver(nodo_m) sucesores ← expandir(nodo) Para cada n∈ sucesores hacer n.padre ← nodo ordInsertar(n,abierta,final) Fin {repetir} Algoritmo: • usar el algoritmo para la búsqueda en profundidad • emplear el algoritmos en paralelo, empezando por el estado inicial y final respectivamente • comprobar(nodo): comprueba si un nodo está en la lista abierta del otro árbol • conectar(árboles): conecta los dos árboles (por los primeros nodos hoja); invierte el camino hasta el nodo meta y devuelve el nodo meta –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Árboles de búsqueda bidireccional 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 1 2 3 8 6 4 7 5 1 2 3 7 8 4 6 5 3 1 7 2 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 8 4 7 6 5 1 2 3 8 6 4 7 5 1 2 3 8 6 4 7 5 1 2 3 8 4 7 6 5 1 2 3 8 4 7 6 5 1 2 3 8 4 7 6 5 1 3 8 2 4 7 6 5 abiertainicial 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 3 1 2 3 1 7 2 4 7 4 6 8 5 6 8 5 3 1 2 3 1 7 2 4 8 4 6 8 5 7 6 5 1 2 3 8 4 7 6 5 1 2 3 8 4 7 6 5 1 3 8 2 4 7 6 5 1 2 3 8 6 4 7 5 1 2 3 8 6 4 7 5 1 2 3 8 4 7 6 5 1 2 3 8 4 7 6 5 1 3 8 2 4 7 6 5 1 2 3 8 4 7 6 5 –2– 1 2 3 8 6 4 7 5 abiertameta Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda bidireccional: complejidad • • • • “Abrir dos medios árboles es menos costoso que un árbol entero” Complejidad en espacio: proporcional al número de nodos abiertos Complejidad en tiempo: proporcional al número de nodos expandidos Complejidad de comprobar: constante utilizando tablas hash Peor caso (se da si d es par) Mejor caso (se da si d es impar) 0 0 ... (d-1)/ 2 (d+1)/ 2 (d-1)/ 2 ... d/2 d/2+1 ... d/2+1 d/2 ... 0 0 espacio: 2(1+b+...+b(d-1)/2) +b ∈ O(bd) [bd/2] 2(1+b+...+b(d+1)/2 - b) ∈ O(bd) [bd/2] tiempo: 2(1+b+...+b((d-1)/2)-1) +1 ∈ O(bd) [bd/2] 2(1+b+...+b((d+1)/2)-1 - 1) ∈ O(bd) [bd/2] –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda bidireccional: análisis Ventajas: • completo: – siempre se encuentra un nodo meta si existe • óptimo (para operadores de coste uno): – siempre se encuentra el nodo meta menos profundo • reduce la complejidad (en espacio y en tiempo) de forma considerable Problemas: • complejidad – sigue siendo exponencial (especialmente en el espacio) • puede ser dificil/ imposible en algunos casos: – dificultad de calcular los predecesores de un nodo – varios estados meta – factor de ramificación del árbol inverso puede ser mayor – Ejemplo: Ajedrez: estado meta “jaque mate” –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.8 Búsqueda bidireccional: El grafo que se muestra al lado determina un problema de búsqueda. Cada nodo representa un estado; los arcos modelan la aplicación de operadores. Suponga que A es el estado inicial y que E es estado meta a) desarrolle los árboles de búsqueda que genera la búsqueda bidireccional suponiendo que todos los operadores son inversibles. b) ponga el estado de las dos listas abiertas en cada paso del algoritmo –2– A D G H B F C E Z Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf W Búsqueda no informada: resultados Resultados del peor caso: • factor de ramificación b / profundidad de la mejor solución d / límite de profundidad d* búsqueda búsqueda búsqueda búsqueda de en amplitud en prof. bidireccional prof. iterativa limitada complejidad en tiempo O(bd) O(bd*) O(bd) [bd/2] O(bd) [> que bus. en amp.] complejidad en espacio O(bd) O(b·d*) O(bd) [bd/2] O(b·d) óptimo? (op. de coste 1) sí no sí sí completo? sí sólo si d≤d* sí sí –2– Método no informado preferido Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Resumen (intermedio) resolución de problemas • Muchos dominios se pueden representar mediante estados (situaciones) entre los que se puede transitar realizando acciones • Problemas en este dominio se pueden resolver mediante una búsqueda en el “espacios de estados” • Hay esencialmente 3 posibles enfoques básicos de búsqueda: 1. Búsqueda aleatoria 2. Búsqueda ordenada (los algoritmos que hemos vista hasta ahora) y 3. ¿? –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Resumen (intermedio) resolución de problemas • Consideramos el siguiente ejemplo: Estado meta Estado actual 1 3 1 7 2 4 8 6 8 5 7 2 3 4 6 5 A simple vista: ¿Cual de las 3 acciones posibles harías? ¿Por qué? Tercera estrategia básica de búsqueda: Búsqueda guiada (informada) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Tema 2: Juegos unipersonales Resumen: 2. Juegos unipersonales 2.1. Representación básica 2.2. Juegos con información completa 2.3. Recursos limitados en juegos con información completa Heurísticas Búsqueda voraz Búsqueda A* Búsqueda con subobjetivos Búsqueda por ascenso de colinas Búsqueda con horizonte 2.4. Juegos con información incompleta –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Problema En determinados problemas es imposible/impracticable buscar el plan de acciones completo. Las razones pueden ser: • Limitación de recursos computacionales: – el espacio de búsqueda es demasiado grande para buscar hasta la solución (no pueden emplear las técnicas anteriores) – Ejemplo: Ajedrez, 24-Puzzle, ... • Información incompleta o entornos dinámicos: – no se conocen todos los estados posibles del problema o no se pueden predecir los posibles efectos de acciones – Ejemplo: laberinto, laberinto con obstáculos en movimiento • Agentes reactivos que actúan de forma rápida o cuyo objetivo es continuo: – es imposible encontrar un plan de acciones hasta el final, por falta de tiempo o porque el estado objetivo es continuo – solo hace falta una acción “buena” (no un plan de acción) – Ejemplo: conducir un coche, agentes de control, ... –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Solución: Información heurística 1. Acotar el espacio de búsqueda: – – – – Reducir anchura del árbol expandido: eliminar algunas ramas porque probablemente no reflejan la solución óptima ¿Qué ramas no necesitan ser explorados? Reducir profundidad del árbol expandido: expandir el árbol sólo hasta un determinado nivel y elegir el nodo más prometedor ¿Cuál es el nodo más prometedor ? 2. Guiar la búsqueda: – – explorar ramas prometedoras del árbol antes que otras/ expandir determinados nodos antes que otras ¿Qué nodos hay que expandir primero? Se requiere información adicional: información heurística – Heurística (griego: heuriskein): “encontrar”, “descubrir” – – compila conocimiento “empírico” sobre un problema / un entorno suele reflejar una estimación o aproximación de la solución (esencialmente imperfecta) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Heurísticas Aplicación “fuerte”: • la aplicación de la heurística reduce el problema • se deja de analizar soluciones posibles pero improbables • Objetivo: – encontrar soluciones “buenas” (no necesariamente óptimas) – minimizar el índice competitivo: Coste del camino real del agente Coste del camino óptimo • mejorar el rendimiento de forma substancial / optimalidad y completitud no garantizados Aplicación “débil”: • método de búsqueda + información heurística • la información heurística no reduce el problema sino guía la búsqueda • Información heurística puede mejorar el rendimiento medio de un método, pero no asegura una mejora en el peor caso –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Funciones heurísticas Funciones heurísticas en la búsqueda en el espacio de estados: • estiman la cercanía de un estado a un estado meta • Posibles funciones heurísticas: – “distancia”: coste estimado del camino de un estado al estado meta • h :N→ℵ mide el coste real desde el nodo n hasta el nodo meta más cercano • h*:N→ℵ es una función heurística que estima el valor de h(n) – similitud de un estado con el estado meta (mide la “calidad” o “utilidad” de un estado) – Posibilidad de un estado de pertenecer al camino óptimo Ejemplos de funciones heurísticas: • Laberinto: distancia en línea recta hasta la salida • Ajedrez: número de piezas de un jugador • Encontrar una ruta de Madrid a Bilbao en un mapa de capitales de provincias: Sevilla no; Burgos si; Soria quizas; … –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Encontrar Funciones Heurísticas: Diseño Estado inicial 3 1 7 2 4 6 8 5 Estado meta • Problemas relajados: – menos restricciones para cada operador – h*: distancia h exacta en el problema relajado • 8 Puzzle: una pieza puede moverse de A a B... a) siempre b) si B está vació c) si A es adyacente a B • Funciones heurísticas: a) número de piezas descolocadas – ha*(s0) = 4 1 2 8 7 3 4 6 5 b) suma de saltos necesarios – hb*(s0) = 5 c) suma de las distancias de Manhattan – hc*(s0) = 1+1+1+2=5 • Basadas en el coste del camino restante: – valores pequeños reflejan estados buenos –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda voraz Búsqueda voraz: • Inglés: greedy search • Idea: – emplear una función heurística h* para guiar la búsqueda (heurística débil) – minimizar el coste estimado para llegar a la meta • Estrategia: – Entre las hojas del árbol de búsqueda, seleccionar el nodo que minimice h*(n) • Algoritmo: – mantener la lista abierta ordenada por valores crecientes de h* – insertar nuevos nodos en abierta según sus valores h* –2– {búsqueda voraz} abierta ← s0 Repetir Si vacía?(abierta) entonces devolver(negativo) nodo ← primero(abierta) Si meta?(nodo) entonces devolver(nodo) sucesores ← expandir(nodo) Para cada n∈sucesores hacer n.padre ← nodo ordInsertar(n,abierta,h* ) Fin {repetir} Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda voraz (evitando ciclos simples): Ejemplo 1 3 1 7 2 4 6 8 5 función heurística: ha* 1 2 3 7 4 6 8 5 * ha = 3 1 2 3 7 4 6 8 5 * ha = 3 ha* = 3 1 2 3 6 7 4 8 5 * ha = 3 2 3 1 7 4 6 8 5 ha* = 4 ha = 3 1 2 3 6 7 4 5 8 ha* = 3 1 2 3 6 4 8 7 5 1 2 3 6 7 4 8 5 ha = 4 ha* = 3 1 2 3 6 4 8 7 5 1 2 3 6 4 8 7 5 3 1 6 2 4 8 7 5 * ... 1 2 3 8 4 7 6 5 ha* = 4 1 3 7 2 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 ha* = 4 ha* = 5 1 3 7 2 4 6 8 5 ha* = 5 1 2 3 8 4 7 6 5 * 1 2 3 8 4 7 6 5 camino óptimo ha* = 4 ha* = 4 ha* = 0 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda voraz (evitando ciclos simples): Ejemplo 2 AS Ejemplo (“mínimo local de h* ”): AS • Nodo inicial: h* = 1 A • Nodo meta: S A h* = 2 S h* = 2 A S A S h* = 3 A S h* = 3 • h*: distancia de Manhattan S A A h* = 4 S h* = 2 AS h* = 1 ... –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda voraz: complejidad Depende de la función heurística: • d profundidad de la mejor solución, b factor de ramificación efectivo • si h*(n)=h(n): – – – – la búsqueda “va directamente a la solución” caso irreal, ya que significa que se conozca la solución complejidad en espacio: O(d·b) complejidad en tiempo: O(d) • otros casos: – complejidad en espacio y en tiempo puede ser mayor que en la búsqueda por amplitud (si la función heurística es mala) • OJO: hay que contar la complejidad de calcular h* –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda voraz: análisis Análisis: • en general, la búsqueda voraz sufre los mismos problemas que la búsqueda en profundidad – no es óptima (ejemplo 1) – no es completa (ejemplo 2) • sin embargo, suele encontrar una solución aceptable de forma rápida Comentarios: • para asegurar la completitud habría que evitar todos los estados repetidos • el método es óptimo: – si la función heurística devuelve siempre el coste exacto del camino: para todo n: h*(n)=h(n) – en aquellos espacios de estados, en los que el coste de un nodo n es independiente del camino por el que se ha llega hasta él (p.e.: n-Reinas) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.8 Búsqueda voraz: 8-Puzzle a) Aplica la búsqueda voraz al problema presentado en el ejemplo 1. Utiliza en este caso la función heurística hc*. b) Compara la solución encontrada y el árbol expandido con la del ejemplo 1. ¿Qué función heurística es mejor? ¿Por qué? –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.9 Nótese: • dado que el coste de cada operador es 0, el camino por el cual se llega a un nodo no importa, siempre que al final se encuentre un nodo meta (ninguna reina esta amenazada) Problema de las 5 reinas: • 5 reinas en un tablero 5x5 • estados: casillas de las 5 reinas • meta?: ninguna reina amenazada • op.: mover una reina a otra casilla de su misma fila • coste: el coste de cada op. es cero • estado inicial: a) encuentre una heurística h* para el problema de las 5 reinas b) resuelve el problema aplicando la búsqueda voraz con dicha heurística h* –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* Idea: • emplear información heurística para guiar la búsqueda (heurística débil) • minimizar el coste estimado total de un camino en el árbol de búsqueda • combinar – el coste para llegar al nodo n (se conoce exactamente: g), y – el coste aproximado para llegar a un nodo meta desde el nodo n (estimado por la función heurística h* ) Función heurística de A*: – f (n) = g(n)+h(n): coste real del plan (camino) de mínimo coste que pasa por n – f *(n) = g(n)+h*(n): estimación de f Estrategia A* : • entre las hojas del árbol de búsqueda, elegir el nodo de valor f * mínimo –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf El Algoritmo A* {búsqueda A*} abierta ← s0 Repetir Si vacía?(abierta) entonces devolver(negativo) nodo ← primero(abierta) Si meta?(nodo) entonces devolver(nodo) sucesores ← expandir(nodo) Para cada n∈sucesores hacer n.padre ← nodo ordInsertar(n,abierta, f *) Fin {repetir} Algoritmo A* : • se basa en la búsqueda general • almacenar el valor g de cada nodo expandido • mantener la lista abierta ordenada por valores crecientes de f * • insertar nuevos nodos en abierta según sus valores f * –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* (evitando ciclos simples): Ejemplo 1 función heurística: f* =1+3=4 f* f* =2+3=5 =3+3=6 1 2 3 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 6 7 4 5 8 1 2 3 6 4 8 7 5 1 2 3 6 4 8 7 5 ... 1 2 3 8 4 7 6 5 3 1 7 2 4 6 8 5 f*(n)=g(n)+ha*(n) f* f* = 0+4=4 1 2 3 7 4 6 8 5 =2+4=6 2 3 1 7 4 6 8 5 1 3 7 2 4 6 8 5 1 2 3 7 4 6 8 5 f* f* =3+4=7 f* 1 2 3 7 8 4 6 5 =3+2=5 =5+0=5 f* =1+5=6 f* =1+5=6 f* =2+3=5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 8 4 7 6 5 f* =4+1=5 1 2 3 4 8 7 6 5 1 3 7 2 4 6 8 5 2 3 1 8 4 7 6 5 f* =3+4=7 f* =5+2=7 camino encontrado en búsqueda voraz –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* (evitando ciclos simples): Ejemplo 2 AS f* =0+1=1 Ejemplo (“mínimo local de h* ”): AS • Nodo inicial: • Nodo meta: A A S f*=4+3=7 S S f*=2+3=5 A A f* =3+4=7 f*=6+1=7 A S f*=1+2=3 S A S f* =2+3=5 S f*=3+2=5 f* =3+2=5 AS AS f*=4+1=5 f*=4+1=5 A f*=5+2=7 A f*=1+2=3 A S • h*: distancia de Manhattan S A S A A S A f*=7+0=7 S f*=5+2=7 S A S f*=5+2=7 f*=5+2=7 A S –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Optimalidad y completitud de A* A* es optimo y completo si: – h* es optimista: para todos los nodos ni: h*(ni) ≤ h(ni) – para todos los nodos ni: h*(ni) ≥0 – El coste de todas las acciones es mayor que 0 (para todos los nodos hijos ni de cualquier nodo nj: c(nj, ni)>0) f* f *(nm2) f *(n Nodo meta no óptimo: g(nm2)>g(nm1) Mejor nodo meta: f *(nm1)=h*(nm)+g(nm1)=g(nm1)=f(nm1) m1) Camino infinito: Tiene que cruzar f*(nm1) an algún punto ninicial nm –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Calidad de las Funciones Heurísticas Definición: Sean h1* y h2* dos funciones heurísticas optimistas. h1* es más informada que h2*, si para todo nodo n se cumple que h1*(n ) ≥ h2*(n ) Ejemplo: • en el 8-puzzle, hc* es más informada que ha* – las piezas bien colocadas no cuenta en ha* ni en hc* – la distancia Manhattan de cada pieza descolocada es al menos 1 – en consecuencia, en toda posible configuración n del 8-puzzle la suma de las distancias es igual o mayor que la suma de piezas descolocadas – para todas las configuraciones n se cumple hc*(n ) ≥ ha*(n ) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Complejidad de A* El número de nodos expandidos por A* depende de la calidad de h*: • Para dos funciones heurísticas h1* y h2* : – Si h1* es más informada que h2*, entones A*(h1* ) expande el mismo número o menos nodos que A*(h2* ) • La complejidad es más baja si h* es más informada: – si h*(n) = h(n) para todos los nodos n: • información completa: complejidad lineal (sin contar la complejidad de computar h*!) • calcular h*(n) suele equivaler a resolver el problema completo – si h*(n) = 0 para todos los nodos n: • A* degenera a la búsqueda por amplitud –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Resultados experimentales Comparación experimental: • número de nodos expandidos en el problema del 8-puzzle • varias profundidades d de la solución • media sobre 100 instancias del problema d prof. iterativa 2 4 6 8 10 12 14 16 18 20 22 24 10 112 680 6.384 47.127 3.644.035 — — — — — — A*(ha) 6 13 20 39 93 227 539 1.301 3.056 7.276 18.094 39.135 –2– A*(hc) 6 12 18 25 39 73 113 211 363 676 1.219 1.641 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.10 Algoritmo A* : A Suponga el juego de las torres de Hanoi con el estado inicial que se presenta al lado. El objetivo consiste en pasar la torre bien a la aguja B o bien a la aguja C. Se filtren todos los estados repetidos y equivalentes (dos estados se consideran equivalentes, si están los mismos discos en la aguja A mientras que los discos de las agujas B y C están intercambiadas). A B B C C a)Defina una función heurística para este problema. b)Desarrolle el árbol de búsqueda que genera el algoritmo A*, incluyendo los valores de g, h *, y f * de cada nodo. Indique el orden en que se expanden los nodos. A B C c)¿Su función heurística es optimista? Argumente su respuesta. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por Subobjetivos Idea: • reducir la anchura del árbol al subdividir el problema en varios problemas más pequeños • determinar una secuencia de estados intermedios i1,i2,...,in que “muy posiblemente” están en el camino óptimo • realizar búsquedas con un método base (amplitud, prof., prof. iterativa, ...) desde el estado inicial s0 a i1, de i1 a i2,…, e de in al estado meta sm • se aplica la heurística para elegir los estados intermedios Ejemplo 8-Puzzle: obtener filas correctas 3 1 7 2 4 6 8 5 s0 estado inicial 1 2 3 8 4 ? ? ? 1 2 3 ? ? ? ? ? ? i2 i1 estados intermedios –2– 1 2 3 8 4 7 6 5 sm estado meta Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por subobjetivos (evitando ciclos simples) Método base: búsqueda en amplitud camino de s0 a i1: s0 i1 3 1 7 2 4 6 8 5 1 2 3 7 4 6 8 5 1 3 7 2 4 6 8 5 –2– 1 3 7 2 4 6 8 5 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por subobjetivos (evitando ciclos simples) camino de i1 a i2: 1 2 3 7 4 6 8 5 i1 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 3 1 7 2 4 6 8 5 2 3 1 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 7 4 3 6 8 5 1 2 3 7 4 5 6 8 1 3 7 2 4 6 8 5 1 3 7 2 4 6 8 5 3 2 1 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 7 8 6 5 4 1 2 3 8 4 7 6 5 2 1 3 7 4 6 8 5 1 2 3 7 4 5 6 8 7 1 3 2 4 6 8 5 1 3 4 7 2 6 8 5 2 7 3 4 1 6 8 5 ... 1 2 3 8 7 6 5 4 2 3 1 7 4 6 8 5 ... 1 2 3 4 6 8 7 5 1 2 3 6 7 4 8 5 ... ... ... 1 4 2 3 7 6 8 5 1 2 7 8 3 6 5 4 ... 2 3 1 8 4 7 6 5 1 2 3 8 4 7 6 5 i2=sm –2– 1 2 7 4 3 6 8 5 1 2 3 5 7 6 4 8 7 1 3 2 4 6 8 5 1 2 3 7 4 5 6 8 7 1 3 6 2 4 8 5 1 3 4 7 2 6 8 5 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf 1 3 4 7 2 5 6 8 Búsqueda por subojetivos: complejidad • Complejidad en espacio: proporcional al número de nodos abiertos • Complejidad en tiempo: proporcional al número de nodos expandidos • En general se obtiene una mejora de la complejidad respecto a los métodos de búsqueda no informados que se usan como base – basado en: la suma de varias búsquedas pequeñas es más eficiente que una búsqueda global – depende de la selección inicial de los subojetivos – condición necesaria para una mejora: los caminos entre los pares de subojetivos están “más cortos” que la solución global –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por subojetivos: Ejemplo complejidad General: método base: búsqueda en amplitud; factor de ramificación efectivo: b; profundidad de la mejor solución: d; x subojetivos intermedios; profundidad de los caminos mínimos entre los subobjetivos: d’ Ejemplo: b=3; d=20; x=4; d’=5 (el camino encontrado tiene una longitud de 25) General Bús. prof. Bús. subob. mejor caso: - tiempo: bd −1 b −1 d +1 b −1 - espacio: b −1 bd ' − 1 ( x + 1) * b −1 b d '+1 − 1 ( x + 1) * b −1 Ejemplo Bús. prof. Bús. subob. 1.743.392.200 605 5.230.176.601 1820 b d +1 − 1 peor caso: - tiempo: −1 b −1 b d '+1 − 1 ( x + 1) * − 1 b −1 5.230.176.600 1815 d +2 b −1 - espacio: −b b −1 b d '+2 − 1 ( x + 1) * − b b −1 15.690.529.801 5450 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por subojetivos: análisis Análisis: • Es completo si: – El método base es completo, y – Los subobjetivos están en (por lo menos) un camino que lleva del estado inicial a la meta • Es óptimo si: – El método base es óptimo, y – Los subobjetivos están en este orden en el camíno mínimo desde el estado inicial a la meta Comentarios: • Es posible utilizar búsquedas heurísticas como método base (p.e. búsqueda voraz) • Es posible modificar el método para realizar búsquedas jerárquicas: – Aplicar la búsqueda a distintos niveles jerárquicas – Por ejemplo: buscar un camino (en coche/barco) desde Madrid a Buenos Aires –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.11 Problema de las 5 reinas: Resuelve el problema de las 5 reinas (del ejercicio 2.9) con la búsqueda por subobjetivos a) Utilizando como estado inicial el estado descrito en el ejercicio 2.9, define una serie de estados intermedios. b) Realiza los árboles de la búsqueda por subobjetivos, utilizando como método base la búsqueda por profundidad limitada. Determina un limite de profundidad adecuado. c) Analizar los árboles obtenidos y el árbol del ejercicio 2.9, para comparar la complejidad de los dos métodos. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas (hill climbing) • Idea subyacente: – Reducir profundidad del árbol expandido (“on line search”) – Realizar siempre la acción más prometedora – Expandir el árbol sólo un nivel y realizar la acción hacía el “mejor” nodo – Repetir el ciclo percepción/acción de forma continua Repetir: 1. percibir estado 2. expandir nodo 3. elegir nodo más prometedor 4. realizar acción Fin repetir Solución óptima –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Algoritmo búsqueda por ascenso de colinas {búsqueda ascenso de colinas} Repetir h*: función heurística que estima la nodo ← percibir(entorno) distancia al nodo meta más cercano Si meta?(nodo) entonces percibir(entorno): devuelve el estado actual del problema devolver(positivo) evaluar(n,h*): calcula el valor de la sucesores ← expandir(nodo) función heurística h* para el nodo n Si vacia?(sucesores) entonces – debería comprobar si n es nodo meta – en este caso debería devolver el mínimo devolver(negativo) * valor posible mejor ← arg min evaluar ( n, h ) acción(n,m):devuelve la acción que lleva n∈sucesores de n a m a ←acción(n,mejor) ejecutar(a, entorno): efectúa la acción a ejecutar(a, entorno) en el entorno Fin {repetir} Algoritmo: • • • • • [ –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf ] Búsqueda por ascenso de colinas: Ejemplo Función heurística: ha* (piezas descolocadas) 3 1 7 2 4 6 8 5 ha* = 3 * ha = 3 1 2 3 7 4 6 8 5 * ha = 3 1 2 3 4 7 6 8 5 ha = 3 2 3 1 7 4 6 8 5 ha = 4 ha* = 3 1 2 3 6 7 4 5 8 1 2 3 7 4 6 8 5 ha* = 3 ha* = 3 1 2 3 6 4 8 7 5 1 2 3 6 7 4 8 5 * 1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5 1 2 3 6 7 4 8 5 * ha* = 4 1 3 7 2 4 6 8 5 1 2 3 7 4 6 8 5 ha* = 3 1 2 3 6 7 4 8 5 ha* = 3 –2– ha* = 4 3 1 7 2 4 6 8 5 ha* = 5 1 3 7 2 4 6 8 5 ha* = 5 ha* = 4 ¡No se evitan ciclos simples! Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas: Ejemplo (cont.) Función heurística: ha* (piezas descolocadas) 1 2 3 6 4 8 7 5 ha* = 3 ha* = 4 * 1 2 3 8 6 4 7 5 2 3 1 6 4 8 7 5 ha = 3 1 2 3 6 4 8 7 5 1 2 3 6 4 8 7 5 1 2 3 6 4 8 7 5 ha* = 2 1 2 3 8 6 4 7 5 ha* = 2 1 2 3 8 6 4 7 5 1 2 3 6 4 8 7 5 ha* = 4 3 1 6 2 4 8 7 5 * ha = 4 1 2 3 6 7 4 5 8 ha* = 3 ha* = 3 ha* = 1 1 2 3 8 4 7 6 5 ha* = 0 1 2 3 8 6 4 7 5 ha* = 2 ¡No es la solución óptima! –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas: complejidad • Proporcional al número de nodos abiertos/expandidos • d profundidad de la mejor solución, b factor de ramificación efectivo • Complejidad en espacio: – O(b) solo se mantiene en memoria los hijos de un nodo • Complejidad en tiempo: – depende de la función heurística – hay que contar la complejidad de calcular h* – si h*(n)=h(n): • la búsqueda “va directamente a la solución” • caso irreal, ya que significa que se conozca la solución • complejidad en tiempo: O(d) – otros casos: • puede ser mayor que en la búsqueda por amplitud (si la función heurística es mala) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas: análisis Análisis: • Suele obtener buenos resultados en algunos casos, especialmente: – si no hay ciclos – la función heurística es muy buena • En general, no se puede asegurar optimalidad ni completitud • No se puede evitar ciclos simples • Si h* es ideal (h*=h), entonces es óptimo y completo • Se puede conseguir completitud: – Si el conjunto de posibles estados es finito – Si se guardan todos los estados a los que se ha ido en el pasado: • cada vez que se llega a un estado repetido, se elige una acción que no se ha elegido anteriormente • pero, para eso hay que guardar todo el árbol y la ganancia en complejidad se pierde –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda por ascenso de colinas: comentarios Comentarios: • Aplicable en entornos inaccesibles o dinámicos – Ejemplos: Laberinos, Robot moviéndose en un entorno real, … • Útil en tareas de optimización, donde se quiere mejorar el estado continuamente – Ejemplo: Controlar los parámetros de procesos industriales Posibles modificaciones: • Se podría evitar ciclos simples guardando el último estado conocido • Buscar un camino completo: – Realizar el algoritmo “off line” – Solo simular las acciones pero no efectuarlas en el entorno – No intercalar la búsqueda con el ciclo percepción/acción – No es posible en entornos inaccesibles o dinámicos –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.12 Búsqueda por ascenso de colinas Al lado se muestra el plano de una habitación. El agente (A) tiene que encontrar un camino a la salida (S). En cada acción, el agente puede moverse a un cuadro adyacente (no diagonal), si no existe un obstáculo que lo impida. El agente conoce todo el plano de antemano. a) Resuelve el problema mediante la búsqueda por ascenso de colinas (evitando ciclos simples). b) Resuelve el problema mediante la búsqueda voraz (evitando ciclos simples). c) Suponiendo que se evitan ciclos simples, ¿Qué diferencias hay entre estos dos métodos? d) ¿Qué ocurre (en ambos métodos) si no se evitan los ciclos simples? –2– S A Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte • Idea subyacente: – la primera acción de un plan que lleva a un nodo con una evaluación heurística óptima, tiene una buena probabilidad de pertenecer al camino óptimo – Reducir profundidad del árbol expandido (“on line search”) – Expandir el árbol hasta un nivel k (horizonte) y realizar la acción hacía el “mejor” nodo en el nivel k – Repetir el ciclo percepción/acción de forma continua • Algoritmo general: – Percibir el estado actual s – Aplicar un método de búsqueda no informado hasta el nivel k y nodos metas. – Sea H el conjunto de nodos hoja hasta el nivel k: * * • Utilizar h* para determinar el “mejor” nodo hoja n*∈H: n ← arg min[h (n)] n∈H – Ejecutar la primera acción a* en el camino que lleva a n* – Repetir hasta que el agente se encuentra en un estado meta –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: Ejemplo método base: búsqueda en profundidad limitada estado actual = 3 1 7 2 4 6 8 5 horizonte k = 3 filtrando ciclos simples h*=ha* (piezas descolocadas) 3 1 7 2 4 6 8 5 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 2 3 1 7 4 6 8 5 k=3 h *=4 a 1 2 3 6 7 4 8 5 ha*=3 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 ha*=4 1 2 3 7 8 4 6 5 ha*=2 1 2 3 7 4 6 8 5 1 2 7 4 3 6 8 5 ha*=6 –2– 1 2 3 7 4 5 6 8 ha*=5 1 3 7 2 4 6 8 5 1 3 7 2 4 6 8 5 7 1 3 2 4 6 8 5 1 3 4 7 2 6 8 5 7 1 3 2 4 6 8 5 ha*=5 7 1 3 6 2 4 8 5 ha*=5 1 3 4 7 2 6 8 5 ha*=6 1 3 4 7 2 5 6 8 ha*=7 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: Ejemplo método base: búsqueda en profundidad limitada estado actual = 1 2 3 7 4 6 8 5 1 2 3 7 4 6 8 5 horizonte k = 3 filtrando ciclos simples h*=ha* (piezas descolocadas) 1 2 3 7 4 6 8 5 k=3 1 2 3 7 8 4 6 5 1 2 3 7 4 6 8 5 3 1 7 2 4 6 8 5 2 3 1 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 7 4 3 6 8 5 1 2 3 7 4 5 6 8 1 3 7 2 4 6 8 5 1 3 7 2 4 6 8 5 3 2 1 7 4 6 8 5 1 2 3 6 7 4 8 5 1 2 3 7 8 6 5 4 1 2 3 8 4 7 6 5 2 1 7 4 3 6 8 5 1 2 3 7 4 5 6 8 7 1 3 2 4 6 8 5 1 3 4 7 2 6 8 5 ha*=5 ha*=6 ha*=5 ha*=3 ha*=5 ha*=1 –2– ha*=6 ha*=5 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: Ejemplo método base: búsqueda en profundidad limitada estado actual = 1 2 3 7 8 4 6 5 horizonte k = 3 filtrando ciclos simples h*=ha* (piezas descolocadas) 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 8 6 5 4 1 2 3 8 4 7 6 5 1 2 3 8 7 6 5 4 k=3 1 2 3 7 8 4 6 5 ha*=5 1 2 7 8 3 6 5 4 1 2 3 8 4 7 6 5 ha*=6 ha*=0 –2– 1 2 3 7 4 6 8 5 2 3 1 8 4 7 6 5 Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: complejidad • Proporcional al número de nodos abiertos/expandidos • b factor de ramificación efectivo, k limite de profundidad • Método base: búsqueda en profundidad limitada • Complejidad en espacio: – (k*b)+1∈ O(b*k) (solo se mantiene el camino explorado y sus vecinos en la memoria) • Complejidad en tiempo: – el encontrar un nodo meta y su profundidad depende de la función heurística – hay que contar la complejidad de calcular h* –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: complejidad Complejidad en tiempo: • si se encuentra una solución con profundidad d≤k : – igual que en la búsqueda en profundidad limitada: – mejor caso: d∈ O(d) – peor caso: 1+b+...+bk-1∈ O(bk) • si se encuentra una solución con profundidad d>k : – primero hay que realizar d-k búsquedas en profundidad limitadas completos – en el siguiente paso se encuentra la solución en la profundidad k – mejor caso: (d − k )(1 + b + b + + b 2 k −1 (b k − 1) ) + k = (d − k ) +k b −1 – peor caso: (d − k + 1)(1 + b + b + + b 2 –2– k −1 (b k − 1) ) = (d − k + 1) b −1 ∈ O(d ⋅ b k ) ∈ O(d ⋅ b k ) Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte : análisis Análisis: • En general, no se puede asegurar optimalidad ni completitud – depende de la función heurística • Si h* es ideal (h*=h), entonces es óptimo y completo • La búsqueda por ascenso de colinas es un caso especial de la búsqueda con horizonte (horizonte = 1) • Aumentar el horizonte k: – permite evitar ciclos de longitud k o menor – se trata mejor el caso en los que varias acciones tienen el mismo valor heurístico (ver ejemplo) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda online y optimización La búsqueda online (horizonte/ascenso de colinas) es aplicable a problemas de optimización. Problema de optimización: • El objetivo es encontrar el mejor estado según una función objetivo • No necesariamente se busca un estado exacto, sino uno que se acerca al máximo al objetivo • El camino para llegar al estado buscado puede ser irrelevante (coste 0) • Ejemplos: juegos lógicos y de configuración, n-Reinas Funciones heurísticas para problemas de optimización: • Funciones que estimen el coste del camino hasta el nodo meta más próximo (todos los que hemos visto hasta ahora) • Funciones que miden la calidad de un nodo respecto a la función objetivo • Muchas funciones heurísticas estiman las dos cosas a la vez • A veces es más fácil definir una heurística que estime la “calidad” de los nodos –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda online y optimización: El juego de las cifras El juego de las cifras: • Combinar una serie de CIFRAS mediante las operaciones de suma y multiplicación de tal forma que el resultado se acerca lo máximo a un número dado (EXACTO). • Ejemplo: CIFRAS: 6 2 5 25 EXACTO: 420 • El objetivo consiste en encontrar una secuencia de operaciones, que aplicadas sobre (algunas de) las cifras de entrada, y sobre los resultados intermedios, permiten obtener un número lo más próximo a EXACTO. Cada cifra se puede utilizar sólo una vez. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda online y optimización: El juego de las cifras • Formalización del problema: – Representación (eficiente) de estados: (<último resultado>,<lista de los números disponibles todavía>) – – – – – Estado inicial: (0,[6,2,5,25]) Estado meta: (x,y) tal que x es lo más cerca posible de 420 Operadores: aplicar la suma/multiplicación Coste de un operador: 0 Tipo de solución: estado • Se puede resolver el problema con un método de búsqueda no informado usando como estado meta (420,y), pero ¿Que pasa si no hay ninguna solución exacta? • Mejor utilizar la búsqueda online: – Función heurística: h*((x,y))=|420-x| • mide la similitud del estado al objetivo, no mide el coste del camino restante – Modificar los algoritmos: • se termina cuando el estado elegido como más prometedor tiene un valor de h* mayor que el estado actual –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: El juego de las cifras método base: búsqueda en profundidad limitada estado actual = (0,[6,2,5,25]) horizonte k = 2 (6,[2,5,25]) (8,[5,25]) (6+2) (31,[2,5]) (6+25) (11,[2,25]) (12,[5,25]) (6+5) (6*2) (150,[2,5]) (30,[2,25]) (6*25) (6*5) (0,[6,2,5,25]) (2,[6,5,25]) (8,[5,25]) (2+6) h*=420 (5,[6,2,25]) (27,[6,5]) (2+25) (25,[6,2,5,25]) (11,[2,25]) (30,[6,2]) (5+6) (5+25) (7,[6,25]) (12,[5,25]) (7,[6,25]) (30,[2,25]) (2+5) (2*6) (5+2) (5*6) (50,[6,5]) (10,[6,25]) (125,[6,2]) (10,[6,25]) (2*25) (2*5) (5*25) (5*2) (31,[5,2]) (25+6) (27,[6,5]) (25+2) (30,[6,2]) (150,[5,2]) (25+5) (25*6) (50,[6,5]) (125,[6,2]) (25*2) (25*5) h*=270 k=2 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: El juego de las cifras método base: búsqueda en profundidad limitada estado actual = (6,[2,5,25]) horizonte k = 2 (8,[5,25]) (31,[2,5]) (6,[2,5,25]) h*=414 (11,[2,25]) (12,[5,25]) (150,[2,5]) (30,[2,25]) (13,[25]) (8+5) (36,[2]) (31+5) (36,[2]) (11+25) (37,[5]) (12+25) (152,[5]) (150+2) (55,[2]) (30+25) (40,[25]) (8*5) (33,[5]) (8+25) (200,[5]) (8*25) (155,[2]) (31*5) (33,[5]) (31+2) (62,[5]) (31*2) (275,[2]) (11*25) (13,[25]) (11+2) (22,[25]) (11*2) (300,[5]) (12*25) (17,[25]) (12+5) (60,[25]) (12*5) (300,[5]) (150*2) (155,[2]) (150+5) (750,[2]) (150*5) (750,[2]) (30*25) (32,[25]) (30+2) (60,[25]) (30*2) h*=120 k=2 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: El juego de las cifras método base: búsqueda en profundidad limitada estado actual = (12,[5,25]) horizonte k = 2 (37,[5]) (12,[5,25]) h*=408 (300,[5]) (17,[25]) (60,[25]) (185,[]) (37*5) (1500,[]) (300*5) (425,[]) (17*25) (1500,[]) (60*25) (42,[]) (37+5) (305,[]) (300+5) (42,[]) (17+25) (85,[]) (60+25) h*=5 k=2 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: El juego de las cifras método base: búsqueda en profundidad limitada estado actual = (17,[25]) horizonte k = 2 (17,[25]) (42,[]) h*=403 ( 425,[]) h*=5 k=2 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda con horizonte: El juego de las cifras método base: búsqueda en profundidad limitada estado actual = (425,[]) horizonte k = 2 (425,[]) k=2 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.13 Búsqueda online para optimización: Juego de las cifras • La búsqueda online para optimización (parando cuando no se obtiene ninguna mejora) es muy útil en problemas de optimización con un número infinito de estados. • Aplica la búsqueda por ascenso de colinas a la siguiente instanciación del juego de las cifras: CIFRAS: 2, 3, 5, 7, 8 EXACTO: 163 • En este caso, se usan los operadores suma, resta, multiplicación y división. Solo se puede aplicar un operador si el resultado es entero positivo. Cada cifra se puede utilizar varias veces. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Tema 2: Juegos unipersonales Resumen: 2. Juegos unipersonales 2.1. Representación básica 2.2. Juegos con información completa 2.3. Recursos limitados en juegos con información completa 2.4. Juegos con información incompleta Búsqueda en tiempo real Búsqueda A* con aprendizaje en tiempo real –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Características de problemas con información incompleta • Entorno: – – – – secuencial (acciones se efectúan de forma secuencial) discreto (número finito de acciones en cada estado) determinista (resultados de las acciones son estados definidos) accesible (se puede percibir el estado actual y comprobar si es estado meta) • Agente: – Es capaz de percibir el estado en el que se encuentra – Conoce las acciones que puede aplicar en el estado actual • Pero no conoce los estados sucesores de un estado hasta que no ha probado las acciones correspondientes (no puede prever los estados resultantes de las aciones) – Tiene un objetivo (estado meta) – Suposiciones: • Las acciones son deterministas (el resultado de una acción, aunque no es previsible, está claramente definido y no cambia) • El agente puede reconocer siempre un estado que ha visitado anteriormente –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Conocimientos mínimos a priori de un agente • Conocimientos mínimos a priori de un agente de búsqueda en el espacio de estados: – s0 Estado inicial – acciones: s {a1, ..., an} Devuelve una lista de acciones permitidas en el estado s – meta?: s verdad | falso Compara el estado s con los estados meta y devuelve verdad si s es un estado meta – c: (si, a, sj ) v, v∈ℵ Coste del operador a para ir de si a sj solo se puede aplicar si se conoce sj ( ) n −1 ( c si1 si2 sin = ∑ c sik , ak , sik +1 ) Coste de un plan k =1 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejemplo base: Laberinto Problema: Instanciación: Estado inicial • Estados: S – posición del agente en el laberinto • Acciones: – el agente (A) se puede mover a una posición adyacente si no hay un obstáculo A • Coste: – La aplicación de cada operador vale una unidad • Solución: – se busca un camino (más corto) a la salida (S) Estado meta A S • Suposición: – el agente no conoce el laberinto – es capaz de recordar estados visitados anteriormente –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda (en profundidad) en tiempo real Idea: • Realizar una búsqueda en profundidad creando un mapa del problema • Se crea sucesivamente el grafo del problema de búsqueda guardando el grafo en memoria • Si se llega a un estado que ya se ha llegado antes, se explora otros caminos no explorados • Si se llega a un estado en el que se han explorado todas las acciones se vuelve (físicamente) atrás –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en tiempo real Algoritmo: • G: es el grafo etiquetado y dirigido del problema que se genera al explorar el espacio; inicialmente vacío • ha: es una lista de los estados recorridos, necesario para realizar una vuelta atrás • añade(s,G): añade el nodo s al grafo G y añade sus acciones como arcos “abiertos” • conecta(sa,a,s,G): conecta el arco con etiqueta a del nodo sa al nodo s • sa y a: estado anterior y última acción • arc_ab[s]: lista de arcos “abiertos” de s • Primero(l): devuelve el primer elemento de una lista y lo quita de la lista • percibir(entorno) y realizar(a): percibe el estado actual y realizar la acción a {búsqueda en profundidad en TR} sa=null Repetir s ← percibir(entorno) Si meta?(s) entonces devolver(parar) Si nuevo?(s) entonces añade(s,G) Si sa no es nulo entonces conecta(sa,a,s,G) añade sa al principio de ha Si vacio?(arc_ab[s]) entonces Si vacio?(ha) entonces devolver(parar) En caso contrario a ← acción que va de s a Primero(ha) sa ←nulo En caso contrario a ← Primero(arc_ab[s]) sa ←s entorno ← realizar(a) Fin {repetir} –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en tiempo real: Ejemplo Movimientos del agente S S A S A ar grafo G S de ab A A iz ar S A A ab AS S ab ha A S ar AS A ab A iz S A S ar vuelta atrás S A A ab AS S ab ar S A de A S A S S ar iz S A de A Orden de realizar los movimientos si hay varias posibilidades: - arriba, abajo, izquierda, derecha S S A S A –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en tiempo real: Ejemplo Movimientos del agente S S A S A ar grafo G S de ab A S A iz ar S A A AS S ab ab A S ar S A de A S de A ar S A A A ar S A A ab ar S A ab S A de ar S A ab ar iz S A de iz A S A Orden de realizar los movimientos si hay varias posibilidades: - arriba, abajo, izquierda, derecha S S ar A S AS S A ab ar A S S A AS ab iz S ha S S A S A –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en tiempo real: Ejemplo S Árbol expandido: A S A S A S A A AS A S S A S • Exploración por profundidad • No se evitan ciclos • Tratamiento de estados repetidos: – si hay un estado repetido se realiza la acción que no se ha probado todavía – si no hay acciones sin probar vuelve atrás S S A A S A S A –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en tiempo real: Ejemplo Camino del agente el el laberinto: • los números en rojo indican el camino del agente A iz S de A ab 2 S A ab 6 S 5 ar A 1 ab 7 ar 8 iz de 3 9 S A AS S S 12 ar S A 4 ar A ab ab iz 11 ar S A de 10 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en tiempo real: Analisis Complejidad: • • • • n número de estados posibles; b factor de ramificación en espacio: espacio requerido para el grafo G y la lista ha – peor caso: (n-1)(b+1)+(n-1)b=2nb+n - 2b -1∈O(nb) en tiempo: número de movimientos del agente – peor caso: O(nb) en el peor caso b=n y la complejidad en tiempo y espacio podría ser O(n2) • O(n2) puede ser un problema, especialmente respecto al espacio –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda en tiempo real: Analisis Completitud: • es completo: en espacios finitos y si de todos los nodos a que se puede llegar existe un camino al nodo meta Optimalidad: • • No es óptimo Índice competitivo del agente (coste camino real/coste camino óptimo) – puede ser infinito si hay acciones irreversibles o el espacio es infinito – puede ser arbitrariamente largo si todas las acciones son reversibles y el espacio es limitado • Ningún algoritmo puede evitar callejones sin salida en todos los espacios de estados –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.14 Búsqueda en profundidad en tiempo real: Considera el laberinto dibujado abajo. A es el agente cuyo objetivo es llegar a S. M es un monstruo que come el agente si llega a el. a) Realiza la búsqueda por profundidad en tiempo real. Si en un estado hay varios acciones sin explorar, elige las acciones en el siguiente orden: izquierda, arriba, derecha, abajo. Dibuja el grafo que genera el agente e indica sus movimientos. b) Realiza la búsqueda por profundidad en tiempo real. Si en un estado hay varios acciones sin explorar, elige las acciones en el siguiente orden: derecha, arriba, izquierda, abajo. Dibuja el grafo que genera el agente e indica sus movimientos. c) Suponiendo un coste de cada movimiento de 1, calcula el índice competitivo del agente para ambos casos y compáralos. M S A –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* con aprendizaje en tiempo real Problema: • La búsqueda en profundidad en tiempo real es esencialmente ciega: – El agente intenta caminos al azar y evita caminos ya explorados • Se podría utilizar funciones heurísticas: – para explorar las acciones más prometedoras primero – Pero, ¿Qué heurística se puede usar si no se conoce mucho del problema? Idea: generar información heurística “sobre la marcha” • Crear el mapa del problema y aprender al mismo tiempo los valores de h* para cada estado (y durante varias búsquedas sucesivas) • Inicialmente, se inicializa h*(s) = 0 para todos los nodos s • Después de realizar una acción en el estado sa se actualiza h*(sa) al coste mínimo para ir de sa al estado meta, según lo que se sabe en este momento • Estando en un estado s, se elige aquella acción permitida b que lleva a un estado s’ tal que h*(s’)+c(s,b,s’) es mínimo –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* con aprendizaje en tiempo real Algoritmo: • G: es el grafo etiquetado y dirigido del problema que se genera al explorar el espacio; inicialmente vacío; contiene un valor h* para cada nodo • añade(s,G): añade el nodo s al grafo G y añade sus acciones como arcos “abiertos”; inicializa h*(s) a 0 • conecta(sa,a,s,G): conecta el arco con etiqueta a del nodo sa al nodo s • sa y a: estado anterior y última acción; son variables globales • estado[s,b]: estado al que se llega del estado s con la acción b (puede ser no definido) • funcion costo (s,s’,b): {calcula el coste estimado para ir de s al nodo meta más cercano a través de s’ } Si nodefinido?(s’) entonces devolver 0 en otro caso devolver c(s,b,s’)+H[s’] {búsqueda con aprendizaje en TR} sa=null Repetir s ← percibir(entorno) Si nuevo?(s) entonces añade(s,G) Si sa no es nulo entonces conecta(sa,a,s,G) h*[sa] ← min b∈acciones(s a ) (costo(sa , estado[s a ,b], b)) Si meta?(s) entonces devolver(parar) a ← acción b de acciones(s) que minimiza costo(s,estado[s,b],b) entorno ← realizar(a) sa ←s Fin {repetir} –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Coste estimado mínimo para ir de un estado a la meta Elegir acción desde s: Actualizar h* de s: Caso 1: (s tiene acciones sin explorar) coste=? coste=6 s4 h*=1 h*=2 coste=7 s coste=3 coste=3 s3 s1 Caso 2: (s ha explorado todas las acciones) s2 h*=3 s3 coste=? coste=3 s3 h*=3 h*=1 s coste=3 s2 h*=3 h*(s)←0 coste=6 coste=6 coste=3 h*=2 s1 h*=2 h*(s)←5 s1 s4 h*=1 h*=2 coste=7 s coste=3 s2 coste=3 s3 h*=2 coste mínimo esperado =0 h*=3 coste=6 s1 h*=1 s coste=3 s2 h*=2 coste mínimo esperado=5 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* con aprendizaje en tiempo real: Ejemplo Movimientos del agente S S A ar e=0 S A S A ab A e=0 A ab e=0 S de e=0 AS S ab e=0 grafo G iz0 0 AS A ar e=0 A ab S ar e=0 iz e=0 ar 01 S A A ab S 00 1 ab S A ar S • Orden de realizar los movimientos si hay varias posibilidades: - arriba, abajo, izquierda, derecha • e es el costo estimado de la acción para ir a la meta A 001 de ar iz S A 00 0 de • en rojo los valores de h* • el coste de cada acción es 1 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* con aprendizaje en tiempo real: Ejemplo Movimientos del agente S S A ar e=0 S A S A ab A e=0 A de e=0 ab e=0 ab e=0 S AS S grafo G iz0 0 ar e=0 A S A de e=1 ar 01 ar e=0 S A A ab S A S de e=0 A ar e=0 0 ab ab iz e=0 S S A AS 12 movimientos A S A S ar S A 00 1 00 ab ab S A ar e=0 ar S • Orden de realizar los movimientos si hay varias posibilidades: - arriba, abajo, izquierda, derecha • e es el costo estimado de la acción para ir a la meta A 001 1 de ar iz S A 00 01 de iz ar S A 00 • en rojo los valores de h* • el coste de cada acción es 1 –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* con aprendizaje en tiempo real: Analisis Aprendizaje de h*: • los valores de h* aprendidos sirven para nuevas instanciaciones del problema: – el estado meta tiene que ser el mismo – el estado inicial puede ser distinto • después de un número suficiente de búsquedas sucesivas con el mismo estado meta, h* converge a h – se convierte en una estimación exacta del coste de un nodo a la meta Problemas: • En situaciones donde el estado meta puede cambiar, los valores de h* aprendidos no sirven para nuevas búsquedas –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Nueva búsqueda (con h* aprendido; mismo estado meta /otro estado inicial) Movimientos del agente S A AS AS iz e=0 de e=0 A grafo G S 02 ar e=1 A de S S ab e=2 de e=1 A A iz iz A e=2 ar A e=0 e=2 S A S S ar e=1 A de e=2 S S de A e=3 A ab e=3 A ar e=2 ar S A A ab S A 1 12 011 ab ab S A S A ar e=1 S ar A ar S A ab ab 13 ab e=0 S 0 S S S S A AS S ab e=2 A iz0 1 2 123 de S A 1 12 2 • Condiciones: igual que antes (sólo cambia el estado inicial) –2– ar iz de iz ar S A 01 12 16 movimientos Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Nueva búsqueda (con h* aprendido; mismo estado meta / estado inicial que antes) Movimientos del agente S A AS AS iz e=3 de e=4 A grafo G S 24 ar e=3 A de S S ab e=3 A S de e=3 A ar S A e=2 S A AS S ab e=4 A iz2 3 4 0 ab ab S A ar e=1 ar 3 S A A ab ar S A de 11 ab ar iz S A 23 S A 233 ab 8 movimientos 3 S ar de iz ar S A 22 • Condiciones: igual que antes –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Nueva búsqueda ( búsqueda inicial con h* aprendido) Movimientos del agente S S A S A ar e=4 ab A e=5 S A ab e=1 S de e=4 S A grafo G 4 A A iz4 S de e=3 de S A AS 0 ab ab S ar e=2 A 6 movimientos (comparado con los 12 de la primera búsqueda) ar 35 S A A ab S S A 3 44 de 11 ab ar iz S A 33 S A 3 ab ar ar de iz ar S A 22 • Condiciones: igual que antes –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Búsqueda A* con aprendizaje en tiempo real: Analisis Complejidad: • espacio: la misma que en la búsqueda en profundidad en tiempo real: O(n•b) (para guardar el grafo) • tiempo: – – inicialmente igual que en la búsqueda en profundidad en tiempo real: O(n2) (peor caso) mejora con el tiempo al ser la función heurística h* cada vez más exacta Completitud: • es completo: en espacios finitos y si de todos los nodos a que se puede llegar existe un camino al nodo meta Optimalidad: • • No se es óptimo Se convierte en óptimo, cuando h*(n)=h(n) para todos los nodos n Problemas: • • Los requerimientos de espacio son importantes, especialmente para problemas con un número grande de estados distintos Ejemplo: el 8-Puzzle tiene 9!/2=181440 estados (15-Puzzle: 1013estados) –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf Ejercicio 2.15 Búsqueda A* con aprendizaje en tiempo real: Imagínate el siguiente escenario. Un agente tiene que realizar una carrera de la ciudad A a la ciudad B (ver mapa de carreteras con ciudades y kilómetros). La peculiaridad de la carrera consiste en que el agente no conoce el mapa. Una vez que el agente llega a una ciudad, se le dice el nombre de esta ciudad, las carreteras que salen y la longitud de la carretera que acaba de recorrer. 55 G O a) Aplique el algoritmo de búsqueda A* con Z 71 aprendizaje en tiempo real a este problema. Si 75 151 no hay ningun criterio mejor, el agente prefiere A S carreteras que van al norte y luego 99 140 F sucesivamente los que van al este, sur y oeste. 118 80 R b) Repite la misma búsqueda con los valores de la T 97 211 función heuristica aprendido anteriormente. 181 P c) Que cambiaría si, al llegar a una ciudad nueva, 101 146 no sólo se le dice al agente las carreteras que M salen, sino también los kilómetros que hay 138 75 hasta la siguiente ciudad para cada una de estas 120 D C carreteras (pero no a que ciudades se llegan). –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf B Ejercicio 2.16 Aprendizaje de la función heurística en problemas con información completa: El mecanismo de aprendizaje puede aplicarse igual si se conoce el grafo de antemano (problemas con información completa). De hecho, una vez que se haya obtenido el grafo completo, se hace eso. Además, en vez de inicializar los valores de la función heurística a 0, se puede utilizar como valores iniciales los de una función heurística conocida. a) Implemente el algoritmo de aprendizaje para el 8-puzzle. Para inicializar los valores de la función heurística para cada estado utiliza la función hc*. b) Genere 100 estados iniciales aleatorios y busque una solución con el algoritmo implementado, y aprendiendo (mejorando) la función heurística a lo largo de estas 100 búsquedas. Utilice como estado meta el estado meta utilizado en los ejemplos. c) Genera un gráfico que indica el número de movimientos realizados en cada búsqueda en función del número de búsquedas realizados anteriormente. Comenta este gráfico. –2– Fundamentos de Inteligencia Artificial 3º Ing. Sup. Inf