Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Inteligencia Artificial Grupo PLG Universidad Carlos III de Madrid IA. 2008 Inteligencia Artificial 1 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Indice 1 2 3 4 Introducción Búsqueda sin información Búsqueda en Amplitud Búsqueda en profundidad Búsqueda hacia atrás Búsqueda bidireccional Búsqueda con costes no uniformes Otros algoritmos de búsqueda Análisis de complejidad Búsqueda heurı́stica Heurı́stica Técnica de escalada Técnicas de mejor-primero Otros algoritmos Búsqueda con múltiples agentes Algoritmo Minimax Inteligencia Artificial 2 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Indice 1 2 3 4 Introducción Búsqueda sin información Búsqueda en Amplitud Búsqueda en profundidad Búsqueda hacia atrás Búsqueda bidireccional Búsqueda con costes no uniformes Otros algoritmos de búsqueda Análisis de complejidad Búsqueda heurı́stica Heurı́stica Técnica de escalada Técnicas de mejor-primero Otros algoritmos Búsqueda con múltiples agentes Algoritmo Minimax Inteligencia Artificial 3 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Indice 1 2 3 4 Introducción Búsqueda sin información Búsqueda en Amplitud Búsqueda en profundidad Búsqueda hacia atrás Búsqueda bidireccional Búsqueda con costes no uniformes Otros algoritmos de búsqueda Análisis de complejidad Búsqueda heurı́stica Heurı́stica Técnica de escalada Técnicas de mejor-primero Otros algoritmos Búsqueda con múltiples agentes Algoritmo Minimax Inteligencia Artificial 4 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Indice 1 2 3 4 Introducción Búsqueda sin información Búsqueda en Amplitud Búsqueda en profundidad Búsqueda hacia atrás Búsqueda bidireccional Búsqueda con costes no uniformes Otros algoritmos de búsqueda Análisis de complejidad Búsqueda heurı́stica Heurı́stica Técnica de escalada Técnicas de mejor-primero Otros algoritmos Búsqueda con múltiples agentes Algoritmo Minimax Inteligencia Artificial 5 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Indice 1 2 3 4 Introducción Búsqueda sin información Búsqueda en Amplitud Búsqueda en profundidad Búsqueda hacia atrás Búsqueda bidireccional Búsqueda con costes no uniformes Otros algoritmos de búsqueda Análisis de complejidad Búsqueda heurı́stica Heurı́stica Técnica de escalada Técnicas de mejor-primero Otros algoritmos Búsqueda con múltiples agentes Algoritmo Minimax Inteligencia Artificial 6 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Introducción Espacio de problemas Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s) Representable por un grafo Resolución de problemas = búsqueda en el grafo Normalmente, la búsqueda genera un árbol Parámetros importantes Factor de ramificación Profundidad del árbol de búsqueda Diferencia con OR: el grafo en OR es explı́cito. En muchos problemas es imposible Inteligencia Artificial 7 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Introducción Espacio de problemas Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s) Representable por un grafo Resolución de problemas = búsqueda en el grafo Normalmente, la búsqueda genera un árbol Parámetros importantes Factor de ramificación Profundidad del árbol de búsqueda Diferencia con OR: el grafo en OR es explı́cito. En muchos problemas es imposible Inteligencia Artificial 8 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Introducción Espacio de problemas Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s) Representable por un grafo Resolución de problemas = búsqueda en el grafo Normalmente, la búsqueda genera un árbol Parámetros importantes Factor de ramificación Profundidad del árbol de búsqueda Diferencia con OR: el grafo en OR es explı́cito. En muchos problemas es imposible Inteligencia Artificial 9 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Introducción Espacio de problemas Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s) Representable por un grafo Resolución de problemas = búsqueda en el grafo Normalmente, la búsqueda genera un árbol Parámetros importantes Factor de ramificación Profundidad del árbol de búsqueda Diferencia con OR: el grafo en OR es explı́cito. En muchos problemas es imposible Inteligencia Artificial 10 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Introducción Espacio de problemas Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s) Representable por un grafo Resolución de problemas = búsqueda en el grafo Normalmente, la búsqueda genera un árbol Parámetros importantes Factor de ramificación Profundidad del árbol de búsqueda Diferencia con OR: el grafo en OR es explı́cito. En muchos problemas es imposible Inteligencia Artificial 11 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Ejemplo: 8-Puzzle Estados 2 3 1 5 6 5 4 7 8 4 1 2 3 2 3 2 3 4 5 6 1 5 6 1 5 6 7 8 4 7 8 4 7 1 1 2 3 4 5 6 7 Inteligencia Artificial 2 3 6 7 8 8 Operadores 8 12 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Ejemplo: Las torres de Hanoi (3,2) Inteligencia Artificial 13 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Ejemplo: Las torres de Hanoi (3,2) El factor de ramificación (fr = 83 ) es una propiedad del grafo de estados Inteligencia Artificial 14 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Ejemplo: Las torres de Hanoi (3,2) La profundidad (p = 3) es una propiedad del problema a resolver Inteligencia Artificial 15 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Ejemplo: Las jarras Se tienen dos jarras de agua: una de cinco litros de capacidad y otra de tres. Ninguna de ellas tiene marcas de medición. Se tiene una bomba que permite llenar las jarras de agua, vaciarlas, y traspasar contenido de una jarra a otra. ¿Cómo se puede tener exactamente cuatro litros de agua en la jarra de cinco litros de capacidad? Inteligencia Artificial 16 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Ejemplo: Las jarras Espacio de Estados: conjunto de pares ordenados de enteros (x, y ), de forma que x = 0, . . . , 5, y = 0, . . . , 3 x representa el número de litros de agua que hay en la jarra de 5 litros de capacidad y representa el número de litros de agua que hay en la jarra de 3 litros de capacidad Estado inicial: (0, 0) Estado meta: Descripción implı́cita: (4, n), donde n = 0, . . . , 3 Descripción explı́cita: (4, 0), (4, 1), (4, 2), (4, 3) Inteligencia Artificial 17 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Ejemplo: Las jarras Operadores Llenar jarra grande Llenar jarra pequeña Vaciar jarra grande Vaciar jarra pequeña Verter en grande Verter en pequeña Inteligencia Artificial : : : : : : Si Si Si Si Si Si (x (y (x (y (y (x < 5)→(5, y ) < 3)→(x, 3) > 0)→(0, y ) > 0)→(x, 0) > 0)→(x + mı́n{5 − x, y }, y − mı́n{5 − x, y }) > 0)→(x − mı́n{x, 3 − y }, y + mı́n{x, 3 − y }) 18 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Explosión combinatoria Dominio 8-puzzle 15-puzzle 24-puzzle Número de estados “ 2 ”˛ N ! ˛ = 181,440 ˛ N=3 “2 2 ”˛ ˛ N ! = 1013 ˛ “ 22 ”˛N=4 ˛ N ! = 1025 ˛ 2 Tiempo (107 nodos/s) (3n )|n=2 = 9 (3n )|n=4 = 81 (3n )|n=8 = 6561 n (3 )|n=16 = 4, 3 × 107 (3n )|n=24 = 2, 824 × 101 1 9 × 10−7 segundos 8, 1 × 10−6 segundos 6, 5 × 10−4 segundos 4,3 segundos 0,32 dı́as 106 4, 32 × 1019 0,1 segundos 31.000 años 0.01 segundos 11,5 dı́as 31, 7 × 109 años N=5 Hanoi Hanoi Hanoi Hanoi Hanoi (3,2) (3,4) (3,8) (3,16) (3,24) Cubo de Rubik 2 × 2 × 2 Cubo de Rubik 3 × 3 × 3 Inteligencia Artificial 19 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Indice 1 2 3 4 Introducción Búsqueda sin información Búsqueda en Amplitud Búsqueda en profundidad Búsqueda hacia atrás Búsqueda bidireccional Búsqueda con costes no uniformes Otros algoritmos de búsqueda Análisis de complejidad Búsqueda heurı́stica Heurı́stica Técnica de escalada Técnicas de mejor-primero Otros algoritmos Búsqueda con múltiples agentes Algoritmo Minimax Inteligencia Artificial 20 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en Amplitud 8-Puzzle – Amplitud 1 2 1 2 3 4 5 6 7 8 Inteligencia Artificial 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 4 1 2 3 6 5 4 7 8 21 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en Amplitud 8-Puzzle – Amplitud 1 2 1 2 3 4 5 6 7 8 5 1 2 3 5 6 4 7 8 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 4 1 2 3 6 5 4 7 8 6 1 2 3 4 5 6 7 8 x Inteligencia Artificial 22 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en Amplitud 8-Puzzle – Amplitud 1 2 1 2 3 4 5 6 7 8 5 1 2 3 5 6 4 7 8 x Inteligencia Artificial 6 1 2 3 4 5 6 7 8 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 7 1 2 3 5 6 4 7 8 4 1 2 3 6 5 4 7 8 8 3 2 1 5 6 4 7 8 x 23 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en Amplitud 8-Puzzle – Amplitud 1 2 1 2 3 4 5 6 7 8 5 1 2 3 5 6 4 7 8 x Inteligencia Artificial 6 1 2 3 4 5 6 7 8 1 2 3 5 6 4 7 8 3 4 1 2 3 6 5 4 7 8 2 3 1 5 6 4 7 8 7 1 2 3 5 6 4 7 8 x 8 3 2 1 5 6 4 7 8 9 1 2 3 5 7 6 4 8 10 1 3 5 2 6 4 7 8 11 1 2 3 5 6 4 7 8 12 1 2 3 5 6 4 7 8 x 24 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en Amplitud 8-Puzzle – Amplitud 1 2 1 2 3 4 5 6 7 8 5 1 2 3 5 6 4 7 8 3 6 1 2 3 4 5 6 7 8 7 1 2 3 5 6 4 7 8 x 14 1 2 3 4 5 6 7 8 4 1 2 3 6 5 4 7 8 2 3 1 5 6 4 7 8 x 13 1 2 3 4 6 7 5 8 1 2 3 5 6 4 7 8 8 3 2 1 5 6 4 7 8 9 1 2 3 5 7 6 4 8 10 1 3 5 2 6 4 7 8 11 1 2 3 5 6 4 7 8 12 1 2 3 5 6 4 7 8 x 15 1 2 3 4 5 6 7 8 x Inteligencia Artificial 25 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en Amplitud Búsqueda en amplitud Procedimiento Amplitud (Estado-inicial Estado-Final) 1 Crear lista ABIERTA con el nodo inicial, I, (estado-inicial) 2 EXITO=Falso 3 Hasta que ABIERTA esté vacı́a O EXITO Quitar de ABIERTA el primer nodo, N Si N tiene sucesores Entonces Generar los sucesores de N Crear punteros desde los sucesores hacia N Si algún sucesor es nodo meta Entonces EXITO=Verdadero Si no Añadir los sucesores al final de ABIERTA 4 Si EXITO Entonces Solución=camino desde I a N por los punteros Si no, Solución=fracaso Inteligencia Artificial 26 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en Amplitud Caracterı́sticas Completo: encuentra solución si existe y el factor de ramificación es finito en cada nodo Optimalidad: si todos los operadores tienen el mismo coste, encontrará la solución óptima Eficiencia: buena si las metas están cercanas Problema: consume memoria exponencial Inteligencia Artificial 27 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en profundidad 8-Puzzle – Profundidad 1 2 1 2 3 4 5 6 7 8 Inteligencia Artificial 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 4 1 2 3 6 5 4 7 8 28 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en profundidad 8-Puzzle – Profundidad 1 2 1 2 3 4 5 6 7 8 5 1 2 3 5 6 4 7 8 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 4 1 2 3 6 5 4 7 8 6 1 2 3 4 5 6 7 8 x Inteligencia Artificial 29 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en profundidad 8-Puzzle – Profundidad 1 2 1 2 3 4 5 6 7 8 5 1 2 3 5 6 4 7 8 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 4 1 2 3 6 5 4 7 8 6 1 2 3 4 5 6 7 8 x 7 1 2 3 4 6 7 5 8 8 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 x Inteligencia Artificial 30 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en profundidad Búsqueda en profundidad Procedimiento Profundidad (Estado-inicial,Estado-Final,Profundidad-máxima) 1 Crear lista ABIERTA con el nodo inicial, I, y su profundidad=0 2 EXITO=Falso 3 Hasta que ABIERTA esté vacı́a O EXITO Quitar de ABIERTA el primer nodo. Lo llamaremos N y a su profundidad P Si P < Profundidad-máxima Y N tiene sucesores Entonces Generar los sucesores de N Crear punteros desde los sucesores hacia N Si algún sucesor es el Estado-Final Entonces EXITO=Verdadero Si no, Añadir los sucesores al principio de ABIERTA Asignarles profundidad P+1 4 Si EXITO Entonces Solución=camino desde I a N por los punteros Si no, Solución=fracaso Inteligencia Artificial 31 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en profundidad Caracterı́sticas Requiere técnica de retroceso (“backtracking”) Razones para retroceso: Se ha llegado al lı́mite de profundidad Se han estudiado todos los sucesores de un nodo y no se ha llegado a la solución Se sabe que el estado no conduce a la solución Se genera un estado repetido Completitud: no asegura encontrar la solución Optimalidad: no asegura encontrar la solución óptima Eficiencia: bueno cuando metas alejadas de estado inicial, o problemas de memoria No es bueno cuando hay ciclos Inteligencia Artificial 32 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en profundidad Caracterı́sticas Requiere técnica de retroceso (“backtracking”) Razones para retroceso: Se ha llegado al lı́mite de profundidad Se han estudiado todos los sucesores de un nodo y no se ha llegado a la solución Se sabe que el estado no conduce a la solución Se genera un estado repetido Completitud: no asegura encontrar la solución Optimalidad: no asegura encontrar la solución óptima Eficiencia: bueno cuando metas alejadas de estado inicial, o problemas de memoria No es bueno cuando hay ciclos Inteligencia Artificial 33 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda en profundidad Caracterı́sticas Requiere técnica de retroceso (“backtracking”) Razones para retroceso: Se ha llegado al lı́mite de profundidad Se han estudiado todos los sucesores de un nodo y no se ha llegado a la solución Se sabe que el estado no conduce a la solución Se genera un estado repetido Completitud: no asegura encontrar la solución Optimalidad: no asegura encontrar la solución óptima Eficiencia: bueno cuando metas alejadas de estado inicial, o problemas de memoria No es bueno cuando hay ciclos Inteligencia Artificial 34 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Búsqueda con costes no uniformes Búsqueda no informada con costes Dijkstra: amplitud, pero eligiendo aquel nodo que tenga menor coste desde el nodo raı́z Branch and bound, B&B búsqueda (normalmente en profundidad) cuando encuentra una solución, su coste se convierte en un lı́mite (superior o inferior) para los siguientes nodos si un nodo posterior tiene un coste desde el nodo raı́z mayor/menor (o igual) que el lı́mite, se termina la búsqueda por él si se tiene un lı́mite inicial, se puede utilizar la misma idea para amplitud/Dijkstra Inteligencia Artificial 35 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Análisis de complejidad Análisis de complejidad Si se dispone de: factor de ramificación medio fr profundidad del árbol de búsqueda p ¿Cuál serı́a, en el peor de los casos, el número de nodos que examinarı́a cada técnica? Unidireccional Pista: supóngase que fr=3, y vaya incrementándose la p calcular de forma inductiva el número de nodos Inteligencia Artificial 36 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Análisis de complejidad Análisis de complejidad Técnica de Búsqueda Unidireccional Inteligencia Artificial Número máximo de nodos Pp i i=0 fr 37 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Análisis de complejidad Análisis de complejidad Técnica de Búsqueda Amplitud Profundidad Complejidad Temporal Espacial O(fr p ) O(fr p ) p O(fr ) O(p) Cuando complejidad en tiempo es igual a la de espacio, se agota la memoria antes que el tiempo Inteligencia Artificial 38 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Indice 1 2 3 4 Introducción Búsqueda sin información Búsqueda en Amplitud Búsqueda en profundidad Búsqueda hacia atrás Búsqueda bidireccional Búsqueda con costes no uniformes Otros algoritmos de búsqueda Análisis de complejidad Búsqueda heurı́stica Heurı́stica Técnica de escalada Técnicas de mejor-primero Otros algoritmos Búsqueda con múltiples agentes Algoritmo Minimax Inteligencia Artificial 39 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Heurı́stica Heurı́stica Si se tiene conocimiento perfecto −→ algoritmo exacto Si no se tiene conocimiento −→ búsqueda sin información En la mayor parte de los problemas que resuelven los humanos, se está en posiciones intermedias Heurı́stica: (del griego “heurisko” (εύρισκω): “yo encuentro”) conocimiento parcial sobre un problema/dominio que permite resolver problemas eficientemente en ese problema/dominio Representación de las heurı́sticas funciones h(n) metareglas Las funciones heurı́sticas se descubren resolviendo modelos simplificados del problema real Inteligencia Artificial 40 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Heurı́stica Heurı́stica Si se tiene conocimiento perfecto −→ algoritmo exacto Si no se tiene conocimiento −→ búsqueda sin información En la mayor parte de los problemas que resuelven los humanos, se está en posiciones intermedias Heurı́stica: (del griego “heurisko” (εύρισκω): “yo encuentro”) conocimiento parcial sobre un problema/dominio que permite resolver problemas eficientemente en ese problema/dominio Representación de las heurı́sticas funciones h(n) metareglas Las funciones heurı́sticas se descubren resolviendo modelos simplificados del problema real Inteligencia Artificial 41 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Heurı́stica Heurı́stica Si se tiene conocimiento perfecto −→ algoritmo exacto Si no se tiene conocimiento −→ búsqueda sin información En la mayor parte de los problemas que resuelven los humanos, se está en posiciones intermedias Heurı́stica: (del griego “heurisko” (εύρισκω): “yo encuentro”) conocimiento parcial sobre un problema/dominio que permite resolver problemas eficientemente en ese problema/dominio Representación de las heurı́sticas funciones h(n) metareglas Las funciones heurı́sticas se descubren resolviendo modelos simplificados del problema real Inteligencia Artificial 42 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Heurı́stica Heurı́stica Si se tiene conocimiento perfecto −→ algoritmo exacto Si no se tiene conocimiento −→ búsqueda sin información En la mayor parte de los problemas que resuelven los humanos, se está en posiciones intermedias Heurı́stica: (del griego “heurisko” (εύρισκω): “yo encuentro”) conocimiento parcial sobre un problema/dominio que permite resolver problemas eficientemente en ese problema/dominio Representación de las heurı́sticas funciones h(n) metareglas Las funciones heurı́sticas se descubren resolviendo modelos simplificados del problema real Inteligencia Artificial 43 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Heurı́stica Problemas relajados. 8-puzzle Restricciones: sólo se puede mover el blanco el movimiento sólo se puede hacer a casillas adyacentes horizontal o vertical en cada paso, se intercambian los contenidos de dos casillas Relajaciones: si quitamos las dos primeras restricciones, generamos la heurı́stica de número de casillas mal colocadas si quitamos la primera restricción, generamos la heurı́stica de la distancia de Manhattan Inteligencia Artificial 44 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Heurı́stica Problemas relajados. 8-puzzle Restricciones: sólo se puede mover el blanco el movimiento sólo se puede hacer a casillas adyacentes horizontal o vertical en cada paso, se intercambian los contenidos de dos casillas Relajaciones: si quitamos las dos primeras restricciones, generamos la heurı́stica de número de casillas mal colocadas si quitamos la primera restricción, generamos la heurı́stica de la distancia de Manhattan Inteligencia Artificial 45 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnica de escalada Algoritmo de escalada Procedimiento escalada (Estado-inicial Estado-final) N=Estado-inicial; EXITO=Falso Hasta que Camino-Sin-Salida(N) O EXITO Generar los sucesores de N SI algún sucesor es Estado-final ENTONCES EXITO=Verdadero SI NO, Evaluar cada nodo con la función de evaluación, f (n) N=mejor sucesor Si EXITO Entonces Solución=camino desde nodo del Estado-inicial al nodo N por los punteros Si no, Solución=fracaso Inteligencia Artificial 46 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnica de escalada 8-Puzzle – Búsqueda en escalada 1 2 1 2 3 4 5 6 7 8 Inteligencia Artificial 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 4 1 2 3 6 5 4 7 8 47 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnica de escalada 8-Puzzle – Búsqueda en escalada 1 5 2 1 2 3 4 5 6 6 7 8 Inteligencia Artificial 4 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 4 1 2 3 4 5 6 4 7 8 48 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnica de escalada 8-Puzzle – Búsqueda en escalada 1 5 2 1 2 3 4 5 6 6 7 8 5 1 2 3 5 6 4 7 8 4 1 2 3 5 6 4 7 8 3 2 3 1 5 6 4 7 8 4 1 2 3 4 5 6 4 7 8 6 1 2 3 7 4 5 6 7 8 x Inteligencia Artificial 49 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnica de escalada 8-Puzzle – Búsqueda en escalada 1 2 3 5 6 5 4 7 8 1 2 1 2 3 4 5 6 6 7 8 4 3 2 3 1 5 6 4 7 8 4 1 2 3 4 5 6 4 7 8 6 1 2 3 7 4 5 6 7 8 5 1 2 3 5 6 4 7 8 x 7 1 2 3 6 6 4 7 5 8 Inteligencia Artificial 8 1 2 3 9 4 5 6 7 8 9 1 2 3 6 4 5 6 7 8 50 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnica de escalada Caracterı́sticas Problemas de los métodos avariciosos Función Objetivo Máximos (o mı́nimos) locales: pico que es más alto que cada uno de sus estados vecinos, pero más bajo que el máximo global Mesetas: zona del espacio de estados con función de evaluación plana Crestas: zona del espacio de estados con varios máximos (mı́nimos) locales Inteligencia Artificial Máximo global Máximo Local Terraza Crestas Meseta Espacio de Estados Unidimensional 51 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnica de escalada Caracterı́sticas Soluciones Retroceso Dar más de un paso Reinicio aleatorio Método local Completitud: no tiene porqué encontrar la solución Admisibilidad: no siendo completo, aún menos será admisible Eficiencia: rápido y útil si la función es monótona (de)creciente Inteligencia Artificial 52 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Técnicas de mejor primero Procedimiento Mejor-primero (Estado-inicial Estado-final) Crear grafo de búsqueda G , con el nodo inicial, I (Estado-inicial) ABIERTA=I , CERRADA=Vacı́o, EXITO=Falso Hasta que ABIERTA esté vacı́a O EXITO Quitar el primer nodo de ABIERTA, N y meterlo en CERRADA SI N es Estado-final ENTONCES EXITO=Verdadero SI NO Expandir N, generando el conjunto S de sucesores de N, que no son antecesores de N en el grafo Generar un nodo en G por cada s de S Establecer un puntero a N desde aquellos s de S que no estuvieran ya en G Añadirlos a ABIERTA Para cada s de S que estuviera ya en ABIERTA o CERRADA decidir si redirigir o no sus punteros hacia N Para cada s de S que estuviera ya en CERRADA decidir si redirigir o no los punteros de los nodos en sus subárboles Reordenar ABIERTA según f (n) Si EXITO Entonces Solución=camino desde I a N a través de los punteros de G Si no Solución=Fracaso Inteligencia Artificial 53 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero A∗ (Hart, Nilsson y Rafael, 1968) Función de ordenación de nodos: f (n) = g (n) + h(n) f (n): función de evaluación g (n): función de coste de ir desde el nodo inicial al nodo n h(n): función heurı́stica que mide la distancia estimada desde n a algún nodo meta g (n) se calcula como la suma de los costes de los arcos recorridos, k(ni , nj ) Los valores reales sólo se pueden conocer al final de la búsqueda f ∗ (n): coste real para ir desde el nodo inicial a algún nodo meta a través de n g ∗ (n): coste real para ir desde el nodo inicial al nodo n h∗ (n): coste real para ir desde el nodo n a algún nodo meta Inteligencia Artificial 54 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Definición de términos g(2)=200 k(1,2)=200 1 2 k(2,6)=40 h(2)=30 Inteligencia Artificial h(6)=40 5 k(1,4)=40 g(4)=40 g(6)=200+40=240 6 4 h(4)=35 55 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Ejemplo A∗ 30 2 40 200 30 150 1 3 10 60 40 50 200 5 0 5 4 35 Inteligencia Artificial 40 6 200 56 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Ejemplo A∗ 1 200 2 230 Inteligencia Artificial 40 60 200 30 3 70 60 40 4 10 75 35 57 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Ejemplo A∗ 1 200 2 230 200 30 40 60 150 3 70 60 40 4 10 75 35 200 260 5 260 Inteligencia Artificial 0 58 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Ejemplo A∗ 1 200 2 195 225 30 40 60 150 3 55 45 10 200 240 Inteligencia Artificial 40 5 4 75 35 200 5 240 0 59 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Ejemplo A∗ 1 200 2 195 225 30 40 60 150 3 55 45 10 40 5 4 75 35 30 40 200 200 235 6 275 Inteligencia Artificial 40 225 5 225 0 60 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Caracterı́sticas Completitud: si existe solución, la encuentra Admisibilidad: si hay una solución óptima, la encuentra si el número de sucesores es finito para cada nodo, k(ni , nj ) > > 0 en cada arco, y La función h(n) es admisible: h(n) ≤ h∗ (n) ∀n Inteligencia Artificial 61 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Consideraciones sobre la heurı́stica Si h1 (n) <= h2 (n)∀n, h2 (n) está más informada que h1 (n) y servirá para expandir menos nodos Ejemplo: distancia de Manhattan está más informada que número de casillas mal colocadas (problema de Manhattan es menos relajado que el del número de casillas) Extremos h(n) = 0 para cada nodo: no se tiene información (Dijkstra) h(n) = h∗ (n) para cada nodo: se tiene información perfecta No tiene sentido dedicar más coste computacional a calcular una buena h(n) que a realizar la búsqueda equivalente: equilibrio Inteligencia Artificial 62 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Técnicas mejor-primero No informadas: Búsqueda en amplitud: f (n) = profundidad(n) Dijkstra: f (n) = g (n) Informadas (heurı́sticas): A, A∗ , IDA∗ , . . . : f (n) = g (n) + h(n) Ponderadas: f (n) = g (n) + ωh(n), ω > 1 Es completo, pero no es admisible La solución óptima tiene un coste menor o igual que (1 + ω) veces la generada Inteligencia Artificial 63 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero IDA∗ (Korf, 1985) Procedimiento IDA∗ (Estado-inicial Estado-final) EXITO=Falso η = h(s) Mientras que EXITO=Falso EXITO=Profundidad (Estado-inicial,η) η = mı́n {f (i)} = mı́n {g (i) + h(i)} i=1,n i=1,n Solución=camino desde nodo del Estado-inicial al Estado-final por los punteros Profundidad (Estado-inicial,η) Expande todos los nodos cuyo coste f (n) no excede η Inteligencia Artificial 64 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Técnicas de mejor-primero Caracterı́sticas Completitud: es completo Admisibilidad: es admisible Eficiencia: la complejidad de tiempo es exponencial, pero la complejidad de espacio es lineal en la profundidad del árbol de búsqueda Aunque pudiera parecer lo contrario, el número de re-expansiones es sólo mayor en un pequeño factor que el número de expansiones de los algoritmos de el mejor primero Fue el primer algoritmo que resolvió óptimamente 100 casos generados aleatoriamente en el 15–Puzzle Inteligencia Artificial 65 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Indice 1 2 3 4 Introducción Búsqueda sin información Búsqueda en Amplitud Búsqueda en profundidad Búsqueda hacia atrás Búsqueda bidireccional Búsqueda con costes no uniformes Otros algoritmos de búsqueda Análisis de complejidad Búsqueda heurı́stica Heurı́stica Técnica de escalada Técnicas de mejor-primero Otros algoritmos Búsqueda con múltiples agentes Algoritmo Minimax Inteligencia Artificial 66 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Caracterı́sticas de los problemas Suma nula: lo que gana uno, lo pierde el otro Dos agentes (se puede generalizar, Maxn ) Información completa: se conoce en cada momento el estado completo del juego Deterministas o de información perfecta: no entra en juego el azar (se puede generalizar) Alternados: las decisiones de cada agente se toman de forma alternada Inteligencia Artificial 67 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax Función de evaluación perfecta f*(n)= 2 7 8 Problema: no se conoce dicha función Inteligencia Artificial 68 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax Función de evaluación perfecta f*(n)= 2 7 8 Problema: no se conoce dicha función Inteligencia Artificial 69 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax Búsqueda completa 0 m M Nodos hojas: ganamos (M=∞), perdemos (m=−∞) o empatamos (0) Problema: es intratable; no se puede realizar en un tiempo razonable Inteligencia Artificial 70 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax Búsqueda completa 0 m M Nodos hojas: ganamos (M=∞), perdemos (m=−∞) o empatamos (0) Problema: es intratable; no se puede realizar en un tiempo razonable Inteligencia Artificial 71 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax M p max Inteligencia Artificial =3 72 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax M p max f(n)= Inteligencia Artificial 3 4 m 10 12 3 -3 5 20 -4 =3 -2 73 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax 4 MAX 10 -3 12 20 -2 M p max f(n)= Inteligencia Artificial 3 4 m 10 12 3 -3 5 20 -4 =3 -2 74 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax -3 4 MIN 4 MAX 10 -2 -3 12 20 -2 M p max f(n)= Inteligencia Artificial 3 4 m 10 12 3 -3 5 20 -4 =3 -2 75 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Algoritmo Minimax 4 -3 4 MIN 4 MAX 10 -2 -3 12 20 -2 M p max f(n)= Inteligencia Artificial 3 4 m 10 12 3 -3 5 20 -4 =3 -2 76 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Procedimiento Minimax Procedimiento Minimax (Situación Profundidad) SI Profundidad = pmax ENTONCES devolver evaluación (Situación) SI NO SI ganadora (Situación) ENTONCES devolver + ∞ SI NO SI perdedora (Situación) ENTONCES devolver - ∞ SI NO SI empate (Situación) ENTONCES devolver 0 SI NO S = sucesores (Situación) L = lista de llamadas al MINIMAX (Si ∈ S, Profundidad + 1) SI nivel-max (Profundidad) ENTONCES devolver max (L) SI NO devolver min (L) Inteligencia Artificial 77 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Cálculo del valor de cada nodo 8 +∞ > > > > −∞ > > < 0 f (n) = fev (n) > > > > > > máxSi ∈S(n) f (Si ) : mı́nSi ∈S(n) f (Si ) si si si si si si n n n p n n es una situación ganadora para computadora es una situación perdedora para computadora es una situación de empate = Profundidad máxima es nodo max y p < pmax es nodo min y p < pmax Negamax f (n) = Inteligencia Artificial fev (n) máx(−f (S1 ), ..., −f (Sd )) si d = 0 si d > 0 78 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Ejemplo en el tic-tac-toe X X X X X X X 1 X X X X X 4−2=2 4−2=2 Inteligencia Artificial X X 4−2=2 X X 3−2=1 X X 5−2=3 X 3−2=1 79 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Ejemplo en el tic-tac-toe X X X X X X X 0 1 X X 4−3=1 Inteligencia Artificial X X 4−3=1 X X 4−3=1 X X 3−3=0 X X 4−3=1 X X 3−3=0 80 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Algoritmo Minimax Ejemplo en el tic-tac-toe X X X X X X 0 1 X X 4−2=2 Inteligencia Artificial X X 4−2=2 1 X X 4−2=2 X X 4−2=2 X X 4−2=2 X X X 3−2=1 81 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Poda Alfa-beta Nodos max: se utiliza el parámetro α para guardar el valor máximo de los sucesores encontrado hasta el momento. α0 = −∞ Nodos min: se utiliza el parámetro β para guardar el valor mı́nimo de los sucesores encontrado hasta el momento. β0 = +∞ Poda en los nodos MAX: αp ≥ βp−1 Poda en los nodos MIN: βp ≤ αp−1 Inteligencia Artificial 82 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Poda en los nodos MIN MAX MIN α= 4 β= 6 MAX Inteligencia Artificial 83 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Poda en los nodos MIN α= 4 MAX MIN β= 6 3 MAX Inteligencia Artificial 84 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Poda en los nodos MIN MAX α= 4 MIN β= 6 / 3 β hijo <= α padre 3 MAX Inteligencia Artificial 85 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Poda en los nodos MIN MAX α= 4 MIN β= 6 / 3 β hijo <= α padre 3 MAX Inteligencia Artificial 86 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Poda en los nodos MIN α= 4 MAX <=3 MIN β= 6 / 3 β hijo <= α padre 3 MAX Inteligencia Artificial 87 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Poda en los nodos MIN α= 4 MAX α= max{4,<=3}=4 <=3 MIN β= 6 / 3 β hijo <= α padre 3 MAX Inteligencia Artificial 88 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Algoritmo Alfa-beta Procedimiento Alfa-Beta (Situación Alfa Beta Profundidad) SI Situación está considerada como empate, Devolver 0 SI Situación es ganadora, Devolver mayor-numero SI Situación es perdedora, Devolver menor-numero SI Profundidad = Profundidad-maxima, Devolver evaluacion (Situación) SI nivel-max-p para todo si sucesor de Situación y Alfa < Beta Alfa-beta = ALFA-BETA(si ,Alfa,Beta,Profundidad+1) Alfa = max(Alfa,Alfa-beta) Devolver Alfa SI NO para todo si sucesor de Situación y Beta > Alfa Alfa-beta = ALFA-BETA(si ,Alfa,Beta,Profundidad+1) Beta = min(Beta,Alfa-beta) Devolver Beta Inteligencia Artificial 89 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Ejemplo del alfa-beta 1 3 2 5 7 6 8 4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 3 6 6 4 20 1 −3 10 8 10 1 5 Inteligencia Artificial 4 9 7 5 −5 90 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Ejemplo del alfa-beta 5 a=m b=M m 2 a= b=M / 5 5 a=m 5 b=M 3 a=m 12 b=M 3 Inteligencia Artificial a=m b=M m/5 1 a= b=M 3 4 6 a=m / 3 / 5 b=M 5 a= 3 13 b=M 5 4 a=5 14 b=M 4 a=m b=5 6 a=m / 6 b=5 6 a=m 15 b=5 6 a6 >= b 2 Poda 91 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Ejemplo del alfa-beta a=m / 5 1 b=M a=m b=M 5 5 a=5 b=M 2 a=5 b=M / 7 / 5 3 4 7 5 a=5 7 b=M 6 a=5 17 b=M 6 Inteligencia Artificial 7 a=6 18 b=M 7 a=5 / 6 / 7 a=5 b=M b=7 4 8 b3 <= a 1 Poda a=5 19 b=7 4 92 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Ejemplo del alfa-beta a=m / 5 / 8 1 b=M a=m b=M 5 2 5 8 3 a=5 b=M 8 a=5 10 a=5 / 8 b=M b=M 8 a=5 24 b=M 8 Inteligencia Artificial 5 a=8 25 b=M 5 4 a=5 b=M / 8 10 a=5 b=8 11 a=5 / 10 b=8 10 a=5 b=8 26 10 a >= b 11 4 93 Introducción Búsqueda sin información Búsqueda heurı́stica Búsqueda con múltiples agentes Poda Alfa-beta Estado de la cuestión en juegos de dos jugadores Ajedrez: HiTech, Deep Thought-Blue, Fritz Backgammon: NeuroGammon Damas: Chinook Othello: Logistello Juegos resueltos: Tic-Tac-Toe, Cuatro en Raya, Qubic, Go-Moku, Damas (oficialmente desde 2007), . . . IA en juegos actuales: estrategia Inteligencia Artificial 94