Computer Science > Data Structures and Algorithms
[Submitted on 22 Jul 2011 (v1), last revised 14 Oct 2011 (this version, v2)]
Title:Counting Perfect Matchings as Fast as Ryser
View PDFAbstract:We show that there is a polynomial space algorithm that counts the number of perfect matchings in an $n$-vertex graph in $O^*(2^{n/2})\subset O(1.415^n)$ time. ($O^*(f(n))$ suppresses functions polylogarithmic in $f(n)$).The previously fastest algorithms for the problem was the exponential space $O^*(((1+\sqrt{5})/2)^n) \subset O(1.619^n)$ time algorithm by Koivisto, and for polynomial space, the $O(1.942^n)$ time algorithm by Nederlof. Our new algorithm's runtime matches up to polynomial factors that of Ryser's 1963 algorithm for bipartite graphs. We present our algorithm in the more general setting of computing the hafnian over an arbitrary ring, analogously to Ryser's algorithm for permanent computation.
We also give a simple argument why the general exact set cover counting problem over a slightly superpolynomial sized family of subsets of an $n$ element ground set cannot be solved in $O^*(2^{(1-\epsilon_1)n})$ time for any $\epsilon_1>0$ unless there are $O^*(2^{(1-\epsilon_2)n})$ time algorithms for computing an $n\times n$ 0/1 matrix permanent, for some $\epsilon_2>0$ depending only on $\epsilon_1$.
Submission history
From: Andreas Bjorklund [view email][v1] Fri, 22 Jul 2011 09:49:47 UTC (14 KB)
[v2] Fri, 14 Oct 2011 06:30:50 UTC (14 KB)
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Connected Papers (What is Connected Papers?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
alphaXiv (What is alphaXiv?)
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Hugging Face (What is Huggingface?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.