【发布时间】:2013-12-21 17:05:18
【问题描述】:
我知道动态编程是一种分而治之的算法并使用递归来解决问题,但是我很难通过动态编程来实现逃避局部最小值?
【问题讨论】:
我知道动态编程是一种分而治之的算法并使用递归来解决问题,但是我很难通过动态编程来实现逃避局部最小值?
【问题讨论】:
在动态编程方法中,您可以像蛮力算法一样评估所有可能的情况,但只重用已经计算过的子问题的解决方案。这就是为什么您总是能够为您的问题提供全局解决方案。
【讨论】:
DP 的工作方式是您从最优解到更小的问题构建更大的最优解。你并没有真正有那样的局部最小值,所以你不能谈论逃避它们。无论你遇到什么(子)问题,你总是处于最佳状态——任何时候你得到某个(子)问题的解决方案,它都会是最佳的。这与拥有一个完整的(但可能不是最佳的)解决方案完全不同,您尝试不断改进直到达到最佳状态。
【讨论】: