动态规划与分治法的异同:

相同点:其基本思想都是将待求解问题分解为若干子问题,先求解子问题,再结合这些子问题的解得到原问题的解。

差异点:与分治法不同的是,适合用动态规划法求解的问题经分解得到的子问题往往不是相互独立的。有些问题分解后的子问题往往是重复的,此时若用分支法则会重复计算耗费时间内存。

总结:为了达到避免重复计算,可以用一个表来记录所有已解决的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。

步骤:

找出最优解的性质,刻画其结构特征。
递归地定义最优值。
以自底向上的方式计算最优值。
根据计算最优值得到的信息构造最优解。
矩阵连乘问题
分析最优解的结构
建立递归关系
计算最优值
构造最优解
动态规划算法的基本要素

最优子结构:当问题的最优解包含了其子问 题的最优解时,称该问题具有最优子结构性质。

重叠子问题:在用递归算法自顶向下解此问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算。动态规划算法对每个子问题只解一次,然后将解保存在一个表格中。

问题描述:

给定n个矩阵:A1,A2,…,An,其中Ai与Ai+1是可乘的,i=1,2…,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵个数和每个矩阵规模,输出结果为计算矩阵连乘积的计算次序和最少数乘次数。

问题解析:

由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一

算法设计与分析——动态规划——矩阵连乘问题相关推荐

  1. 中科院陈玉福算法设计与分析 动态规划矩阵连乘计算问题

    题目描述: 已知矩阵

  2. 算法设计与分析-----动态规划

    算法设计与分析-----动态规划(c语言) 一.动态规划 1.定义 2.动态规划问题的解法 3.动态规划求解的基本步骤 4.动态规划与其他方法的比较 5.求解整数拆分问题 6.求解最大连续子序列和问题 ...

  3. 算法设计与分析——动态规划(二):钢条切割

    分类目录:<算法设计与分析>总目录 相关文章: · 动态规划(一):基础知识 · 动态规划(二):钢条切割 · 动态规划(三):矩阵链乘法 · 动态规划(四):动态规划详解 · 动态规划( ...

  4. 算法设计与分析——动态规划(五):最长公共子序列

    分类目录:<算法设计与分析>总目录 相关文章: · 动态规划(一):基础知识 · 动态规划(二):钢条切割 · 动态规划(三):矩阵链乘法 · 动态规划(四):动态规划详解 · 动态规划( ...

  5. 计算机算法设计与分析 动态规划 实验报告,动态规划法解最长公共子序列(计算机算法设计与分析实验报告).doc...

    动态规划法解最长公共子序列(计算机算法设计与分析实验报告) 实报 告 实验名称:任课教师::姓 名:完成日期:二.主要实验内容及要求: 要求按动态规划法原理求解问题: 要求交互输入两个序列数据: 要求 ...

  6. 算法设计与分析——动态规划(一)矩阵连乘

    动态规划--Dynamic programming,可以说是本人一直没有啃下的骨头,这次我就得好好来学学Dynamic programming. OK,出发! 动态规划通常是分治算法的一种特殊情况,它 ...

  7. 算法设计与分析——动态规划——数字三角形问题

    数字三角形问题 1.题目描述:给定一个由n行数字组成的数字三角形,如图3-7所示.设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大. 算法设计:对于给定的由n行数字组成的数字 ...

  8. 算法设计与分析—动态规划算法

    动态规划算法 1.动态规划算法基本思想 2.动态规划算法求解步骤 3. 0-1背包问题 在现实生活中,存在这样一类问题,它们的活动过程不仅可以分成若干阶段,而且在任意一个阶段(不妨设为第i个阶段)以后 ...

  9. 算法设计与分析——动态规划——石子合并问题

    1.石子合并问题 在一个圆形操场的四周摆放着n堆石子.现要将石子有序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分.设计一个算法,计算出将n堆石子合并成 ...

最新文章

  1. 展望:模型驱动的深度学习
  2. oracle触发器修改同一张表,oracle触发器中对同一张表进行更新再查询时,需加自制事务...
  3. 图解Linux系统启动流程
  4. dnf机器人猜数字奖励_DNF:周年庆策划啪啪打脸,工作人员也出错误,难道又是临时工的锅?...
  5. 分析Spring容器启动流程 Spring初始化
  6. 移动端设备判断,ios,android,判断设备,安卓
  7. 测试 | 测试:你会这些命令吗?
  8. git拉取tag代码_10年经验17张图带你进入gitflow企业项目代码版本管理的最佳实践...
  9. 真香!第一批国产人造肉亮相阿里食堂 员工表示味道很不错
  10. pku 3592 Instantaneous Transference tarjan缩点重建图+spfa求最长路
  11. Kotlin — Springboot 与 Kotlin构建Web应用程序
  12. 中小企业OA系统视频教程(更新程度:完毕)送ppt源码
  13. HZNU2012图解
  14. Jenkins Mac本地环境搭建
  15. vba控制图表,excel图表,一键完成
  16. 重磅!中科院院士,任复旦大学新校长!
  17. 【Docker】win7安装docker及镜像加速
  18. java 时分秒 转换 秒_JAVA将时分秒格式的时间转化成秒数
  19. 实战解密热门js加密v6
  20. LWN:改进英文文档质量的工具!

热门文章

  1. js请求php文件 302,采集某个 url, js 请求 200,浏览器访问 302
  2. 个人中心的html,个人中心.html
  3. 用matlab求解工作时间调度问题,置换流水车间调度问题的MATLAB求解.doc
  4. 利用Erdas监督分类方法提取城镇用地信息完整实验操作步骤
  5. Java之Callable和Runnable
  6. linux shell之得到当前路径下的目录
  7. linux c之fdopen(int fd, const char *type)使用总结
  8. solidity编写eth智能合约之contract 创建合约(二)
  9. 实现html5音乐的自动播放,html5中audio实现播放列表和自动播放
  10. java中hasnext的作用_java中Scanner的hasNext()的疑问