Novel Local Search Methods for Satisfiability

View/Open

Author

Primary Supervisor

Other Supervisors

Year published

Metadata

Abstract

The Boolean Satisfiability Problem (SAT) is a prototypical NP-complete problem, and is central in computer science and artificial intelligence. Given a formula over a set of Boolean variables, the SAT problem tests whether an interpretation that satisfies the formula exists.
Stochastic Local Search (SLS) is a simple but effective approach to SAT. In this thesis, we proposed new SLS techniques for SAT solving and developed new SLS algorithms. Using empirical evaluations, we showed that at the time they were designed our algorithms performed better than the existing state-of-the-art solvers. Moreover, our algorithms have been established as the latest state-of-the-art algorithms for several types of instances.
The first idea is configuration checking (CC) for SAT. A typical CC technique is to forbid flipping a variable if since the last time it was flipped, none of its neighbouring variables has been flipped. Based on this strategy, we developed several solvers, including Swcca and CCAnr. In particular, CCAnr performed very well on crafted instances, and a hybrid solver CCAnr+glucose won the silver prize of Hard-combinatorial track in SAT Competition 2014.
The second idea is the notion of multilevel properties which consider the satisfaction degree of clauses. Using the CC strategy and the second level score, we developed the CCASat solver, which won the 2012 SAT Challenge random track. We also proposed several new scoring functions, which were used to design CScoreSAT and HScoreSAT. These two solvers are particularly efficient in solving random SAT instances with long clauses, and show one to two orders of magnitude improvement than previous solvers. Thirdly, we proposed a linear make function for tie-breaking in the famous algorithm WalkSAT, leading to the WalkSATlm algorithm. Our experiments demonstrate that WalkSATlm improves WalkSAT by orders of magnitudes on random k-SAT instances with k > 3.