Heuristics for Fast Exact Model Counting

An important extension of satisfiability testing is model-counting, a task that corresponds to problems such as probabilistic reasoning and computing the permanent of a Boolean matrix. We recently introduced Cachet, an exact model-counting algorithm that combines formula caching, clause learning, and component analysis. This paper reports on experiments with various techniques for improving the performance of Cachet, including component-selection strategies, variable-selection branching heuristics, randomization, backtracking schemes, and cross-component implications. The result of this work is a highly-tuned version of Cachet, the first (and currently, only) system able to exactly determine the marginal probabilities of variables in random 3-SAT formulas with 150+ variables. We use this to discover an interesting property of random formulas that does not seem to have been previously observed.

[1]  Russell Impagliazzo,et al.  Memoization and DPLL: formula caching proof systems , 2003, 18th IEEE Annual Conference on Computational Complexity, 2003. Proceedings..

[2]  Toniann Pitassi,et al.  Algorithms and complexity results for #SAT and Bayesian inference , 2003, 44th Annual IEEE Symposium on Foundations of Computer Science, 2003. Proceedings..

[3]  Toniann Pitassi,et al.  Combining Component Caching and Clause Learning for Effective Model Counting , 2004, SAT.

[4]  Karem A. Sakallah,et al.  GRASP—a new search algorithm for satisfiability , 1996, ICCAD 1996.

[5]  Eugene Goldberg,et al.  BerkMin: A Fast and Robust Sat-Solver , 2002, Discret. Appl. Math..

[6]  Toniann Pitassi,et al.  Value Elimination: Bayesian Interence via Backtracking Search , 2002, UAI.

[7]  Michael L. Littman,et al.  Using Caching to Solve Larger Probabilistic Planning Problems , 1998, AAAI/IAAI.

[8]  Sharad Malik,et al.  Efficient conflict driven learning in a Boolean satisfiability solver , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[9]  Henry A. Kautz,et al.  Solving Bayesian Networks by Weighted Model Counting , 2005 .

[10]  William McCune,et al.  Automated Deduction—CADE-14 , 1997, Lecture Notes in Computer Science.

[11]  Joao Marques-Silva,et al.  The Impact of Branching Heuristics in Propositional Satisfiability Algorithms , 1999, EPIA.

[12]  Roberto J. Bayardo,et al.  Counting Models Using Connected Components , 2000, AAAI/IAAI.

[13]  Rajeev Raman,et al.  Algorithms — ESA 2002 , 2002, Lecture Notes in Computer Science.

[14]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[15]  Lefteris M. Kirousis,et al.  The probabilistic analysis of a greedy satisfiability algorithm , 2002, Random Struct. Algorithms.

[16]  Hantao Zhang,et al.  SATO: An Efficient Propositional Prover , 1997, CADE.

[17]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.