Counting perfect matchings as fast as Ryser

Andreas Björklund

Research output: Chapter in Book/Report/Conference proceedingPaper in conference proceedingpeer-review

Abstract

We show that there is a polynomial space algorithm that counts the number of perfect matchings in an n-vertex graph in O*(2n/2) ⊂ O(1.415n) time. (O*(f(n)) suppresses functions polylogarithmic in f(n)). The previously fastest algorithms for the problem was the exponential space O*(((1 + √5)/2)n) ⊂ O(1.619n) time algorithm by Koivisto, and for polynomial space, the O(1.942n) 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−ε1)n) time for any ε1 > 0 unless there are O*(2(1−ε2)n) time algorithms for computing an n x n 0/1 matrix permanent, for some ε2 > 0 depending only on ε1.
Original languageEnglish
Title of host publication[Host publication title missing]
PublisherSociety for Industrial and Applied Mathematics
Pages914-921
Publication statusPublished - 2012
EventACM-SIAM Symposium on Discrete Algorithms - Kyoto, Japan
Duration: 2012 Jan 172012 Jan 19

Conference

ConferenceACM-SIAM Symposium on Discrete Algorithms
Country/TerritoryJapan
CityKyoto
Period2012/01/172012/01/19

Subject classification (UKÄ)

  • Computer Sciences

Fingerprint

Dive into the research topics of 'Counting perfect matchings as fast as Ryser'. Together they form a unique fingerprint.

Cite this