- 30
- 0
- 约3.79千字
- 约 7页
- 2017-05-15 发布于江苏
- 举报
数据结构与算法设计 课程
实验报告
课 题矩阵相乘的算法设计
专业班级网工专业
学 号
姓 名
指导教师
目 录
问题描述
问题分析
分析最优解的结构
建立递归关系
递归实现的复杂性
算法迭代实现
结果输出
实验总结
一、问题描述给定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 = 7500
A1(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?
您可能关注的文档
- 基于51单片机的数字音乐盒设计.doc
- 高层建筑悬挑式卸料平台专项施工方案.doc
- 武汉市轨道交通3号线一期工程轨道工程轨面标识技术交底.doc
- 永仁县永定河河道治理工程施工组织设计全面版本.doc
- 电力工程某厂降压变电所电气部分设计.doc
- 延川县文安驿镇扶贫移名搬迁3#楼建筑节能专项施工方案.doc
- 单片机原理及接口技术课程设计豆浆机控制器.doc
- 武汉中国知音城还建社区工程项目施工组织设计.doc
- 混凝土结构与砌体结构设计思考题答案.doc
- 武汉市轨道交通3号线一期工程U型槽地段钢筋加工及绑扎技术交底.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 药品生产过程中的清洁生产与环境保护策略.docx VIP
- 2023年日历表带节假日全年一页打印版.docx VIP
- 铁路项目监理人员岗位职责.docx VIP
- 【初中 物理】电磁波的应用课件 2025-2026学年沪科版九年级全一册物理.pptx VIP
- 第14篇 世界屋脊——藏族高原游牧文化旅游区.ppt VIP
- (人教版)数学五年级下册计算题“天天练”习题卡,含108份题组.pdf VIP
- 基于组织学视角的异种脱细胞真皮基质研究:动物筛选、制备工艺与体内植入初探.docx VIP
- 2025年度宜都市高新技术产业投资有限公司公开招聘8人(第二批)笔试备考题库及答案解析.docx VIP
- 初中地理新课程标准及解读精选全文.pptx VIP
- 《工业机器人技术基础》考试试卷练习题附答案.pdf VIP
原创力文档

文档评论(0)