2021arXiv (Cornell University)Open access

Improved algorithms for Boolean matrix multiplication via opportunistic matrix multiplication.

David G. Harris

Open full text 1 citations

Abstract

Karppa & Kaski (2019) proposed a novel type of or 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

About this research paper

What this paper is about

Karppa & Kaski (2019) proposed a novel type of or 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

Why it matters

OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Karppa & Kaski (2019) proposed a novel type of or 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

Key concepts: Strassen algorithm, Matrix multiplication, Multiplication algorithm, Multiplication (music), Matrix (chemical analysis), Algorithm, Mathematics, Freivalds' algorithm

Related papers

Back to paper searchBrowse research topicsOriginal source
Improved algorithms for Boolean matrix multiplication via opportunistic matrix multiplication. — Research Paper | ScholarLens