Chapter-4 动态规划.ppt

4 动态规划 Dynamic Programming 回顾:分治策略 施行分治策略是基于以下几点认识: 小问题比大问题更容易解决 ?将小问题的解组装成大问题的解,所需的成本低于直接求解大问题的成本 小问题又可以按照同样的方式分解为更小的问题 引例:费氏数列 费氏数列是由13世纪的意大利数学家、来自Pisa的 Leonado Fibnacci发现。 费氏数列是由0,1开始,之后的每一项等于前两项之和: 0,1,1,2,3,5,8,13,21,34,55,89,144...... 。 ?这个数列有如下一些特性: 前2个数相加等于第3个数 前1个数除以后一个数越往后越无限接近于0.618 (黄金分割) 相邻的两个比率必是一个小于0.618一个大于0.618 后1个数除以前一个数越往后越无限接近于1.618 … 为何效率低下? 使用直观的方式分析 解决方法 借助于变量存储中间计算结果,消除重复计算。代码片断如下: 动态规划的基本思想 动态规划的实质是分治和消除冗余,是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解以避免计算重复的子问题,来解决最优化问题的算法策略。 基本步骤: 分析一个最优解应该具备的结构。 递归地定义其最优解。 以自底向上的方式计算出最优值。 根据计算最优值时得到的信息,构造最优解。 矩阵链相乘 给定n个连乘的矩阵M1˙M2 …Mn-1 ˙Mn,

文档评论(0)

1亿VIP精品文档

相关文档