Strassen算法

概述

Strassen 算法(Strassen’s Algorithm)是 Volker Strassen 于 1969 年提出的分治矩阵乘法算法。其核心创新是将两个 矩阵相乘所需的乘法次数从 8 次减少为 7 次,通过递归应用将时间复杂度从朴素 降低到 。这是第一个打破 壁垒的矩阵乘法算法。

定义

Strassen 算法(Strassen's Algorithm)

将两个 矩阵 各分为 4 个 的子矩阵:

朴素方法需要 8 次子矩阵乘法和 4 次加法。Strassen 算法只做 7 次乘法(和 18 次加/减法),构造 7 个中间矩阵:

最终结果:

核心性质

性质描述备注
乘法次数7 次(而非朴素 8 次)每次递归减少 1 次乘法
加法次数18 次加/减法(多于朴素的 4 次)加法代价低于乘法
时间复杂度主定理情形一得出
实际指数优于 ,劣于
历史意义第一个打破 壁垒的矩阵乘法算法1969 年提出,开创了快速矩阵乘法领域

复杂度分析

主定理分析递推关系

  • ,其中
  • 适用情形一

应用场景

  • 大规模矩阵乘法:当 较大时,Strassen 算法优于朴素算法
  • 理论意义:证明了矩阵乘法可以亚立方时间完成
  • 后续发展:Coppersmith-Winograd 算法 ,目前最优

参见