Resolución de Problemas mediante Búsqueda Tema 3 c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 1 Tema 3 2 Esquema ♦ Introducción ♦ Agentes para la resolución de problemas ♦ Formulación de problemas ♦ Problemas ejemplo ♦ Búsqueda de soluciones ♦ Estrategias básicas de búsqueda - búsqueda primero en anchura - búsqueda de coste uniforme - búsqueda primero en profundidad - búsqueda limitada en profundidad - búsqueda por profundización iterativa - búsqueda bidireccional c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Introducción Los agentes reflejos simples tienen muchas limitaciones Vamos a ver un tipo de agente basado en objetivos: agentes para la resolución de problemas Los agentes para la resolución de problemas funcionan buscando secuencias de acciones que conduzcan a estados deseados c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 3 Agentes para la resolución de problemas Los agentes inteligentes deben actuar de forma que se maximice su medida del desempeño ; introducción de objetivos Los objetivos ayudan a dirigir el comportamiento del agente limitando las acciones que intenta realizar Las etapas de la resolución de problemas con objetivos: 1. Formulación de objetivos: a partir de la situación actual, definir los estados objetivo y los factores que pueden influir en el grado de satisfacción de las distintas maneras de conseguirlo 2. Formulación del problema: decidir qué acciones y estados considerar 3. Búsqueda: decidir qué hacer examinando diferentes secuencias de acciones que llevan a estados objetivo y escogiendo la mejor 4. Ejecución: ejecutar las acciones recomendadas c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 4 ejemplo: hallar rutas en Rumanı́a Estamos de vacaciones en Rumanı́a, concretamente en Arad Nuestro vuelo sale mañana de Bucharest Formulación de objetivos: estar en Bucharest Formulación del problema: estados: distintas ciudades acciones: conducir entre ciudades Encontrar solución: secuencia de ciudades, p.e. Arad, Sibiu, Fagaras, Bucharest c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 5 ejemplo: hallar rutas en Rumanı́a (cont.) Oradea Neamt Zerind Iasi Arad Sibiu Fagaras Vaslui Rimnicu Vilcea Timisoara Pitesti Lugoj Hirsova Mehadia Urziceni Bucharest Dobreta Craiova Giurgiu c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Eforie Tema 3 6 La estructura de un agente simple para la resolución de problemas: function SIMPLE-PROBLEM-SOLVING-AGENT( p) returns an action inputs: p, a percept static: s, an action sequence, initially empty state, some description of the current world state g, a goal, initially null problem, a problem formulation state UPDATE-STATE(state, p) if s is empty then g FORMULATE-GOAL(state) problem FORMULATE-PROBLEM(state, g) s SEARCH( problem) action RECOMMENDATION(s, state) s REMAINDER(s, state) return action c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 7 Formulación de problemas Distintos tipos de problemas determinados por el conocimiento que el agente tiene de los efectos de sus acciones y del estado en que se encuentra Ejemplo : “mundo del aspirador” el mundo tiene dos posiciones. en las posiciones del mundo puede haber o no suciedad. el agente está en una u otra posición. las acciones que puede realizar el agente son: Lef t (izquierda), Right (derecha) y Suck (aspirar). el objetivo es limpiar toda la suciedad, que equivale al conjunto de estados {7, 8}. 1 2 3 4 5 6 7 8 c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 8 Tipos de problemas según el conocimiento del agente: 1. Si conoce sus acciones y el estado actual (entorno determinista y accesible) ; problema de un solo estado (single-state problem) 2. Si conoce sus acciones pero no el estado actual (entorno determinista e inaccesible) ; problema de conjuntos de estados (multiple-state problem) 3. Si su conocimiento sobre acciones y estado actual es incompleto (entorno no determinista e inaccesible) ; problema de contingencia: utilizar la percepción durante la ejecución calcular un árbol de acciones cuyas ramas tratan distintos casos 4. Si desconoce completamente sus acciones (espacio de estados desconocido) ; problema de exploración: experimentar y descubrir información sobre acciones y estados Los problemas de un solo estado y de conjuntos de estados se pueden resolver mediante las estrategias de búsqueda de este tema c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 9 ejemplo: “mundo del aspirador” 1. Un solo estado: a partir de 5, Solución?? 2. Conjuntos de estados: a partir de {1, 2, 3, 4, 5, 6, 7, 8} y usando p.e. Right resulta en {2, 4, 6, 8}, Solución?? 3. Contingencia, a partir de 5 y con: Ley de Murphy: Suck puede ensuciar Sensor de posición y sensor local de suciedad Solución?? 1 2 3 4 5 6 7 8 c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 10 Formulación de problemas de un solo estado Un problema es el conjunto de información que el agente usa como entrada a su proceso de decisión, e incluye: • estado inicial • operadores: descripción de las acciones que puede realizar el agente en términos de cómo modifican el estado (otra descripción posible es una función sucesor S(x)) → ambos definen el espacio de estados, o conjunto de estados a los que se puede llegar desde el estado inicial a través de cualquier secuencia de operadores. Un camino en dicho espacio será una secuencia de operadores. • test de objetivo: descripción de los estados objetivo, explı́cita o no • coste del camino: función equivalente a la suma del coste de las acciones del camino (se suele denotar g(x)) Una solución es un camino que conduce del estado inicial a un estado que satisface el test de objetivo c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 11 ejemplo: hallar rutas en Rumanı́a El problema puede estar definido por: • estado inicial, p.e. “en Arad” • operadores, operadores que lleven de una ciudad a otra según el mapa, p.e. Arad → Zerind, Arad → Sibiu, etc • test de objetivo, explı́cito, p.e. x = “en Bucharest” • coste del camino, número de etapas del viaje Una solución serı́a una ruta que lleve de Arad a Bucharest, p.e. Arad → Sibiu → Rimnicu Vilcea → Pitesti → Bucharest La formulación de problemas de conjuntos de estados se realiza de manera similar c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 12 La elección del espacio de estados (conjunto de estados y operadores) es fundamental para la resolución de problemas El mundo real es muy complejo ; es necesario realizar una abstracción para omitir los detalles irrelevantes Mediante la abstracción del espacio de estados: estado = conjunto de estados reales operador = combinación de acciones reales, p.e. Arad → Zerind representa una combinación compleja de carreteras alternativas, desvı́os, paradas, etc solución = conjunto de caminos reales que son soluciones en el mundo real c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 13 Problemas ejemplo Los problemas reales pueden formularse como hemos visto después de una etapa de análisis ejemplo: el puzzle de las 8 piezas 5 4 6 1 88 6 8 7 3 22 7 Start State 5 1 4 2 3 84 6 25 Goal State estados??: posiciones de las piezas y del hueco operadores??: llevar el hueco a iquierda, derecha, arriba o abajo test de objetivo??: = goal state, el estado objetivo predefinido coste del camino??: 1 por movimiento Nota: la familia de problemas de los “puzzles de las n piezas” es NP-completa c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 14 ejemplo: espacio de estados del “mundo del aspirador” R L R L S S R R L R L R L L S S S S R L R L S S estados??: posiciones de la suciedad y del robot operadores??: Lef t, Right, Suck test de objetivo??: N oDirt(x) coste del camino??: 1 por operador c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 15 ejemplo: espacio de estados del “mundo del aspirador” (cont.) L R L R S S L S R R L S S R L L R S S R L c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 16 ejemplo: ensamblado con robots P R R R R R estados??: coordenadas reales de los ángulos de las articulaciones del robot piezas del objeto a ensamblar operadores??: movimientos continuos de las articulaciones del robot test de objetivo??: ensamblado completo coste del camino??: tiempo de ejecución c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 17 Búsqueda de soluciones La idea básica es explorar el espacio de estados a partir del estado inicial, a través de secuencias parciales de soluciones: si el estado actual no es objetivo, consideraremos otros estados sucesores (expansión del estado), y ası́ sucesivamente Para decidir qué estado expandir y cuáles dejar para su estudio posterior: estrategia de búsqueda El proceso de búsqueda la construcción de un árbol de búsqueda: function GENERAL-SEARCH( problem, strategy) returns a solution, or failure initialize the search tree using the initial state of problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains a goal state then return the corresponding solution else expand the node and add the resulting nodes to the search tree end notar que espacio de estados = árbol de búsqueda c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 18 ejemplo de búsqueda general Arad Zerind Arad Sibiu Oradea Timisoara Rimnicu Vilcea Fagaras Sibiu Bucharest c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 19 La estructura de datos para los nodos del árbol de búsqueda incluirá: • • • • • estado del espacio de estados con el que se corresponde nodo padre cuya expansión generó el nodo operador que fué aplicado en la expansión profundidad del nodo desde la raı́z coste del camino desde la raı́z hasta el nodo notar que estado = nodo del árbol de búsqueda: parent State depth = 6 Node 5 4 6 1 88 7 3 22 g=6 state children La estructura de datos para el conjunto de nodos pendientes de expansión será una cola c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 20 El algoritmo de búsqueda general: function GENERAL-SEARCH( problem, QUEUING -FN) returns a solution, or failure nodes MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) loop do if nodes is empty then return failure node REMOVE-FRONT(nodes) if GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes QUEUING -FN(nodes, EXPAND(node, OPERATORS[problem])) end donde Expand crea nuevos nodos y asigna valores a sus campos, utilizando los operadores o la función sucesor para generar los estados correspondientes c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 21 Estrategias básicas de búsqueda Una estrategia queda definida por el orden en que se expanden los nodos Vamos a evaluar las estrategias según cuatro aspectos: Completitud—¿garantiza encontrar una solución si existe una? Complejidad temporal—¿cuántos nodos deben expandirse? Complejidad espacial—¿cuántos nodos deben almacenarse en memoria? Optimalidad—¿garantiza encontrar la mejor solución (la de menor coste) si existen varias? Las complejidades temporal y espacial se miden en términos de b—máximo factor de ramificación del árbol de búsqueda d—profundidad de la solución de menor coste m—profundidad máxima del espacio de estados (puede ser ∞) c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 22 Vamos a ver estrategias que se denominan de búsqueda no informada (uninformed search) o de búsqueda ciega porque sólo usan la información de la definición del problema: - búsqueda primero en anchura - búsqueda de coste uniforme - búsqueda primero en profundidad - búsqueda limitada en profundidad - búsqueda por profundización iterativa - búsqueda bidireccional Contrastan con las estrategias de búsqueda informada (informed search) o de búsqueda heurı́stica que utilizan información del coste del estado actual al objetivo c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 23 Búsqueda primero en anchura Expande primero los nodos no expandidos menos profundos Implementación: QueueingFn = añadir al final de la cola, Enqueue-At-End Arad Zerind Arad Oradea Arad Sibiu Oradea Timisoara Fagaras Rimnicu Vilcea c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Arad Lugoj Tema 3 24 Propiedades de la búsqueda primero en anchura: Completa?? Sı́, si b es finito Tiempo?? 1 + b + b2 + b3 + . . . + bd = O(bd), o sea, exponencial con d Espacio?? O(bd) (se deben almacenar todos los nodos en memoria) Optima?? Sı́, si el coste por operador es 1; no es óptima en general El coste espacial es el mayor problema: Depth Nodes 0 2 4 6 8 10 12 14 1 111 11,111 106 108 1010 1012 1014 Time 1 .1 11 18 31 128 35 3500 Memory millisecond seconds seconds minutes hours days years years 100 11 1 111 11 1 111 11,111 bytes kilobytes megabyte megabytes gigabytes terabyte terabytes terabytes Nota: se ha supuesto b=10, 1000 nodos/seg y 100 bytes/nodo. c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 25 ejemplo: mapa de Rumanı́a con costes de operador en km 71 75 Oradea Neamt Zerind 87 151 Iasi Arad 140 92 Sibiu 99 Fagaras 118 Vaslui 80 Rimnicu Vilcea Timisoara 111 Lugoj Pitesti 97 142 211 70 98 Mehadia 75 Dobreta 146 85 101 138 120 Hirsova Urziceni 86 Bucharest 90 Craiova Giurgiu c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Eforie Straight−line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374 Tema 3 26 Búsqueda de coste uniforme Expande primero los nodos no expandidos con menor coste de camino Implementación: QueueingFn = insertar en la cola en orden de coste creciente Arad 75 Zerind 75 Arad 140 Sibiu 118 Timisoara 71 Oradea 118 111 Arad c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Lugoj Tema 3 27 Propiedades de la búsqueda de coste uniforme: Completa?? Sı́ Tiempo?? num. de nodos con g(n) ≤ coste de la solución óptima Espacio?? num. de nodos con g(n) ≤ coste de la solución óptima Optima?? Sı́, si se cumple que g(Sucesor(n)) ≥ g(n) La búsqueda primero en anchura es una búsqueda de coste uniforme en la que g(n) = Profundidad(n) c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 28 Búsqueda primero en profundidad Expande primero los nodos no expandidos mas profundos Implementación: QueueingFn = añadir al principio de la cola, Enqueue-At-Front Arad Zerind Zerind Arad Oradea Sibiu Timisoara Sibiu Timisoara notar que la búsqueda puede caer en caminos cı́clicos infinitos ; necesita espacios de búsqueda finitos, sin bucles (o evitar espacios repetidos) c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 29 Propiedades de la búsqueda primero en profundidad: Completa?? No: falla en espacios de profundidad ∞, con bucles ; evitar espacios repetidos a lo largo de un camino: completa en espacios finitos Tiempo?? O(bm): terrible si m es mucho mayor que d si hay muchas soluciones puede ser mucho mas rápida que la búsqueda primero en anchura Espacio?? O(bm), o sea, ¡lineal! Optima?? No Esta estrategia debe evitarse cuando el espacio de búsqueda tiene una profundidad muy grande o incluso ∞ c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 30 Búsqueda limitada en profundidad = búsqueda primero en profundidad con lı́mite de profundidad l Implementación: como la búsqueda primero en profundidad, excepto que los nodos de profundidad l no tiene sucesores Propiedades de la búsqueda limitada en profundidad: Completa?? Sı́, si se cumple que l ≥ d Tiempo?? O(bl ) Espacio?? O(bl) Optima?? No c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 31 Tema 3 32 Búsqueda por profundización iterativa Resuelve el problema de la elección del lı́mite de profundidad l Implementación: function ITERATIVE-DEEPENING-SEARCH( problem) returns a solution sequence inputs: problem, a problem 0 to do for depth if DEPTH-LIMITED-SEARCH( problem, depth) succeeds then return its result end return failure c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Búsqueda por profundización iterativa l = 0 Arad c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 33 Búsqueda por profundización iterativa l = 1 Arad Zerind Sibiu Timisoara c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 34 Búsqueda por profundización iterativa l = 2 Arad Zerind Arad Oradea Arad Sibiu Oradea Timisoara Fagaras Rimnicu Vilcea c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Arad Lugoj Tema 3 35 La búsqueda por profundización iterativa combina ventajas: como la búsqueda primero en anchura, es completa y óptima como la búsqueda primero en profundidad, requiere poca memoria expande los nodos como la búsqueda primero en anchura, aunque algunos varias veces Sus propiedades: Completa?? Sı́ Tiempo?? (d + 1)b0 + db1 + (d − 1)b2 + . . . + bd = O(bd) Espacio?? O(bd) Optima?? Sı́, si el coste por operador es 1 Esta estrategia debe aplicarse a cuando el espacio de búsqueda es grande y se desconoce la profundidad de la solución c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 36 Búsqueda bidireccional = búsqueda simultánea que avanza desde el estado inicial y retrocede desde el objetivo Goal Start Implementación: ¡complicada! Será necesario: definir sucesores y también predecesores decidir cómo enfocar las descripciones no explı́citas de objetivos decidir qué tipo de búsqueda realizar en cada dirección contar con un procedimiento eficiente para comprobar la existencia de nodos en la otra dirección de la búsqueda c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 37 Propiedades de la búsqueda bidireccional: Completa?? Sı́ Tiempo?? O(2bd/2) = O(bd/2) Espacio?? O(2bd/2) = O(bd/2) Optima?? Sı́ Comparación de las estrategias básicas de búsqueda Criterion Time Space Optimal? Complete? BreadthFirst UniformCost DepthFirst bd bd Yes Yes bd bd Yes Yes bm bm No No DepthLimited bl bl No Yes, if l d c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Iterative Deepening Bidirectional (if applicable) bd bd Yes Yes bd/2 bd/2 Yes Yes Tema 3 38 Implementación: cómo evitar estados repetidos En algunos problemas existe la posibilidad de expandir estados que ya han sido expandidos, son problemas con operadores “reversibles” árboles de búsqueda infinitos Evitar la repetición de estados puede mejorar mucho la eficiencia, sea el árbol de búsqueda infinito o no Existen tres formas de tratar los estados repetidos: para no deshacer la última operación, modificar Expand para que no genere un sucesor con un estado igual al del padre para no obtener caminos con bucles, modificar Expand para que no genere un sucesor con un estado igual al de cualquiera de los ancestros modificar Expand para que no genere un sucesor con un estado ya explorado c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 1999 (a partir de AIMA Slides Tema 3 39