1. 问题
设A1,A2…An为n个矩阵的序列,其中Ai为Pi-1×Pi阶矩阵,这个矩阵的输入用向量P=<P0,P1….Pn>给出;给定向量P,确定一种乘法次序,使得基本运算的总次数达到最小。
2. 解析
采用动态规划策略,迭代算法;用m[i,j]表示得到乘积Ai…j所用的最少基本运算次数,s[i,j]表示最后一次乘法运算的位置。
递推方程:
示例:
P = <10,20,15,5,30> n=4
A1:1020
A2:2015
A3:155
A4:530
(1)r = 1
m[1,1] = 0
m[2,2] = 0
m[3,3] = 0
m[4,4] = 0
(2)r = 2 i = 1,2,3 j = 2,3,4
m[1,2] = 102015 = 3000
m[2,3] = 20155 = 1500
m[3,4] = 15530 = 2250
(3)r = 3 i = 1,2 j = 3,4
m[1,3] = min{ m[1,1]+m[2,3]+A1(A2A3),m[1,2]+m[3,3]+(A1A2)A3}; s[1,3] &