矩阵链的乘法
矩阵相乘的基本伪代码
MATRIC-MULTIPLY(A,B)
if (A.columns!=B.rows)
error"incompatible dimensions";
else let C be a new A.rows*B.columns matrix
for i=1 to A.rows
for j=1 to B.columns
C[i][j]=0;
for k=1 to A.columns
C[i][j]+=A[i][k]*B[k][j];
return C;
我们为什么要讨论阵链的最小代价乘法,因为我们确定最优顺序和进行这样顺序乘法所花费的总时间平均来看要远远小于我们直接进行乘法所耗费的时间。
对于一个特定的矩阵链来说,一共有多少种加括号的方法呢?我们可以采用以下的方式来确定。