Optimizing and benchmarking the computation of the permanent of general matrices
By: Cassandra Masschelein, Michelle Richer, Paul W. Ayers
Potential Business Impact:
Calculates a hard math problem for computers.
Evaluating the permanent of a matrix is a fundamental computation that emerges in many domains, including traditional fields like computational complexity theory, graph theory, many-body quantum theory and emerging disciplines like machine learning and quantum computing. While conceptually simple, evaluating the permanent is extremely challenging: no polynomial-time algorithm is available (unless $\textsc{P} = \textsc{NP}$). To the best of our knowledge there is no publicly available software that automatically uses the most efficient algorithm for computing the permanent. In this work we designed, developed, and investigated the performance of our software package which evaluates the permanent of an arbitrary rectangular matrix, supporting three algorithms generally regarded as the fastest while giving the exact solution (the straightforward combinatoric algorithm, the Ryser algorithm, and the Glynn algorithm) and, optionally, automatically switching to the optimal algorithm based on the type and dimensionality of the input matrix. To do this, we developed an extension of the Glynn algorithm to rectangular matrices. Our free and open-source software package is distributed via Github, at https://github.com/theochem/matrix-permanent.
Similar Papers
An Algorithmic Upper Bound for Permanents via a Permanental Schur Inequality
Discrete Mathematics
Calculates a hard math problem for computers.
On the permanent of random tensors
Numerical Analysis
Finds a shortcut for hard math problems.
Permanental rank versus determinantal rank of random matrices over finite fields
Computational Complexity
Makes computers understand random math better.