计算机算法设计-第三章.ppt

计算机算法设计-第三章

计算机算法设计 与分析 第三章 动态规划 引言 分治法求解问题的关键是原问题可分解,而且分解得到的子问题相互对立且可解。 动态规划算法与分治法很类似,其基本思想也是将待求解问题分解成若干子问题,现求解子问题然后再将结果合并。 它们之间有什么不同呢? 引言 不同: 适合用动态规划算法解决的问题经过分解得到的子问题往往并不独立。如果用分治法来解决可能因为分解的子问题数目过多而使算法没有实际意义。 引言 动态规划是如何克服的呢? 有些操作在子问题间要被执行好多次,为了避免大量的重复操作,动态规划技术利用一个表来记录这些操作的结果,从而保证时间复杂性为多项式时间。 动态规划算法适用于解决最优问题。 引言 通常按照下面4步设计: 找出最优解的性质,并刻画其结构特征; 递归地定义最优值; 以自底向上的方法计算出最优值; 根据计算最优值时得到的信息,构造最优解。 注:1-3动态规划的基本步骤,如果只需要最优值,步骤4可以不要。如果需要最优解,则需要执行4。 3.1 矩阵连乘问题 练习:有三个矩阵: A1为10*100,A2为100*5,A3为5*50 求A1 * A2 * A3 需要执行基本乘法的最小值。 如果矩阵A是一个p*q的矩阵,B是q*r的矩阵,则乘积C=AB是一个p*r的矩阵。在上述算法中,基本操作

文档评论(0)

1亿VIP精品文档

相关文档