动态规划的求解步骤
来源:互联网 发布:如何使用网络电视 编辑:程序博客网 时间:2024/06/06 16:29
动态规划算法适合于求解最优化问题,通常可按下列步骤来设计动态规划算法:
(1)分析最优解的性质,并刻画其最优子结构特征;
(2)确定状态表示S(x1,x2,...)和状态递推方程,递归地定义最优值;
(3)根据状态转移顺序,以自底向上的方式计算出最优值;
(4)根据计算最优值时得到的信息,构造最优解。
第(1)步是基础,也是关键。在分析最优子结构性质时,子解分解和子解对应的子问题描述是关键。有两种子解分解方法:基于划分的方法和基于减一的方法。
在第一种方法中,问题的最优解依据问题性质划分成两个或者多个子解,但是其划分位置无法事先确定;
在第二种方法中,问题的最优解依据问题性质减缩规模,比如减去最优解的第一个分量,或者最后一个分量,得到规模减少一个单位的子解。得到子解后,分析和描述该子解对应的子问题,如果能证明该子解对应子问题的最优解,则该问题满足最优子结构性质,转入第(2);否则,该问题不能用动态规划求解。
第(2)步是动态规划算法的核心,它是最优解的规划过程。状态表示本质上就是子问题的表示,形如,其中是描述子问题的求解目标,一般的直接定义为待求解问题的目标值。需要注意的是,对于有些问题来说,如果直接定义为原问题目标值,可能最优子结构性质不成立。此时,往往定义为某个中间目标值,比如最大上升子序列问题。在算法实现时,状态一般用一个k维的表格存储,动态规划过程就是表格操作过程。
第(3)步体现了动态规划算法的执行过程。通俗地讲,动态规划是一个由易至难的求解过程;先求解最简单的子问题的解,然后利用简单子问题的解构造复杂一些的子问题的解,直至求解原问题的解。
第(4)步是可选步骤,只有问题要求构造最优解时才需要。
- 动态规划的求解步骤
- 凸多边形的最优三角划分最详细求解步骤演示[动态规划]
- 动态规划---LCS问题的求解(转载)
- 用动态规划求解的一个例题
- 动态规划求解合唱队问题的思路
- 矩阵连乘的动态规划求解
- 走格子问题的动态规划求解
- Fibonacci数列的求解之动态规划
- 最长递增子序列的求解--动态规划求解
- 均值动态规划求解
- 动态规划问题求解
- 动态规划求解
- 动态规划求解思路
- 二、设计动态规划法的步骤
- 动态规划算法的基本步骤
- 建立动态规划数学模型的步骤
- 动态规划问题的解决步骤
- 动态规划方法步骤
- poj 1742 Coins
- python操作数据库
- Spring MultipartFile 上传文件文件getInputStream无法获取输入流问题
- 二叉树打印和为某一值的路径
- VBA代码做匹配处理
- 动态规划的求解步骤
- 从输入 URL 到页面加载完成的过程中都发生了什么事情( by vczero)
- 【python学习.用python将数据导入mysql测试】
- matlab中的注释方法
- DNS报文学习
- 乱码文件夹 rm 无法删除...": 没有那个文件或目录
- Android网络通讯之资讯篇
- myeclipse修改乱码(编码格式修改)
- Spring整合JMS(二)——三种消息监听器