Download PDFOpen PDF in browser

Post Mortem Analysis of SAT Solver Proofs

15 pagesPublished: July 28, 2014

Abstract

Conflict-Driven Clause Learning algorithms are well known from an engineer
point of view. Thanks to Minisat, their designs are well understood, and most
of their implementations follow the same ideas, with essentially the same
components. Same heuristics, fast restarts, same learning mechanism.
However, their efficiency has an important drawback: they are more and more
like complex systems and harder and harder to handle. Unfortunately, only a
few works are focusing on understanding them rather than improving them. In
most of the cases, their studies are often based on a generate and test
pattern: An idea is added to an existing solver and if it improves its
efficiency the idea is published and kept. In this paper, we analyse
``post-mortem'' the proofs given by one typical CDCL solver,
Glucose. The originality of our approach is that we only consider it as a
resolution proofs builder, and then we analyze some of the proof
characteristics on a set of selected unsatisfiable instances, by shuffling each of
them 200 times. We particularly focus on trying to characterize useless and
useful clauses in the proof as well as proofs shapes. We also show that
despite their incredible efficiency, roughly 90% of the time spent in a
CDCL is useless for producing the final proof.

Keyphrases: sat, sat proofs, sat solving

In: Daniel Le Berre (editor). POS-14. Fifth Pragmatics of SAT workshop, vol 27, pages 26-40.

BibTeX entry
@inproceedings{POS-14:Post_Mortem_Analysis_SAT,
  author    = {Laurent Simon},
  title     = {Post Mortem Analysis of SAT Solver Proofs},
  booktitle = {POS-14. Fifth Pragmatics of SAT workshop},
  editor    = {Daniel Le Berre},
  series    = {EPiC Series in Computing},
  volume    = {27},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/N3GD},
  doi       = {10.29007/gpp8},
  pages     = {26-40},
  year      = {2014}}
Download PDFOpen PDF in browser