A Linear Programming Based Satisfiability Solver Using a New Horn-Driven Search Tree Design
暂无分享,去创建一个
We will present an algorithm for the satisfiability problem, which finds its origin in the Integer Programming area, and therefore will also generalize to more general constraint programming problems. This algorithm is based on single-lookahead unit resolution ([2]), linear programming and a new search tree design based on a tree design by ([1]). The special aspect of the tree is that it is not a binary search tree. The advantage of our algorithm over a standard integer programming approach, is that we need to solve a linear program only in a very limited number of nodes in the search tree. In every node in the search tree we first apply single-lookahead unit resolution. The unit propagation algorithm we used in our implementation is based on the watched literal strategy. Only in case the unit resolution does not lead to the conclusion that the formula in the node is unsatisfiable or has a satisfying assignment, we solve a linear program. The solution of the linear program is used to split the part of the search into subparts. This splitting aims for getting a formula close to a Horn formula.
[1] John Franco. Relative size of certain polynomial time solvable subclasses of satisfiability , 1996, Satisfiability Problem: Theory and Applications.
[2] Chuangyin Dang,et al. Simplicial Pivoting Algorithms for a Tractable Class of Integer Programs , 2002, J. Comb. Optim..