基础算法之动态规划
来源:互联网 发布:java infinity 编辑:程序博客网 时间:2024/05/03 17:47
一、什么是动态规划法
动态规划算法通常基于一个递推公式及一个或多个初始状态。 当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度。动态规划是一个多阶段决策的过程。与分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。
二、如何使用
(1)描述最优解的结构。
(2)递归定义最优解。
(3)按自底向上的方式计算出最优解。
(4)根据计算构造问题的最优解。
三、什么时候使用
动态规划算法通常基于一个递推公式及一个或多个初始状态。 当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度。动态规划是一个多阶段决策的过程。与分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。
二、如何使用
(1)描述最优解的结构。
(2)递归定义最优解。
(3)按自底向上的方式计算出最优解。
(4)根据计算构造问题的最优解。
三、什么时候使用
当问题能分解为一个或者多个子问题,且子问题与源问题性质相同时,则可以使用动态规划。
四、例子
计算器。
0 0
- 基础算法之动态规划
- 基础算法之动态规划
- 算法-动态规划之基础(一)
- 算法基础---动态规划
- 算法基础--动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 【算法】之动态规划
- 算法训练-动态规划基础
- 算法基础(4)动态规划之最长子序列
- 十大基础实用算法之动态规划
- 算法重拾之路——动态规划基础
- js中 ==与=== 区别
- Instruments使用技巧
- 16.HCNA-HNTD——STP原理与配置
- 萦绕在爱情深处最细微的感伤
- [C/C++]_[中级]_[数据地址对齐]
- 基础算法之动态规划
- 1008. Elevator
- how to install splint
- 假期总结
- ubuntu14.04 开机自动运行应用程序
- Qt版双人俄罗斯方块游戏
- POJ 2251-Dungeon Master
- RHEL/CentOS 7.x如何启动/关闭、启用/禁用服务? 修改系统运行级别
- 在jstl标签中forEach标签遍历Map