La búsqueda recursiva es más general que los “bucles anidados”, porque los bucles anidados modelan un número fijo de dimensiones, mientras que una búsqueda recursiva tiene una dimensionalidad arbitraria (hasta el límite de almacenamiento relevante). Por ejemplo, un bucle sobre X anidado en un bucle sobre Y puede buscar una matriz 2D, por ejemplo, para encontrar elementos que coincidan con un criterio. Pero el espacio de “caminos” entre dos puntos no es una matriz. Más bien, en cada estado de la búsqueda, tiene opciones variables para continuar, modificadas por el historial acumulado en la búsqueda hasta el momento. Entonces, en cierto sentido, cada paso en el camino agrega otro nivel de “anidamiento” a su iteración, recorriendo el nuevo conjunto de opciones posibles desde el estado actual.
Sin embargo, si realmente está utilizando pathfinding, probablemente debería estudiar algunos de los algoritmos establecidos:
- Bien cubierto en inteligencia artificial: un enfoque moderno (Norvig y Russell)
- Una búsqueda * es una técnica popular. Aquí hay una video conferencia sobre esto:
- Cómo resolver http://www.spoj.com/problems/SAMER08A/ usando el algoritmo de Dijkstra
- ¿Qué es la generación procesal y la generación aleatoria? ¿Cuál es la diferencia y cómo se logra cada uno?
- Algunos dicen que después de haber trabajado como desarrollador durante 2 años más o menos, debería poder pasar a un nuevo trabajo sin preguntas de algoritmos, ¿verdad?
- ¿Qué es el hashing perfecto?
- Entiendo los conceptos básicos de Java y puedo codificarlo fácilmente, pero no puedo codificar casos complejos. ¿Qué puedo hacer para mejorar mis habilidades de codificación?