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