摘要:
问题:n个矩阵M1M2……Mn链乘法的耗费,取决于n-1个乘法执行的顺序。现在要找到其最小次数的乘法执行顺序。如,n = 4,有以下可能的顺序:(M1(M2(M3M4)))(M1((M2M3)M4))((M1M2)(M3M4))(((M1M2)M3)M4)((M1(M2M3))M4)如果使用暴力算法枚举,时间复杂度为O(2n)。运用动态规划技术,可以将时间复杂度降为O(n3).算法基本思路:1.得到最小乘法次数(1)将矩阵序列在其中找出某个k位置,将其分为两部分;分别求出这两部分的最优解,然后再将其加上这两部分相乘的耗费,就是用当前划分所需要的乘法次数;依次枚举按k划分,比较并取最小乘法次数。 阅读全文