当一维比另一维大得多时,矩阵乘法

时间:2016-06-13 21:35:43

标签: algorithm matrix-multiplication

所以我读到Strassen的矩阵乘法算法具有复杂度O(n ^ 2.8) 但它只有在A是n x n且B是n x n时才有效 如果 A是m×n,B是n×o 并且m比n和o大得多,但是n和o仍然很大 用零填充可能会使乘法花费更长时间

我正在做一个需要乘以这样一个矩阵的项目,所以我希望得到一些建议 我应该使用传统算法还是有办法修改Strassen的算法来更快地完成它?

1 个答案:

答案 0 :(得分:1)

https://en.m.wikipedia.org/wiki/Strassen_algorithm

  
      
  • 尺寸为[2N×N] * [N×10N]的乘积可以作为20个单独的[N×N] * [N×N]运算完成,排列形成结果;

  •   
  • 尺寸为[N x 10N] * [10N×N]的乘积可以作为10个单独的[N×N] * [N×N]运算完成,求和以形成结果。

  •   
     

与简单地填充到两个幂的平方相比,这些技术将使实现更复杂;然而,合理的假设是,任何进行Strassen实现而不是传统乘法的人都会在计算效率上优先于实现的简单性。