动态规划详解+四个具体问题实例 |
您所在的位置:网站首页 › 动态规划的三个特点 › 动态规划详解+四个具体问题实例 |
文章目录
简介引例递归方法:动态规划算法
动态规划&分治算法区别个人理解总结
动态规划问题矩阵连乘问题实例穷举法动态规划求解
平面凸多边形最优三角划分问题描述动态规划解法
背包问题问题描述动态规划解法实例
最长公共子序列问题描述动态规划解法实例
总结判断是否动态规划问题求解思路
简介
在这篇blog中我将通过费氏数列引入,然后介绍动态规划的概念,以及它和分治苏纳法的区别与联系。然后使用动态规划的思想来解决以下四个非常著名的问题: 矩阵连乘平面凸多边形最优三角划分背包问题最长公共子序列同时也是为了自己做记录,防止以后自己忘记。 引例费氏数列是由0,1开始,之后的每一项等于前两项之和: 0,1,1,2,3,5,8,13,21,34,55,89,144… 递归方法:但是存在效率较低的问题: 借助中间变量存储结果,然后就可以消除重复计算。 伪代码: 我认为,我所见过的大多数动态规划问题似乎都用到了我们常说的的空间换时间和分治的思想。 复杂问题分解为小问题去解决,这是和分治法有相同思路的地方用空间存储中间变量,消除重复计算 总结
这种方法的时间复杂度非常高,完全是指数级别的,具体的推导这里不在赘述。 动态规划求解思路: 计算A[i:j]的最优次序所包含的计算矩阵子链 A[i:k]和A[k+1:j]的次序也是最优的 矩阵连乘计算次序问题的最优解包含着其子问题的最优解。这种性质称为最优子结构性质。问题的最优子结构性质是该问题可用动态规划算法求解的显著特征。 建立递归关系: 计算A[i:j],1≤i≤j≤n,所需要的最少数乘次数C[i,j],则原问题的最优值为C[1,n] 当i=j时,A[i:j]=Ai,因此,C[i,i]=0,i=1,2,…,n当i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |