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

动态规划算法用于矩阵连乘问题,通过最优子结构性质和递归关系,自底向上计算最优值,避免指数级的计算量。矩阵连乘的计算量与加括号方式有关,动态规划算法能找出最优的加括号顺序。
摘要由CSDN通过智能技术生成

动态规划算法与分页发类似,基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

与分冶法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是相互独立的。所以若用分冶法解这类问题,则分解得到的子问题太多,以至于最后解决原问题需要消耗指数时间。

在分冶法中,保存下了已解决的子问题的答案,在需要时再找出以求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。

动态规划的步骤:

(1)找出最优解的性质,并刻画其结构特征

(2)递归地定义最优值

(3)以自底向上的方式计算出最优值

(4)根据计算最优值时得到的信息,构造最优解


给定n个矩阵{A1,A2,...,An},其中相邻两矩阵课程,由于矩阵乘法满足结合律,故有不同的次序。这种计算次序可用加括号的方式确定。

若一个矩阵连成绩的计算次序完全确定,也就是说该连成绩已完全加括号,则可以依此次序运算。完全加括号的矩阵连乘积可递归定义为:(1)单个矩阵是完全加括号的(2)矩阵连乘积A是完全加括号的,则A可表示为A=(BC)


首先考虑两个矩阵乘积所需计算量,若A使p*q的矩阵,B是q*r的矩阵,则其乘积C=AB是一个p*r的矩阵,共需要pqr次数乘。

穷举搜索P(n)随n呈指数增长,下面考虑用动态规划法解:

1、分析最优解的结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值