我应该用什么样的算法来找出动态规划的问题答案是否是最优答案?你可以推荐一些文件来帮助我找出答案吗?如何找出动态规划的答案是否是最佳答案?
-1
A
回答
3
对问题的动态规划方法通常会得到正确答案 - 即找到真正的最小成本答案 - 但通常不能保证是解决使用最少量cpu或内存的问题的方法。
在很多情况下,我们不知道我们解决问题的方法是否使用尽可能少的cpu。例如,动态程序是已知的更有效的方法之一,但未被证明是最有效的可能方法是http://en.wikipedia.org/wiki/Knapsack_problem。
2
没有算法告诉您给定的动态编程解决方案是否最优。
查看Halting Problem研究密切相关的问题。
+0
虽然在我看来,这个问题本身是有缺陷的。如果一个问题可以说是一个动态规划问题,那么这个动态规划的解决方案将是最优的吗?我能看到的唯一问题是DP问题,但可能无法解决,因为它不会终止(这可能是您的停机问题意味着什么)的情况。 – Mathias 2012-01-28 06:48:13
0
如果你的问题是你的意思:“我如何发现我的动态编程是否正确实施?”您也可以通过回溯来解决问题,这很容易实现,并始终提供最佳解决方案。对于相同的小数据输入,您可以尝试回溯和动态编程,如果输出相同,那么您可以强烈怀疑您的动态编程实现是正确的。 否则动态规划总是给出最佳答案,但并非所有问题都可以通过DP来解决,当然并不是所有DP规划都可以使用相同的状态和/或recure解决。
相关问题
- 1. 给出的答案
- 2. 如何拒绝一个答案,如果前面的答案和目前的答案是等于
- 3. 如何划分输入答案?
- 4. 答案是:6÷2(1 + 2)=?
- 5. sort_values与排序给出不同的答案,但sort_values是正确的答案
- 6. Xtend“电影例子”最佳答案
- 7. 评论与投票和“最佳答案”
- 8. 检查答案是否正确
- 9. 100%条形图SQL - 是/否答案
- 10. 整数线性规划是否提供最佳解决方案?
- 11. 如何等待用户答案并保留选择的答案
- 12. 如何访问Movilizer答案中选定答案项的标签
- 13. 如何满足学生的答案,实际答案
- 14. 动态MVC RadioButton组选择的答案
- 15. 打印两个双打答案给出了答案0.00
- 16. 如何显示答案一旦答案超过2位小数
- 17. 验证答案
- 18. 间隔答案
- 19. 打印答案
- 20. 显示答案
- 21. Randomise LuisDialog答案
- 22. Handle AuthorizeAttribute答案
- 23. 减少功能给出否定答案
- 24. MATLAB不会给出答案
- 25. HttpURLConnection:如何阅读答案
- 26. ReSTful webservice真的是我的答案吗?
- 27. 简单划分答案无小数位
- 28. 明确的答案
- 29. 不同的答案
- 30. 伯爵的答案是88:为什么?
我认为你首先必须定义问题和“最优”。 – 2012-01-28 00:46:04
你可以举一个例子,你怀疑动态编程会给你一个非最优的答案吗?我不完全明白你的问题,因为根据定义,我相信如果你的问题可以说是一个动态编程问题,那么动态编程会给你一个最佳答案(假设你可以计算它)。 – Mathias 2012-01-28 06:53:42