为啥我的 strassen 算法不适用于 3x3 矩阵?
Posted
技术标签:
【中文标题】为啥我的 strassen 算法不适用于 3x3 矩阵?【英文标题】:Why doesn't my strassen algorithm work for 3x3 matrices?为什么我的 strassen 算法不适用于 3x3 矩阵? 【发布时间】:2018-01-29 04:25:27 【问题描述】:我已经为 strassen 算法实现了以下代码 http://www.sanfoundry.com/java-program-strassen-algorithm/。 它适用于大多数矩阵,包括 2x2 和 4x4 矩阵,但不适用于 3x3 矩阵。任何想法为什么以及如何解决它?
【问题讨论】:
显示相关代码片段。 您需要添加一个minimal reproducible example,这将包括代码在问题本身中,而不是链接。 @1201ProgramAlarm code is too big enter here 这就是为什么我们强调minimal 【参考方案1】:看看施特拉森的工作方式。它的工作原理是分而治之。您没有发布代码,但它可能与尝试将 3x3 矩阵划分为 4 个无法完成的子矩阵有关。您可以用零填充 3x3 以创建一个矩阵,其维度可以拆分或仅使用基本矩阵 mult。
此外,Strassen 和递归 MM 算法需要一个基本情况来进行常规矩阵乘法,因为 Strassen 仅适用于较大的矩阵。取决于您的系统,但我的笔记本电脑需要大于 256x256 的矩阵才能让 Strassen 看到改进。
【讨论】:
以上是关于为啥我的 strassen 算法不适用于 3x3 矩阵?的主要内容,如果未能解决你的问题,请参考以下文章