矩阵乘问题

1. 问题

矩阵链乘法,特别要求举例时采用不同于讲义的数据进行推导。

2. 解析

A1,A2,A3,,Ann个矩阵的序列,其中AiPi-1×Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,P2,,Pn>给出。

给定向量 P,确定一种乘法次序,使得基本运算的总次数达到最小。

例如,P=<2,4,6,8>,A1:2×4,A2:4×6,A3:6×8

1)(A1A2)A3=246+268

2)A1(A2A3)=248+468

Aij:表示矩阵链相乘的子问题AiAi+1AjM[ij]:表示得到乘积Aij所用的最少基本运算次数;假设,最后一次相乘发生在矩阵链AikAk+1j之间,即

 

 

 

r为问题规模,n=3,i为起点=n-r+1,j为终点=i+r-1。

(1)r=1

m[1,1]=0;

m[2,2]=0;

m[3,3]=0;

(2)r=2,i=1,2;j=2,3

m[1,2]=246=48;

m[2,3]=468=192;

(3)r=3,i=1;j=3

m[1,3]=min{m[1,2]+m[3,3]+(A1A2)A3,m[1,1]+m[2,3]+A1(A2A3)};

3. 设计

 

 

 

4. 分析

T(n)=O(n3)

5. 源码

[github源码地址]

posted @ 2021-05-09 20:51  starshine0618  阅读(75)  评论(0编辑  收藏  举报