Proceedings of the Tenth Symposium on Abstraction, Reformulation, and Approximation Adding New Bi-Asserting Clauses for Faster Search in Modern SAT Solvers Saı̈d Jabbour1 and Jerry Lonlac1,2 and Lakhdar Saı̈s1 1 CRIL, Univ. Artois - CNRS rue Jean Souvraz SP-18 F-62307 Lens Cedex France 2 Département Informatique - Univ. Yaoundé 1 B.P. 812 Yaoundé, Cameroun {jabbour, lonlac, sais}@cril.fr Abstract SAT solvers is based on using an important data structure, called implication graph (Marques-Silva and Sakallah 1996; Moskewicz et al. 2001). It is important to note that the well known resolution rule still plays a strong role in the efficiency of modern SAT solvers. Theoretically, by integrating clause learning to DPLL-like procedures (Davis, Logemann, and Loveland 1962), the obtained SAT solver formulated as a proof system is shown to be as powerful as general resolution (Pipatsrisawat and Darwiche 2009; 2010). A new class of asserting clauses called bi-asserting clauses which is a relaxation of asserting clauses was proposed in (Pipatsrisawat and Darwiche 2008). These biasserting clauses allow to discover implications missed by classical asserting clauses. It is defined in a similar way as an asserting clause. An asserting clause contains exactly one literal from the conflict level while a bi-asserting clause contains exactly two literals from the conflict level. For more details about classical bi-asserting clauses, we refer the reader to (Pipatsrisawat and Darwiche 2008). The approach proposed in this paper, is based on separated conflict analysis. Indeed, by traversing the implication graph separately from x and ¬x, we derive a new class of biasserting clauses. These clauses differ from those proposed by Pipatsrisawat and Darwiche (Pipatsrisawat and Darwiche 2008) as they are not conflict clauses i.e. satisfied by the current partial interpretation. These clauses can not be derived by traditional traversal of the implication graph. Moreover, our bi-asserting clauses can be used to compact the implication graph. These new bi-asserting clauses are much shorter and tend to induce more implications than the classical biasserting clauses. The paper is organized as follows. After some preliminary definitions and notations, and some technical background about SAT solvers, we present our approach. Finally, before the conclusion, experimental results demonstrating the feasibility of our approach are presented. In this paper, a new approach for clauses learning is proposed. By traversing the implication graph separately from x and ¬x, we derive a new class of biasserting clauses that can lead to a more compact implication graph. These new kinds of bi-asserting clauses are much shorter and tend to induce more implications than the classical bi-asserting clauses. Experimental results show that exploiting this new class of bi-asserting clauses improves the performance of state-of-the-art SAT solvers particularly on crafted instances. Introduction The SAT problem, i.e., the problem of checking whether a Boolean formula in conjunctive normal form (CNF) is satisfiable or not, is central to many domains in computer science and artificial intelligence including constraint satisfaction problems (CSP), automated planning, non-monotonic reasoning, VLSI correctness checking, etc. Today, SAT has gained a considerable audience with the advent of a new generation of solvers able to solve large instances encoding real-world problems, and the demonstration that these solvers represent important low-level building blocks for many important fields, e.g., SAT modulo theory, Theorem proving, Model checking, Quantified boolean formulas, Maximum Satisfiability, Pseudo boolean, etc. These solvers, often called modern SAT solvers (Moskewicz et al. 2001; Eën and Sörensson 2002), are based on classical unit propagation (Davis, Logemann, and Loveland 1962) efficiently combined through incremental data structures with: (i) restart policies (Gomes, Selman, and Kautz 1998; Kautz et al. 2002), (ii) activity-based variable selection heuristics (VSIDS-like) (Moskewicz et al. 2001), and (iii) clause learning (Marques-Silva and Sakallah 1996; Bayardo, Jr. and Schrag 1997; Moskewicz et al. 2001). Clause learning is now recognized as one of the most important component of Modern SAT solvers. These Modern SAT solvers can be seen as an extended version of the well known DPLL-like procedure (Davis, Logemann, and Loveland 1962) obtained thanks to these different enhancements. The algorithm for deriving clauses from conflicts in these Technical background Preliminary definitions and notations A CNF formula F is a conjunction of clauses, where a clause is a disjunction of literals. A literal is a positive (x) or negated (¬x) propositional variable. The two literals x c 2013, Association for the Advancement of Artificial Copyright Intelligence (www.aaai.org). All rights reserved. 66 and ¬x are called complementary. We note by ¯l the complementary literal of l. For a set of literals L, L̄ is defined as {¯l | l ∈ L}. A unit clause is a clause containing only one literal (called unit literal), while a binary clause contains exactly two literals. An empty clause, noted ⊥, is interpreted as false (unsatisfiable), whereas an empty CNF formula, noted , is interpreted as true (satisfiable). The set of variables occurring in F is noted VF . A set of literals is complete if it contains one literal for each variable in VF , and fundamental if it does not contain complementary literals. An assignment ρ of a Boolean formula F is function which associates a value ρ(x) ∈ {f alse, true} to some of the variables x ∈ VF . ρ is complete if it assigns a value to every x ∈ VF , and partial otherwise. An assignment is alternatively represented by a fundamental set of literals, in the obvious way. A model of a formula F is an assignment ρ that makes the formula true; noted ρ |= Σ. A SAT problem consists in deciding if a given CNF formula F admits a model or not. We denote by η[x, ci , cj ] the resolvent between a clause ci containing the literal x and cj a clause containing the opposite literal ¬x. In other words η[x, ci , cj ] = ci ∪ cj \{x, ¬x}. We denote by F|x the formula obtained from F by assigning x the truth-value true. Formally F|x = {c | c ∈ F, {x, ¬x} ∩ c = ∅} ∪ {c\{¬x} | c ∈ F, ¬x ∈ c} (that is: the clauses containing x are therefore satisfied and removed; and those containing ¬x are simplified). We define F ∗ as the formula F closed under unit propagation, defined recursively as follows: (1) F ∗ = F if F does not contain any unit clause, (2) F ∗ =⊥ if F contains two unit-clauses {x} and {¬x}, (3) otherwise, F ∗ = (F|x )∗ where x is the literal appearing in a unit clause of F. A clause c is deduced by unit propagation from F, noted F c, if (F|c̄ )∗ =⊥. in this case of the form (x1 ∨ · · · ∨ xn ∨ y) where every literal xi is false under the current partial assignment (ρ(xi ) = false, ∀i ∈ 1..n), while ρ(y) = true. When a literal y is not obtained by propagation but comes from a decision, imp(y) is undefined, which we note for convenience imp(y) =⊥. When imp(y) =⊥, we denote by exp(y) the set {x | x ∈ imp(y) \ {y}}, called set of explanations of y. When imp(y) is undefined we define exp(y) as the empty set. In the sequel, we recall the formal definitions of an implication graph, classical asserting clauses and how they are derived (Audemard et al. 2008). Definition 1 (Implication Graph) Let F be a CNF formula, ρ a partial assignment, and let exp denotes the set of explanations for the deduced (unit propagated) literals in ρ. The implication graph associated to F, ρ and exp is ρ,exp GF = (N , E) where: • N = ρ, i.e., there is exactly one node for every literal, decided or implied; • E = {(x, y) | x ∈ ρ, y ∈ ρ, x ∈ exp(y)} In the rest of this paper, for simplicity reason, an impliρ cation graph is simply noted as GF . We also note m as the conflict level. ρ , shown in Figure 1 is an implication graph Example 1 GF for the formula F and the partial assignment ρ given below : F ⊇ {c1 , . . . , c12 } (c1 )¬x1 ∨ ¬x11 ∨ x2 (c3 )¬x2 ∨ ¬x12 ∨ x4 (c5 )¬x4 ∨ ¬x5 ∨ ¬x6 ∨ x7 (c7 )¬x7 ∨ x9 (c9 )¬x10 ∨ ¬x17 ∨ x1 (c11 )¬x13 ∨ x17 DPLL search DPLL (Davis, Logemann, and Loveland 1962) is a treebased backtrack search procedure; at each node of the search tree, the assigned literals (decision literal and the propagated ones) are labeled with the same decision level starting from 1 and increased at each decision (or branching). After backtracking, some variables are unassigned, and the current decision level is decreased accordingly. At level i, the current partial assignment ρ can be represented as a sequence of decision-propagation of the form (xik ), xik1 , xik2 , . . . , xikn k where the first literal xik in parenthesis corresponds to the decision literal xk assigned at level i and each xikj for 1 ≤ j ≤ nk represents unit propagated literals at level i. Let x ∈ ρ, we note l(x) the assignment level of x. For a clause α, l(α) is defined as the maximum level of its assigned literals. (c2 )¬x1 ∨ x3 (c4 )¬x1 ∨ ∨¬x3 ∨ x5 (c6 )¬x5 ∨ ¬x6 ∨ x8 (c8 )¬x5 ∨ ¬x8 ∨ ¬x9 (c10 )¬x13 ∨ ¬x14 ∨ x10 (c12 )¬x15 ∨ ¬x16 ∨ x13 ρ Figure 1: Implication Graph GF = (N , E) Conflict analysis using implication graphs ρ = {. . . x115 . . . (x211 ) . . . . . . (x312 ) . . . x36 . . . (x414 ), . . . (x516 ), x513 , x510 , x517 , x51 . . . }. As a conflict is encountered on x9 and ¬x9 , ρ(F) = f alse. The conflict level is 5 Implication graphs is a standard representation conveniently used to analyze conflicts in modern SAT solvers. Whenever a literal y is propagated, we keep a reference to the clause which triggers the propagation of y, which we note imp(y). The clause imp(y), called implication of y, is 67 Definition 2 (Asserting clause) A clause c of the form (α ∨ x) is called an asserting clause iff ρ(c) = false, l(x) = m and ∀y ∈ α, l(y) < l(x). x is called asserting literal, while assertingLevel(c) = max{l(¬y) | y ∈ α} is the asserting level of x. Any asserting clause c = (α ∨ l) satisfy the 1−Empowerment property. Indeed, as c is derived from the formula F by resolution, then c is a logical consequence of F (condition 1 of the definition 4). The second condition of the definition 4 is also satisfied as the literal l is not derived at the asserting level where the sub-clause α is falsfied (condition 2 of the definition 4). This property expresses that a literal l can not be deduced by unit propagation from F without adding the clause c to F. However, if we add the the asserting clause to the learnt clauses database, we deduce by unit propagation that at the asserting level, the literal l must be assigned to true. For more details about CDCL based learning schemes, we refer the reader to (Marques-Silva and Sakallah 1996; Moskewicz et al. 2001; Audemard et al. 2008). Another kind of asserting clauses, called bi-asserting clauses is introduced in (Pipatsrisawat and Darwiche 2008). Conflict analysis is the result of the application of resolution starting from the conflict clause using different implications implicitly encoded in the implication graph. We call this process an asserting clause derivation (in short ACD). Definition 3 (Asserting clause derivation) An asserting clause derivation π is a sequence of clauses σ1 , σ2 , . . . σk satisfying the following conditions : 1. σ1 = η[x, imp(x), imp(¬x)], where {x, ¬x} is the conflict. 2. σi , for i ∈ 2..k, is built by selecting a literal y ∈ σi−1 for which imp(y) is defined. We then have y ∈ σi−1 and y ∈ imp(y): the two clauses resolve. The clause σi is defined as η[y, σi−1 , imp(y)]; 3. σk is, moreover an asserting clause. Definition 5 (Bi-Asserting Clause) A clause c = (α ∨ x ∨ y) is called a Bi-Asserting clause if ρ(c) = false, l(α) < m and l(y) = l(x) = m. It is important to note that a classical bi-asserting clause is false under the current assignment ρ. To derive such bi-asserting clauses from the conflict, we follow exactly the same resolution derivation. The only difference is that the process terminates when the current resolvent is a biasserting clause. As not every bi-asserting clause contributes to unit propagation, in (Pipatsrisawat and Darwiche 2008), the authors propose to learn the first bi-asserting clause that ensures the 1−empowerment property with respect to the clauses used for its derivation. Let us consider again the example 1. The traversal of the ρ (see Fig. 1) leads to the following asserting clause graph GF derivation: σ1 , . . . , σ7 where : • σ1 = η[x9 , c7 , c8 ] = (¬x5 5 ∨ ¬x7 5 ∨ ¬x8 5 ) • σ2 = η[x8 , σ1 , c6 ] = (¬x36 ∨ ¬x5 5 ∨ ¬x7 5 ) • σ3 = η[x7 , σ2 , c5 ] = (¬x36 ∨ ¬x5 5 ∨ ¬x4 5 ) • σ4 = η[x4 , σ3 , c3 ] = (¬x312 ∨ ¬x36 ∨ ¬x5 5 ∨ ¬x2 5 ) • σ5 = η[x5 , σ4 , c4 ] = (¬x312 ∨ ¬x36 ∨ ¬x2 5 ∨ ¬x3 5 ∨ ¬x51 ) A New Class of Bi-Asserting clauses • σ6 = η[x2 , σ5 , c1 ] = (¬x211 ∨ ¬x312 ∨ ¬x36 ∨ ¬x3 5 ∨ ¬x51 ) In this section, we first show how to derive the new biasserting clauses. Secondly, we demonstrate that their use can lead to more implications than with classical bi-asserting clauses. Let us, illustrate our proposed approach using a simple example. • σ7 = η[x3 , σ6 , c2 ] = (¬x11 2 ∨ ¬x12 3 ∨ ¬x6 3 ∨ ¬x1 5 ) The clause σ7 is the first encountered resolvent that contains only one literal ¬x1 from the current conflict level 5. Let us note that this resolvent is f alse under the interpretation ρ. Consequently, the literal ¬x1 is implied at level 3 which corresponds to the maximum level of the remaining literals (¬x11 2 , ¬x12 3 and ¬x6 3 ) of σ7 . SAT solvers add such a clause (σ7 ) to the learnt clauses database, back-jump to level 3 and assign the asserting literal ¬x1 to true by unit propagation. The node x1 corresponding to the asserting literal ¬x1 is called the first Unique Implication Point (First UIP). Let us introduce an important property, called 1−empowerment, that characterize the classical asserting clauses (Pipatsrisawat and Darwiche 2008). Motivating example Let F be a CNF formula, ρ a partial assignment. Assume ρ associated to F and ρ. that we have an implication graph GF For simplicity reason, Figure 2 depicts the implication graph restricted to the sub-graph induced by the nodes between the conflict and the first UIP. Assume that the conflict level is 5. By traversing the implication graph separately from x14 and ¬x14 until the first UIP x1 , we derive the new biasserting clauses δ1 , δ2 , δ3 and δ4 as follows : Definition 4 (1−Empowerment) Let (α ∨ l) be a clause where l is a literal and α is a disjunction of literals (sub-clause). The clause is 1−Empowerment with respect to CNF F via l iff • σ1 = η[x10 , c13 , c9 ] = ¬x15 ∨ ¬x11 ∨ ¬x8 ∨ x14 • δ1 = η[x11 , σ1 , c10 ] = ¬x15 ∨ ¬x8 ∨ x14 • σ2 = η[x4 , c7 , c3 ] = ¬x17 ∨ ¬x5 ∨ ¬x2 ∨ x8 • δ2 = η[x5 , σ2 , c4 ] = ¬x17 ∨ ¬x2 ∨ x8 1. F |= (α ∨ l) : the clause is implied by F • σ3 = η[x12 , c14 , c11 ] = ¬x13 ∨ ¬x9 ∨ ¬x14 • δ3 = η[x13 , σ3 , c12 ] = ¬x15 ∨ ¬x9 ∨ ¬x14 2. F ∧ ¬α l : the literal l cannot be derived from F ∧ ¬α using unit propagation. • σ4 = η[x6 , c8 , c5 ] = ¬x3 ∨ ¬x7 ∨ x9 68 ρ Figure 2: Sub Implication Graph GF = (N , E) Figure 3: New and compact implication graph obtained from ρ = (N , E) using the new bi-asserting clauses GF • δ4 = η[x7 , σ4 , c6 ] = ¬x16 ∨ ¬x3 ∨ x9 true at level 3, using the new bi-asserting clauses we derive ¬x9 , ¬x3 and ¬x1 while with the classical bi-asserting clauses no literal is implied by unit propagation. Another important difference that can be made is that the derivation of all possible classical bi-asserting clauses is quadratic in the worst case, while the new bi-asserting clauses can be derived in linear time (see the Figure 3). Consequently, searching for all classical bi-asserting clauses takes more time than for our new proposed bi-asserting clauses. Moreover, our bi-asserting clauses are much shorter than classical ones. From this illustrative example, we see that adding the new bi-asserting clauses to the clauses database allows to derive more implications than with classical bi-asserting clauses. We can observe that our proposed bi-asserting clauses establish a link between the asserting literal and the conflicting literals x14 and ¬x14 . The new bi-asserting clauses δ1 , δ2 , δ3 , δ4 form a set of related clauses. More precisely, the clause δ2 is related to δ1 by the variable x8 , δ1 is related to δ3 by the variable x14 and δ3 is related to δ4 by the variable x9 . As we can observe the set of bi-asserting clauses forms a chain of connected clauses. It is important to note that the classical bi-asserting clauses that can be obtained from the implication graph of figure 2 are : • δ1 = ¬x15 ∨ ¬x8 ∨ ¬x9 , • δ2 = ¬x15 ∨ ¬x17 ∨ ¬x2 ∨ ¬x9 , • δ3 = ¬x15 ∨ ¬x16 ∨ ¬x8 ∨ ¬x3 , • δ4 = ¬x15 ∨ ¬x17 ∨ ¬x16 ∨ ¬x2 ∨ ¬x3 . Let us note that by classical clause learning (First UIP scheme), one can derive the asserting clause (¬x15 ∨ ¬x17 ∨ ¬x16 ∨ ¬x1 ). The back-jumping level is 3. In figure 3, we show that the original implication graph (Figure 2) can be rewritten more compactly. Let us now consider that the new bi-asserting clauses δ1 , δ2 , δ3 and δ4 are added to the learnt clauses database and assume that at level 3 the literal x2 is assigned to true. It is easy to see that all the literals x8 , x14 , ¬x9 , ¬x3 and ¬x1 (see Figure 3) together with the literals x4 , x5 , x10 , x11 are implied by unit propagation. These last unit propagated literals are implied thanks to the original clauses of the formula c3 , c4 , c9 and c10 . However, if we consider the original implication graph (Figure 2), we derive by unit propagation the same set of literals except ¬x9 , ¬x3 and ¬x1 . Suppose now that all the classical bi-asserting clauses δ1 , δ2 , δ3 and δ4 are added to the learnt clauses database, assigning x2 to true at level 3 leads to the same set of implications by unit propagation. However, if we decide to assign x14 to Separate conflict analysis: a general formulation Let us now give a formal presentation of our new biasserting clauses derivation. In all the following definitions, we consider m as the current conflict level. In our approach, from a single conflict, we derive multiple new bi-asserting clauses by traversing the implication graph separately from x and ¬x until the first UIP. These clauses are then added to the learnt clauses database to enhance unit propagation. It should be noted that we only need a single traversal of the implication graph to derive both the classical asserting clause and the set of bi-asserting clauses. Indeed, the classical asserting clause can be progressively generated from the new bi-asserting clauses. In this way, we have no additional search overhead for the generation of these new bi-asserting clauses. 69 Definition 6 (Bi-Asserting clause derivation) Let x be a conflict literal, we define the Bi-Asserting clause derivation from x as the sequence of clauses Cx = σ1x , σ2x , . . . , σkx satisfying the following conditions : G between the first UIP and the conflict literals x and ¬x respectively. The time complexity needed for generating all the classical bi-asserting clauses is in O(|N x | × |N ¬x |) in the worst case. 1. σ1x , is derived by resolution on z from imp(x) and imp(z) where ¬z ∈ imp(x); Proof : The worst case is encountered for an implication graph G with |N x | and |N ¬x | bi-asserting literals. The form of such a graph is depicted in the figure 3. This corresponds to the graph where all the nodes are bi-asserting literals. As in classical bi-asserting clauses the generation process start by applying a first resolution step on the two clauses involving the literals x and ¬x, to generate all the classical biasserting clauses, we alternatively keep the bi-asserting literal from the part of the graph linked to x (respectively ¬x), and we traverse all the other part of the implication graph linked to ¬x (respectively to x). Consequently, the time complexity needed for deriving all the classical bi-asserting clauses is in O(|N x | × |N ¬x |). It is important to note that the classical bi-asserting clauses and the new bi-asserting clauses proposed in this paper differs in several aspects. First, the new (respectively classical) bi-asserting clause is satisfied (respectively falsified) under the current interpretation. Secondly, they are generated using different traversal of the implication graph. Consequently, the set of bi-asserting clauses generated by both approaches are different (see the motivating example given at the beginning of this section). 2. σix , for i ∈ 2..k, is built by resolution from a literal x s.t. l(z) = m and for which imp(z) is defined. z ∈ σi−1 x , imp(z)]; The clause σix is defined as η[z, σi−1 3. σkx is a Bi-Asserting clause. Definition 7 (Bi-Asserting literal) Let x be a conflict literal, let Cx = σ1x , σ2x , . . . , σkx be a Bi-Asserting clause derivation, we define a Bi-Asserting literal as the literal b ∈ σkx such that b = x and l(b) = m. If we reconsider again the implication graph of Figure 2, the set of different Bi-Asserting literals is {x8 , x9 , x2 , x3 , x1 }. Property 1 Let G be an implication graph, x the conflict literal of G. Let B x and B ¬x be the two sets of Bi-Asserting clauses generated from the conflict literals x and ¬x respectively. At the backtracking level, if a Bi-Asserting literal y from B x (respectively B ¬x ) is assigned to true, then all literals ¬z such that z is a Bi-Asserting literal of B ¬x (respectively B x ) will be implied. Exploitation of the new bi-asserting clauses During the search, when a conflict arises on a literal x, we analyze it by traversing the implication graph separately from x and ¬x. All the bi-asserting clauses derived during this analysis are stored in a new learnt bi-asserting clauses database. These new clauses are managed in the same way as the classical learnt clauses database. We exploit the same learnt database reduction strategy as in Minisat 2.2 (Eën and Sörensson 2002). The classical asserting clause is also added to the classical learnt clauses database. Proof : The proof is trivial. An illustration of the proof is given in the previous motivating example. It is easy to see that the number of new Bi-Asserting clauses that can be generated from any implication graph is at least 2. Let G be an implication graph with x a conflict literal, and y the asserting literal (First UIP scheme). It is easy to see that one can derive at least two bi-asserting clauses b1 = (α ∨ y ∨ x) and b2 = (β ∨ y ∨ ¬x). In this case the asserting clauses is a = (α ∨ β ∨ y). Experiments The experiments were done on a large panel of crafted and industrial problems coming from the last competitions. All the instances were simplified by the SatElite preprocessor (Eën and Biere 2005). We implemented our approach in Minisat 2.2 (Eën and Sörensson 2002) and made a comparison between the original solver and the one enhanced with the new bi-asserting clauses learning called Minisat+NB. All the tests were made on a Xeon 3.2GHz (2 GB RAM) cluster. Results are reported in seconds. During these experiments, the CPU time limit was fixed to 4 hours. Property 2 Let G be an implication graph, x the conflict literal of G, N x and N ¬x the sets of clauses encoded in G between the first UIP and the conflict literals x and ¬x respectively. The time complexity needed for generating all the our new bi-asserting clauses is in O(|N x | + |N ¬x |) in the worst case. Proof : As our bi-asserting clauses are generated by a parallel traversal of G from x and ¬x, each clause from N x and N ¬x is involved in one resolution step, the time complexity needed for deriving all the new Bi-Asserting clauses is in O(|N x | + |N ¬x |). If we consider the classical bi-asserting clauses (Pipatsrisawat and Darwiche 2008), and we want to generate all of them, the worst case complexity is quadratic. Crafted problems We used the whole set of crafteds instances taken from the 2011 SAT competitions. The log-scaled scatter plot given in the top part of Figure 4 details the results for Minisat and Minisat+NB on each crafted instance. The x-axis (resp. yaxis) corresponds to the CPU time tx (resp, ty) obtained by Property 3 Let G be an implication graph, x the conflict literal of G, N x and N ¬x the sets of clauses encoded in 70 Minisat (resp. Minisat+NB). Each dot with (tx, ty) coordinates, corresponds to a SAT instance. Dots below (resp. above) the diagonal indicate instances where our approach is more efficient i.e ty < tx (resp. ty > tx). The majority of the dots in the figure are below the diagonal i.e., Minisat+NB is better. This clearly shows the computational gain obtained thanks to our approach. On crafted instances our approach achieve interesting improvements. The bottom part of figure 4 shows the same results with a different representation which gives for each technique the number of solved instances (# instances) in less than t seconds. This Figure confirms the efficiency of our learning approach on these problems. From this figure, we can observe that Minisat+NB is generally faster and solves 15 more instances than Minisat. The fine analysis of the top part of figure 4 showed that Minisat+NB solves 81 instances more efficiently than Minisat, which solves 51 problems more efficiently than its opponent. a similar behavior. This confirm that when the implication graph do not contains intermediate bi-asserting literals on both sides of the conflict literals, our approach does not cause additional overcost. Indeed, the implication graph is traversed only once. Overall we can see that the addition of our learning process to Minisat improves the performance on some families of instances. Table 1 focuses on some industrial families. In these families, the speed-ups are relatively important. For instance, if we consider the vmpc family, we can see that our approach allows several orders of magnitude improvement with Minisat+NB (instances 31, and 33). On the same family, Minisat+NB solve one more instance than Minisat. On the manol family, we can also see that Minisat+NB solves 6 more instances than Minisat. On the velev family, Minisat+NB is better on the 4 solved instances by both Minisat+NB and Minisat. Minisat+NB solves 3 more instances than Minisat. In summary, we can see that on some families, Minisat+NB is faster and solves more problems than Minisat. 100000 10000 10000 1000 1000 10 100 minisat+NB minisat+NB 100 1 0.1 0.01 10 1 0.001 0.0001 0.0001 0.001 12000 0.1 0.01 0.1 1 10 minisat 100 1000 10000 100000 0.01 0.01 12000 10000 1 10 minisat 100 1000 10000 200 300 #instances 400 500 600 minisat minisat+NB 10000 8000 8000 6000 time(seconds) time(seconds) 0.1 minisat minisat+NB 4000 6000 4000 2000 2000 0 0 20 40 60 80 #instances 100 120 140 0 0 Figure 4: Crafted problems: Minisat vs Minisat+ 100 Figure 5: Industrial problems: Minisat vs Minisat+ Industrial problems We used the whole set of industrial instances taken from the 2012 SAT Challenge. The log-scaled scatter plot (in log scale) given by the Figure 5 details the results for Minisat and Minisat+NB. The results on industrial instances show Acknowledgments This work has been supported by the French ANR agency under the project Project TUPLES - ANR Programme Blanc 71 families vmpc 26 vmpc 27 vmpc 28 vmpc 29 vmpc 30 vmpc 31 vmpc 32 vmpc 33 vmpc 34 manol-pipe-f7idw manol-f9b manol-f9bidw manol-f9nidw manol-f8nidw manol-f8idw manol-f8bidw manol-fn manol-f10ni manol-f10bi manol-f10n manol-f10nidw manol-f10i manol-f10bid manol-f10id manol-f10bidw velev-7pipe q0 k velev-11pipe q0 k velev-14pipe q0 k velev-13pipe q0 k velev-10pipe q0 k velev-9pipe q0 k velev-15pipe q0 k velev-8pipe q0 k velev-12pipe k velev-8pipe k velev-6pipe k velev-10pipe k velev-7pipe k velev-9pipe k velev-13pipe k Minisat 14.14 42.62 98.99 73.41 467.25 7707.81 1822.31 6617.32 4442.4 125.13 3105.14 36.11 392.21 491.96 291.57 376.61 1381.6 1279.94 4747.46 545.58 46.57 874.26 - Minisat+ 21.06 11.31 23.45 465.88 535.62 415.29 2742.98 174.37 120.65 378.08 139.83 670.52 680.25 335.41 1606.05 181.76 44.09 492.48 490.90 296.35 2104.96 305.58 1066.62 1402.43 1742.06 1796.33 5342.33 129.849 5316.14 19.46 2721.39 232.91 - of bi-asserting clauses improves the performance of SAT solvers. Our approach is particularly suitable for crafted instances and on some industrial families. As a future work, we plan to investigate how to exploit the extended implication graph proposed in (Audemard et al. 2008) to obtain new asserting clauses. Indeed the additional arcs (called inverse arcs) together with our bi-asserting clauses might lead to better asserting clauses in terms of back-jumping level and size. References Audemard, G.; Bordeaux, L.; Hamadi, Y.; Jabbour, S.; and Sais, L. 2008. Generalized framework for conflict analysis. In Proceedings of the eleventh International Conference on Theory and Applications of Satisfiability Testing (SAT’08), 21–27. Bayardo, Jr., R. J., and Schrag, R. C. 1997. Using CSP look-back techniques to solve real-world SAT instances. In Proceedings of the Fourteenth National Conference on Artificial Intelligence (AAAI’97), 203–208. Davis, M.; Logemann, G.; and Loveland, D. W. 1962. A machine program for theorem-proving. Communications of the ACM 5(7):394–397. Eën, N., and Biere, A. 2005. Effective preprocessing in SAT through variable and clause elimination. In Proceedings of the Eighth International Conference on Theory and Applications of Satisfiability Testing (SAT’05), 61–75. Eën, N., and Sörensson, N. 2002. An extensible sat-solver. In Proceedings of the Sixth International Conference on Theory and Applications of Satisfiability Testing (SAT’03), 502–518. Gomes, C. P.; Selman, B.; and Kautz, H. 1998. Boosting combinatorial search through randomization. In Proceedings of the Fifteenth National Conference on Artificial Intelligence (AAAI’97), 431–437. Kautz, H.; Horvitz, E.; Ruan, Y.; Gomes, C.; and Selman, B. 2002. Dynamic restart policies. In Proceedings of the Eighteenth National Conference on Artificial Intelligence (AAAI’02), 674–682. Marques-Silva, J. P., and Sakallah, K. A. 1996. GRASP A New Search Algorithm for Satisfiability. In Proceedings of IEEE/ACM International Conference on Computer-Aided Design, 220–227. Moskewicz, M. W.; Madigan, C. F.; Zhao, Y.; Zhang, L.; and Malik, S. 2001. Chaff: Engineering an efficient SAT solver. In Proceedings of the 38th Design Automation Conference (DAC’01), 530–535. Pipatsrisawat, K., and Darwiche, A. 2008. A new clause learning scheme for efficient unsatisfiability proofs. In Proceedings of the 22th National Conference on Artificial Intelligence (AAAI’08), 1481–1484. Pipatsrisawat, K., and Darwiche, A. 2009. On the power of clause-learning sat solvers with restarts. In CP, 654–668. Pipatsrisawat, K., and Darwiche, A. 2010. On modern clause-learning satisfiability solvers. Journal of Automated Reasoning 44(3):277–301. Table 1: Zoom on some industrial families 10-BLAN-0210 ”Tractability for Understanding and Pushing forward the Limits of Efficient Solvers”. Conclusion This paper presents a new approach for clauses learning. More precisely, at each conflict, we traverse the implication graph separately from x and ¬x (x the conflict literal) until the First UIP. We derive a new class of bi-asserting clauses that can lead to a more compact implication graph. Interestingly, these new bi-asserting clauses tend to be much shorter and induce more implications than the classical bi-asserting clauses. Experimental results show that exploiting this new class 72