Karppa & Kaski (2019) proposed a novel type of ``broken" or ``opportunistic" multiplication algorithm, based on a variant of Strassen's algorithm, 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. In this note, we describe an alternate way to use the broken matrix multiplication algorithm to approximately compute matrix multiplication, either for real-valued matrices or Boolean matrices. 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. Asymptotically, the resulting algorithm has runtime $O(n^{\frac{3 \log6}{\log7}} \log n) \leq O(n^{2.763})$, a slight improvement of Karppa-Kaski's algorithm. Since the goal is to obtain new practical matrix-multiplication algorithms, these asymptotic runtime bounds are not directly useful. We estimate the runtime for our algorithm for some sample problems which are at the upper limits of practical algorithms; unfortunately, for these parameters, the new algorithm does not appear to be beneficial.
翻译:Karppa & Kaski (2019) 提出了一类新型"破损"或"机会"乘法算法,基于Strassen算法的一种变体,并将其用于开发布尔矩阵乘法等任务的新算法。例如,他们的算法可在$O(n^{\log_2(6+6/7)} \log n) = O(n^{2.778})$时间内完成布尔矩阵乘法。尽管渐近意义上存在更快的矩阵乘法算法,但在实践中,大多数此类算法对实际问题并不可行。本文描述了利用破损矩阵乘法算法近似计算矩阵乘法的另一种方法,可适用于实值矩阵或布尔矩阵。简而言之,不是在原始输入矩阵上多次迭代运行破损算法,而是通过采样构建一个更大的新矩阵并运行单次破损算法迭代。渐近意义上,该算法的运行时间为$O(n^{\frac{3 \log6}{\log7}} \log n) \leq O(n^{2.763})$,相较于Karppa-Kaski算法略有改进。由于目标是获得实用的新型矩阵乘法算法,这些渐近运行时间界限并不直接有用。我们针对处于实用算法上限的若干示例问题估算了算法运行时间;遗憾的是,对于这些参数,新算法似乎并未带来优势。