动态规划——矩阵连乘问题

  

由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。

例如,计算三个矩阵连乘{A1,A2,A3};维数分别为10×100 , 100×5 , 5×50 按此顺序计算需要的次数((A1A2)A3):10X100X5+10X5X50=7500次,按此顺序计算需要的次数(A1(A2A3)):10X100X50+100X5X50=75000次。

那么我们列出计算m[i][j]的矩阵,其中m[i][j]是计算了Ai*Aj,比如m[1][2]就是A1*A2=15750,m[2][3]就是A2*A3=2625,而m[1][3]则是A1*A2*A3,即A1*(A2*A3)+m[2][3],而m[2][4]是(A2*A3)*A4。也就是说,m[i][j]代表了从Ai*...Aj的矩阵连乘的最小值,而m[i][j]=m[i][i+t]+m[i+t+1][j]+p(i-1)p(i+t)pj

其中t>=0,i+t<j.

 

 通过第一题我们初步了解了动态规划的思想:因为问题的规模是不确定的,因此我们用同一个算法解决不同规模问题的时候,肯定有大量的重复计算的内容,这会导致我们花费的时间更长。因此在动态规划算法中我们在解决一个更小规模的问题的时候,可以保存其答案,那么当计算更大规模的问题时,我们就可以使用之前保存过的答案,避免相同内容的重复运算,使得计算的时间更短。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值