当我遇到以下引用时,我正在阅读动态编程
动态编程算法将研究解决问题的所有可能方法,并选择最佳解决方案。因此,我们可以将动态编程粗略地认为是一种智能的,蛮力的方法,它使我们能够通过所有可能的解决方案来选择最佳方案。如果问题的范围如此之大,以至于可以快速解决所有可能的解决方案,那么动态编程可确保找到最佳解决方案
给出了以下示例
例如,假设您必须在高峰时段在给定的城市中尽快从A点到达B点。动态规划算法将调查整个交通报告,调查您可能会走的所有可能的道路组合,然后才告诉您哪种方式最快。当然,您可能需要等待一段时间才能完成算法,然后才能开始驾驶。您将采用的路径将是最快的路径(假设外部环境没有任何变化)
蛮力在决定最佳解决方案之前,正在尝试所有可能的解决方案。
如果动态编程在选择最佳解决方案之前也要通过所有可能的解决方案,那么它与Brute Force 有何不同,我看到的唯一区别是动态编程考虑了其他因素(在这种情况下为交通状况)。
我正确地说动态编程是蛮力方法的子集吗?
intelligent, brute force
,但随后忘记描述“智能”部分