Una variante en cualquier momento del algoritmo de búsqueda de gráficos D *.
La mayoría de los graduados de Ciencias de la Computación deberían haber oído hablar de A *, que puede describirse como una variante del algoritmo de Dijkstra que utiliza una heurística admisible para mejorar el tiempo de cálculo. D * es una variante dinámica de A * que actualiza eficientemente una representación en memoria del espacio de estado de búsqueda cuando los bordes en el gráfico cambian el costo o las conexiones, o el nodo inicial cambia. Es particularmente eficiente cuando los únicos bordes que cambian están cerca del nodo inicial de la búsqueda. Esto resulta ser muy útil para los robots móviles que perciben el mundo mientras conducen, ya que (generalmente) solo ven áreas cercanas a ellos.
Los algoritmos en cualquier momento son variaciones de los algoritmos de búsqueda de gráficos que se pueden detener en cualquier momento durante su ejecución y devolver el mejor camino encontrado hasta ahora. Son deterministas y (típicamente) eventualmente devuelven la solución óptima, pero generalmente en un tiempo más largo que sus hermanos que no son en cualquier momento.
- ¿Es necesario codificar todos los datos en estructuras como pilas en C ++, o es un conocimiento práctico suficiente para aclarar entrevistas?
- Entre C # y Java, ¿cuál es el mejor lenguaje de programación para aprender programación orientada a objetos, estructuras de datos y algoritmos? ¿Por qué?
- ¿Memcpy es más eficiente que copiar elemento por elemento en bucle iterativo?
- ¿Cuál es la mejor manera de comprender y dominar la estructura de datos?
- ¿Cuál es uno de tus problemas favoritos que has encontrado en mecánica / dinámica clásica?
Entonces Anytime-D * fue efectivamente una variante de una variante de una variante, y su implementación fue como tocar susurros chinos (o ‘Teléfono’, para la audiencia estadounidense aquí) como el algoritmo de un informático holandés de la década de 1950 pasado por tres investigadores de Stanford en los años 70, fue modificado para la robótica en los años 90, incorporó una rama oscura de la programación dinámica a principios de la década de 2000 y fue optimizado por un tipo de Intel antes de terminar en mi escritorio con una nota de mi supervisor que decía: “Me preguntaron para revisar esta preimpresión hoy. ¿Quieres probarla? ”
Seis meses después tuve la mayor parte de un doctorado. y una desconfianza irreparable de las funciones que preservan el estado entre llamadas.