7-2 矩阵连乘问题.pdf

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
矩阵连乘问题 给定n个矩阵:A , A , …, A ,其中A 与A 是可乘的。确定 1 2 n i i+1 一种连乘的顺序,使得矩阵连乘的计算量为最小。 设A和B分别是p ×q和q ×r的两个矩阵,则乘积C=AB为p ×r的 矩阵,计算量为pqr次数乘。 但是对于多于2个以上的矩阵连乘,连乘的顺序却非常重要, 因为不同的顺序的总计算量将会有很大的差别。 不同计算顺序的差别 设矩阵A , A 和A 分别为10×100, 100×5和5 ×50的矩阵, 1 2 3 现要计算A A A 。 1 2 3 − 若按((A A )A )来计算,则需要的数乘次数为 1 2 3 10×100×5 + 10 ×5 ×50 = 7500 − 若按(A (A A ))来计算,则需要的数乘次数为 1 2 3 100 ×5 ×50+ 10 ×100×50 = 75000 − 后一种计算顺序的计算量竟是前者的10倍! 所以,求多个矩阵的连乘积时,计算的结合顺序是十分重要的。 不同计算顺序的数量 设n个矩阵的连乘积有P(n)个不同的计算顺序。 −先在第k个和第k+1个矩阵之间将原矩阵序列分成两 个矩阵子序列,k=1 ,…,n ;再分别对两个子序列 完全加括号,最后对结果加括号,便得到原序列的 一种完全加括号方式。 不同计算顺序的数量 设n个矩阵的连乘积有P(n)个不同的计算顺序。 1 n = 1 由此可得出关于P(n)的递归式: P(n) n–1 ∑P(k) P(n–k) n >1 k=1 解此递归方程可得P(n) = C(n–1) ,其中 1 2n n 3/2 C(n) Ω(4 /n ) n+1 n 所以P(n)随n的增长呈指数增长。因而穷举搜索法不是有效的算法。 分解最优解的结构 将矩阵连乘积A A …A 记为A[i: j]。 i i+1 j 若A[1: n] 的一个最优解是在矩阵A 和A 处断开的,即A[1: n] k k+1 = (A[1: k] A[k+1: n]) ,则A[1: k]和A[k+1: n]也分别是最优解。 事实上,若A[1: k]的一个计算次序所需计算量更少的话,则用 此计算次序替换原来的次序,则得到A[1: n]一个更少的计算量, 这是一个矛盾。同理A[k+1: n]也是最优解。 最优子结构性质:最优解的子结构也最优的。 建立递归关系 令m[i][j] , 1≤i, j≤n ,为计算A[i, j] 的最少数乘次数, 则原问题为m[1][n]。 当i = j时,A[i, j]为单一矩阵,m[i][j] = 0 ; 当i <j 时,利用最优子结构性质有: m[i][j] = min{m[i][k] + m[k+1][j] + p p p } i–1 k j i≤k <j − 其中矩阵Ai ,

文档评论(0)

恬淡虚无 + 关注
实名认证
内容提供者

学高为师,身正为范.师者,传道授业解惑也。做一个有理想,有道德,有思想,有文化,有信念的人。 学无止境:活到老,学到老!有缘学习更多关注桃报:奉献教育,点店铺。

1亿VIP精品文档

相关文档