问题描述:有N个矩阵A1...AN,求某种加括号的方法,让他们计算量最小。
分析:
两个矩阵相乘的计算量:两个矩阵长宽分别为n*m和m*k的相乘,其要进行n*k*m次的乘法和加法。
一个矩阵链乘完的结果:Ai*...*Aj 长为ni nj+1 其中Ai的长宽为ni、ni+1。
其实这个问题解决方法没有什么很亮的地方,无非是某种穷举而已,然后用DP从下向上解出来。
设m[i,j]为Ai*...*Aj的最优括号方式,则,其中的某个括号将把Ai*...*Aj分割为Ai*...*Ak Ak+1*...*AN.