矩阵乘法
概述
矩阵乘法(Matrix Multiplication)是线性代数和算法中的基本运算。两个 矩阵相乘的朴素算法时间复杂度为 。通过Strassen 算法等分治方法可优化至 ,Coppersmith-Winograd 算法进一步优化至 。矩阵乘法在图算法(如 Floyd-Warshall)和线性方程组求解中有重要应用。
定义
矩阵乘法(Matrix Multiplication)
给定两个 矩阵 和 ,其乘积 也是一个 矩阵,其中:
朴素算法需要计算 个元素,每个元素需要 次乘法和 次加法,总时间复杂度为 。
核心性质
| 性质 | 描述 | 备注 |
|---|---|---|
| 不满足交换律 | (一般情况) | 与标量乘法不同 |
| 满足结合律 | 可以任意改变计算顺序 | |
| 分配律 | 矩阵乘法对加法的分配律 | |
| 朴素复杂度 | 三重循环的基本实现 | |
| Strassen 优化 | 分治方法,减少乘法次数 | |
| 理论最优 | (2023 年最新结果) | 实际应用中仍常用朴素或 Strassen |
算法复杂度对比
| 算法 | 时间复杂度 | 特点 |
|---|---|---|
| 朴素算法 | 实现简单,常数因子小 | |
| Strassen | 分治法, 较大时优于朴素 | |
| Coppersmith-Winograd | 理论突破,实际不实用 | |
| 最新理论结果 | 纯理论意义 |
应用场景
- 图的最短路径:Floyd-Warshall 算法本质上是矩阵乘法的变体( 半环上的矩阵乘法)
- 线性方程组求解: 的求解涉及矩阵运算
- 计算机图形学:变换矩阵的复合(旋转、缩放、平移)
- 机器学习:神经网络的前向传播本质上是矩阵乘法
- 密码学:某些加密算法使用矩阵运算
参见
- Strassen算法 — 分治法优化的矩阵乘法
- 分治法 — Strassen 算法的设计策略
- 矩阵 — 矩阵的基本概念和运算
- 动态多线程 — 并行矩阵乘法