Resolviendo Modelos de Mapas SMMC Prof. Teddy Alfaro Resolviendo Mapas o Grafos Entre las técnicas completas más utilizadas para resolver la ruta más corta se encuentran BFS Backtracking Dijkstra A* Uso de Metaheurísticas Simulated Annealing Computación Evolutiva Hormigas Otras... 1
Ejemplo: ESTADOS Y DISTANCIAS Planificar: IM Árbol de Búsqueda Completa 2
DEPTH-FIRST SEARCH Búsqueda en profundidad No asegura encontrar el mínimo Árboles gran profundidad, en general se le da un límite Breadth First Serch (BFS) Búsqueda en anchura Problemas con árboles de gran arborescencia 3
Algoritmo de Dijkistra Encuentra la ruta más corta desde un nodo fuente a cualquier otro. Algoritmo de búsqueda completa Dijkstra Grafo de estados y distancias Se tienen las ciudades a, b, c, d, e y f La ciudad fuente es a 4
Desarrollando Dijkstra A star (A*) Es el algoritmo considerado de mejor desempeño para encontrar el camino más corto en mapas estáticos. Es el más utilizados en juegos de entretenimientos Se requiere un mapa de conectividad (grafo), un punto inicial (nodo fuente), un punto final (nodo meta), y un conjunto de reglas para realizar movimientos entre puntos (cambios de estados basados en conectividad o visibilidad) A* resulta ser un Dijkstra guiado hacia la meta 5
Movimientos de A* Para seleccionar que movimiento hacer (entre los posibles), emplea un método de estimación heurístico del costo-distancia. El costo-distancia estará dado por el costo ya conocido producto de los movimientos del pasado, mas una estimación del futuro costo de lo que resta para llegar a la meta. Esto es: f(n)=g(n)+h(n) f(n): costo estimado para el nodo n, ir desde el inicio a la meta g(n): costo efectivo de la ruta desde el inicio al nodo n h(n): costo estimado de la ruta faltante desde el nodo n a la meta Algoritmo A* Se basa en el uso de dos listas Lista Cerrada: guarda información de los nodos (puntos) ya visitados que son parte de la ruta a desarrollar, las referencias desde donde se llegó al nodo, y los valores de f(n), h(n) y g(n) Lista Abierta: guarda al información de los nodos ya visitados, pero que aún podrían rendir rutas con menores costos. Nodos sujetos a la explotación 6
Algoritmo A* A y C listas 1- Crear la lista abierta A e insertar en ella el nodo inicial n i insertarlo 2- Crear la lista cerrada C, e inicializarla como vacío 3- Si A está vacía, finalizar búsqueda con mensaje de error. 4- Tomar de A el nodo n con menor f(n), luego insertar n en C 5- Si n es el nodo meta, construir solución desde n a n i con las referencias de C, finalizar 6- Expandir n, generando todos los n sucesores de n y no sean antecesores de n 7- Establecer para cada n, que antecesor(n )=n 8- Para cada n que no estén en A ni en C, agregarlo a A 9- Para cada n que ya estaba en A, actualizar a la referencia con mejor g(n) 10- Para cada n que ya estaba en C, si el nuevo g(n ) es mejor que g(c(n)), insertar n en A 11- Recalcular f(n)=g(n)+h(n) de A y retornar al paso 3. Estimación heurística h(n) El buen desempeño de esta técnica se basa principalmente en una buena heurística de estimación de costo. Para mapas geométricos o topológicos, en general se utilizan la distancia Euclidiana, ChessBoard, Manhattan. En cambio para grafos resulta ser un tema más abierto, a menos que se incorpore información adicional. Distancias: d d d E C M = = max = dimension i= 1 dimension i= 1 2 ( ai bi ) 4,47 { a b } i a b i i i = 4 = 6 a b 7
Ejemplo: 4-conectado, Dist. Manhattan Ejemplo: 4-conectado, Dist. Manhattan 8
Ejercicios Resolver el mismo ejercicio para 8-conectado utilizando: Distancia Chessboard Distancia Euclidiana Observaciones A* es preferido por sobre BFS o Dijkstra por Búsqueda Reducida: por tener una herramienta de corte que depende de una función heurística Admisibilidad: si existe (existencia) un camino para ir desde un punto inicial a uno final, A* lo encuentra Optimalidad: la solución encontrada es óptima, es decir, la ruta más corta. Desventajas Costoso en memoria (listas A y C ordenadas) De búsqueda completa (su peor caso) 9
LPA* Lifelong Planning A*, variación de A* que replanifica rhs( s) = min s' pred ( s) 0 ( g( s' ) + c( s', s) ) si s = s etoc start LPA* (8c) s g 10
Consideraciones LPA* hereda de A* las condiones de: búsqueda reducida, admisibilidad y optimalidad Si la heurística de costo no es buena A* puede llegar a ser un BFS Complejidades Dimensiones del ambiente (A, C listas) Cantidad y formas de los obstáculos (estancamiento) Conectividad de los estados (A, C listas) Considerar incerteza de la información (real) Ambientes Desconocidos Asumiendo freespace El móvil cambia su posición inicial Conoce el ambiente en la medida que sus limitados sensores captan información LPA* D* Lite A* D* IDA* A*: planificardor ambientes estáticos conocidos (PAEC), [1968 Nilsson, Hart] IDA*: iterative-deepending A*, (PAEC) se limita el tamaño de la lista abierta (2 listas) LPA*:Lifelong planner A*, PAE con incertezas globales, trabaja con una lista D*: Dynamic A*, propuesto por Stenz, trabaja en ambientes inciertos. D* Lite: versión mejorada y más simple de D*, propuesta por Koenig. 11
Algunos Ejemplos con Algoritmos Evolutivos Trabajos Trazos de caminos con nudos (Michalewicz) Suceción de Grid-cells La mayoría de los trabajos hacen una balance entre planificación global (información ya conocida) y planificación local (incertidumbre de la información y nueva información que entre el sistema sensorial del robot) Planificador Global-Local Planificador Global Su objetivo es encontrar el camino más corto para ir desde un punto inicial a un punto meta, teniendo en conocimiento los obstáculos estáticos del mapa Se realiza off-line, y luego la ejecuta Planificador Local Permite al robot encontrar un nuevo camino debido a la aparición de nuevos obstáculos desconocidos, que se interponen en el camino que está ejecutando Se realiza on-line, es decir, mientras esta ejecutando un camino Debe tener una tiempo de respuesta rápido, para continuar desplazándose 12
Cromosomas Factible e infactibles (costo) n (x,y,o) 0 (x,y,o) 1... (x,y,o) L-1 (x,y,o) L Espacio búsqueda Ln*m Asumiendo: ambiente conocido, y visitando celda sólo una vez Trazos: nodos=nudos (L)(L-1)(L-2)...(1) O(w)= L! Mejor caso 2 nodos Suceción: nodos=celda, conectividad C CCC...C, L veces O(w)= C L Mejor caso distancia(c), (min{n,m},n+m) m Fitness y Operadores Función de Evaluación En general pueden incluir: largo, suavidad, y claridad de la ruta. Algunos incluyen las colisiones Operadores En general utilizan operadores asexuados Siempre deben considerar operadores de reparación Operadores exploradores son importantes 13
Simulaciones Planificador evolutivo ante pequeñas variaciones Decisión: método de búsqueda Tener presente Técnicas completas: aseguran dar una respuesta, pero para problemas de gran tamaño, son impracticables Metaheurísticas: no lidian con todo el espacio de búsqueda, en general dan respuestas cercanas al óptimo. No son capaces (en general) de determinar si no existe solución Por ello cuestionarse Se está trabajando con un modelo de ambiente adecuado al sistema de navegación y sist. sensorial del robot? El problema es duro combinatoriamente? (hacer estimaciones de tiempo) Paralelizar? Qué técnica ofrece características de paralelización? Si el ambiente sufre cambios leves? Preferir una actualización del esquema utilizando la información que ya se tiene, y evitar recalcular (recomputación) 14