14
1 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 ...

Resolviendo Modelos de Mapasnoell/SMMC/mat2006/Cap7.pdf · 1 Resolviendo Modelos de Mapas SMMC Prof. Teddy Alfaro Resolviendo Mapas o Grafos • Entre las técnicas completas más

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

1

Resolviendo Modelos de MapasSMMC

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 ...

2

Ejemplo: ESTADOS Y DISTANCIAS

• Planificar: I�M

Árbol de Búsqueda Completa

3

DEPTH-FIRST SEARCH• Búsqueda en profundidad• No asegura encontrar el

mínimo• Árboles gran profundidad,

en general se le da unlímite

Breadth First Serch (BFS)• Búsqueda en

anchura• Problemas con

árboles de granarborescencia

4

Dijkstra• Algoritmo de

Dijkistra• Encuentra la ruta

más corta desde un nodo fuente a cualquier otro.

• Algoritmo de búsqueda completa

Grafo de estados y distancias• Se tienen las ciudades a, b, c, d, e y f• La ciudad fuente es a

5

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

6

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 metag(n): costo efectivo de la ruta desde el inicio al nodo nh(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

7

Algoritmo A*A y C listas

1- Crear la lista abierta A e insertar en ella el nodo inicial ni insertarlo2- Crear la lista cerrada C, e inicializarla como vacío3- 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 C5- Si n es el nodo meta, construir solución desde n a ni con las

referencias de C, finalizar6- Expandir n, generando todos los n’ sucesores de n y no sean

antecesores de n7- Establecer para cada n’, que antecesor(n’)=n8- Para cada n’ que no estén en A ni en C, agregarlo a A9- 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 A11- 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 incorporeinformación adicional.

• Distancias:

( )

{ }

=

=

−=

−=

−=

ension

iiiM

iiC

ension

iiiE

bad

bad

bad

dim

1

dim

1

2

||

||max

64

47,4

==≈

a

b

8

Ejemplo: 4-conectado, Dist. Manhattan

Ejemplo: 4-conectado, Dist. Manhattan

9

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)

10

LPA*• Lifelong Planning A*, variación de A* que replanifica

( )

+=

=∈ etocsscsg

sssisrhs

spreds

start

),'()'(min0

)()('

LPA* (8c)

g

s

11

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

A*

IDA*

LPA*

D*D* Lite

• 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.

12

Algunos Ejemplos con AlgoritmosEvolutivos

• 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 laaparición de nuevos obstáculos desconocidos, que seinterponen en el camino que está ejecutando

– Se realiza on-line, es decir, mientras esta ejecutando uncamino

– Debe tener una tiempo de respuesta rápido, para continuardesplazándose

13

Cromosomas• Factible e infactibles (costo)(x,y,o)0� (x,y,o)1�... (x,y,o)L-1� (x,y,o)L• Espacio búsqueda L�n*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 CC�C�C�...C , L vecesO(w)= CL

Mejor caso� distancia(C), (min{n,m},n+m)

n

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

14

SimulacionesPlanificador 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 existesolució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? (hacerestimaciones 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)