Heuristics for Fast Exact Model Counting

  • Tian Sang
  • Paul Beame
  • Henry Kautz
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3569)


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.


Search Tree Unit Propagation Marginal Probability Satisfying Assignment Clause Learning 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Lalas, G., Kaporis, A., Kirousis, L.: The probabilistics analysis of a greedy satisfiability algorithm. In: Möhring, R.H., Raman, R. (eds.) ESA 2002. LNCS, vol. 2461, pp. 574–585. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Bacchus, F., Dalmao, S., Pitassi, T.: Algorithms and Complexity Results for #SAT and Bayesian inference. In: Proceedings 44th Annual Symposium on Foundations of Computer Science, Boston, MA, October 2003. IEEE, Los Alamitos (2003)Google Scholar
  3. 3.
    Bacchus, F., Dalmao, S., Pitassi, T.: Value elimination: Bayesian inference via backtracking search. In: Uncertainty in Artificial Intelligence (UAI 2003), pp. 20–28 (2003)Google Scholar
  4. 4.
    Bayardo Jr., R.J., Pehoushek, J.D.: Counting models using connected components. In: Proceedings, AAAI 2000: 17th National Conference on Artificial Intelligence, pp. 157–162 (2000)Google Scholar
  5. 5.
    Beame, P., Impagliazzo, R., Pitassi, T., Segerlind, N.: Memoization and DPLL: Formula Caching proof systems. In: Proceedings Eighteenth Annual IEEE Conference on Computational Complexity, Aarhus, Denmark, July 2003, pp. 225–236 (2003)Google Scholar
  6. 6.
    Goldberg, E., Novikov, Y.: Berkmin: a fast and robust sat-solver. In: Proceedings of the Design and Test in Europe Conference, March 2002, pp. 142–149 (2002)Google Scholar
  7. 7.
    Majercik, S.M., Littman, M.L.: Using caching to solve larger probabilistic planning problems. In: Proceedings of the 14th AAAI, pp. 954–959 (1998)Google Scholar
  8. 8.
    Marques Silva, J.P., Sakallah, K.A.: GRASP – a new search algorithm for satisfiability. In: Proceedings of the International Conference on Computer Aided Design, San Jose, CA, November 1996, pp. 220–227. ACM/IEEE (1996)Google Scholar
  9. 9.
    Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: Engineering an efficient SAT solver. In: Proceedings of the 38th Design Automation Conference, Las Vegas, NV, June 2001, pp. 530–535. ACM/IEEE (2001)Google Scholar
  10. 10.
    Sang, T., Bacchus, F., Beame, P., Kautz, H., Pitassi, T.: Combining component caching and clause learning for effective model counting. In: Hoos, H.H., Mitchell, D.G. (eds.) SAT 2004. LNCS, vol. 3542. Springer, Heidelberg (2005)Google Scholar
  11. 11.
    Sang, T., Beame, P., Kautz, H.: Solving bayeian networks by weighted model counting (2005) (submitted)Google Scholar
  12. 12.
    Marques Silva, J.P.: The impact of branching heuristics in propositional satisfiability algorithms. In: Proceedings of the 9th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence, pp. 62–74 (1999)Google Scholar
  13. 13.
    Zhang, H.: SATO: An efficient propositional prover. In: McCune, W. (ed.) CADE 1997. LNCS (LNAI), vol. 1249, pp. 272–275. Springer, Heidelberg (1997)Google Scholar
  14. 14.
    Zhang, L., Madigan, C.F., Moskewicz, M.H., Malik, S.: Efficient conflict driven learning in a boolean satisfiability solver. In: Proceedings of the International Conference on Computer Aided Design, San Jose, CA, November 2001, pp. 279–285. ACM/IEEE (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Tian Sang
    • 1
  • Paul Beame
    • 1
  • Henry Kautz
    • 1
  1. 1.Computer Science and EngineeringUniversity of WashingtonSeattleUSA

Personalised recommendations