矩阵连乘 动态规划_动态规划解矩阵连乘问题

本文深入探讨了动态规划在解决矩阵链乘问题中的应用,通过递归分析和最优子结构证明,展示了如何通过最小化乘法次数来优化矩阵相乘的顺序。文章通过逐步计算和比较,揭示了动态规划的自底向上方法如何避免子问题的重复计算,并与装配线调度问题进行了对比,最后提到了相关代码实现和类似问题。
摘要由CSDN通过智能技术生成

一.矩阵链事例

96a6eb9cc1a3ee4138f7ddb6b5e50339.png

矩阵链问题主要涉及的时在多个矩阵相乘,如何通过相乘的顺序来减少程序运行。

二.例题分析

这次分析过程按照动态规划的三个基本条件来逐步解答:

1、寻找最优子结构:假设我们已经找到父矩阵链最优解,当我们划分到最后一步时都是两个子矩阵链(分别被括号包围)相乘,如(A1A2A3A4)(A5A6A7),此时显然外括号为父矩阵的最优括号划分。继续往下划分,((A1A2A3)A4)(A5(A6A7)),则两个子矩阵链的划分括号必须也为他们本身的最优括号划分。因为如果子矩阵链的划分括号不是他们本身的最优括号划分时,两个子矩阵链就有另一种最优括号划分,如(A1(A2A3A4))(A5(A6A7))。那么就与我们的假设相悖。((A1A2A3)A4)(A5(A6A7))不是我们父矩阵最优解。所以拥有最优划分的父矩阵的子矩阵链显然也拥有最优划分。

2、子问题重叠:看到步骤一是不是感觉这个问题可以使用递归来解决?显然可以。算法导论给出如下递归公式:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值