¿Puede la búsqueda de profundización iterativa encontrar una solución más rápida que A * en algunos casos?

En términos de nodos visitados, a * siempre debe iterar mejor la primera búsqueda en profundidad, especialmente porque los idfs volverán a visitar los primeros nodos.

Sin embargo, los gastos generales también son importantes. Si su algoritmo a * tiene el doble de la sobrecarga por nodo, entonces hay casos en los que se establece de forma limitada si los nodos visitados aún cuestan más que idfs si visita más de la mitad de los nodos que idfs hace.

Una heurística débil también obstaculizará su capacidad de podar posibles caminos, haciendo que su eficiencia por nodo sea menor. Una implementación deficiente de un * también puede terminar explorando muchos caminos que tienen una estimación heurística que predice el costo del camino óptimo. Los buenos ingredientes de desempate entre esos casos lo ayudarán. Pero sin él, pueden terminar explorando todos esos caminos, ampliando aún más el número de caminos que explora.

Creo que ya has respondido tu propia pregunta. Por ejemplo, suponga que la solución óptima se encuentra en algún lugar en el medio del subárbol derecho del nodo raíz.

Si la heurística A * fuera realmente mala, podría guiar el programa de búsqueda muy profundamente en el subárbol izquierdo. Por lo tanto, pasará un tiempo antes de que A * descubra que debería explorar el subárbol correcto.

Por otro lado, IDS, por implementación, tiene que buscar en cada profundidad. Por lo tanto, no es posible que pierda todo su tiempo buscando en el subárbol izquierdo.

En tal escenario, IDS encontrará la solución más rápido.

Ps es realmente posible lidiar con la situación que acabo de describir cuando uso A *. ¡Solo use A * de profundización iterativa!

More Interesting

¿La programación lineal admite un algoritmo de tiempo fuertemente polinómico?

¿Cómo implementaría el aumento de precios utilizando estructuras de datos?

¿Cómo funciona el algoritmo de búsqueda de ciclo de Floyd? ¿De qué manera mover la tortuga al comienzo de la lista vinculada, mientras se mantiene a la liebre en el lugar de reunión, seguido de mover un paso a la vez, hace que se encuentren en el punto de inicio del ciclo?

¿Qué modelo / algoritmo de ML utilizo para mi proyecto?

Supongamos que tenemos el recorrido de preorden de un árbol de expresión. ¿El árbol que creamos con este recorrido es único?

¿Qué son los proyectos de código abierto? Soy muy bueno en C ++, estructuras de datos y algoritmos. ¿Puedo contribuir a algunos proyectos de código abierto? Si es así, ¿cómo? ¿Tendré que aprender algún idioma nuevo?

¿Qué debo aprender a continuación para mejorar mi última capa?

Cómo resolver este problema con un árbol de segmentos o BIT

¿Cuál es un buen algoritmo de segmentación para reconocer números de imágenes?

¿Apache Hadoop es realmente bueno para algoritmos recursivos?

¿Es este algoritmo para la predicción de acciones bueno o lógico? ¿Es original?

¿Qué algoritmo se puede usar para pasar de datos de frecuencia a una nota musical?

¿Cómo funciona el algoritmo CryptoNight?

¿Cuál es la aplicación en tiempo real de árboles y gráficos en estructuras de datos?

¿El algoritmo de Kruskal resuelve siempre el problema del vendedor ambulante?