算法导论之矩阵链乘法详解

这篇博客详细介绍了矩阵链乘法问题,包括矩阵链的完全括号化、矩阵链乘法问题的定义、括号化方案的数量,以及如何应用动态规划方法解决该问题。动态规划解决方案通过自底向上的表格法避免了递归带来的重复计算,减少了计算复杂性。
摘要由CSDN通过智能技术生成

内容都是是算法导论上的,仅作为一个阅读笔记,记录一下自己阅读过程中碰到的一些问题。希望能对需要的同学有所帮助!

矩阵链乘法是指给定一个n个矩阵的序列(矩阵链)< A1, A2, …, An>,我们希望计算它们的乘积

A1A2A3…An

对于这个问题,我们可以先用括号明确计算的次序,然后利用标准的矩阵相乘算法进行计算。由于矩阵乘法满足结合律,所以任何加括号的方法都会得到相同的计算结果。

1、矩阵链的完全括号化

如果矩阵链是单一矩阵(即只有一个矩阵),或者是两个完全括号化的矩阵乘积链的积,且已外加括号,那么这个矩阵链是完全括号化的。

例如,如果矩阵链为< A1, A2, A3, A4>,则共有5种完全括号化的矩阵乘积链:


(A1(A2(A3A4)))
(A1((A2A3)A4))
((A1A2)(A3A4))
((A1(A2A3))A4)
(((A1A2)A3)A4)

因为对矩阵链加括号的方式不同会对乘积运算的代价产生巨大影响,所以用找出一种最好的加括号方式来减少运算量。

2、矩阵链乘法问题

矩阵链乘法问题可以描述为:给定n个矩阵的链< A1, A2, …, An>,矩阵Ai的规模为pi-1×Pi,求完全括号化方案,使得计算乘积A1A2…An所需的乘法次数最少。

注意:求解矩阵链乘法问题并不是要真正进行矩阵相乘运算,我们的目标只是确定代价最小的运算顺序

3、有多少括号化方案

我们可以先来确定一下有多少括号化方案。对一个n个矩阵的链,令P(n)表示可供选择的括号化方案的数量。当n=1时,由于只有一个矩阵,因此只有一种完全括

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值