=Paper=
{{Paper
|id=Vol-1339/paper9
|storemode=property
|title=Improved Algorithm of Unsatisfiability-based Maximum Satisfiability
|pdfUrl=https://ceur-ws.org/Vol-1339/paper9.pdf
|volume=Vol-1339
|dblpUrl=https://dblp.org/rec/conf/iwost/WangOZ15
}}
==Improved Algorithm of Unsatisfiability-based Maximum Satisfiability
==
Improved algorithm of unsatisfiability-based Maximum Satisfiability Yiyuan Wang, Dantong Ouyang, Liming Zhang∗ Symbol Computation and Knowledge Engineering of Ministry of Education, Jilin University, Changchun 130012, China College of Computer Science and Technology, Jilin University, Changchun 130012, China Abstract. Recently, the Maximum Satisfiability (MaxSAT) discovers a rapid- ly increasing number of practical applications in a wide range of different ar- eas. Unsatisfiability-based MaxSAT algorithms have been put forward aimed at improving the performance of solving MaxSAT problem. In these algorithms, several excellent Boolean Satisfiability (SAT) solvers are employed to iterative- ly identify unsatisfiable sub-formulas and the additional blocking variables are also applied to relax some of initial clauses or encode Boolean constraints into a CNF formula. Firstly, this paper proposes two novel optimizations to reduce the search space: finding all disjoint unsatisfiable cores with the original clauses removed and no blocking variables added; avoiding generating the largest num- ber of blocking variables’ clauses with heuristic strategy. Moreover, in order to reduce the number of satisfying iterations, the partial assignment is introduced into satisfiability-based framework as the tight bound accelerator which could find a smaller number of blocking variables. Experimental results show that the unsatisfiability-based algorithm with these optimizations results in an improved and more effective solver for MaxSAT problem than previous algorithms. In ad- dition,this results in consistent performance gains in most cases and on average 1.5 times speed-up for MaxSAT with state-of-the-art algorithms. Introduction The classical NP-complete problem of Boolean Satisfiability (SAT) [8] has been a growth of interest in not just the theoretical computer science community, but also in various areas where feasible solutions to these problems are significantly important in many practical applications. These practical applications have been able to successfully apply SAT as a decision procedure to determine whether these instances are SAT or UNSAT. However, there are more extra demands of the SAT problem that exceed this decision procedure of SAT solvers, such as Maximum Satisfiability problem (MaxSAT) [12, 3] and Pseudo-Boolean Optimization (PBO). Moreover, using the strong relation- ship between these problems, several new algorithms have been developed [21]. MaxSAT as a well-known problem in Computer Science, consists of identifying the largest number of clauses in a CNF formula that can be satisfied. The recent applica- tion of MaxSAT and variants in design debugging and verification of complex designs [4, 10, 20] motivated the development of new MaxSAT algorithms, capable of solving 94 large structured problem instances common to these application domains. Many exac- t methods for finding MaxSAT have been developed in recent years. Davis-Putnam- Logemann-Loveland procedure [5] explores a binary search tree and then establishes incrementally truth assignments. The result of several methods based on this procedure is very good, but they are not suitable for MaxSAT practical problems. Some other ex- act methods generally based on Branch and Bound (B&B) algorithms [2] have been designed to handle MaxSAT, but are unable to solve majority of problem instances. Recently algorithms based on the identification of unsatisfiable sub-formulas [7, 18, 19, 15], with blocking variables introduced into these algorithms and Pseudo Boolean Op- timization used to simplify CNF, have also been developed, and are now able to tackle all these Boolean optimization problems and most of unsatisfiable instances. This paper firstly reviews previous MaxSAT algorithm based on unsatisfiable sub- formulas named msu4 [19], and then proposes an improved MaxSAT algorithm based on the method of binary search [11]. Despite the improved algorithm building on msu4 based on unsatisfiable sub-formulas and binary search, this paper proposes one im- provement as the tight bound accelerator and extra two optimizations to reduce the search space, which are novel, including: (1) reducing the number of SAT solver iter- ations under the control of partial assignment; (2) developing the heuristic strategy to avoid generating the largest number of blocking clauses, so as to slow down the effi- ciency of algorithm, when the middle value is half number of blocking variables. (3) speeding up to find all disjoint unsatisfiable cores without blocking variables added in- to these clauses in the early iterative execution of binary search’s preprocess. The new improved algorithm also uses several techniques [6] to utilize BDDs for encoding cardi- nality constraints as Boolean circuits. Experimental results show that the new MaxSAT algorithm is observably faster than the previous MaxSAT algorithms in a wide range of unsatisfiable industrial instances, demonstrating the robustness of the proposed ap- proach. Preliminaries Firstly a finite set of Boolean variables is assumed X={x1 ,x2 ,x3 ,. . . ,xn }. A CNF for- mula φ is defined on the conjunction of clauses wi and each clause consists of the disjunction of literals, which is either a variable xi or its complement xi . In the con- text of search algorithms of SAT, variables can be assigned a logic value, either 0 or 1. Alternatively, variables can defined as a function v: X →{0,u,1}, where u denotes a variable whose value is uncertain. When all of variables are assigned a value in {0,1}, then v is referred to as a complete assignment. Otherwise it is a partial assignment [17] where some variables do not have values and are assigned u, which will be used in the following improved algorithm. In this section Maximal Satisfiability and Minimal Unsatisfiability are firstly intro- duced. Afterwards, the previous MaxSAT algorithm using unsatisfiable cores named msu4 is described. 95 Maximal Satisfiability and Minimal Unsatisfiability Our improved algorithm and previous methods are based on maximal satisfiability and minimal unsatisfiability. The MaxSAT problem as an optimization problem corresponds to the minimization of the number of false clauses in a CNF formula, which means that MaxSAT problem discovers an assignment to the variables of a CNF formula that maximizes the number of satisfied clauses. In order to illustrate this problem, Maximally Satisfiable Subset (MSS) is defined as a subset of clauses in a CNF formula, which is satisfiable and then adds any of the other clauses in an original formula to MSS leading new clauses set to unsatisfiable. In this context, Minimal Unsatisfiable Subset (MUS) is an inconsistent subset of the clauses of the original formula and dropping one of its clauses will make it satisfiable. MSS and MUS [14, 7] correspond to the following rules: { m is satisf iable, if m⊆φ M SS(φ) = m ∪ {a} is unsatisf iable, ∀a∈(φ-m) { m is unsatisf iable, if m⊆φ M U S(φ) = m − {a} is satisf iable, ∀a∈m Notice that MSS as a satisfied subset of clauses cannot become bigger and MUS as an unsatisfiable subset that removes any of its clauses can render it satisfiable. The rela- tionship between MaxSAT and MSS is subtle. Given an unsatisfiable instance, MaxSAT is the largest subset of clauses that can be satisfiable which means to find MSS with maximal number. However, all MSSes may have different sizes and cannot be al- l MaxSAT solutions with maximal number. Removing the clauses that are not included in the MSS makes CNF formula satisfiable. Therefore Minimal Correction Set (MCS) is introduced to describe the complement of MSS and the set of MCSes is shown: M CSes(φ) = {m|m ⊆ φ and (φ − m) ∈ M SSes(φ)} MCS as the complementary point of MSSes offers the real link to MUSes. Note that any clause of MUS in a CNF formula makes the formula unsatisfiable and the complement formula satisfiable,thus every MSS must contain at least one of clauses of every MUS. This relationship between MCSes and MUSes can usually be described as a solution to a set converting problem. Specifically, each hitting set of the MUSes is an MCS. Given a collection of sets, hitting set intersects all sets in the collection in at least one element and the problem of hitting set is an equivalent reformulation of set covering. A MCS is a hitting set of the MUSes with the additional limit that it cannot become smaller without losing its defining property: it is an irreducible hitting set and each hitting set of MCSes is an MUS. The example formula is shown to explain their relationship between MSSes, MCSes and MUSes. φ = (x1 ) ∧ (x1 ∨ x2 ) ∧ (x2 ) ∧ (x2 ) { } M SSes(φ) = {x1 , x1 ∨ x2 , x2 }, {x1 ∨ x2 , x2 }, {x1 , x2 } 96 { } M CSes(φ) = {x2 }, {x1 , x2 }, {x1 ∨ x2 , x2 } { } M U Ses(φ) = {x1 , x1 ∨ x2 , x2 }, {x2 , x2 } In the example above, every MUS of a CNF formula is an irreducible hitting set of the MCSes of that CNF formula. In the given CNF formula above, the number of maximal satisfiable clauses is 3. More importantly, MSS and MUS also can tell us the relationship between MUS and MaxSAT problem. A MaxSAT algorithm using unsatisfiable cores Recently, several methods based on unsatisfiable cores are proposed. M su4 which ap- plies improved blocking variable into clauses is more effective than other algorithms in the experiment results. More importantly, msu4 avoids interacting with a PBO solver and instead is a fully SAT-based solver that relies on the most effective techniques, such as Boolean Constraint Propagation, conflict based learning and conflict-directed backtracking [16]. Finally, the two advantages of msu4 lie in adding at most one block- ing variable into each clause in a CNF formula which can avoid quickly increasing the number of blocking variables and clauses, and applying linear programming encoding of pseudo boolean constraints with BDDs and sorting networks. Proposition 1 MaxSAT Upper Bound(UB): In a CNF formula, φ corresponds to the number of clauses. Let K denote disjoint unsatisfiable cores, then φ-K corresponds to an MaxSAT Upper Bound. Proposition 2 MaxSAT Lower Bound(LB): Let B define as the set of blocking vari- ables assigned value TRUE when clauses become satisfiable, then φ-B denotes a MaxSAT Lower Bound. In previous subsection, some relationships between MUS and MaxSAT are briefly introduced and these properties are employed in the algorithm to define MaxSAT Upper Bound and Lower Bound [19]. Some details for msu4 are shown in [19]. Improved MaxSAT algorithm with some strategies As shown previously, unsatisfiable-based algorithm is able to tackle MaxSAT problem. However, msu4 works by the redundant lower and upper bounds in some SAT solver iterations. This section proposes an improved algorithm based on msu4 with two key optimizations, which are used as the tight bound accelerator. Firstly the thought of bi- nary search [11] (its algorithm named BIN ) can be imported into msu4 for clearly improving its efficiency by decreasing the redundant calculation. Secondly, based on the idea of binary search, this paper proposes some key optimizations: (1)the use of partial assignment computing a smaller number of blocking variables assigned value 97 TRUE instead of the middle value of binary search in each satisfying assignment. (2)the heuristic strategy HSBS to avoid generating the largest number of clauses containing blocking variables when the middle value is nearly half number of blocking variables. (3)acceleration to find disjoint unsatisfiable cores by iteratively computing the original formula and temporarily deleting these cores that have already been found. Unsatisfiable core-based MaxSAT algorithm using binary search In algorithm 1, compared with the upper bound and lower bound in the msu4, two new bounds, which denote the lower and upper bounds of lower bound, are firstly proposed and then used into algorithm 1 and algorithm 2. Proposition 3 Lower Bound of Lower Bound (L LB): φ corresponds to a CNF for- mula. Remove any L LB clauses to render new φ∗ unsatisfiable. In our algorithm 2, L LB is initialized to the number of unsatisfiable cores. Proposition 4 Upper Bound of Lower Bound (L UB):φ corresponds to a CNF formu- la. Remove the given L U B clauses to make new φ∗ satisfiable. In algorithm 2, L U B is firstly assigned to the number of blocking variables. Proposition 5 [11] Binary search for MaxSAT executes Θ(log(W )) calls to a SAT oracle in the worst case. Compared with msu4, algorithm 1 uses the method of binary search to acquire MaxSAT solution and is also based on Proposition 5 defined in the BIN to guide algorithm 1. The pseudo code for msu5 bin is shown in Algorithm 1. In msu4, lower bound only depends on the value of blocking variables when φ is satisfiable, and its variation is passive. Considering that msu4 calculates the size of lower bound by inches, this paper presents the binary search, whose algorithm in computer science finds the position of a specified value within a sorted key. Algorithm 1 employs the binary search to take the initiative to alter two bounds in order to accelerate the growth of two bounds for reducing the number of SAT solver iterations, which will solve the MaxSAT problem quickly. In algorithm 1, there are several differences between msu4 and msu5 bin. L U B is initialized to the number of initial clauses and L LB is to 0. Before each call to the SAT solver, BSB which corresponds to the middle variable,∑needs to be computed under the method of binary search (line 6). Afterwards CN F ( i∈VB bi ≤ BSB ) is generated and then added to φw (line 7 and 8). L LB is only updated on iterations when the SAT solver returns false. Considering such an iteration, for which the unsatisfiable core does not include initial clauses (line 17), L LB will be assigned to BSB . When the unsatisfiable core contains original clauses I > 0, this process is the same as msu4 from line 13 to 16. Consider now a satisfiable iteration. It occurs when the number of blocking variables assigned 1 is sufficient to make the current CNF formula get a satisfiable assignment, L U B will be updated(line 21). But it can not guarantee that this number is minimal. When L LB + 1 ≥ L U B, it is an answer of the MaxSAT solution. 98 Algorithm 1 Improving MaxSAT Algorithm based on binary search 1: ◃ the running condition of algorithm 1 is that φ is unsatisfiable 2: L LB ← 0 3: L U B ← |φ| 4: φw ← φ 5: while TRUE do 6: BSB ← (L LB∑ + L U B)/2 ◃ BSB is the middle variable in the binary search 7: φCH ← CN F ( i∈V bi ≤ BSB ) B 8: (st, φc ) ← SAT (φw ∪ φCH ) 9: if st = UNSAT then 10: φI ← φc ∩ φ 11: I ← {i|wi ∈ φI } 12: VB ← VB ∪ I 13: if |I| > 0 then 14: φN ← {wi ∪ ∑ {bi }|wi ∈ φI } 15: φa ← CN F ( i∈I bi ≥ 1) 16: φw ← (φw − φI ) ∪ φN ∪ φa 17: else 18: L LB ← BSB 19: end if 20: else 21: L U B ← BSB 22: end if 23: if L LB + 1 ≥ L U B then 24: return a satisfiable assignment 25: end if 26: end while Improved algorithm based on binary search Although the performance of msu5 bin is superior to previous methods, three novel improvements are proposed in algorithm 2, which can be more efficient to optimize the MaxSAT algorithm. Firstly, when the SAT solver returns satisfiable, the upper bound only relies on the middle variable in algorithm 1, which may not be the minimal number of blocking vari- ables assigned 1. In detail, after some satisfiable iterations, the assignments of upper bounds are usually redundant. Our algorithm 2 (named msu6 bd) proposes the tech- nology of partial assignment, which could effectively reduce the number of satisfying iterations in algorithm 1. Comparing the number of blocking variables (assigned value TRUE) in partial assignment with the value of middle variable, the smaller value will be assigned to the upper bound. Specifically, a partial assignment might not include some blocking variables called irrelevant variables, which means that SAT solver only needs to analyze several blocking variables and discard some other blocking variables if they are not used for satisfying any clause. Our Algorithm is built on the interface of PicoSAT [1] to eliminate unnecessary SAT tests by simplifying satisfying assignments using standard partial assignment. 99 Algorithm 2 Our Improved MaxSAT Algorithm based on binary search 1: ◃ the running condition of algorithm 2 is that φ is unsatisfiable 2: INC ← ϕ; U NC ← ϕ; CSC ← ϕ; VB ← ϕ 3: while st ̸= SAT do 4: (st, φc ) ← increSAT (φ − INC ) 5: if st = UNSAT then 6: VB ← VB ∪ {i|wi ∈ φc } 7: INC ← INC ∪ φc 8: U NC ← U NC ∪ {wi ∪∑ {bi }|wi ∈ φc } 9: CSC ← CSC ∪ CN F ( i∈φc bi ≥ 1) 10: end if 11: end while 12: φw ← (φ − INC ) ∪ U NC ∪ CSC 13: L LB ← |INC |; L U B ← |VB | 14: while TRUE do 15: BSB ← (HSBS (L LB))?(L LB + L U B)/2 : (3L LB + L U B)/4 ◃ heuristic strategy reduces ∑ the size of CNF formula 16: φCH ← CN F ( i∈V bi ≤ BSB ) B 17: (st, φc ) ← increSAT (φw ∪ φCH ) 18: if st = UNSAT then 19: φI ← φc ∩ φ 20: I ← {i|wi ∈ φI } 21: VB ← VB ∪ I 22: if |I| > 0 then 23: φN ← {wi ∪ ∑ {bi }|wi ∈ φI } 24: φa ← CN F ( i∈I bi ≥ 1) 25: φw ← (φw − φI ) ∪ φN ∪ φa 26: else 27: L LB ← BSB 28: end if 29: else 30: VS ←|the number of blocking variables assigned value 1| 31: L U B ← (VS < BSB )?VS : BSB ◃SAT solver selects partial assignment 32: end if 33: if L LB + 1 ≥ L U B then 34: return a satisfiable assignment 35: end if 36: end while Secondly, when the middle variable in algorithm 1 is assigned to half number of blocking variables, it could generate the largest number of clauses for pseudo boolean constraints. Considering that x1 + x2 + . . . + xn ≥ k results in BDDs with (n − k + 1) × k nodes [6], the number of BDD nodes is maximum when k = n/2. Based on above, algorithm 2 proposes the heuristic strategy HSBS to avoid this situation in binary search. The heuristic HSBS function is, when BSB is approximately equal to |VB |/2, BSB is assigned to (3L LB + L U B)/4 which is nearly equal to |VB |/4. 100 Lastly, when algorithm 1 iteratively obtains an unsatisfiable core each time, the CNF formula will be added more and more clauses generated by blocking variables. For this reason, algorithm 2 starts with finding all disjoint unsatisfiable cores as a prepossessing under the smaller search space with original clauses removed and no blocking variables added. In detail, whenever algorithm 2 finds an unsatisfiable core, some clauses in this core will be temporarily removed. When SAT solver can no longer obtain any unsat- isfiable core, the CNF formula will be restored and then the method of binary search continues to solve MaxSAT problem. For this unsatisfiable core-solving preprocessing that requires to iterative calls to a SAT solver, the well-known incremental interface of PicoSAT solver can be considered, which is a SAT solver that after running a CN- F formula, keeps all clauses and the internal state that can be reused when inserting additional clauses or deleting information learned from clauses. The pseudo code for msu6 bd is shown in Algorithm 2. Algorithm 2 begins with finding out all disjoint unsatisfiable cores from line 2 to 11. Afterwards φw is set as (φ − INC ) ∪ U NC ∪ CSC , which shows that φ removes unsatisfiable cores, and then adds those clauses including blocking variables and pseudo boolean constraints (line 12). L LB will be initialized to the number of unsatisfiable cores and L U B is assigned to the number of blocking variables, aiming at reducing the number of SAT solver iterations and speeding up to enhance the performance of algorithm 1 (line 13). In the process of binary search, the function of HSBS is to prevent the number of blocking clauses becoming large when HSBS is nearly equal to VB /2 (line 15). More importantly, L U B is assigned to the smaller value between VS and BSB (line 31). Experiment Results This section presents the experimental results of the improved MaxSAT algorithm (msu6 bd). In order to evaluate this new method, pbo [6], msu4 [19] and msu5 bin which is built on the msu4 using the binary search [11] are considered as the comparison algorithm- s. The framework of our algorithm is implemented using a state-of-the-art SAT solver named PicoSAT-V953 [1]. In order to evaluate the improved MaxSAT algorithm, a set of instances are selected. These instances are obtained from existing unsatisfiable subsets of crafted and indus- trial MaxSAT benchmarks, the SAT competition archives and SATLIB. The majority of the considered industrial instances are originally from EDA applications, including model checking, equivalence checking , and test pattern generation. The total number of unsatisfiable instances considered is 447. All experiments are running on a Core 2 Dual 2.13 Ghz workstation with 4 GB of RAM and the CPU timeout of 1000 seconds for each instance. Table 1 shows the number of solved instances for all selected benchmark sets. The improvements from msu4 and msu5 bin to msu6 bd are very clear. The overall num- ber of solved instances (msu6 bd) is vastly improved as it now solves more instances than msu5 bin, msu4 and pbo. When solving MaxSAT crafted instances, the perfor- mances of msu5 bin and msu6 bd are parallel. Nevertheless, msu6 bd is not effective enough to solve all the selected instances. The MaxSAT algorithm based on the unsat- 101 Table 1. Number of Solved Instances Ben. set #I pbo msu4 msu5 bin msu6 bd ms ind 321 111 178 230 288 ms cra 126 24 68 91 90 Total 447 135 246 321 378 isfiable cores needs to use SAT solver to iteratively execute, which is not suitable for the time-out instances. msu6_bd 1000 msu5_bin msu4 900 pbo 800 700 600 500 time 400 300 200 100 0 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 instance Fig. 1. Run times of algorithms Figure 1 shows a plot by increasing run times of the test instances for each algorith- m. Firstly some instances in the time limits are selected and sorted by the computing time increasingly. Clearly, pbo is inefficient. For most of test cases, it can hardly fig- ure out the answer. In additional, msu6 bd increases in a slower rate than msu4 and msu5 bin. It is beneficial because msu6 bd uses the binary search and three additional optimization strategies: speeding up to find all disjoint unsatisfiable cores in reduced search space, using the tight bound accelerator to reduce the number of SAT solver iterations, and applying HSBS to reduce the search space of binary search. Figure 2 plots the run times of our approach msu6 bd versus the previous algorithm msu4, along with the 1x, 2x, 3x and 10x lines, clearly showing the superiority of the proposed method. The time of all selected instances in two algorithms is in time limits. As can be observed, msu6 bd is clearly faster than msu4. msu4 has already proved 102 msu6_bd/msu4 1000 100 10 msu6_bd 1 0.1 1X 2X 10X 3X 0.01 0.01 0.1 1 10 100 1000 msu4 Fig. 2. Scatter plot: msu6 bd vs. msu4 that it is more effective than pbo. Despite the performance advantage of the versions of msu6 bd, there are some exceptions. Conclusions This paper proposes an improved unsatisfiable-based MaxSAT algorithm. At first par- tial assignment can be employed into binary search-based framework as the tight bound accelerator: partial assignment could make upper bound select a smaller number of clauses than previous algorithms. Moreover, HSBS avoids generating the largest num- ber of clauses for pseudo boolean constraints, which can reduce the search space of binary search. Finally, another improvement strategy as the preprocessing of binary search can find as much disjoint unsatisfiable cores as possible to speed up the execu- tion speed of MaxSAT algorithm. With the original clauses removed and no blocking clauses added, this optimization can significantly reduce search space in these number of unsatisfiable iterations. Preliminary experimental results show that these techniques significantly improve the performance of our unsatisfiability-based algorithm in solv- ing industrial instances of MaxSAT problem. As a result, our algorithm maintains its competitive advantage over other algorithms for MaxSAT problem. Despite the promis- ing results, additional application to msu6 bd is expected, which is to exploit structure information [9, 13] to accelerate MaxSAT algorithm in design debugging. Acknowledgment The authors are thankful to the editor and anonymous reviewers for their valuable com- ments that help us improve the quality of the paper. 103 References 1. Biere, A.: Picosat essentials. Journal on Satisfiability, Boolean Modeling and Computation 4(75-97), 45 (2008) 2. Borchers, B., Furman, J.: A two-phase exact algorithm for max-sat and weighted max-sat problems. Journal of Combinatorial Optimization 2(4), 299–306 (1998) 3. Cai, S., Luo, C., Thornton, J., Su, K.: Tailoring local search for partial maxsat. In: Twenty- Eighth AAAI Conference on Artificial Intelligence (2014) 4. Chen, Y., Safarpour, S., Marques-Silva, J., Veneris, A.: Automated design debugging with maximum satisfiability. Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on 29(11), 1804–1817 (2010) 5. Davis, M., Logemann, G., Loveland, D.: A machine program for theorem-proving. Commu- nications of the ACM 5(7), 394–397 (1962) 6. Eén, N., Sörensson, N.: Translating pseudo-boolean constraints into sat. Journal on Satisfia- bility, Boolean Modeling and Computation 2(3-4), 1–25 (2006) 7. Fu, Z., Malik, S.: On solving the partial max-sat problem. Theory and Applications of Satis- fiability Testing-SAT 2006 pp. 252–265 (2006) 8. Gary, M., Johnson, D.: Computers and Intractability: A Guide to the Theory of NP- completeness. WH Freeman and Company, New York (1979) 9. Guo, T., Li, Z., Guo, R., Zhu, X.: Large scale diagnosis using associations between sys- tem outputs and components. In: Twenty-Fifth AAAI Conference on Artificial Intelligence (2011) 10. Heras, F., Larrosa, J., Oliveras, A.: Minimaxsat: A new weighted max-sat solver. Theory and Applications of Satisfiability Testing–SAT 2007 pp. 41–55 (2007) 11. Heras, F., Morgado, A., Marques-Silva, J.: Core-guided binary search algorithms for max- imum satisfiability. In: Proceedings of the AAAI National Conference (AAAI). pp. 36–41 (2011) 12. Johnson, D.: Approximation algorithms for combinatorial problems. Journal of computer and system sciences 9(3), 256–278 (1974) 13. Le, B., Mangassarian, H., Keng, B., Veneris, A.: Non-solution implications using reverse domination in a modern sat-based debugging environment. In: Design, Automation & Test in Europe Conference & Exhibition (DATE), 2012. pp. 629–634 (2012) 14. Liffiton, M., Sakallah, K.: On finding all minimally unsatisfiable subformulas. In: Theory and Applications of Satisfiability Testing. pp. 34–42 (2005) 15. Manquinho, V., Martins, R., Lynce, I.: Improving unsatisfiability-based algorithms for boolean optimization. Theory and Applications of Satisfiability Testing–SAT 2010 pp. 181– 193 (2010) 16. Manquinho, V., Marques-Silva, J.: Search pruning techniques in sat-based branch-and-bound algorithms for the binate covering problem. Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on 21(5), 505–516 (2002) 17. Marques-Silva, J., Lynce, I., Malik, S.: Conflict-driven clause learning sat solvers. SAT Handbook pp. 131–154 (2009) 18. Marques-Silva, J., Planes, J.: On using unsatisfiability for solving maximum satisfiability. arXiv preprint arXiv:0712.1097 (2007) 19. Marques-Silva, J., Planes, J.: Algorithms for maximum satisfiability using unsatisfiable cores. In: Proceedings of the conference on Design, automation and test in Europe. pp. 408– 413 (2008) 20. Zhang, L., Bacchus, F.: Maxsat heuristics for cost optimal planning. In: Proceedings of the AAAI National Conference (AAAI) (2012) 21. Zhu, Z., Li, C., Manyà, F., Argelich, J.: A new encoding from minsat into maxsat. In: Prin- ciples and Practice of Constraint Programming. pp. 455–463 (2012)