<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>An Introduction to GlueMiniSat</title> <meta name="description" content="A brief user guide for the GlueMiniSat boolean satisfiability problem (SAT) solver."> <meta name="keywords" content="GlueMiniSat, SAT, satisfiability, boolean satisfiability solver, propositional satisfiability solver, formal methods"> <meta name="generator" content="vim"> </head> <body lang="en"> <h1 align="center">An Introduction to GlueMiniSat</h1> <h2>Boolean, Propositional SAT Solvers</h2> The development of <a href="http://en.wikipedia.org/wiki/Satisfiability">boolean, propositional satisfiability</a> (SAT) solvers has been an active and fluid area of research since the 1990's. Most of the contemporary SAT solvers that are efficient, and complete are still based on the now 50 year old <a href="http://en.wikipedia.org/wiki/DPLL_algorithm">Davis, Putnam, Logemann, Loveland (DPLL) algorithm</a> with some unique <a href="http://en.wikipedia.org/wiki/Constraint_learning">constraint learning</a> algorithm. Many of the new ideas in the area of conflict-driven clause learning (CDCL) solvers are implemented using the open source <a href="http://minisat.se/">MiniSat</a> solver as a starting point. There is an active <a href=" http://groups.google.com/group/minisat">MiniSat developers forum</a> on Google groups. Given the fluid nature of the research, detailed documentation is sometimes hard to come by. This document will hopefully be of some help to users that have just recently become acquainted with the community. <p> <h2>About GlueMiniSat</h2> <p> GlueMiniSat is a <a href="http://en.wikipedia.org/wiki/Satisfiability">boolean, propositional satisfiability</a> (SAT) problem solver developed by Hidetomo Nabeshima, Koji Iwanuma, and Katsumi Inoue of the University of Yamanashi, Japan. It is a derivative work of the open source <a href="http://minisat.se/MiniSat.html">MiniSat 2.2</a> solver, and implements a form of the literal blocks distance (LBD) evaluation criteria to predict the quality of clauses learned when conflicts are encountered in the search process. </p> <h2>Background Theory</h2> <p> The underlying concepts of literal blocks distance were first introduced in reference <a href="#REF01">[1]</a>. The authors' implementation of LBD, the Glucose 1.0 SAT solver, performed admirably by placing 2-nd at the <a href="http://www.cril.univ-artois.fr/SAT09/">International 2009 SAT competition</a> in the Applications (UNSAT) category. Further information can be found at the <a href="http://www.lri.fr/~simon/glucose">Glucose Home Page</a>. </p> <p> GlueMiniSat uses a slightly restricted concept of LBD, called strict LBD, and a dynamic restart strategy based on local averages of the decision levels and the LBDs of learned clauses. Experimental results show that GlueMiniSat also performs very well on SAT instances that are unsatisfiable. GlueMiniSat earned 1-st place at the <a href="http://www.cril.univ-artois.fr/SAT11/">International 2011 SAT competition </a> in the Applications (UNSAT) category, solving 126 of 142 problem instances. A more detailed discussion of the author's variation of LBD in GlueMiniSat can be found in reference <a href="#REF02">[2]</a>. </p> <h2>Using GlueMiniSat</h2> <p> Since GlueMiniSat is based on the open source MiniSat 2.2 SAT solver, it supports all of the command line options that are supported by MiniSat 2.2. David Wheeler has written a short User Guide for MiniSat (reference <a href="#REF03">[3])</a>) that is accordingly applicable to GlueMiniSat. The document also provides a simple introduction to the boolean satisfiability problem making it useful to readers looking for a SAT tutorial. <p> Note that GlueMiniSat can also run as a "clone" of the MiniSat 2.2 or Glucose 1.0 SAT solvers by specifying the command line options -minisat or -glucose, respectively. A brief overview of the command line options that provide more detailed control of GlueMiniSat's implementation of LBD can be obtained by executing glueminisat with the --help-verb option. </p> <h2>References, Resources</h2> <p> <ol> <li value="1" id="REF01">"Predicting learnt clauses quality in modern SAT solvers" by Gilles Audemard and Laurent Simon, Proceedings of IJCAI-2009, pages 399-404, 2009. <a href="http://ijcai.org/papers09/Papers/IJCAI09-074.pdf">[PDF]</a> <li value="2" id="REF02">"System description of GlueMiniSat 2.2.5" by Hidetomo Nabeshima, Koji Iwanuma, and Katsumi Inoue, Mar 2011. From the <a href="http://glueminisat.nabelab.org/">GlueMiniSat Home Page</a>. <a href="http://glueminisat.nabelab.org/home/download/glueminisat2.2.5.pdf?attredirects=0&d=1">[PDF]</a> <li value="3" id="REF03"><a href="http://www.dwheeler.com/essays/minisat-user-guide.html">User Guide for MiniSat</a> by <a href="http://www.dwheeler.com">David Wheeler</a>. </ol> </p> </body> </html>