分治法(divide conquer)与动态规划(dynamic programming)应用举例
- 动态规划三大重要概念:最优子结构,边界,状态转移公式(问题规模降低,如问题由 nn 的规模降低为 n−1n-1 或 n−2n-2 及二者之间的关系);
0. 爬台阶
F(n) ⇒ F(n-1)+F(n-2)
- F(n−1),F(n−2)F(n-1), F(n-2) 即是 F(n)F(n) 的最优子问题;
- F(1)=1,F(2)=2F(1)=1, F(2)=2 是问题的边界;
- F(n)=F(n−1)+F(n−2)F(n)=F(n-1)+F(n-2) 则是问题的状态转移公式;
1. 数列快速求和和矩阵快速乘法
\begin{split} 1+2+\cdots+n=&\left(1+\cdots+\frac n2\right)+ \left((\frac n2+1)+\cdots+(\frac n2+\frac n2)\right)\\ =&2\cdot\left(1+\cdots+\frac n2\right)+\frac n2\cdot \frac n2\\ \end{split}
也即:f(n)=2⋅f(n2)+n24f(n)=2\cdot f(\frac n2)+\frac{n^2}4 ⇒ 问题的规模以 n/2n/2 的缩小,时间复杂度从 O(n)O(n) 变为 O(logn)O(\log_n);
int fastSum(int n){if (n == 1) return 1;if (n % 2) return fastSum(n-1) + n;return 2*fastSum(n/2)+n/2*n/2;
}
分治法(divide conquer)与动态规划(dynamic programming)应用举例相关推荐
- 运筹学状态转移方程例子_动态规划 Dynamic Programming
从运筹学和算法的角度综合介绍动态规划 规划论 Mathematical Programming / Mathematical Optimization In mathematics, computer ...
- 动态规划(Dynamic Programming)的一些事一些情
References <算法导论> 最近在回顾算法的知识,特将一些动态规划的重点记录下来,好让以后自己不要忘记. 基本概念 动态规划(Dynamic Programming,简称为DP,下 ...
- 动态规划 dynamic programming
动态规划dynamic programming June,7, 2015 作者:swanGooseMan 出处:http://www.cnblogs.com/swanGooseMan/p/455658 ...
- 分治法 divide and conquer
分治算法包含以下步骤: 1.分(divide):将一个大问题分解成若干个子问题,每个子问题的问题规模n更小了,这样就有了好几个待解决的子问题. 2.治(conquer):递归的去解决每个子问题. 3. ...
- 分治法 Divide and Conquer思想及实际应用
分治思想 Divide and Conquer,即为分治法,基于分支递归的一种解决问题的思想方法. 分治分治,"分而治之"的意思,就是把一个复杂的原问题分成一个或多个相同子问题,而 ...
- 动态规划(Dynamic Programming)与贪心算法(Greedy Algorithm)
文章目录 动态规划算法(Dynamic Programming) 动态规划问题的属性 应用实例:最长公共子序列问题(Longest Common Subsequence, LCS) 贪心算法(Gree ...
- 算法导论-动态规划(dynamic programming)
动态规划:通过组合子问题的解来解决整个问题. 动态规划的四个步骤: 1)描述最优解的结构: 2)递归定义最优解的值: 3)按自低向上的方式计算最优解的值(首先找到子问题的最优解,解决子问题,最后找到问 ...
- 动态规划|Dynamic Programming
由于最近课设要用动态规划,翻阅资料学习一下. 动态规划 解决复杂问题的方法,把它们分解成更简单的子问题. 一旦我们看到一些例子,这个定义就有意义了.实际上,我们今天只看解问题的例子 解决DP问题的步骤 ...
- [欠驱动机器人]4,动态规划(Dynamic Programming)
目录 前言 控制问题变成优化问题 新增成本(Additive cost) 图搜索的最优控制 连续动力学方程 HJB 方程 求出最小控制 数值求解J 方程逼近与数值迭代 线性方程逼近 网格上的值迭代 连 ...
- 关于简单动态规划(Dynamic Programming)的总结
Instructions 综上所述(好像没有上)我的DP真的垃圾的一批... 动态规划是用来避免重复计算状态导致效率低的情况,实现动规有记忆化搜索和填表两种方法,但记忆化搜索不能优化空间,所以常用的是 ...
最新文章
- CentOS7下搭建yum仓库
- 时富金融:八年左右后内地房价会下降
- ARMv8 MMU及Linux页表映射:TLB
- 安装多个mysql及mysql服务
- 3、JSON相关基础知识点总结(3)
- hdu3076ssworld VS DDD 概率dp
- P1090 合并果子
- php 真太阳时间修正,真太阳时查询表(建议收藏)
- 嵌入式开发有年龄限制吗_32岁入门晚不晚?来听听这位70后程序员的故事
- 为什么 你会如此痛苦……?
- 示波器的带宽、带宽检定方法
- word里面的表格调整行高技巧
- 高德地图Key的获取过程(详细)
- 应对ME23数据抓取时ID发生变化 SAP
- 由光声前向模型求取光声信号
- RK3399 Android 7.1开发准备
- No JSON object could be decoded
- docker相关的文件配置
- 用PayPal在eBay上撸货加哪种卡可以长期用?
- COLA之架构演变(一)
热门文章
- 电脑运行内存不足怎么办_win7内存不足怎么办?教你使用虚拟内存来增加win7系统的运行内存...
- linux 设置更新源为cd,技术|如何修复 apt-get update 无法添加新的 CD-ROM 的错误
- 主节点数量_你知道电气主接线常见接线方式吗?建议收藏共同学习
- 为什么刹车热了会失灵_刹车油只要不缺,没必要更换,真的是这样吗?
- 配置多台机器SSH相互通信信任
- 锤子科技 php 面试,面试没通过 锤子新品遭面试者曝光
- 机器学习代码实战——线性回归(单变量)(Linear Regression)
- SQL Server 和 Oracle 的常用函数对比
- Tableau可视化学习笔记:day05-06
- EAST实现自然场景下文本检测tensorflow