Strassen算法

概述

Strassen算法 通过巧妙的子矩阵组合,将两个 矩阵乘法从 降至 ,是分治策略降低递归乘法次数的经典案例。

定义

Strassen算法

将两个 矩阵各分为4个 子矩阵,通过7次递归乘法(而非朴素分治的8次)和若干加法运算完成乘法计算。

核心性质

  • 递归关系,其中 来源于子矩阵的加减运算
  • 时间复杂度:由主定理情形1,
  • 关键思想:通过代数恒等式,将8次乘法减少为7次,以增加加减法为代价换取乘法次数的降低
  • 10次加/减法:每次递归需要执行10次 矩阵的加法或减法
  • 实际阈值:当 足够大时Strassen算法优于朴素算法,但对小矩阵有较大常数开销,实际实现中常设递归基的阈值

章节扩展

第4章:Strassen算法是4.1 矩阵乘法分治思想的改进,展示了减少递归分支数如何直接降低整体复杂度。其思想启发了后续更快的矩阵乘法算法(如Coppersmith-Winograd算法)。

参见