SAT by MaxSAT
From NP to Beyond NP and Back Again
Joao Marques-Silva
(joint work with A. Ignatiev and A. Morgado)
University of Lisbon, Portugal
RTiKC Dagstuhl Seminar Schloss Dagstuhl, Germany
September 2017
1 / 33
SAT by MaxSAT From NP to Beyond NP and Back Again Joao - - PowerPoint PPT Presentation
SAT by MaxSAT From NP to Beyond NP and Back Again Joao Marques-Silva (joint work with A. Ignatiev and A. Morgado) University of Lisbon, Portugal RTiKC Dagstuhl Seminar Schloss Dagstuhl, Germany September 2017 1 / 33 Why SAT by MaxSAT?
1 / 33
Knowledge Compilation Empowerment Horn LUBs Non-Clausal Primes Hitting Set Dualization Maximum Satisfiability (MaxSAT) Horn MaxSAT Other Problems MaxHS SAT to Horn MaxSAT Polynomial Time Refutations for PHP MaxSAT Resolution Core- Guided MaxSAT 2 / 33
3 / 33
4 / 33
5 / 33
5 / 33
5 / 33
[e.g. SZGN17] 5 / 33
6 / 33
6 / 33
7 / 33
7 / 33
7 / 33
7 / 33
7 / 33
7 / 33
7 / 33
7 / 33
7 / 33
7 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
8 / 33
◮ Most often, unit soft clauses
9 / 33
◮ Most often, unit soft clauses
[GJS76]
[JS87]
[JS87] ◮ By definition, any problem in NP is reducible to K-HornSAT ◮ But ... 9 / 33
10 / 33
◮ MaxSAT resolution ◮ Core-guided algorithm(s) ◮ MaxHS-like algorithms ◮ ...
10 / 33
[IMMS17,MSIM17]
11 / 33
[IMMS17,MSIM17]
[S05,ES06,ANORC11,...] 11 / 33
[IMMS17,MSIM17]
[S05,ES06,ANORC11,...]
[BBR09] 11 / 33
[IMMS17,MSIM17]
[S05,ES06,ANORC11,...]
[BBR09]
11 / 33
[IMMS17,MSIM17]
[S05,ES06,ANORC11,...]
[BBR09]
11 / 33
12 / 33
13 / 33
13 / 33
1 1
pigeons holes
m + 1 i j m
13 / 33
14 / 33
i=1 AtLeast1(xi1, . . . , xim) ∧ m j=1 AtMost1(x1j, . . . , xm+1 j) 14 / 33
i=1 AtLeast1(xi1, . . . , xim) ∧ m j=1 AtMost1(x1j, . . . , xm+1 j)
i=1 AtLeast1(xi1, . . . , xim)
j=1AtMost1(x1j, . . . , xm+1 j)
r=2 ∧r−1 s=1 (¬xrj ∨ ¬xsj) 14 / 33
15 / 33
16 / 33
16 / 33
16 / 33
16 / 33
16 / 33
17 / 33
[BBBCS87] 17 / 33
18 / 33
18 / 33
18 / 33
18 / 33
i=1 AtLeast1(xi1, . . . , xim)
j=1AtMost1(x1j, . . . , xm+1,j)
r=2 ∧r−1 s=1 (¬prj ∨ ¬psj) 19 / 33
i=1 AtLeast1(xi1, . . . , xim)
j=1AtMost1(x1j, . . . , xm+1,j)
r=2 ∧r−1 s=1 (¬prj ∨ ¬psj)
r=2 ∧r−1 s=1 (¬prj ∨ ¬psj)
r=2 ∧r−1 s=1 (¬prl ∨ ¬psl)
19 / 33
20 / 33
21 / 33
21 / 33
21 / 33
22 / 33
22 / 33
22 / 33
22 / 33
l=1 sil ≤ 1
l=1 rlj ≤ 1
l=1 rlj ≤ 1
l=1 rlj ≤ 2
l=1 rlj ≤ m − 1
l=1 rlj ≤ m
23 / 33
l=1 rlj ≤ k − 1
l=1 rlj ≤ k − 1
m
24 / 33
25 / 33
SAT SAT+ IHS MaxSAT CG MaxSAT MRes MIP OPB BDD
26 / 33
10 20 30 40 50 60 instances 10−3 10−2 10−1 100 101 102 103 CPU time (s) lp-cnf lp-wcnf maxhs lmhs mscg eva lgl lmhs-nes zres glucose lgl-nocard cc-cnf cc-opb 10 20 30 40 50 instances 10−3 10−2 10−1 100 101 102 103 CPU time (s) lp-cnf lp-wcnf maxhs lmhs mscg lmhs-nes eva glucose lgl-nocard lgl zres cc-cnf cc-opb
27 / 33
20 40 60 80 100 instances 10−3 10−2 10−1 100 101 102 103 CPU time (s) mscg (no P) maxhs lmhs wbo (no P) mscg eva (no P) eva lmhs-nes (no P) lmhs-nes wbo
28 / 33
10−3 10−2 10−1 100 101 102 103 104 PHP-nop 10−3 10−2 10−1 100 101 102 103 104 PHP
1800 sec. timeout 1800 sec. timeout
10−3 10−2 10−1 100 101 102 103 104 PHP-nop 10−3 10−2 10−1 100 101 102 103 104 PHP
1800 sec. timeout 1800 sec. timeout
29 / 33
10 20 30 40 50 60 70 80 90 instances 10−2 10−1 100 101 102 103 CPU time (s) zres maxhs lmhs lmhs-nes lgl lp-wcnf mscg lgl-nogauss glucose eva cc-cnf 20 40 60 80 100 instances 10−1 100 101 102 103 CPU time (s) lmhs lmhs-nes maxhs lgl-nocard zres lgl lp-wcnf glucose mscg eva cc-cnf
30 / 33
31 / 33
31 / 33
31 / 33
31 / 33
32 / 33
33 / 33