¿Qué es una explicación intuitiva de IDA * (profundización iterativa A *)?

Descripción técnica

Dijkstra, A * y la búsqueda de amplitud requieren que la frontera de búsqueda se almacene en la memoria. Para gráficos grandes, esto no es factible. Además, nos gustaría hacer un seguimiento de los nodos ya atravesados ​​y sus distancias desde el nodo de inicio para asegurarnos de que no estamos haciendo un trabajo adicional, que también requiere un montón de memoria.

IDA * intenta reducir la huella de memoria de A * mientras conserva su naturaleza de búsqueda informada. Esto se logra al realizar recorridos iterativos de profundidad primero del espacio de búsqueda: durante cada recorrido, se establece un límite de distancia: solo atravesamos nodos cuya suma de la distancia hasta el momento y la distancia estimada al objetivo no excede el límite. Este límite se establece inicialmente en h (inicio), o la distancia estimada desde el inicio hasta el objetivo. Si el recorrido posterior no logra encontrar el estado del objetivo, aumentamos el límite de distancia y repetimos el recorrido. Esto reduce la huella de memoria a O (número máximo de nodos en una ruta de distancia <= ruta más corta), a costa de atravesar un grupo de nodos varias veces.

Ejemplo intuitivo

Aprovecharé la excelente respuesta de Igor a ¿Qué es una explicación intuitiva de la búsqueda A *? En ese escenario, asumimos que la persona tiene una memoria perfecta. En cambio, imagine que la persona tiene muy poca memoria, aunque todavía no quiere tropezar ciegamente por la ciudad en busca de su destino. Entonces se le ocurre el siguiente plan:

Día 1: Creo que la distancia entre mi punto de partida y mi destino es de 1 km. Visitaré todos los lugares para los que la longitud del camino hasta ahora más la distancia estimada al destino no sea más de 1 km. Si no encuentro mi edificio, volveré al punto de inicio y dormiré.

Día 2: OK, todavía no he encontrado mi destino. Sin embargo, cuando visité el Edificio D, noté que había viajado 900 my estaba a solo unos 200 m del destino. Ajustaré mi estimación de la distancia total a 1.1 km e intentaré nuevamente.

Día 3: etc.

More Interesting

Cómo argumentar la corrección del tipo radix

Cómo aprender 'algoritmos' sobre los que el mundo tecnológico está hablando y aplicarlos a mi vida cotidiana

¿Qué son las estructuras de datos y los algoritmos en Java?

Cómo mejorar las estructuras de datos y algoritmos

Cómo resolver radicales anidados como [math] (a + \ sqrt b \,) ^ {1/3} [/ math]

Cómo demostrar que el algoritmo de búsqueda uniforme de costos siempre genera una ruta óptima

Cómo dibujar un contorno vectorial en una matriz de cuadrícula binaria

¿Cuál es la implementación más rápida del árbol de búsqueda binario? (auto-equilibrio)

¿Cuáles son los mejores algoritmos de selección de apareamiento en informática evolutiva?

¿Cuáles son algunas técnicas utilizadas en la criptación?

Actualmente estoy leyendo un libro sobre estructuras de datos y algoritmos. ¿Cuáles son algunos recursos que puedo usar para practicar la implementación?

¿Cómo puede 100 determinar el número de comparaciones en 'Búsqueda binaria'?

¿Cuáles son los mejores algoritmos actuales de visión por computadora que pueden aprender a reconocer un objeto (digamos una flor) a partir de una sola imagen?

¿Por qué utilizan la factorización principal para el cifrado en lugar de un algoritmo que hemos demostrado que es difícil de resolver?

¿Es posible que el modelo de espacio vectorial que utilizamos para entrenar algoritmos de aprendizaje automático sea inadecuado para la representación del aprendizaje humano?