3-2 动态规划算法总结

一、动态规划算法的基本要素(最优子结构、重叠子问题)

1、最优子结构

矩阵连乘计算次序问题的最优解包含着其子问题的最优解。此称为最优子结构性质。最优子结构是可用动态规划算法求解的前提。
问题的最优子结构性质证明∶
先假设由原问题的最优解导出的子问题的解不是最优的。
再设法证明在这假设下可构造出比原问题最优解更好的解导致矛盾。
利用问题最优子结构性质,以自底向上的方式通过子问题的最优解逐步构造出整个问题的最优解。
注意:同一个问题可以有多种方式刻画它的最优子结构,有些表示方法的求解速度更快(空间占用小,问题维度低)

2、重叠子问题

以矩阵连乘问题为例:
在这里插入图片描述

二、备忘录方法

备忘录方法与直接递归方法的控制结构相同
区别:
(1)备忘录方法为每个求解过的子问题建立了备忘录
(2)求解一个子问题时先检查是否已有答案,避免重复求解。
在这里插入图片描述

三、动态规划算法的特点

1.阶段性

计算最优值是分阶段进行的。
如矩阵连乘问题。
先计算所有只有一个矩阵的情况
再计算所有二个相邻矩阵连乘的情况
再计算所有三个相邻矩阵连乘的情况。
……
最后计算n个矩阵连乘的情况。

2.无后向性

是指已经计算出的子问题的答案不能再更改。
如Dijkstra算法是有后向性的例子(用贪心算法解决的问题)

四、小结

(一)动态规划可解决的问题同分治策略解决的问题类似,区别是存在重复子问题

(二)按照动态规划解题的基本步骤解决问题

(1)找出最优解的性质,并刻划其结构特征(最优子结构性质)。
(2)递归地定义最优值。
(3)以自底向上的方式计算出最优值。
(4)根据计算最优值时得到的信息,构造最优解。
(三)同一个问题可能有多种方式刻画它的最优子结构,有些表示方法
的求解速度更快(空间占用小,问题的维度低)。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清木!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值