动态规划矩阵连乘算法

动态规划矩阵连乘算法

ID:37955090

大小:104.82 KB

页数:13页

时间:2019-06-03

动态规划矩阵连乘算法_第1页
动态规划矩阵连乘算法_第2页
动态规划矩阵连乘算法_第3页
动态规划矩阵连乘算法_第4页
动态规划矩阵连乘算法_第5页
资源描述:

《动态规划矩阵连乘算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、word格式文档问题描述:给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵个数和每个矩阵规模,输出结果为计算矩阵连乘积的计算次序和最少数乘次数。   问题解析:由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序完全确定,也就是说该连乘积已完全加括号,则可以依此次序反复调用2个矩阵相乘的标准算法计算出矩阵连乘积。    完全加括号的矩阵连乘积可递归地定义为:   (1)单个矩阵是完

2、全加括号的;   (2)矩阵连乘积A是完全加括号的,则A可表示为2个完全加括号的矩阵连乘积B和C的乘积并加括号,即A=(BC)    例如,矩阵连乘积A1A2A3A4有5种不同的完全加括号的方式:(A1(A2(A3A4))),(A1((A2A3)A4)),((A1A2)(A3A4)),((A1(A2A3))A4),(((A1A2)A3)A4)。每一种完全加括号的方式对应于一个矩阵连乘积的计算次序,这决定着作乘积所需要的计算量。   看下面一个例子,计算三个矩阵连乘{A1,A2,A3};维数分别为10*100,100*5,5*50按此顺序计算需要的次数专业整理word格式文档((A1*A2)*A

3、3):10X100X5+10X5X50=7500次,按此顺序计算需要的次数(A1*(A2*A3)):10*5*50+10*100*50=75000次   所以问题是:如何确定运算顺序,可以使计算量达到最小化。       算法思路:   例:设要计算矩阵连乘乘积A1A2A3A4A5A6,其中各矩阵的维数分别是:   A1:30*35;  A2:35*15;  A3:15*5;  A4:5*10;  A5:10*20;  A6:20*25    递推关系:    设计算A[i:j],1≤i≤j≤n,所需要的最少数乘次数m[i,j],则原问题的最优值为m[1,n]。   当i=j时,A[i:j]=

4、Ai,因此,m[i][i]=0,i=1,2,…,n   当i

5、i:j]的最佳方式应在矩阵Ak和Ak+1之间断开,即最优的加括号方式应为(A[i:k])(A[k+1:j)。因此,从s[1][n]记录的信息可知计算A[1:n]的最优加括号方式为(A[1:s[1][n]])(A[s[1][n]+1:n]),进一步递推,A[1:s[1][n]]的最优加括号方式为(A[1:s[1][s[1][n]]])(A[s[1][s[1][n]]+1:s[1][s[1][n]]])。同理可以确定A[s[1][n]+1:n]的最优加括号方式在s[s[1][n]+1][n]处断开...照此递推下去,最终可以确定A[1:n]的最优完全加括号方式,及构造出问题的一个最优解。   1、

6、穷举法    列举出所有可能的计算次序,并计算出每一种计算次序相应需要的数乘次数,从中找出一种数乘次数最少的计算次序。专业整理word格式文档    对于n个矩阵的连乘积,设其不同的计算次序为P(n)。每种加括号方式都可以分解为两个子矩阵的加括号问题:(A1...Ak)(Ak+1…An)可以得到关于P(n)的递推式如下:       以上递推关系说明,P(n)是随n的增长呈指数增长的。因此,穷举法不是一个多项式时间复杂度算法。   2、重叠递归   从以上递推关系和构造最优解思路出发,即可写出有子问题重叠性的递归代码实现://3d1-1重叠子问题的递归最优解//A130*35A235*15A3

7、15*5A45*10A510*20A620*25//p[0-6]={30,35,15,5,10,20,25}#include"stdafx.h"#includeusingnamespacestd;constintL=7;intRecurMatrixChain(inti,intj,int**s,int*p);//递归求最优解voidTraceback(inti,intj,int*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。