动态规划的学习(一)
2012-11-19 17:42
274 查看
学习dp也有一段时间了,终于对dp有了一定的了解。。。
一.dp的适用范围
dp用于解决多阶段决策的最优化问题,但不是所有最优化的问题都可以用dp解答的。一般在题中出现了求最优解的问题就要考虑dp。但要满足两个条件。。。
(1) 无后效性
所谓的后效性就是在状态i求解时用到了状态j,而状态j求解时用到了状态k。。。状态N。
如果求状态N用到了状态i, 这样就形成了环,就不能用dp来解答了。
(2)最优子结构 ( 最优化问题 )
二.dp解决问题的一般思路
遇到多阶段优化问题后,第一步要判断这个问题是否可以用dp来解决,如果不能就要考虑搜索或者是贪心了。若确定是dp了就用到这些方法解决了。
(1)模型匹配法
研究问题的本质,如果发现问题是自己熟悉的某个基本模型,就直接套用,不过其中的一些小的变动要注意。
(2)寻找规律法
耐心的推几组数据,看他们之间的规律总结规律间的共性,有点类似贪心了。
(3)边界条件法
找到问题的边界条件,然后考虑边界条件与它领接状态之间的关系。
(4)放宽约束和增加约束
就是给问题增加一些条件或删除一些条件使问题变的清晰。
一.dp的适用范围
dp用于解决多阶段决策的最优化问题,但不是所有最优化的问题都可以用dp解答的。一般在题中出现了求最优解的问题就要考虑dp。但要满足两个条件。。。
(1) 无后效性
所谓的后效性就是在状态i求解时用到了状态j,而状态j求解时用到了状态k。。。状态N。
如果求状态N用到了状态i, 这样就形成了环,就不能用dp来解答了。
(2)最优子结构 ( 最优化问题 )
二.dp解决问题的一般思路
遇到多阶段优化问题后,第一步要判断这个问题是否可以用dp来解决,如果不能就要考虑搜索或者是贪心了。若确定是dp了就用到这些方法解决了。
(1)模型匹配法
研究问题的本质,如果发现问题是自己熟悉的某个基本模型,就直接套用,不过其中的一些小的变动要注意。
(2)寻找规律法
耐心的推几组数据,看他们之间的规律总结规律间的共性,有点类似贪心了。
(3)边界条件法
找到问题的边界条件,然后考虑边界条件与它领接状态之间的关系。
(4)放宽约束和增加约束
就是给问题增加一些条件或删除一些条件使问题变的清晰。
相关文章推荐
- 【算法学习笔记】60.经典动态规划 SJTU OJ 1370 赫萝的桃子
- 算法学习之动态规划(leetcode 174. Dungeon Game)
- 动态规划学习笔记之0-1背包问题
- 【算法之动态规划(五)】DP规划思想学习:从《算法导论》到《算法设计》
- 【算法学习笔记】30.动态规划 01背包和完全背包的关系
- 算法学习之动态规划(leetcode 44 Wildcard Matching)
- 强化学习中同步动态规划和异步动态规划 Synchronous and Asynchronous dynamic programminging
- 动态规划学习记录
- 动态规划学习记录 二、装配线调配问题
- 开始学习动态规划---先解决下背包问题
- 动态规划 -- 用于矩阵链乘 (菜鸟级,学习阶段)
- 增强学习(三)----- MDP的动态规划解法
- 房地产业务学习(07)-基于合约规划的动态成本过程控制
- 算法学习之动态规划(leetcode 91 Decode Ways)
- 动态规划基础学习(一)线性
- 动态规划(学习笔记)
- 【算法学习笔记】80.二维动态规划 SJTU OJ 3022 二哥要翘课
- 增强学习(三)----- MDP的动态规划解法
- 增强学习(三)----- MDP的动态规划解法
- 增强学习(三)----- MDP的动态规划解法