Successfully reported this slideshow.
Upcoming SlideShare
×

# Formal method

217 views

Published on

SAT solvers

Published in: Education
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

### Formal method

1. 1. SAT SOLVER PROJECT # 5
2. 2. Group Members – Ammara Nadeem – Iqra Hanif – Um E Habiba – Sara Malik
3. 3. 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.
4. 4. MINISAT
5. 5. 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.
6. 6. 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.
7. 7. Input andOutput format of MiniSat Like 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 &).
8. 8. Example: (x1 |-x5 | x4) &(-x1 | x5 | x3)
9. 9. OUTPUT – It will output to either "SATISFIABLE" or "UNSATISFIABLE" depending on whether or not the expression is satisfiable or not.
10. 10. SPEAR SAT SOLVER
11. 11. 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.
12. 12. Architecture Following features were modelled after Minisat. • Repeated restarts and learned clause minimization The 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 configurable Almost 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.
13. 13. 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..
14. 14. Parameter Optimization SPEAR is an excellent tool for automatic parameter optimization for 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.
15. 15. 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.
16. 16. 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.
17. 17. SCREENSHOTS