Optimization algorithms for the minimum-cost satisfiability problem

Given a Boolean satisfiability (Sat) problem whose variables have non-negative weights, the minimum-cost satisfiability (MinCostSat ) problem finds a satisfying truth assignment that minimizes a weighted sum of the truth values of the variables. Many NP-optimization problems are either special cases of MinCostSat or can be transformed into MinCostSat efficiently. However, in the past, these problems have been largely considered in isolation. In this dissertation, we (1) classify existing MinCostSat problems, (2) study factors affecting the performance of MinCostSat solvers, (3) propose algorithms for MinCostSat problems, and (4) implement and validate the performance of state-of-the-art solvers for special cases of MinCostSat, including set and binate covering, Max-Sat, and group-partial Max-Sat. We categorize MinCostSat problems as either native or non-native. Non-native problems can only be transformed into MinCostSat by adding slack variables. These problems include the Max-Sat, partial Max-Sat, and group-partial Max-Sat problems which have applications ranging from course assignment to FPGA detailed routing. Native problems are various sub-cases of MinCostSat. We further divide these into two groups: covering problems and non-covering problems. The covering problems include the unate or set covering and the binate covering problems. They have applications in Operations Research (e.g., routing and scheduling) and logic synthesis (e.g., logic minimization and finite state machine minimization). In the covering problems, all or most clauses contain no complemented variables and a feasible solution is relatively easy to find. The non-covering problems contain clauses that are highly constrained, and sometimes only a small fraction of the variables are weighted. The non-covering problems have applications in minimum-size test pattern and minimum-length plans. We study two important performance factors, among others, in branch-and-bound MinCostSat solvers. They are the lower-bounding and upper-bounding strategies. For lower bounding, we incorporate two advanced techniques: linear programming relaxation and cutting planes. Both methods can provide much higher quality lower-bounds than previous methods based on maximum independent sets of rows. For upper bounding, we show that our local-search MinCostSat solver, when initialized and terminated properly, can find the best upper-bound quickly. Other techniques that contribute to the engineering of state-of-the-art solvers for applications of MinCostSat are also introduced. This work has led to the development of (1) a solver for covering problems that consistently outperforms previous leading solvers by as much as two orders of magnitude, (2) a logic minimizer that is able to solve three benchmark problems whose solution has eluded solvers for more than a decade, (3) a Max-Sat solver that challenges the dominance of linear programming solvers, particularly cplex, on Max-2-Sat benchmarks, and (4) a stochastic local-search solver for group-partial Max-Sat (with applications to FPGA routing) that finds known optima quickly and is able to find better than previously-known solutions on benchmarks whose optima remain unknown.