Boolean Satisfiability

Boolean Satisfiability (SAT) is a core NP-complete problem. We are keenly interested in approaches to deliver faster SAT solvers. In the past, we have developed both custom IC and FPGA based SAT solver engines. The FPGA based engine was prototyped, and achieved about 17X speedup over the best known software SAT solver. The custom IC approach yielded over 3 orders of magnitude speedup. Both engines were designed with scalability as a key requirement.

We have also developed a GPU based SAT solver. This consists of an exact solver (MiniSAT) running on the CPU, whose variable scoring heuristic is guided by a GPU-based survey-sat engine. The completeness of the procedure is guaranteed by the fact that the complete procedure runs on the CPU, and only receives variable scoring advise from the GPU based survey SAT solver. We obtained an average speedup of 2.35X.

We are also working on a SAT solver that is based on noise-based logic. In this solver, the traditional search is averted. Literals are encoded as uncorrelated noise sources. The instance is satisfiable iff the output of the solver has a non-zero DC average value. Satisfiability checks take n steps (where n is the number of variables in the instance). The worst case duration of any step is exponential.

Publications, patents and artefacts: