矩阵链的乘法问题
P=<20,70,25,30,5,35,10> 它对应6个矩阵
A1:20*70 A2:70*25 A3:25*30 A4:30*5 A5:5*35 A6:35*10
先计算:
m[1,1]=0 m[2,2]=0 m[3,3]=0 m[4,4]=0 m[5,5]=0 m[6,6]=0
当r=2表示两个矩阵相乘的运算量
m[1,2]=20*70*25=35,000
m[2,3]=70*25*30=52500
m[3,4]=25*30*5=3750
m[4,5]=30*5*35=5250
m[5,6]=5*35*10=1750
当r=3表示3个矩阵相乘的运算量
m[1,3]=min{m[1,2]+20*25*30,m[2,3]+20*70*30}=min{35000+15000,52500+42000}=min{50000,94500}=50000 (A1A2)A3 s[1,3]= 2
m[2,4]=min{m[2,3]+70*30*5,m[3,4]+70*25*5}=min{52500+10500,3750+8750}=min{63000,12500}=12500 A2(A3A4) s[2,4]=2
m[3,5]=min{m[3,4]+25*5*35,m[4,5]+25*30*35}=min{3750+4375,5250+26250}=min{8125,31500}=8125 (A3A4)A5 s[3,5]=4
m[4,6]=min{m[4,5]+30*35*10,m[5,6]+30*5*10}=min{5250+10500,1750+1500}=min{15750,3250}=3250 A4(A5A6) s[4,6]=4
当r=4表示4个矩阵相乘的运算量
m[1,4]=min{m[1,3]+20*30*5,m[2,4]+20*70*5,m[1,2]+m[3,4]+20*25*5}
=min{50000+3000,12500+7000,35000+3750+2500}
=19500 A1(A2A3A4)---->A1(A2(A3A4)) s[1,4]=1
m[2,5]=min{m[2,4]+70*5*35,m[3,5]+70*25*35,m[2,3]+m[4,5]+70*30*35}
=min{12500+61250,8125+61250,52500+5250+73500}
=69375 A2(A3A4A5)---->A2((A3A4)A5) s[2,5]=2
m[3,6]=min{m[3,5]+25*35*10,m[4,6]+25*30*10,m[3,4]+m[5,6]+25*5*10}
=min{8125+8750,3250+7500,3750+1750+1250}
=6750 (A3A4)(A5A6) s[3,6]=4
当r=5表示5个矩阵相乘的运算量
m[1,5]=min{m[1,4]+20*5*35,m[2,5]+20*70*35,m[1,3]+m[4,5]+20*30*35,m[1,2]+m[3,5]+20*25*35}
=min{19500+3500,69375+49000,50000+5250+21000,35000+8125+17500}
=23000 (A1A2A3A4)A5 ---->(A1(A2(A3A4)))A5 s[1,5]=4
m[2,6]=min{m[2,5]+70*35*10,m[3,6]+70*25*10,m[2,3]+m[4,6]+70*30*10,m[2,4]+m[5,6]+70*5*10}
=min{69375+24500,10750+17500,52500+3250+21000,12500+1750+3500}
=17750 (A2A3A4)(A5A6) s[2,6]=4
当r=6表示6个矩阵相乘的运算量
m[1,6]=min{m[1,5]+20*35*10,m[2,6]+20*70*10,m[1,3]+m[4,6]+20*30*10,m[1,2]+m[3,6]+20*25*10,m[1,4]+m[5,6]+20*5*10}
=min{23000+7000,17750+14000,50000+3250+6000,35000+6750+5000,19500+1750+1000}
=22250 (A1A2A3A4)(A5A6)---->(A1(A2(A3A4)))(A5A6) s[1,6]=4
优化函数备忘录:
r=1 m[1,1]=0 m[2,2]=0 m[3,3]=0 m[4,4]=0 m[5,5]=0 m[6,6]=0
r=2 m[1,2]=35,000 m[2,3]=52500 m[3,4]=3750 m[4,5]=5250 m[5,6]=1750
r=3 m[1,3]=50000 m[2,4]=12500 m[3,5]=8125 m[4,6]=3250
r=4 m[1,4]=19500 m[2,5]=69375 m[3,6]=6750
r=5 m[1,5]=23000 m[2,6]=17750
标记函数
r=2 s[1,2]=1 s[2,3]=2 s[3,4]=3 s[4,5]=4 s[5,6]=5
r=3 s[1,3]=2 s[2,4]=2 s[3,5]=4 s[4,6]=4
r=4 s[1,4]=1 s[2,5]=2 s[3,6]=4
r=5 s[1,5]=4 s[2,6]=4
根据s[1,6]=4 推出最后一次划分的位置为4 (A1A2A3A4)(A5A6) 然后再由(A1A2A3A4)找s[1,4]=1 推出最后一次划分位置为1 A1(A2A3A4)---->A1(A2(A3A4))
所以最终答案为:(A1(A2(A3A4)))(A5A6) 运算次数为:22250