目录
1. 动态规划问题的基本要素
(1)最优子结构性质
当问题的最优解包含了子问题的最优解时,我们称问题具有最优子结构性质。
在动态规划算法中,利用问题的最优子结构性质,以自底向上的方式递归的从子问题的最优解逐步构造出整个问题的最优解。
(2)重叠子问题
动态规划问题利用了子问题的重叠性质,对每一个子问题只求解一次,然后保存到一个表格中,当再次需要解此问题时,知识简单的用常数时间查看一下结果。
2. 动态规划算法的基本步骤
(1)找出最优子结构性质,并刻画其结构特征
(2)递归地定义最优值
(3)以自底向上的方式计算最优值
(4)根据计算最优值时得到的信息构造最优解
3. 动态规划问题举例-最长公共子序列问题
问题定义
给定两个序列X={x1,x2,….,xm}和Y={y1,y2,….,yn},当另一序列Z既是X的子序列有事Y的子序列时,称Z是序列X和Y的公共子序列。
最长公共子序列问题:给定两个序列X和Y,找出X和Y的最长公共子序列。
最长公共子序列的结构
最长公共子序列问题具有最优子结构性质。
设序列X={x1,x2,….,xm}和Y={y1,y2,….,yn}的最长公共子序列为Z={z1,z2,….,zk},则
(1)若xm=yn,则zk=xm=yn,且Zk-1是Xm-1和Yn-1的最长公共子序列
&#