我应该使用哪种算法来确定动态编程是否是最佳答案? 你能建议一些文件来帮助我找出答案吗?
答案 0 :(得分:3)
对问题的动态编程方法通常会得到正确的答案 - 即找到真正的最低成本答案 - 但通常不能保证解决使用最小量的CPU或内存的问题。< / p>
在许多情况下,我们不知道我们解决问题的方法是否使用最小可能的cpu量。一个例子,动态程序是已知的更有效的方法之一,但未被证明是最有效的方法http://en.wikipedia.org/wiki/Knapsack_problem。
答案 1 :(得分:2)
没有算法可以告诉您给定的动态编程解决方案是否最佳。
有关密切相关问题的研究,请参阅Halting Problem。
答案 2 :(得分:0)
如果你的问题意味着:“如何正确实现我的动态编程?”您也可以通过回溯来解决问题,这很容易实现并始终提供最佳解决方案。您可以尝试对相同的小数据输入进行回溯和动态编程,如果输出相同,则可以强烈怀疑动态编程实现是否正确。 否则,动态编程总能给出最佳答案,但并非所有问题都可由DP解决,当然并非所有DP进程都可以使用相同的状态和/或同步来解决。