Estaba leyendo sobre programación dinámica cuando me encontré con la siguiente cita
Un algoritmo de programación dinámica examinará todas las formas posibles de resolver el problema y elegirá la mejor solución. Por lo tanto, podemos pensar aproximadamente en la programación dinámica como un método inteligente de fuerza bruta que nos permite analizar todas las soluciones posibles para elegir la mejor . Si el alcance del problema es tal que analizar todas las soluciones posibles es posible y lo suficientemente rápido, la programación dinámica garantiza encontrar la solución óptima
El siguiente ejemplo fue dado
Por ejemplo, supongamos que tiene que ir del punto A al punto B lo más rápido posible, en una ciudad determinada, durante la hora pico. Un algoritmo de programación dinámico analizará todo el informe de tráfico, analizará todas las combinaciones posibles de caminos que pueda tomar, y solo entonces le indicará cuál es el camino más rápido. Por supuesto, es posible que tenga que esperar un tiempo hasta que termine el algoritmo, y solo entonces puede comenzar a conducir. El camino que tomará será el más rápido (suponiendo que nada haya cambiado en el entorno externo)
Brute Force está probando todas las soluciones posibles antes de decidir la mejor solución.
En qué se diferencia la programación dinámica de Brute Force si también pasa por todas las soluciones posibles antes de elegir la mejor , la única diferencia que veo es que la programación dinámica tiene en cuenta los factores adicionales (condiciones de tráfico en este caso).
¿Estoy en lo cierto al decir que la programación dinámica es un subconjunto del método de fuerza bruta?
intelligent, brute force
, pero luego se olvida de describir la parte "inteligente"