2022年用动态规划算法解矩阵连乘问题归纳 .pdf
《2022年用动态规划算法解矩阵连乘问题归纳 .pdf》由会员分享,可在线阅读,更多相关《2022年用动态规划算法解矩阵连乘问题归纳 .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、宁波工程学院电信学院计算机教研室实验报告课程名称:算法设计与分析实验项目:实验二:动态规划指导教师:苏日娜实验位置:计算机中心二楼姓名:尹连三班级:软件二班学号: 09401010310 日期: 2011-11-23 一、实验目的通过上机实验,要求掌握动态规划算法的问题描述、算法设计思想、程序设计和算法复杂性分析等。二、实验环境VC6.0 C+ 三、实验内容1、 用动态规划算法解矩阵连乘问题(1)问题的描述给定 n 个矩阵 A1,A2, ,An ,其中 Ai 与 Ai+1 是可乘的, i=1,2,n-1。要算出这 n 个矩阵的连乘积A1A2 An。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以
2、有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。 若一个矩阵连乘积的计算次序完全确定,也就是说该连乘积已完全加括号, 则可以依此次序反复调用2 个矩阵相乘的标准算法计算出矩阵连乘积。完全加括号的矩阵连乘积可递归地定义为:(1)单个矩阵是完全加括号的;(2)矩阵连乘积 A 是完全加括号的,则 A 可表示为 2 个完全加括号的矩阵连乘积B 和 C 的乘积并加括号,即 A=(BC) 。 例如,矩阵连乘积A1A2A3A4 有 5 种不同的完全加括号的方式: (A1(A2(A3A4 ) ) ) , (A1( (A2A3 )A4) ) , ( (A1A2 ) (A3A4 ) ) ,( (A1(
3、A2A3 ) )A4) , ( ( (A1A2 )A3)A4) 。每一种完全加括号的方式对应于一个矩阵连乘积的计算次序,这决定着作乘积所需要的计算量。若 A 是一个 pq 矩阵,B 是一个 qr 矩阵,则计算其乘积C=AB的标准算法中, 需要进行 pqr 次数乘。为了说明在计算矩阵连乘积时,加括号方式对整个计算量的影响,先考察3 个矩阵 A1,A2,A3 连乘的情况。设这三个矩阵的维数分别为10100,1005,550。加括号的方式只有两种: ( (A1A2 )A3) , (A1(A2A3 ) ) ,第一种方式需要的数乘次数为 101005105507500,第二种方式需要的数乘次名师资料总结
4、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 数为 100550101005075000。第二种加括号方式的计算量时第一种方式计算量的10 倍。由此可见,在计算矩阵连乘积时,加括号方式,即计算次序对计算量有很大的影响。于是,自然提出矩阵连乘积的最优计算次序问题, 即对于给定的相继n 个矩阵 A1,A2, ,An(其中矩阵 Ai 的维数为pi-1pi,i1,2,n) ,如何确定计算矩阵连乘积A1A2 An 的计算次序(完全加括号方式) ,使
5、得依此次序计算矩阵连乘积需要的数乘次数最少。穷举搜索法的计算量太大,它不是一个有效的算法,本实验采用动态规划算法解矩阵连乘积的最优计算次序问题。( 2)算法设计思想动态规划算法的基本思想是将待求解问题分成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是, 动态规划法经分解得到的子问题往往不是相互独立的,前一子问题的解为后一子问题的解提供有用的信息,可以用一个表来记录所有已解决的子问题的答案, 不管该子问题以后是否被用到,只要它被计算过, 就将其结果填入表中。本实验的算法思路是: 1 、计算最优值算法MatrixChain():建立两张表(即程序中的*m和*s ,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年用动态规划算法解矩阵连乘问题归纳 2022 动态 规划 算法 矩阵 问题 归纳
限制150内