sharpSAT – Counting Models with Advanced Component Caching and Implicit BCP

  • Marc Thurley
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4121)


We introduce sharpSAT, a new #SAT solver that is based on the well known DPLL algorithm and techniques from SAT and #SAT solvers. Most importantly, we introduce an entirely new approach of coding components, which reduces the cache size by at least one order of magnitude, and a new cache management scheme. Furthermore, we apply a well known look ahead based on BCP in a manner that is well suited for #SAT solving. We show that these techniques are highly beneficial, especially on large structured instances, such that our solver performs significantly better than other #SAT solvers.


Conjunctive Normal Form Cache Size Unit Clause Bound Model Check Branch Variable 
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.
  2. 2.
    Bayardo, R.J., Pehoushek, J.D.: Counting models using connected components. In: Proceedings, AAAI 2000: 17th International Conference on Artificial Intelligence, pp. 157–162 (2000)Google Scholar
  3. 3.
    Birnbaum, E., Lozinskii, E.L.: The good old davis-putnam procedure helps counting models. Journal of Artificial Intelligence Research (1999)Google Scholar
  4. 4.
    Davis, M., Logeman, G., Loveland, D.: A machine program for theorem-proving. Communications of the ACM (1962)Google Scholar
  5. 5.
    Goldberg, E., Novikov, Y.: Berkmin: A fast and robust sat-solver. Design, Automation and Test in Europe (DATE 2002), 142–149 (2002)Google Scholar
  6. 6.
    Li, C.M., Anbulagan: Heuristics based on unit propagation for satisfiability problems. In: IJCAI (1), pp. 366–371 (1997)Google Scholar
  7. 7.
    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 (DAC 2001) (June 2001)Google Scholar
  8. 8.
    Ryan, L.: Efficient algorithms for clause learning sat solvers. Master’s thesis, Simon Fraser University (2004)Google Scholar
  9. 9.
    Sang, T., Bacchus, F., Beame, P., Kautz, H., Pitassi, T.: Combining component caching and clause learning for effective model counting. In: Seventh International Conference on Theory and Applications of Satisfiability Testing (2004)Google Scholar
  10. 10.
    Sang, T., Beame, P., Kautz, H.: Heuristics for fast exact model counting. In: Bacchus, F., Walsh, T. (eds.) SAT 2005. LNCS, vol. 3569, Springer, Heidelberg (2005)CrossRefGoogle Scholar
  11. 11.
    Silva, J.P.M., Sakallah, K.A.: Grasp - a new search algorithm for satisfiability. In: Proceedings of IEEE/ACM International Conference on Computer-Aided Design, November 1996, pp. 220–227 (1996)Google Scholar
  12. 12.
    Zhang, L., Madigan, C.F., Moskewicz, M.W., Malik, S.: Efficient conflict driven learning in a boolean satisfiability solver. In: International Conference on Computer-Aided Design (ICCAD 2001), pp. 279–285 (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Marc Thurley
    • 1
  1. 1.Institut für InformatikHumboldt-Universität zu Berlin 

Personalised recommendations