Universidad de Oviedo Centro de Inteligencia Artificial SISTEMAS INTELIGENTES T2: Sistemas de Búsqueda {jdiez, juanjo} @ aic.uniovi.es Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo ¿Cómo resolverlo? Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Índice • El papel de la búsqueda en IA • Componentes de un sistema de búsqueda • Ejemplos de problemas de búsqueda ° Artificiales ° Reales • Algoritmo general de búsqueda en árboles • Caracterización de las estrategias de búsqueda ° Medidas de rendimiento ° Estrategias de búsqueda a ciegas ° Estrategias de búsqueda informada • Estrategias de búsqueda a ciegas Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo El papel de la búsqueda en IA • Existe una unión inseparable entre los conceptos razonamiento o resolución de problemas y búsqueda • Constituyen el núcleo fundamental de ideas que aparecen en casi todos los programas inteligentes que se realizan en IA ° Deducción ° Elaboración de planes de actuación ° Prueba automática de teoremas ° … • Los sistemas de búsqueda son una herramienta básica para construir SSII Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Resolver problemas por búsqueda (I) • Formulación del objetivo: conjunto de estados del mundo que satisfacen el objetivo buscado ° Por extensión ° Se especifica como una propiedad abstracta • Formulación del problema: decidir qué acciones y estados debemos considerar La abstracción es un proceso clave ° Se deben eliminar aquellos detalles del problema no sustanciales y que dificultan su resolución ° • Búsqueda: proceso en el que se examinan diferentes secuencias posibles de acciones que conducen a estados conocidos y en el que se escoge la mejor secuencia • Ejecución: llevar a cabo la secuencia de acciones Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Resolver problemas por búsqueda (II) • Encontrar secuencias de acciones que conduzcan desde el estado actual a algún estado objetivo Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Encontrar una ruta en Rumania (I) • De vacaciones en Arad (Rumania) • El vuelo de vuelta sale mañana de Bucarest • Formular objetivo: llegar a Bucarest cuanto antes • Formular problema: ° estados: estar en una ciudad de Rumania ° acciones: conducir de una ciudad a otra • Encontrar una solución: secuencia de ciudades que nos lleve desde Arad hasta Bucarest en el menor tiempo posible Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Encontrar una ruta en Rumania (II) Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Elementos • Estado inicial del agente, punto de partida para la búsqueda En(Arad) • Función sucesor que dado un estado x devuelve un conjunto ordenado de pares <acción, sucesor> {<Ir(Sibiu),En(Sibiu)>,<Ir(Timisoara),En(Timisoara)> ,<Ir(Zerind), En(Zerind)> } ° ° Espacio de estados o de búsqueda es el conjunto de estados alcanzables desde el estado inicial aplicando distintas acciones. Es un grafo donde los nodos son estados y los arcos acciones Camino es una secuencia de estados conectado por una secuencia de acciones • Coste del camino (g) es una función que asigna un coste numérico a cada camino. Suele ser la suma de costes de cada acción individual, g(x,a,y) Suma de kilómetros de la ruta entre dos ciudades • Test objetivo determina si un estado es objetivo En(Bucarest) ° Solución secuencia de acciones que llevan del estado inicial a un estado objetivo. Las que tengan coste del camino mínimo, serán las óptimas Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Tipos de problemas/entornos • Totalmente/parcialmente observable Rumania: totalmente observable, el agente percibe totalmente el entorno • Determinista/estocástico Rumania: determinista, el agente sabe en qué estado se encontrará después de realizar una acción • Episódico/secuencial Rumania: secuencial, cada acción depende de las acciones anteriores • Estático/dinámico Rumania: estático, la formulación y búsqueda se hacen sin prestar atención a cualquier cambio que pudiera ocurrir en el entorno • Discreto/continuo Rumania: discreto, no se tiene en cuenta la variable tiempo • Individual/Multiagente Rumania: individual, sólo interviene un agente Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Ejemplos de problemas • Problemas Artificiales Se utilizan para: ° Ilustrar los métodos de resolución de problemas ° Comparar el funcionamiento de diferentes algoritmos Ejemplos: n-puzzle, n-reinas,… • Problemas Reales Tienden a tener formulaciones particulares en cada caso Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo El mundo de la aspiradora (I) • La aspiradora puede estar en una de las dos habitaciones, donde puede haber o no suciedad • Estados: 2x22=8 posibles estados • Estado inicial: cualquiera de los posibles • Función sucesor: genera estados resultantes de aplicar Izquierda, Derecha, o Aspirar • Test objetivo: todas las habitaciones limpias • Coste: suma del número de acciones realizadas • Si hubiera n habitaciones tendríamos n 2n estados Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial El mundo de la aspiradora (II) Las acciones son: Izquierda (L), Derecha (R), Aspirar (S) Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo El mundo de los bloques B A C • Estados: 13 posibles estados • Estado inicial: cualquiera de los posibles • Función sucesor: mover un bloque • Coste: suma del número de acciones realizadas • Test objetivo: A B C Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo El 8-puzzle (I) • Estados: especifican la posición de cada ficha • Estado inicial: una posición • Función sucesor: genera los estados resultantes de “desplazar el hueco” Arriba, Abajo, a la Izquierda o a la Derecha • Test objetivo: indica si la configuración de fichas es la deseada • Coste: número de movimientos Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo El 8-puzzle (II) • Parece simple … • pero es un problema NP-completo ° P: resoluble en tiempo polinomial ° NP: polinomial no determinístico, se puede verificar la validez de una solución en tiempo polinomial » NP-completo: los problemas más difíciles NP • La complejidad crece rápidamente con el tamaño del puzzle ° 8-puzzle: 181,440 estados, 0.1 segundos ° 15-puzzle: ~1.3×1012 estados, 6 días ° 24-puzzle: ~1025 estados, … mucho! Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Las 8-reinas (I) • Colocar 8 reinas en un tablero de ajedrez sin que se ataquen entre ellas Este estado no es un objetivo!!! Las reinas en la primera y última columna se atacan Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Las 8-reinas (II) • Formulación Incremental ° Se aumenta paulatinamente la descripción de cada estado añadiendo una reina al tablero ° Estados: cualquier combinación de 0 a 8 reinas ° Estado inicial: tablero vacío ° Función sucesor: añadir una reina a cualquier cuadrado vacío ° Test objetivo: 8 reinas sobre el tablero, ninguna es atacada Hay 64·63·62·…·58·57 ~ 3·1014 estados Para 100-reinas tendríamos 10400 estados Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Problemas reales • Búsqueda de rutas ° ° ° Generalización del problema de ir hasta Bucarest Se añaden complicaciones adicionales como el coste en tiempo, dinero, disponibilidad de transporte … Ejemplo: viajes de líneas aéreas • Problemas turísticos: visitar varias ciudades al menos una vez • Problema del viajante de comercio (TSP) ° Sólo una vez en cada ciudad y además han de recorrerse todas con un coste mínimo • Distribución VLSI: colocación de componentes y conexiones en un chip verificando que el área es mínima • Navegación de un robot ° Generalización de la búsqueda de una ruta en un espacio continuo • Secuenciación para ensamblaje automático • Diseño de proteínas • Juegos • Búsquedas en internet Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Algunas definiciones • Árbol de búsqueda: generado por el estado inicial y la función sucesor. En general será un grafo • Nodo de búsqueda: cada nodo de un árbol de búsqueda que representa un estado del problema • Expansión de un nodo: aplicar la función sucesor al estado representado por el nodo para generar nodos sucesores • Estrategia de búsqueda: determina el estado a expandir en cada momento. En esencia, se trata de escoger una opción y posponer la exploración de otras opciones para más tarde • Frontera: conjunto de nodos generados y aún no expandidos. La estrategia de búsqueda selecciona qué estado expandir de entre los de la frontera Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Árbol de búsqueda para encontrar una ruta desde Arad a Bucarest Universidad de Oviedo El estado inicial Tras expandir Arad Tras expandir Sibiu Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Algoritmo de Búsqueda en Árboles función Búsqueda_Árboles( problema , estrategia ) devuelve solución o fallo inicializa el árbol con el estado inicial del problema bucle hacer si no hay candidatos a expandir entonces devolver fallo escoger, según estrategia, un nodo hoja para expandir si el nodo es objetivo entonces devolver la correspondiente solución sino expandir el nodo y añadir los sucesores al árbol fin bucle hacer Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Representación de los nodos • Los nodos no son equivalentes a los estados • La representación de los nodos suele depender del problema • Se suelen describir mediante: ° el estado que representan ° su nodo padre ° la acción que lleva al nodo ° el coste del camino hasta ese nodo: g(n) ° la profundidad del nodo Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Medidas de rendimiento • Completitud: Si existe solución ¿la encuentra? • Optimización: Si la encuentra ¿es la mejor? • Complejidad espacio-temporal: ¿cuánto tiempo y memoria necesita para encontrar una solución? En informática teórica se expresa mediante el tamaño del grafo En IA la dificultad del problema se expresa en función de: ° factor de ramificación (b): máximo número de sucesores de cualquier nodo ° profundidad del objetivo (d): profundidad del nodo objetivo menos profundo ° profundidad máxima (m) de cualquier camino en el espacio de estados ° ¿Qué cantidad de recursos se requieren para encontrar la solución? Máximo número de nodos almacenados en memoria ° ¿Cuánto se tarda en encontrar la solución? Suele medirse en términos de número de nodos generados Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Estrategias de búsqueda • Búsqueda no informada o a ciegas: no tienen información para medir la calidad de los estados Primero en anchura ° Coste uniforme ° Primero en profundidad ° Profundidad limitada ° Primero en profundidad con profundidad iterativa ° Bidireccional ° • Búsqueda informada o heurística: saben estimar si un estado es “más prometedor” que otro Voraz primero el mejor ° Algoritmo A* ° Escalada (hill-climbing) ° Temple simulado (simulated annealing) ° Haz local (beam seach) ° Algoritmos genéticos ° Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Primero en anchura (I) • Se expande el nodo raíz, a continuación se expanden todos los sucesores, luego los sucesores de éstos, … • En general, se expanden todos los nodos de un nivel antes de expandir cualquier nodo del nivel siguiente • La estrategia sería una cola FIFO • Cada nodo generado debe permanecer en memoria, ya que es parte de la frontera, o un antepasado de un nodo frontera Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Primero en anchura (II) • Completitud: es una estrategia completa si el factor de ramificación es finito • Optimización: no se garantiza una solución óptima. El nodo objetivo más superficial no tiene por qué ser la solución óptima Sería óptima si el coste fuera una función no decreciente de la profundidad • Complejidad: Si cada nodo tiene b sucesores y la solución está a nivel d, en el peor de los casos tenemos que expandir todos menos el último nodo del nivel d Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Primero en anchura (III) Ejemplo: suponemos un problema con un factor de ramificación b=10, que será resuelto por un ordenador capaz de generar 10.000 nodos/ seg. y que requiere 1.000 bytes/nodo de espacio Profundidad Nodos Tiempo Memoria 2 1.100 0,11 segs. 1 MB 4 111.100 11 segs. 106 MB 6 107 19 mins. 10 GB 8 109 31 horas 1 TB 10 1011 129 días 101 TB 12 1013 35 años 10 PB 14 1015 3.523 años 1 EB Requisitos de espacio más problemáticos que los de tiempo Aplicable en problemas pequeños, si no es necesario una búsqueda informada Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Coste uniforme (I) • Primero en anchura es óptimo cuando todos los costes son iguales, ya que expande el nodo menos profundo • Coste uniforme es una extensión de primero en anchura de forma que es óptimo para cualquier función de coste (estrictamente positiva) • Se expande el nodo con el camino de menor coste desde el nodo raíz • Si todos los costes de cada acción son iguales, es idéntico a primero en anchura • Se preocupa, no por la profundidad, sino por el coste total • No puede haber acciones de coste 0 que conduzcan al mismo estado (bucle infinito) Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Coste uniforme (II) • Completitud: está garantizada si el coste de cada acción es mayor o igual que un constante positiva pequeña (ε) • Optimización: la condición anterior también garantiza la optimización El algoritmo expande nodos en orden creciente de coste del camino, por lo que el primer nodo objetivo seleccionado para expandir es la solución óptima • Complejidad: depende del coste. Si el coste óptimo es C* y suponemos que el coste mínimo de cada acción es ε, entonces la complejidad en el peor caso es: puede ser mucho mayor que (el efecto de muchos pasos pequeños) Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Primero en profundidad (I) • Se expande primero el nodo más profundo en la frontera actual del árbol de búsqueda • Cuando todos los nodos del nivel más profundo no tienen sucesor, la búsqueda retrocede al nivel anterior • La estrategia se implementaría con una pila LIFO Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Primero en profundidad (II) Universidad de Oviedo Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Primero en profundidad (III) • Completitud: si hay ramas infinitas el proceso de búsqueda podría no terminar, aún teniendo una solución próxima a la raíz • Optimización: no se garantiza que la solución sea óptima • Complejidad temporal: si m es la profundidad máxima del árbol, la complejidad temporal es de orden en general m>>d y es infinito si el árbol es ilimitado • Complejidad espacial: requiere almacenar sólo bm+1 nodos. La complejidad espacial es de orden con profundidad m=d=12 sólo requiere 118 KB en lugar de los 10 PB de la búsqueda primero en anchura (mismas condiciones) Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Profundidad limitada (I) • Trata de aliviar el problema de los árboles ilimitados (con ramas infinitas) con la búsqueda primero en profundidad • Se efectúa búsqueda primero en profundidad pero hasta una profundidad máxima l • Primero en profundidad = profundidad limitada con l=∞ (ó m) • Lamentablemente se añade alguna complicación adicional si escogemos l tal que l<d. Entonces el objetivo está fuera del límite de profundidad • El límite de profundidad puede estar basado en el conocimiento previo del problema: ° Ejemplo: en el mapa de Rumania hay 20 ciudades, luego la solución debe ser como mucho con l=19 • Diámetro del espacio de estados: la profundidad máxima para alcanzar cualquier estado desde otro ° Ejemplo: cualquier ciudad puede alcanzarse desde otra en 9 pasos • Para la mayor parte de problemas no conocemos un límite de profundidad bueno hasta que no resolvemos el problema Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Profundidad limitada (II) • Completitud: no se puede garantizar que encuentre solución, ya que podría ocurrir que l<d. • Optimización: no se puede garantizar que la solución sea óptima • Complejidad: en general, menor que la de la búsqueda en profundidad Espacial: Temporal: Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial BPP con profundidad iterativa (I) • Se trata de aplicar repetidas veces la búsqueda con profundidad limitada, aumentando en cada ocasión el límite de profundidad (0, 1, 2, …) hasta encontrar un estado objetivo (cuando alcancemos la profundidad d) • Trata de combinar las ventajas de la búsqueda en anchura (completitud) y primero en profundidad (complejidad) • Los estados se generan en cada iteración, es poco costoso. Los nodos de profundidad d son generados 1 vez, los de d-1 2 veces, …, los de la raíz d veces • Es más rápida que la búsqueda en anchura ya que no genera sucesores en el nivel d+1 • Es el método de búsqueda a ciegas preferido cuando hay un espacio grande de búsqueda y no se conoce d Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial BPP con profundidad iterativa (II) Límite=0 Límite=1 Límite=2 Límite=3 Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial BPP con profundidad iterativa (III) • Completitud: es como una búsqueda en anchura por niveles. Hereda de ésta su carácter completo cuando el factor de ramificación es finito • Optimización: si todas las acciones tienen el mismo coste, también hereda la capacidad de encontrar soluciones óptimas • Complejidad Nodos: Ejemplo: b=10, d=5 N(prof. it.)=50+400+3000+20.000+100.000=123.450 N(anc.)=10+100+1.000+10.000+100.000+999.990=1.111.100 Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Búsqueda bidireccional (I) Inicio Objetivo El área de dos círculos pequeños es menor que área de uno grande Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Búsqueda bidireccional (II) • Se ejecutan dos búsquedas simultáneas: una hacia delante, desde el estado inicial y la otra hacia atrás, desde el objetivo • Se para cuando ambas búsquedas se encuentren: se comprueba que el nodo expandido de un árbol esté en la frontera del otro • Su interés radica en la reducción de la complejidad • La búsqueda hacia atrás puede plantear dificultades ya que no siempre es fácil calcular los nodos predecesores. El caso más difícil se plantea cuando el test objetivo da únicamente una descripción implícita de algún conjunto (posiblemente grande) de estados objetivo • Su principal problema es que requiere mucho espacio Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Búsqueda bidireccional (III) • Si las búsquedas son primero en anchura ° es completo ° es óptimo para costes uniforme • Complejidad: Espacial: O(bd/2) Temporal: O(bd/2) • Otras combinaciones en cuanto a los algoritmos de búsqueda utilizados pueden sacrificar la completitud, optimización o ambas Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Comparación de estrategias de búsqueda no informada 1ºA CU 1ºP PL PI B ¿Completa? Síc1 Síc1,c2 No No Síc1 Síc1,c4 ¿Óptima? Síc3 Sí No No Síc3 Síc3,c4 Tiempo O(bd+1) O(bC*/ε) O(bm) O(bl) O(bd) O(bd/2) Espacio O(bd+1) O(bC*/ε) O(bm) O(bl) O(bd) O(bd/2) Variables Condiciones b: factor de ramificación c1: factor de ramificación finito d: profundidad mínima de un objetivo c2: costes individuales >= ε m: profundidad máxima de un estado c3: costes individuales iguales C*: coste de la solución óptima c4: 1ºA en ambas direcciones ε: cantidad positiva mínima de coste ind. l: límite de profundidad Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Eliminar estados repetidos (I) • Perder tiempo expandiendo estados ya expandidos es una de las complicaciones más importantes de los procesos de búsqueda • Hay problemas que no tienen esta dificultad ya que su espacio de estados es un árbol (no un grafo) y hay un solo camino a cada estado • Para otros problemas es inevitable la repetición de estados ° Son problemas en los que las acciones suelen ser reversibles (ej. búsqueda de rutas) ° Sus árboles de búsqueda son infinitos (son grafos) ° Una poda puede producir una reducción exponencial del coste de la búsqueda Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Las 8-reinas (III) • Formulación Alternativa ° Estados: combinación de n reinas, con 0<=n<=8, una por columna, desde la situada más a la izquierda y sin que se ataquen ° Función sucesor: añadir una reina en la columna más a la izquierda posible tal que no sea atacada por las reinas anteriores • Esta formulación no repite estados El espacio de búsqueda se reduce a tan sólo 2057 estados!!! 100-reinas seguimos teniendo 1052 estados Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Eliminar estados repetidos (II) • La formulación eficiente del problema de las 8-reinas debe su eficiencia en parte a que no se repiten estados • Cada estado sólo se puede alcanzar por un camino • Si se formula permitiendo poner una reina en cualquier columna, entonces cada estado se puede alcanzar por n! caminos diferentes “Los algoritmos que olvidan su historia están condenados a repetirla” Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Eliminar estados repetidos (III) Espacio de estados en el que dos acciones nos llevan de A a B, dos de B a C, etc El espacio tiene d+1 estados El árbol asociado tiene 2d caminos Un problema más real: la rejilla rectangular Cada estado tiene 4 sucesores El árbol de búsqueda tendría 4d hojas Pero sólo hay 2d2 estados distintos Para d=20 pasamos de un billón de nodos del árbol a sólo 800 estados Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial Eliminar estados repetidos (IV) • Conclusión: no detectar estados repetidos puede provocar que un problema resoluble llegue a ser irresoluble • Solución: Los nodos expandidos pueden almacenarse en una lista. La llamaremos LISTA_CERRADA ° Los nodos de la frontera, que almacenaremos en LISTA_ABIERTA, que aparezcan en LISTA_CERRADA se eliminarán en lugar de ser expandidos de nuevo ° • En algunos casos tendríamos que comprobar si el nuevo camino encontrado es de menor coste que el encontrado previamente. Esto no será necesario si utilizamos búsqueda de coste uniforme o en anchura con coste constante, pero sí en otros casos Sistemas Inteligentes - T2: Sistemas de Búsqueda Centro de Inteligencia Artificial Universidad de Oviedo Algoritmo de Búsqueda en Grafos función Búsqueda_Grafos( problema, estrategia ) devuelve solución o fallo lista_cerrada = lista vacía lista_abierta = estado inicial del problema bucle hacer si Vacía(lista_abierta) entonces devolver fallo nodo = EscogerNodo(estrategia,lista_abierta) si EsObjetivo(nodo) entonces devolver la correspondiente solución sino si NoEstá(nodo,lista_cerrada) entonces Añadir(nodo,lista_cerrada) Añadir(Sucesores(nodo,problema),lista_abierta) fin bucle hacer Sistemas Inteligentes - T2: Sistemas de Búsqueda Universidad de Oviedo Centro de Inteligencia Artificial El problema puede ser más complejo • Hemos estudiado las estrategias de búsqueda para problemas sencillos, con entornos totalmente observables, deterministas, estáticos, con agentes individuales • ¿Qué pasa cuando el conocimiento de las acciones o los estados es incompleto? ° problemas sin sensores: si es parcialmente observable, cada acción llevaría a un conjunto de estados posibles ° problemas de contingencia: si tenemos adversarios, tendremos incertidumbre por las acciones de otro agente ° problemas de exploración: el agente no conoce los estados, deberá actuar para descubrirlos Sistemas Inteligentes - T2: Sistemas de Búsqueda