所以我读到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的算法来更快地完成它?
答案 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实现而不是传统乘法的人都会在计算效率上优先于实现的简单性。