1. 描述
给定由n个要相乘的矩阵构成的序列<A1, A2, ..., An>,要计算乘积
A1A2...An
矩阵的乘法满足结合率,然而不同的结合虽然运算结果一样,但需要运算的次数是不相同的,例如:设3个矩阵的维数分别为10x100,100x5,5x50。如果按((A1A2)A3)的次序相乘,共要做10x100x5 + 10x5x50 = 7500次乘法。如果按(A1(A2A3))的次序来计算,共要做100x5x50 + 10x100x50 = 50000此乘法,因此加括号的顺序很重要。
设矩阵Ai的维数为p[i - 1],i = 1,2,...,n。对乘积A1A2...An以一种最小化乘法运算次数的方法对其进行加全部括号。
2. 递推公式
设m[i][j]为AiAi+1...Aj的最小乘法次数(i,j = 1,2,...,n),则m[1][n]为最终结果,即A1A2...A