Karppa & Kaski (2019) proposed a novel ``broken" or ``opportunistic" matrix multiplication algorithm, based on a variant of Strassen's algorithm, and used this to develop new algorithms for Boolean matrix multiplication, among other tasks. Their algorithm can compute Boolean matrix multiplication in $O(n^{2.778})$ time. While asymptotically faster matrix multiplication algorithms exist, most such algorithms are infeasible for practical problems. We describe an alternative way to use the broken multiplication algorithm to approximately compute matrix multiplication, either for real-valued 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 on it. Asymptotically, our algorithm has runtime $O(n^{2.763})$, a slight improvement over the Karppa-Kaski algorithm. Since the goal is to obtain new practical matrix-multiplication algorithms, we also estimate the concrete runtime for our algorithm for some large-scale sample problems. It appears that for these parameters, further optimizations are still needed to make our algorithm competitive.
翻译:Karppa和Kaski(2019)提出了一种新颖的“断裂式”或“机会式”矩阵乘法算法,该算法基于Strassen算法的变体,并用于开发布尔矩阵乘法等任务的新算法。该算法可在O(n^2.778)时间内计算布尔矩阵乘法。虽然存在渐近更快的矩阵乘法算法,但大多数此类算法在实际问题中不可行。我们描述了一种替代方法,利用断裂式乘法算法来近似计算矩阵乘法,无论是实值矩阵还是布尔矩阵。简而言之,我们不对原始输入矩阵运行多次断裂算法迭代,而是通过采样形成一个新的更大的矩阵,然后对其运行一次断裂算法。渐近意义上,我们的算法运行时间为O(n^2.763),比Karppa-Kaski算法略有改进。由于目标是获得新的实用矩阵乘法算法,我们还估计了算法在某些大规模样本问题上的具体运行时间。对于这些参数,似乎仍需进一步优化才能使我们的算法具有竞争力。