1.问题
矩阵链乘法问题:
设A1,A2,…An为n个矩阵的序列,其中Ai为Pi-1×Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1…Pn>给出。给定向量P,确定一种乘法次序,使得基本运算的总次数达到最小。
例如,P=<10,100,5,50>,则A1:10×100,A2:100×5,A3:5×50,有两种结合次序,
1)(A1A2)A3:10×100×5+10×5×50=7500
2)A1(A2A3):10×100×50+100×5×50=75000
显然第二种优于第一种。
2.解析
2.1 蛮力法
枚举所有可能的乘法次序,针对每种次序计算基本运算的次数,从中找出具有最小运算次数的乘法次序,每一种乘法次序对应了一种在n给项中加n-1对括号。
2.2 动态规划法