Solución de Problemas mediante Búsqueda

En esta presentacion • Agentes que planifican con anticipación • Problemas de búsqueda • Métodos de búsqueda no informados • Búsqueda primero en profundidad • Búsqueda primero en amplitud • Búsqueda de costo uniforme • Métodos de búsqueda no informados • Busqueda A* • Funciones Heuristicas • Busqueda A* Grafica


Agentes de Planificación • Los agentes de planificación deciden en función de la evaluación de secuencias de acción futuras • Los algoritmos de búsqueda suelen suponer • Modelo de transición determinista conocido • Estados discretos y acciones • Totalmente observable • Representación atómica • Suelen tener un objetivo definido • Óptimo: Lograr el objetivo al menor costo


Problemas de búsqueda


Problemas de búsqueda • Un problema de busqueda consiste en: • Un espacio de estado S que es el conjunto de todos los estados posibles del mundo • Un estado inicial s0 • Acciones A (s) disponibles en cada estado • Modelo de transición Result (s,a) que genera el estado siguiente a partir de la accion • Una prueba de objetivo G (s) • s no le quedan mas puntos • Coste de la acción c (s,a,s’) para pasar de un estado al siguiente • +1 por paso; 10 comida; 500 victorias; +500 morir; 200 comer fantasma • Una solución es una secuencia de acciones que alcanza un estado objetivo. • Una solución óptima tiene el menor costo entre todas las soluciones EN -9-9











Ejemplo: Viajar en Rumania • Espacio de Estados: • Ciudades • Estado inicial: • Arad • Comportamiento: • Ir a la ciudad adyacente • Modelo de transición: • Llegar a la ciudad adyacente • Prueba de gol: • s = Bucarest? • Costo de acción: • Distancia por carretera de s a s ' • ¿Solución? Giurgiu Urziceni HirsovaEforie NeamtZerindOradea Arad Timisoara LugojMehadia Drobeta SibiuCraiova FagarasPitesti Vaslui Iasi Rimnicu Vilcea Bucharest 71 75 118 111 70 75 120 151 140 99 80 97 101 211 138 146 85 90 98 142 92 87 86

Tamaños de espacio de estado • Estado global: • Posiciones de agentes: Pacman puede estar en 120 posiciones distintas (x, y), y solo hay un Pacman • Recuento de alimentos: hay 30 gránulos de alimentos, cada uno de los cuales se puede comer o no comer • Posiciones fantasma: hay dos fantasmas, cada uno de los cuales puede estar en 12 posiciones distintas (x, y). • Direccion del agente: Norte, Sur, Este, Oeste • Cuanto • ¿Estados mundiales? 120 x (230 ) x (122 ) x 4 • ¿Estados para formar una ruta? 120 • ¿ Estados para comer todos los puntos? 120 x (230 )


Gráficos de espacio de estado búsquedaárbolesyde


•
• ¡En
Gráficos de espacio de estado • Gráfico de espacio de estados: una representación matemática de un problema de búsqueda • Los nodos son configuraciones (abstractas) globales • Los arcos representan transiciones (etiquetadas con acciones) •
La prueba de objetivo es un conjunto de nodos de objetivo (tal vez solo uno) un gráfico de espacio de estado, cada estado ocurre solo una vez!
Rara vez podemos construir este gráfico completo en la memoria (es demasiado grande), pero es una idea útil













Gráficos de espacio de estado • Gráfico de espacio de estados: una representación matemática de un problema de búsqueda • Los nodos son configuraciones (abstractas) globales • Los arcos representan sucesores (resultados de acción) • La prueba de objetivo es un conjunto de nodos de objetivo (tal vez solo uno) • ¡En un gráfico de espacio de estado, cada estado ocurre solo una vez! • Rara vez podemos construir este gráfico completo en la memoria (es demasiado grande), pero es una idea útil S G d b p q c e h a f r Gráficodeespaciodeestadodiminutoparaunproblemadebúsquedadiminuto

Gráficos de espacio de estado frente a árboles de búsqueda Construimos el árbol a pedido, y construimos lo menos posible. Cada NODO en el árbol de búsqueda es una RUTA completa en el gráfico de espacio de estado. Árbol de búsquedaGráfico de espacio de estado



Gráficos de espacio de estado frente a árboles de búsqueda S G b a Considere este gráfico de 4 estados: ¿Qué tan grande es su árbol de búsqueda (desde S)?


Gráficos de espacio de estado frente a árboles de búsqueda Considere este gráfico de 4 estados: Importante: ¡Aquellos que no conocen la historia están condenados a repetirla! ¿Qué tan grande es su árbol de búsqueda (desde S)? s b b G a a G a G b G … … S G b a


Árbol de búsqueda


Ejemplo de búsqueda: Rumania Giurgiu Urziceni HirsovaEforie NeamtZerindOradea Arad Timisoara LugojMehadia Drobeta SibiuCraiova FagarasPitesti Vaslui Iasi Rimnicu Vilcea Bucharest 71 75 118 111 70 75 120 151 140 99 80 97 101 211 138 146 85 90 98 142 92 87 86

Creando el árbol de búsqueda
SibiuRimnicuVilceaLugojZerind AradFagarasOradeaTimisoaraArad
AradOradea AradZerind Arad SibiuTimisoara

AradFagarasOradeaRimnicuVilceaLugojAradAradOradea AradFagarasOradeaArad RimnicuAradLugojVilceaOradea Zerind Arad SibiuTimisoaraZerind Arad Sibiu Timisoara Creando el árbol de búsqueda

AradFagarasOradeaArad RimnicuAradLugojVilceaOradea LugojArad RimnicuAradOradea VilceaZerind Arad Sibiu AradFagarasOradeaTimisoara Creando el árbol de búsqueda

Búsqueda en profundidad primero


Búsqueda en profundidad primero S a b d p a C e p h F r q q C G a eq p h F r q q C G a S G d b p q C e h a f r h r Estrategia: expandir un nodo más profundo primero Implementación: La frontera es una pila LIFO

Propiedades del algoritmo de búsqueda


Propiedades del algoritmo de búsqueda • Completo: ¿Garantizado para encontrar una solución si existe? • Óptimo: ¿Garantizado para encontrar el camino de menor costo? • ¿Complejidad de tiempo? • ¿Complejidad espacial? • Caricatura del árbol de búsqueda: • b es el factor de ramificación • m es la profundidad máxima • soluciones a varias profundidades • ¿Número de nodos en todo el árbol? • 1 + b + b 2 + …. bm = O ( bm ) … b 1 nodo b nodos b 2 nodos bm nodos m niveles

Propiedades de búsqueda primero en profundidad (DFS) • ¿Qué nodos expande DFS? • Algunos pueden llegar hasta la profundidad m. • ¡Podría procesar todo el árbol! • Si m es finito, toma el tiempo O ( b m ) • ¿Cuánto espacio ocupa la frontera? • Solo busca hermanos en camino a la raíz, por lo que O ( bm ) • ¿Está completo? • m podría ser infinito • prevenir ciclos puede ayudar (más adelante) • ¿Es óptimo? • No, encuentra la solución "más a la izquierda", independientemente de la profundidad o el costo … b 1 nodo b nodos b 2 nodos b m nodos m niveles

Búsqueda primero


Búsqueda primero en amplitud S a b d p a C e p h F r q q C G a eq p h F r q q C G a S G d b p q C e h a F r Niveles Estrategia:Búsquedadeexpandir primero un nodo menos Implementación:profundo la frontera es una cola FIFO

Propiedades de búsqueda en amplitud (BFS) • ¿Qué nodos expande BFS? • Procesa todos los nodos por encima de la solución más superficial • Deje que la profundidad de la solución más superficial sea s • La búsqueda toma tiempo O ( b s ) • ¿Cuánto espacio ocupa la frontera? • Tiene aproximadamente el último nivel, por lo que O ( b s ) • ¿Está completo? • s debe ser finito si existe una solución, ¡así que sí! • ¿Es óptimo? • Si los costos son iguales (p. ej., 1 ) … b 1 nodo b nodos b 2 nodos b m nodos s niveles b s nodos

Cuestionario: DFS • ¿Cuándo BFS superará a DFS? • ¿Cuándo DFS superará a BFS?



Ejemplo: Maze Water DFS/BFS (parte 1)


Ejemplo: Maze Water DFS/BFS (parte 2)


Profundización iterativa • Idea: obtenga la ventaja de espacio de DFS con las ventajas de tiempo/solución poco profunda de BFS • Ejecute un DFS con límite de profundidad 1. Si no hay solución... • Ejecute un DFS con límite de profundidad 2. Si no hay solución... • Ejecute un DFS con límite de profundidad 3. ….. • ¿No es eso excesivamente redundante? • En general, la mayor parte del trabajo ocurre en el nivel más bajo buscado, ¡así que no es tan malo! … b



Búsqueda de costos uniformes g(n) = costo desde la raíz hasta n Estrategia: expandir g(n) más bajo Frontera es una cola de prioridad ordenada por g(n) 15 S G d b p q C e h a F r 3 9 1 1 2 8 8 2 122 S a b d p a C e p h F r q q C G a eq p h F r q q C G a 3 9 1164 11 5 713 8 1011 17 11 6Contornosdecostos 0

… Propiedades de búsqueda de costos uniformes (UCS) • ¿Qué nodos expande UCS? • ¡Expande todos los nodos con un costo menor que la solución más barata! • Si esa solución cuesta C * y los arcos cuestan al menos e , entonces la “profundidad efectiva” es aproximadamente C */ e • Toma tiempo O ( b C */ e ) (exponencial en profundidad efectiva) • ¿Cuánto espacio ocupa la frontera? • Tiene aproximadamente el último nivel, por lo que O ( b C */ e ) • ¿Está completo? • Asumiendo que C * es finito y e > 0 , ¡sí! • ¿Es óptimo? • ¡Sí! (Lo probaremos luego a través de la busqueda A*) b C*/ e "niveles" g £ 3 g £ 2 g £ 1

Video de Demo Maze con aguas profundas/poco profundas ¿cual es BFS o UCS? BFS UCS



Resumen • Asumir problema: conocido, discreto, observable, determinista, atómico • Problemas de búsqueda definidos por S , s0 , A (s), Result (s,a), G (s), c (s,a,s') • Los algoritmos de búsqueda encuentran secuencias de acción que alcanzan estados objetivo • Óptimo=>costomínimo • Propiedades del algoritmo de búsqueda: • Primero en profundidad: incompleto, subóptimo, espacio eficiente • Primero en amplitud: completo, (sub)óptimo, espacio prohibitivo • Profundización iterativa: completa, (sub)óptima, espacio eficiente • Costo uniforme: completo, óptimo, espacio prohibitivo

Volvemos al ejemplo de búsqueda de ruta en Rumania Giurgiu Urziceni HirsovaEforie NeamtZerindOradea Arad Timisoara LugojMehadia Drobeta SibiuCraiova FagarasPitesti Vaslui Iasi Rimnicu Vilcea Bucharest 71 75 118 111 70 75 120 151 140 99 80 97 101 211 138 146 85 90 98 142 92 87 86

Lo que nos gustaría que pasara Guía de búsqueda hacia la meta en lugar de por todas partes comienzo Metacomienzo Meta No informadoInformado

Búsqueda A*


A*: la idea central • Expanda un nodo n con mayor probabilidad de estar en una ruta óptima • Expandir un nodo n st el costo de la mejor solución a través de n es óptimo • Expanda un nodo n con el valor más bajo de g ( n ) + h * ( n ) • g ( n ) es el costo desde la raíz hasta n • h * ( n ) es el costo óptimo de n a la meta más cercana < Heuristica • Rara vez conocemos h * ( n ) pero podríamos tener una aproximación heurística h ( n ) • A * = búsqueda de árbol con cola de prioridad ordenada por f ( n ) = g ( n ) + h ( n )

Ejemplo: búsqueda de ruta en Rumania Giurgiu Urziceni HirsovaEforie NeamtZerindOradea Arad Timisoara LugojMehadia Drobeta SibiuCraiova FagarasPitesti Vaslui Iasi Rimnicu Vilcea Bucharest 71 75 118 111 70 75 120 151 140 99 80 97 101 211 138 146 85 90 98 142 92 87 86 h ( n ) = distancia en línea recta a Bucarest


Distancia Manhattan: rutas en Pacman § h ( norte ) = distancia manhattan = | D x | + | D y | § ¿Es Manhattan mejor que la distancia en línea recta? 10 5 11.2



¿Es A* óptimo? ¿Qué salió mal? La heuristica • costo real de la mala solución < costo estimado de la buena solución • ¡Necesitamos que las estimaciones sean menores que los costos reales! A GS 1 3 h = 6 h = 0 5 h = 7

Heurísticas Admisibles


Heurísticas Admisibles • Una heurística h es admisible (optimista) si: 0 £ h (n) £ h *(n) donde h *( n ) es el costo real a la meta más cercana. • Ejemplo: • Encontrar heurísticas buenas, baratas y admisibles es la clave del éxito. 15


Optimalidad de la búsqueda del árbol A*


Optimalidad de la búsqueda A* Asumir: • A es un nodo objetivo óptimo • B es un nodo objetivo subóptimo • h es admisible Declaración: • A será elegido para la expansión antes que B … A B

Optimalidad de la búsqueda A*: Bloqueo Prueba: • Imagine B está en la frontera • Algún antepasado n de A también está en la frontera (¡quizás A mismo!) • Declaracion: n se expandirá antes de B 1. f (n) £ f (A) f (n) = g (n) + h (n) Definición de costo f f (n) £ g (A) Admisibilidad de h … g (A) = f (A) h = 0 en la meta A B n

Optimalidad de la búsqueda A*: Bloqueo Prueba: • Imagine B está en la frontera • Algún antepasado n de A también está en la frontera (¡quizás A mismo!) • Declaracion: n se expandirá antes de B 1. f (n) £ f (A) 2. f (A) < f (B) … A B n g (A) < g (B) Subóptimo de B f (A) < f (B) h = 0 en la meta

Optimalidad de la búsqueda A*: Bloqueo Prueba: • Imagine B está en la frontera • Algún antepasado n de A también está en la frontera (¡quizás A mismo!) • Declaracion: n se expandirá antes de B 1. f (n) £ f (A) 2. f (A) < f (B) 3. n se expande antes de B • Todos los ancestros de A se expanden antes que B • A se expande antes que B • Una búsqueda de árbol * es óptima … A B n f (n) £ f (A) < f (B)

Contornos UCS vs A* • En costo uniforme se expande por igual en todas las "direcciones" • A* se expande principalmente hacia la meta, pero cubre sus apuestas para asegurar la optimización comienzo Meta comienzo Meta

Comparación Codicioso (h) Costo Uniforme (g) A* ( g+h )




Aplicaciones de la Busqueda A* • Videojuegos • Problemas de ruta/enrutamiento • Problemas de planificación de recursos • Planificación de movimientos de robots • Análisis de lenguaje • Máquina traductora • Reconocimiento de voz • diseño de proteínas • Síntesis química • …


Ejemplo: Rompecabezas 8 • ¿Qué son los estados? • ¿Cuántos estados? • ¿Cuáles son las acciones? • ¿Cuáles son los costos del paso? Estado de inicio Estado objetivoComportamiento




Rompecabezas 8 - I • Heurística: número de mosaicos fuera de lugar • ¿Por qué es admisible? • h(inicio) = 8 Los nodos promedio expandidos cuando la ruta óptima tiene... …4 pasos …8 pasos …12 pasos UCS 112 6,300 3,6x106 A* TILES 13 39 227 Estadísticas de Andrew Moore



Rompecabezas 8 - II • ¿Qué pasaría si tuviéramos un rompecabezas de 8 más fácil donde cualquier ficha pudiera deslizarse en cualquier dirección en cualquier momento, ignorando otras fichas? • Distancia total Manhattan • ¿Por qué es admisible? • h(inicio) = 3 + 1 + 2 + … = 18 Los nodos promedio expandidos cuando la ruta óptima tiene... …4 pasos …8 pasos …12 pasos A* TILES 13 39 227 A* MANHATTAN 12 25 73


Combinando heurísticas • Dominancia: h1 ≥ h2 si "n h1(n) ³ h2(n) • En términos generales, más grande es mejor siempre que ambos sean admisibles •
• La
• Forme
La heurística cero es bastante mala (¿qué hace A* con h=0?) heurística exacta es bastante buena, ¡pero por lo general demasiado costosa! ¿Qué pasa si tenemos dos heurísticas, y ninguna domina a la otra? una nueva heurística tomando el máximo de ambos: h(n) = max( h1(n), h2(n)) máximo de heurísticas admisibles es admisible y domina ambas!
• ¡El
•

Ejemplo: movimientos de caballo • ¿Número mínimo de movimientos de caballo para ir de A a B? • h1 = (distancia Manhattan)/3 • h1 ‘ = h1 redondeado a la paridad correcta (incluso si A, B del mismo color, impar en caso contrario) • h2 = (distancia euclidiana)/√5 (redondeado a la paridad correcta) • h3 = (desplazamiento máximo x o y)/2 (redondeado a la paridad correcta) • h(n) = max( h1’(n), h2(n), h3(n)) es admisible!


Optimalidad de la búsqueda de gráfico A*


Hecho 2: para cada estado s, los nodos que alcanzan s de manera óptima se expanden antes que los nodos que alcanzan s de manera subóptima. Resultado: la búsqueda de gráfico A* es óptima.
•
… f £ 3 f £ 2 f £ 1
Bosquejo: considere lo que hace A* con una heurística consistente: Hecho 1: En la búsqueda de árbol, A* expande los nodos al aumentar el valor total de f (f-contornos).
Optimalidad de la búsqueda de gráfico A* •
•
•

Optimalidad • Búsqueda de árboles: • A* es óptimo si la heurística es admisible • Búsqueda gráfica: • A* óptimo si la heurística es consistente • La consistencia implica admisibilidad • La mayoría de las heurísticas admisibles naturales tienden a ser consistentes, especialmente si se trata de problemas relajados.


Resumen • A* ordena los nodos en la cola por f ( n ) = g ( n ) + h ( n ) • A* es óptimo para árboles/gráficos con heurística admisible/consistente • El diseño heurístico es clave: a menudo usa problemas relajados g g h h


