我是靠谱客的博主 正直咖啡,最近开发中收集的这篇文章主要介绍动态规划——矩阵连乘问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  

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

例如,计算三个矩阵连乘{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.

 

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

最后

以上就是正直咖啡为你收集整理的动态规划——矩阵连乘问题的全部内容,希望文章能够帮你解决动态规划——矩阵连乘问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部