1.问题
设 A1,A2,……,An为n个矩阵的序列,其中Ai为p(i-1)*pi阶矩阵,这个矩阵链的输入用向
量p=<p0,p1,……,pn>给出。
2.解析
假定,最后一次相乘发生在矩阵链A(i…k)和A(k+1)-j之间,即
m[i…j]=min(i<=k<j){m[i,k]+m[k+1,j]+P(i-1)PkPj}满足优化原则,即m[i…j]最小值时,m[i,k]和m[k+1,j]也是最小的。
3.设计
for i=1 to n {填充对角线d0}
C[i,i]=0;
end for
for d=1 to n-1 {填充对角线d1到dn-1}
for i=1 to n-d {填充对角线di的项目}
j=i+d
comment:下列三行计算C[i,j]
C[i,j]=inf
for k=i+1 to j
C[i,j]=Min{C[i,j],C[i,k-1]+C[k,j]+r[i]*r[k]*[j+1]
end for
end for
end for
return C[1,n]