Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mining backbone literals in incremental SAT

Similar presentations


Presentation on theme: "Mining backbone literals in incremental SAT"— Presentation transcript:

1 Mining backbone literals in incremental SAT
A new kind of incremental data Alexander Ivrii IBM Haifa Vadim Ryvchin Intel Haifa Ofer Strichman Technion, Haifa TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAAA

2 Backbone literals l is a backbone literal of  if all models of  satisfy l. Checking whether a literal is a backbone is NP-C [1]. In this work: We show that many backbone literals (BL) can be found in P- time in the incremental SAT setting. Based on analyzing the proof of the last unsat instance. [1] Janota, Lynce, Marques-Silva. Algorithms for computing backbones of propositional formulae. AI Communication 2015.

3 Observation 1 Let π be a refutation. Then every vertex cut in π represents an inconsistent set of clauses [2] ? [2] A. Nadel. Understanding and Improving a Modern SAT Solver. PhD thesis, 2009.

4 Observation 2 Suppose our next instance is ’ = ¼ n cone(c) Let ® ² ’
Then ® ² :c ’ ) :c c2 ? c c3 c1 ’ (this observation is the basis of ‘redundancy removal’ in MUC extraction)

5 Observation 2 Suppose our next instance is ’ = ¼ n cone(c) Let ® ² ’
Then ® ² :c1 ’ ) :c1 c2 ? c c3 c1 ’

6 Observation 2 Suppose our next instance is ’ = ¼ n cone(c) Let ® ² ’
Then ® ² :c2 Ç :c3 ’ ) :c2 Ç :c3 c2 ? c c3 c1 ’

7 Observation 2 Suppose our next instance is ’ = ¼ n cone(c) Let ® ² ’
Then ® ² :c Æ :c1 Æ (:c2 Ç :c3) ’ ) :c Æ :c1 Æ (:c2 Ç :c3) c2 ? c c3 c1 ’ So what ?

8 In general… Let Cuts be the set of vertex cuts in cone(c)
Then (¼ n cone(c)) ) So we can add the redundant constraints à ’ à So what ?

9 In general Adding Ã: Two problems:
Not clear that adding such redundancy helps Exploring all cuts is ineffective A Solution preview: Find in P-time literals BL that are implied by à Since ’ ) à ) BL …then we can check ’ Æ BL But how?

10 Finding those backbone literals: Example
Suppose c2,c3 contain a mutual literal l e.g. c2 = (l Ç X1), c3 = (l Ç X2) Then l ² c2 Æ c3 But since we saw that à ² (:c2 Ç :c3) then à ² :l. Conclusion: ’ ) :l. c2 ? c c3 c1 ’

11 Observation 3 ’ ² :l if l appears in every clause along some cut in cone(c) Luckily, it can be done in P-time But exploring all cuts is exponential…

12 Mining BL literals in P-time: example
Literals on all paths from root to here {1 2 -3} { } { } { } { } Each of these literals satisfies a cut in cone(c)

13 Let’s keep mining… So far we ignored the state of the solver….
Suppose at decision level 0, ’ implies the literal -7 Denote such literals by cons. {1 2 -3} { } { } { } { } { }

14 Let’s keep mining… We can create a feedback loop:
…and activate it every time there is an increase in cons (decision level 0) (future work): … or at higher decision levels, Using an interface similar to SMT, where MBL is the theory. cons BCP MBL BL

15 Other optimizations… Cutoff values
When the span of cone(c) exceeds a threshold, stop. Likely to take too much time Not likely to produce many literals because cuts are long

16 A major problem The more BL literals there are… Without a proof of …
… the better the chance the proof will rely on them… … and hence be a proof of :BL, rather than of . Without a proof of … We cannot repeat the process. In MUC extraction: we cannot apply clause-set refinement (extract a core). Hence, can only remove one clause. A known problem for simpler techniques [1][2] We actually have an idea how to extract a core (see understandings document) and 10/9/15. [1] Nadel, Ryvchin, Strichman: Efficient MUS extraction with resolution. FMCAD’13 [2] Belov, Marques-Silva: MUSer2: An efficient MUS extractor. JSAT

17 Can we reconstruct a proof of ? ?
BL are derived based on a meta-argument, using the fact that the previous formula was unsatisfiable. Our strategy: use the BL only when it is worth it… Hence… we do not have a deductive proof that uses less than all of the clauses.

18 Repeating the process We apply two delays to encourage proofs of :
Initial delay until BL are computed / used Many instances are solved fast without them If proved unsat with BL, continue for a bounded amount of time with the hope to find a proof of . If all else fails… do not use BL until the next proof of . In between such proofs, use redundancy-removal (BL = :c) The advantage of the second type of delay is that it helps SAT cases

19 Experiments We compare to Path Strengthening [1] –
a prefix of clauses without siblings in cone(c) c2 ? c c3 c1 ’ [1] Nadel, Ryvchin, Strichman: Efficient MUS extraction with resolution. FMCAD’13

20 Results SAT’11 comp. benchmarks: 6% improvement.
Sat02¯ unsat benchmarks: 10% improvement. Sat02¯ Sat02¯

21 Why such a small improvement ?
Benchmarks With a 15 min. timeout, we can only compute MUS for easy instances. Typically each iteration solved < 1 sec. The P-time cost vs. exp-time benefit does not play much of a role in such formulas.

22 Why such a small improvement ?
A diminishing value of extra assumptions: Sat02¯

23 Summary We showed a P-time algorithm to extract Backbone Literals in an incremental setting. A new type of incremental data Challenge: fix the negative-feedback loop problem ! Implemented in HaifaMUC-1.3 …. Looking for collaborations on this topic … .

24 Optimization #1 for min. unsat core
Suppose last proof used assumptions set A (hence it is a proof of :A) Clause c’ was not used in proof, and Clause c’ is not a root of a clause in an l-cut, for l2A. Hence c’ is not necessary for the proof and can be removed. Apply this for every clause c’ not used in the proof. Problem: for each l 2 A, find an l vertex cut (the highest possible, so as to minimize roots). Solution: Go bottom up with l, stop at c if it has a parent p such that l  p.LitSet (and assert that l 2 c.LitSet). Wrong! Core + core(BL) is insufficient. There is some confusion here with negation, since the assumptions are negation of literals in the BL set. So it is really: A \subset \neg l, l \in BL(c’)

25 Used to prove :l1 and :l2 Can be removed Used in proof of (l1 Ç l2) c l1-cut l2-cut Wrong! Core + core(BL) is insufficient.

26 The case of min. unsat core (MUC)
In contrast to general incremental SAT, where clauses are removed between instances from outside, … in MUC we try to remove as many clauses as possible.

27 Optimization for min. unsat core
Suppose last proof used assumptions set A hence it is a proof of :A Clause c’ was not used in proof, A µ BL(c’) Hence c’ is not necessary for the proof and can be removed. Apply this for every clause c’ not used in the proof.  n c’ ) :A  n c’ ) A This is pf_unsatopt in the code. There is some confusion here with negation, since the assumptions are negation of literals in the BL set. So it is really: A \subset \neg l, l \in BL(c’)


Download ppt "Mining backbone literals in incremental SAT"

Similar presentations


Ads by Google