动态规划
来源:互联网 发布:网络语石锤是什么意思 编辑:程序博客网 时间:2024/06/05 11:45
这篇只是一些思考,没有动态规划的例子或者实现。
贪婪策略在解决计算规模非常大的NP完全问题时可以一试,虽然求出的是近似解,但这却是在计算能力不足或者允许时限内的最优方案了,不过如何找到最优解呢?
贪婪策略是取得局部的最优解,即部分的利益或效果最大化,以求得全局或最终结果的最优解(即近似最优的解决方案), 对于要解决的问题,该问题要由一些元素组成,每个元素都对最终结果有不同的影响,贪婪策略是取影响效果最大的元素来组成最终的近似结果 这是一种需要组合的问题,组成问题的各元素之间并没有什么顺序 但是有一种问题是每一步都会对下一步产生影响,他们是需要顺序的,或者说他们之间是存在联系的,这个在前一篇中中提到过。 这种联系有时候也是多样的 比如最终的容量是有限的,每走一步都会使总可用容量减少,而影响接下来每步的选择,或许有些选择产生的效果更大,但是可用容量却不足以放下这个选择 这种在约束条件下解出最优解的问题可以用动态规划解决
贪婪策略与动态规划
对于有约束条件的问题,贪婪策略会选择出所产生效果最大的那个元素,可是这样的话,选择完后整体仍然有一部分可用容量,而这些容量却不足以放下其他的选择,或者即使放下,但也会出现这样一种情况:比产生效果最大的那个元素小一些的两个或多个元素,占用空间并不多,其总和加起来却在一样的约束条件下产生了更大的效果,这是贪婪策略无法解决的。 问题就出现在当使用贪婪策略选择了效果最大的那个元素后,剩余空间即使能放下其他元素,其单位容量内所产生的效果也不如选择几个效果不及最大的元素,但占用容量更小,其总和效果却最大的组合方案。 问题变成了如何使剩余的小空间也能发挥最大的效果,这里所说的小空间其实不小,指的是在选择了一个或几个后,剩余空间的最优的解决方案(这里的最优,依旧是组合最优,而不是局部最优) 那么可以倒过来从解决小问题入手,让小空间可以产生大效果,即解决小容量时的最优解,慢慢增长解决大空间的最优解,如果有剩余空间的话那么之前解决的小空间的最优解就会派上用场,直接把之前的适合的小空间的最优解取出就可以得出全局的最优解
动态规划功能强大,它能够解决子问题并使用这些答案来解决大问题。 但仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用
阅读全文
0 0
- 动态规划!!!动态规划!!!
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- C语言switch的条件表达式要求
- calendar添加日程到系统日历
- bzoj1036: [ZJOI2008]树的统计Count(树链剖分)
- struts2 request内幕 为什么在struts2用EL表达式可以取值
- Gym
- 动态规划
- 前缀式计算
- discuz打印所执行的SQL
- 模拟用户输入
- C++堆和栈的区别和联系
- Coursera 机器学习_Octave Cost Function
- 如何写SysV服务管理脚本
- Jquery_选择器
- 进程管理知识整理