Karppa & Kaski (2019) proposed a novel type of "broken" or "opportunistic" multiplication algorithm, based on a variant of Strassen's alkgorithm, and used this to develop new algorithms for Boolean matrix multiplication, among other tasks. For instance, their algorithm can compute Boolean matrix multiplication in $O(n^{\log_2(6 + 6/7)} \log n) = O(n^{2.778})$ time. While faster matrix multiplication algorithms exist asymptotically, in practice most such algorithms are infeasible for practical problems. Their opportunistic algorithm is a slight variant of Strassen's algorithm, so hopefully it should yield practical as well as asymptotic improvements to it. In this note, we describe a more efficient way to use the broken matrix multiplication algorithm to solve Boolean matrix multiplication. In brief, instead of running multiple iterations of the broken algorithm on the original input matrix, we form a new larger matrix by sampling and run a single iteration of the broken algorithm on it. The resulting algorithm has runtime $O( n^{\frac{3 \log 6}{\log 7}} (\log n)^{\frac{ \log 6}{\log 7}}) \leq O(n^{2.763})$. We also describe an extension to witnessing Boolean matrix multiplication, as well as extensions to non-square matrices. The new algorithm is simple and has reasonable constants. We hope it may lead to improved practical algorithms
翻译:Karppa & Kaski (2019年) 提出了一种新型的“ 碎裂” 或“ 机会性” 倍增算法, 以斯特拉斯森的 alkorithm 变量为基础, 并用它来开发布林矩阵乘法等新的算法。 例如, 他们的算法可以将布林矩阵乘法乘法以$O( n ⁇ log_ 2( 6 + 6/7}\log n) = O( n ⁇ 278} ) = O( n ⁇ 278} 时间。 虽然快速矩阵乘法的倍增算法存在, 但实际上大多数这样的算法对实际问题是行不通的。 它们的机会算法是斯特拉斯森的算法的微微变法, 希望它能产生实用的和符号性改进。 在这个注释中, 我们用一个更有效率的方法使用破碎的矩阵乘法来解布林矩阵乘法的倍增倍增。 简而言, 我们可以通过取样和运行一个新的更大的矩阵, 6-\\\\\\\ rlogrx rx 的算法, 7 。 我们的算法可以运行一个新的新的 nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx