- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
矩阵相乘的算法设计
数据结构与算法设计 课程实验报告课 题矩阵相乘的算法设计专业班级网工专业1405班学 号 14144501352姓 名陈晓露指导教师陶跃进目录问题描述问题分析分析最优解的结构建立递归关系递归实现的复杂性算法迭代实现结果输出实验总结一、问题描述给定n个矩阵{A1,A2,... ,An},其中这n个矩阵是可相乘的,i=1,2,...,n-1。算出这n个矩阵的相乘积A1A2 。。。An。补充:如果两个矩阵A和B是可相乘的,那么A的列数要和B的行数是相同的,否则,这两个矩阵是不可相乘的。它们的相乘结果矩阵C的行数是A的行数,而列数是B的列数。设A1,A2,…,An为矩阵序列,Ai为Pi-1×Pi阶矩阵,i = 1,2,…,n. 确定乘法顺序使得元素相乘的总次数最少.输入:向量P = P0, P1, … , Pn实例:?P = 10, 100, 5, 50 ?A1: 10 × 100, A2: 100 × 5, A3: 5 × 50乘法次序:(A1 A2)A3: 10 × 100 × 5 + 10 ×5 × 50 = 7500A1(A2 A3): 10 × 100 × 50 + 100 × 5 × 50 = 75000搜索空间的规模先将矩阵链加括号分为两部分,即P=A1*A2*...*An=(A1*A2...*Ak)*(Ak+1*...An),则有f(n)=f(1)*f(n-1)+f(2)*f(n-2)+...+f(n-1)*f(1)种方法。动态规划算法输入P= P0, P1, …, Pn,Ai..j 表示乘积 AiAi+1…Aj 的结果,其最后一次相乘是:m[i,j] 表示得到Ai..j的最少的相乘次数。递推方程:为了确定加括号的次序,设计表s[i,j],记录求得最优时最一位置。二、问题分析由于矩阵乘法满足结合律,故连乘积的计算可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序已完全确定,也就是说该连乘积已完全加括号,则我们可以通过反复调用两个矩阵相乘的标准算法计算出矩阵连乘积。1.分析最优解的结构为了方便起见,我们将矩阵连乘AiAi+1 。。。Aj记为A[i:j]。经分析,计算A[1:n]的一个最优次序所包含的计算矩阵子链A[1:k]和A[k:n]的次序也是最优的。因此,矩阵连乘计算次序问题的最优解包含着子问题的最优解。2.建立递归关系用矩阵m[n][n]来存放A[i:j]相乘的计算次数,用p[n+1]用来存放矩阵的行数和列数。const?int?N=5;??int?m[N][N];?//m[i][j]存储Ai到Aj的最小乘法次数??int?s[N][N];//s[i][j]存储Ai到Aj之间加括号的位置????int?RecurMatrixChain(int?P[],int?i,int?j)??{??????m[i][j]=100000;??????s[i][j]=i;??????if(i==j)??????????m[i][j]=0;??????else{??????????for(int?k=i;kj;k++){??????????????int?q=RecurMatrixChain(P,i,k)+RecurMatrixChain(P,k+1,j)+P[i]*P[k+1]*P[j+1];??????????????if(qm[i][j]){??????????????????m[i][j]=q;??????????????????s[i][j]=k;??????????????}??????????}??????}??????return?m[i][j];??}????int?main()??{??????int?P[N+1]={30,35,15,5,10,20};??????for(int?i=0;iN;i++)??????????m[i][i]=0;??????m[0][N-1]=RecurMatrixChain(P,0,N-1);??????return?0;??}?3.递归实现的复杂性复杂性满足递推关系:可见递归实现的复杂性虽然较一般算法有改进,但还是较高。分析原因,主要是子问题重复程度高。如下图所示:?1..4表示计算Ai..j中i=1,j=4的子问题,其子问题包括A1..1,而A1..2,A1..3中都包括子问题A1..1,所以很多子问题被重复计算了多次。于是,我们想到用自底向上的迭代实现。4.算法迭代实现迭代实现主要思想是子问题由小到大,每个子问题只计算一次,并且把结果保存起来,后来用到这个子问题时,直接代入。void?MatrixChain(int?P[],int?n)??{??????int?r,i,j,k,t;??????for(i=0
您可能关注的文档
- 环境保护保证体系.doc
- 环境保护水土保持措施计划.doc
- 物流学概论.doc
- 环境化学总结.doc
- 环境地质学重点.doc
- 环境心理学1.doc
- 环境心理学试题.doc
- 环境心理学.doc
- 环境效益费用分析.doc
- 环形交叉口分方向流量观测实验.doc
- 2025年机关事业单位技能资格考试-工商管理职业资格考试近5年真题集锦(频考类试题)带答案.docx
- 2025年机关事业单位技能资格考试-工商管理职业资格考试近5年真题荟萃附答案.docx
- 2025年机关事业单位技能资格考试-工商行政管理岗位考试近5年真题集锦(频考类试题)带答案.docx
- 2025年服务行业技能考试-餐厅服务员考试近5年真题集锦(频考类试题)带答案.docx
- 2025年机关事业单位技能资格考试-工商行政管理岗位考试近5年真题荟萃附答案.docx
- 智慧水库管理平台建设方案.pptx
- 2025年机关事业单位技能资格考试-政府采购评审专家考试近5年真题集锦(频考类试题)带答案.docx
- 智慧楼宇IBMS信息化管控平台建设总体解决方案.pptx
- 2025年机关事业单位技能资格考试-文秘资料技师考试近5年真题集锦(频考类试题)带答案.docx
- 2025年机关事业单位技能资格考试-文秘资料技师考试近5年真题荟萃附答案.docx
文档评论(0)