Date post: | 12-Apr-2017 |
Category: |
Education |
Upload: | sara-malik |
View: | 140 times |
Download: | 0 times |
SAT SOLVER
PROJECT # 5
Group Members
– Ammara Nadeem– Iqra Hanif– Um E Habiba– Sara Malik
SAT– In computer science, the Satisfiability Problem is the
problem of determining if there exists an analysis that satisfies a given Boolean formula.
– SAT is a logic.
– SAT has very efficient implementations.
MINISAT
Introduction
MINISAT is a minimalistic, open-source SAT solver
It is developed to help researchers to get started on SAT.
It is released under the MIT license, and is currently used in a number of projects.
MINISAT was recently awarded in the three industrial categories.
Features of MINISAT:• Easy to modify. MINISAT is small and well-documented and
well-designed, making it an ideal starting point for adapting SAT based techniques.
• Highly efficient. Winning all the industrial categories of the SAT 2005 competition, MINISAT is a good starting point both for future research in SAT, and for applications using SAT.
• Designed for integration. It is a good choice for integrating as a backend to another tool, such as a model checker or a more generic constraint solver.
Input and Output format of MiniSatLike many SAT solvers, MiniSAT requires that its input be in conjunctive normal form (CNF or cnf).
CNF is built from these building blocks:
term: Term is either a boolean variable (e.g., x4) or a negated boolean variable (NOT x4, written here as -x4).
clause: Clause is a set of one or more terms, connected with OR (written here as |). boolean variables may not repeat inside a clause.
expression: Expression is a set of one or more clauses, each connected by AND (written here as &).
Example:
(x1 |-x5 | x4) &(-x1 | x5 | x3)
OUTPUT– It will output to either "SATISFIABLE"
or "UNSATISFIABLE" depending on whether or not the expression is satisfiable or not.
SPEAR SAT SOLVER
INTRODUCTION
SPEAR is an arithmetic theorem prover and is a simple SAT solver designed for proving software verification but is also fast on other industrial problems.
ArchitectureFollowing features were modelled after Minisat.
• Repeated restarts and learned clause minimizationThe implementation of the clause minimization was improved in several ways.
For example, Minisat uses stack-based work queue for clause minimization, while SPEAR uses FIFO, which has more memory access pattern, and is easier to optimize.
• SPEAR is very configurableAlmost all search parameters are modifiable from the command line. SPEAR supports individual and predefined parameter sets for specific problems.
This is an important feature, because various combinations of parameters can have drastic effects on the runtimes.
With default parameters, 287 software verification instances were solved in 160,441 sec, with 38 timeouts, while with the optimized parameters, the same set of instances were solved in 2,857 sec, without timeouts.
This large improvement was achieved with optimizing the parameters, so we expect more significant speedup once we optimize the parameters for software verification problems.
Cont..
Parameter Optimization
SPEAR is an excellent tool for automatic parameter optimizationfor the following reasons: • It has a large number of parameters of various types. Its 25 parameters include
categorical choices between heuristics, nominal parameters, as well as integer and continuous parameters.
• It shows state-of-the-art performance for a practically relevant class of problem instances, and tuning it will thus be of high practical relevance. In particular, in our analysis SPEAR consistently showed the best results for solving software verification instances.
Problems Faced:
– We faced problem in seeking the exact required algorithms to be optimized, code information and in downloading and installation of these SAT Solvers. We weren’t even able to get their application and on searching we get the error messages like ‘Page Not Found’. We couldn’t find any code of an open source SAT solver so that we could able to optimize that , consequently we only compared two SAT Solvers and discussed their strengths and weaknesses and found out which is an easy tool for optimization.
Conclusion:
– Our study concludes that SPEAR Tool is better in optimization than MINISAT in several ways. Because the implementation of the clause minimization is improved in SPEAR. In our
– Analysis SPEAR consistently showed the best results for solving software verification instances. SPEAR is very configurable. Almost all search parameters are modifiable from the command line. Besides setting individual parameters, SPEAR also supports predefined parameter sets for specific problems. Although Minisat is easy to modify, efficient to use and supports incremental SAT. But Minisat uses stack-based work queue for clause minimization, while SPEAR uses FIFO, which has a much more predictable memory access pattern, and is easier to optimize.
– Thus optimization is easy when done on Spear.
SCREENSHOTS
• The download links are given.
• After downloading, no .exe file is available for installation.
SAT Solvers we have Searched
Lingeling Glucose 4.0(2014PicoSAT relsat-relsat Sat4j satoRsat sato-3.2.1UBCSAT modocCryptoMiniSat 2clseqSpear peniLoPIHyperSAT Clasp BASolver Clingo (potassco)ArgoSAT Lingelin.Fast SAT Solver Plingeling BCSAT Treengeling zChaff
Problems in Downloading setups
• Unknown format error• Downloaded but no .exe file• User guide isn’t available• License issue• Incomplete Setups
Thank You