SDAU 编程练习三 动态规划和动态规划与背包问题相结合的问题
2016-06-01 14:47
344 查看
动态规划:
对于这类问题,可将过程分为若干个互相联系的阶段,在他的每一个阶段都需要做出决策,从而使整个过程到达最好的活动效果,当然啦,各个阶段决策的选取不是任意的哦,他依赖于前面相林的状态,又影响以后的发展,当各个决策都确定时,就组成一个决策序列啦,就可以了。。。就是一种多阶段决策问题。。
在动态规划问题中最重要的就是状态转移方程了哈,状态转移方程要满足最优性原理,只要列出来了满足条件的状态转移方程题目就ok了(最优性原理实际上就是要求问题的最优策略的子策略也是最优的)。。。。
动态规划与背包问题相结合:
01背包问题:只考虑i件物品放与不放就可。状态转移方程为 (for i=1'。。n for v=V..0 f[v]=max{f[v],f[v-c[i]]+w[i]} ;)
完全背包问题:每个物品都有无数件,既要考虑i件放于不妨,还要考虑放多少,状态方程与01不同的是二重循环从0到V(for i=1'。。n for v=0。。V f[v]=max{f[v],f[v-c[i]]+w[i]} ;)
多重背包问题:每个物品有多件但不为无数件,既要考虑i件放于不妨,还要考虑放多少。可以运用二进制思想进行优化啦。。。。
分组背包问题: 有多组物品,每组只能选择一个物品,只要先不考虑租的问题,就类似于01背包问题了。。
对于这类问题,可将过程分为若干个互相联系的阶段,在他的每一个阶段都需要做出决策,从而使整个过程到达最好的活动效果,当然啦,各个阶段决策的选取不是任意的哦,他依赖于前面相林的状态,又影响以后的发展,当各个决策都确定时,就组成一个决策序列啦,就可以了。。。就是一种多阶段决策问题。。
在动态规划问题中最重要的就是状态转移方程了哈,状态转移方程要满足最优性原理,只要列出来了满足条件的状态转移方程题目就ok了(最优性原理实际上就是要求问题的最优策略的子策略也是最优的)。。。。
动态规划与背包问题相结合:
01背包问题:只考虑i件物品放与不放就可。状态转移方程为 (for i=1'。。n for v=V..0 f[v]=max{f[v],f[v-c[i]]+w[i]} ;)
完全背包问题:每个物品都有无数件,既要考虑i件放于不妨,还要考虑放多少,状态方程与01不同的是二重循环从0到V(for i=1'。。n for v=0。。V f[v]=max{f[v],f[v-c[i]]+w[i]} ;)
多重背包问题:每个物品有多件但不为无数件,既要考虑i件放于不妨,还要考虑放多少。可以运用二进制思想进行优化啦。。。。
分组背包问题: 有多组物品,每组只能选择一个物品,只要先不考虑租的问题,就类似于01背包问题了。。
相关文章推荐
- php引用赋值& 和传递赋值
- lua垃圾回收之空表
- 关于java.lang.IllegalArgumentException: View not attached to window manager 错误的分析
- 仿百度外卖3_7_1百度地图拖动定位,显示附近地址poi提示搜索
- Qt学习之路_6(Qt局域网聊天软件)
- The Biggest Changes in C++11 (and Why You Should Care)
- Qwt扩展之-数据拾取
- JAVA运算符 instanceof
- PHP基础笔记(01)
- 常用Eclipse快捷方式(推荐)
- 简单的swing对话框
- 读取任意行数据
- java的征途
- Java 遍历Map时 删除元素
- 面向对象编程的基本原则
- PHP Warning: mkdir() [function.mkdir]: Permission denied in解决方法
- Java代理设计模式详解
- PHP菜鸟如何开始学习PHP语言
- 不同类型的变量相加
- C# 版dll 程序集合并工具