SAT by MaxSAT From NP to Beyond NP and Back Again Joao - - PowerPoint PPT Presentation

sat by maxsat
SMART_READER_LITE
LIVE PREVIEW

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?


slide-1
SLIDE 1

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

slide-2
SLIDE 2

Why “SAT by MaxSAT”?

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

slide-3
SLIDE 3

Outline

Maximum Satisfiability Pigeonhole Formulas From SAT to Horn MaxSAT Polynomial Time Refutations of PHP Experimental Results ?

3 / 33

slide-4
SLIDE 4

Outline

Maximum Satisfiability Pigeonhole Formulas From SAT to Horn MaxSAT Polynomial Time Refutations of PHP Experimental Results ?

4 / 33

slide-5
SLIDE 5

What is Maximum Satisfiability (MaxSAT)?

x6 ∨ x2 ¬x6 ∨ x2 ¬x2 ∨ x1 ¬x1 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4 ¬x4 ∨ x5 x7 ∨ x5 ¬x7 ∨ x5 ¬x5 ∨ x3 ¬x3

5 / 33

slide-6
SLIDE 6

What is Maximum Satisfiability (MaxSAT)?

x6 ∨ x2 ¬x6 ∨ x2 ¬x2 ∨ x1 ¬x1 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4 ¬x4 ∨ x5 x7 ∨ x5 ¬x7 ∨ x5 ¬x5 ∨ x3 ¬x3

  • Given unsatisfiable formula

5 / 33

slide-7
SLIDE 7

What is Maximum Satisfiability (MaxSAT)?

x6 ∨ x2 ¬x6 ∨ x2 ¬x2 ∨ x1 ¬x1 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4 ¬x4 ∨ x5 x7 ∨ x5 ¬x7 ∨ x5 ¬x5 ∨ x3 ¬x3

  • Given unsatisfiable formula, find largest satisfiable subset of clauses

5 / 33

slide-8
SLIDE 8

What is Maximum Satisfiability (MaxSAT)?

x6 ∨ x2 ¬x6 ∨ x2 ¬x2 ∨ x1 ¬x1 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4 ¬x4 ∨ x5 x7 ∨ x5 ¬x7 ∨ x5 ¬x5 ∨ x3 ¬x3

  • Given unsatisfiable formula, find largest satisfiable subset of clauses

MaxSAT Variants Hard Clauses? No Yes Weights? No Plain Partial Yes Weighted Weighted Partial

  • Many practical applications

[e.g. SZGN17] 5 / 33

slide-9
SLIDE 9

Many algorithms for practical MaxSAT

MaxSAT Algorithms

Branch & Bound Iterative Core Guided Iterative MHS Model Guided

No unit prop; No cl. learning All cls relaxed Relax cls given unsat cores Iterative MHS & SAT Relax cls given models

6 / 33

slide-10
SLIDE 10

Many algorithms for practical MaxSAT

MaxSAT Algorithms

Branch & Bound Iterative Core Guided Iterative MHS Model Guided

No unit prop; No cl. learning All cls relaxed Relax cls given unsat cores Iterative MHS & SAT Relax cls given models

  • Most effective in practice: iterative MHS & core-guided [Many refs...]

– Solving formulas with tens/hundreds of thousands of clauses, and more – Instantiations of problem solving with SAT oracles

6 / 33

slide-11
SLIDE 11

A core-guided algorithm (MSU3)

x6 ∨ x2 ¬x6 ∨ x2 ¬x2 ∨ x1 ¬x1 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4 ¬x4 ∨ x5 x7 ∨ x5 ¬x7 ∨ x5 ¬x5 ∨ x3 ¬x3 Example CNF formula

7 / 33

slide-12
SLIDE 12

A core-guided algorithm (MSU3)

x6 ∨ x2 ¬x6 ∨ x2 ¬x2 ∨ x1 ¬x1 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4 ¬x4 ∨ x5 x7 ∨ x5 ¬x7 ∨ x5 ¬x5 ∨ x3 ¬x3 Formula is UNSAT; OPT ≤ |ϕ| − 1; Get unsat core

7 / 33

slide-13
SLIDE 13

A core-guided algorithm (MSU3)

x6 ∨ x2 ¬x6 ∨ x2 ¬x2 ∨ x1∨r1 ¬x1∨r2 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4∨r3 ¬x4 ∨ x5∨r4 x7 ∨ x5 ¬x7 ∨ x5 ¬x5 ∨ x3∨r5 ¬x3∨r6 6

i=1 ri ≤ 1

Add relaxation variables and AtMostk, k = 1, constraint

7 / 33

slide-14
SLIDE 14

A core-guided algorithm (MSU3)

x6 ∨ x2 ¬x6 ∨ x2 ¬x2 ∨ x1∨r1 ¬x1∨r2 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4∨r3 ¬x4 ∨ x5∨r4 x7 ∨ x5 ¬x7 ∨ x5 ¬x5 ∨ x3∨r5 ¬x3∨r6 6

i=1 ri ≤ 1

Formula is (again) UNSAT; OPT ≤ |ϕ| − 2; Get unsat core

7 / 33

slide-15
SLIDE 15

A core-guided algorithm (MSU3)

x6 ∨ x2∨r7 ¬x6 ∨ x2∨r8 ¬x2 ∨ x1∨r1 ¬x1∨r2 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4∨r3 ¬x4 ∨ x5∨r4 x7 ∨ x5∨r9 ¬x7 ∨ x5∨r10 ¬x5 ∨ x3∨r5 ¬x3∨r6 10

i=1 ri ≤ 2

Add new relaxation variables and update AtMostk, k=2, constraint

7 / 33

slide-16
SLIDE 16

A core-guided algorithm (MSU3)

x6 ∨ x2∨r7 ¬x6 ∨ x2∨r8 ¬x2 ∨ x1∨r1 ¬x1∨r2 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4∨r3 ¬x4 ∨ x5∨r4 x7 ∨ x5∨r9 ¬x7 ∨ x5∨r10 ¬x5 ∨ x3∨r5 ¬x3∨r6 10

i=1 ri ≤ 2

Instance is now SAT

7 / 33

slide-17
SLIDE 17

A core-guided algorithm (MSU3)

x6 ∨ x2∨r7 ¬x6 ∨ x2∨r8 ¬x2 ∨ x1∨r1 ¬x1∨r2 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4∨r3 ¬x4 ∨ x5∨r4 x7 ∨ x5∨r9 ¬x7 ∨ x5∨r10 ¬x5 ∨ x3∨r5 ¬x3∨r6 10

i=1 ri ≤ 2

MaxSAT solution is |ϕ| − I = 12 − 2 = 10

7 / 33

slide-18
SLIDE 18

A core-guided algorithm (MSU3)

x6 ∨ x2∨r7 ¬x6 ∨ x2∨r8 ¬x2 ∨ x1∨r1 ¬x1∨r2 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4∨r3 ¬x4 ∨ x5∨r4 x7 ∨ x5∨r9 ¬x7 ∨ x5∨r10 ¬x5 ∨ x3∨r5 ¬x3∨r6 10

i=1 ri ≤ 2

MaxSAT solution is |ϕ| − I = 12 − 2 = 10

AtMostk/PB constraints used Relaxed soft clauses become hard

7 / 33

slide-19
SLIDE 19

A core-guided algorithm (MSU3)

x6 ∨ x2∨r7 ¬x6 ∨ x2∨r8 ¬x2 ∨ x1∨r1 ¬x1∨r2 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4∨r3 ¬x4 ∨ x5∨r4 x7 ∨ x5∨r9 ¬x7 ∨ x5∨r10 ¬x5 ∨ x3∨r5 ¬x3∨r6 10

i=1 ri ≤ 2

MaxSAT solution is |ϕ| − I = 12 − 2 = 10

AtMostk/PB constraints used Relaxed soft clauses become hard Some clauses not relaxed

7 / 33

slide-20
SLIDE 20

A core-guided algorithm (MSU3)

x6 ∨ x2∨r7 ¬x6 ∨ x2∨r8 ¬x2 ∨ x1∨r1 ¬x1∨r2 ¬x6 ∨ x8 x6 ∨ ¬x8 x2 ∨ x4∨r3 ¬x4 ∨ x5∨r4 x7 ∨ x5∨r9 ¬x7 ∨ x5∨r10 ¬x5 ∨ x3∨r5 ¬x3∨r6 10

i=1 ri ≤ 2

MaxSAT solution is |ϕ| − I = 12 − 2 = 10

AtMostk/PB constraints used Relaxed soft clauses become hard Some clauses not relaxed

Note: # of SAT oracle calls grows linear with solution cost!

7 / 33

slide-21
SLIDE 21

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = ∅

  • Find MHS of K:

8 / 33

slide-22
SLIDE 22

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = ∅

  • Find MHS of K: ∅

8 / 33

slide-23
SLIDE 23

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = ∅

  • Find MHS of K: ∅
  • SAT(F \ ∅)?

8 / 33

slide-24
SLIDE 24

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = ∅

  • Find MHS of K: ∅
  • SAT(F \ ∅)? No

8 / 33

slide-25
SLIDE 25

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = ∅

  • Find MHS of K: ∅
  • SAT(F \ ∅)? No
  • Core of F: {c1, c2, c3, c4}

8 / 33

slide-26
SLIDE 26

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}}

  • Find MHS of K: ∅
  • SAT(F \ ∅)? No
  • Core of F: {c1, c2, c3, c4}. Update K

8 / 33

slide-27
SLIDE 27

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}}

  • Find MHS of K:

8 / 33

slide-28
SLIDE 28

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}}

  • Find MHS of K: E.g. {c1}

8 / 33

slide-29
SLIDE 29

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}}

  • Find MHS of K: E.g. {c1}
  • SAT(F \ {c1})?

8 / 33

slide-30
SLIDE 30

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}}

  • Find MHS of K: E.g. {c1}
  • SAT(F \ {c1})? No

8 / 33

slide-31
SLIDE 31

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}}

  • Find MHS of K: E.g. {c1}
  • SAT(F \ {c1})? No
  • Core of F: {c9, c10, c11, c12}

8 / 33

slide-32
SLIDE 32

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}}

  • Find MHS of K: E.g. {c1}
  • SAT(F \ {c1})? No
  • Core of F: {c9, c10, c11, c12}. Update K

8 / 33

slide-33
SLIDE 33

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}}

  • Find MHS of K:

8 / 33

slide-34
SLIDE 34

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}}

  • Find MHS of K: E.g. {c1, c9}

8 / 33

slide-35
SLIDE 35

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}}

  • Find MHS of K: E.g. {c1, c9}
  • SAT(F \ {c1, c9})?

8 / 33

slide-36
SLIDE 36

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}}

  • Find MHS of K: E.g. {c1, c9}
  • SAT(F \ {c1, c9})? No

8 / 33

slide-37
SLIDE 37

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}}

  • Find MHS of K: E.g. {c1, c9}
  • SAT(F \ {c1, c9})? No
  • Core of F: {c3, c4, c7, c8, c11, c12}

8 / 33

slide-38
SLIDE 38

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}, {c3, c4, c7, c8, c11, c12}}

  • Find MHS of K: E.g. {c1, c9}
  • SAT(F \ {c1, c9})? No
  • Core of F: {c3, c4, c7, c8, c11, c12}. Update K

8 / 33

slide-39
SLIDE 39

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}, {c3, c4, c7, c8, c11, c12}}

  • Find MHS of K:

8 / 33

slide-40
SLIDE 40

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}, {c3, c4, c7, c8, c11, c12}}

  • Find MHS of K: E.g. {c4, c9}

8 / 33

slide-41
SLIDE 41

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}, {c3, c4, c7, c8, c11, c12}}

  • Find MHS of K: E.g. {c4, c9}
  • SAT(F \ {c4, c9})?

8 / 33

slide-42
SLIDE 42

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}, {c3, c4, c7, c8, c11, c12}}

  • Find MHS of K: E.g. {c4, c9}
  • SAT(F \ {c4, c9})? Yes,

e.g. x1 = x2 = 1, x3 = x4 = x5 = x6 = x7 = x8 = 0

8 / 33

slide-43
SLIDE 43

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}, {c3, c4, c7, c8, c11, c12}}

  • Find MHS of K: E.g. {c4, c9}
  • SAT(F \ {c4, c9})? Yes,

e.g. x1 = x2 = 1, x3 = x4 = x5 = x6 = x7 = x8 = 0

  • Terminate & return 2

8 / 33

slide-44
SLIDE 44

MaxSAT with Minimum Hitting Sets (MHS)

c1 = x6 ∨ x2 c2 = ¬x6 ∨ x2 c3 = ¬x2 ∨ x1 c4 = ¬x1 c5 = ¬x6 ∨ x8 c6 = x6 ∨ ¬x8 c7 = x2 ∨ x4 c8 = ¬x4 ∨ x5 c9 = x7 ∨ x5 c10 = ¬x7 ∨ x5 c11 = ¬x5 ∨ x3 c12 = ¬x3

K = {{c1, c2, c3, c4}, {c9, c10, c11, c12}, {c3, c4, c7, c8, c11, c12}}

  • Find MHS of K: E.g. {c4, c9}
  • SAT(F \ {c4, c9})? Yes,

e.g. x1 = x2 = 1, x3 = x4 = x5 = x6 = x7 = x8 = 0

  • Terminate & return 2

Possibly many MHSes, with one SAT oracle call for each MHS!

8 / 33

slide-45
SLIDE 45

Recap Horn MaxSAT

  • What is Horn MaxSAT?

– All soft clauses are Horn

◮ Most often, unit soft clauses

– All hard clauses are Horn

9 / 33

slide-46
SLIDE 46

Recap Horn MaxSAT

  • What is Horn MaxSAT?

– All soft clauses are Horn

◮ Most often, unit soft clauses

– All hard clauses are Horn

  • How hard is Horn MaxSAT?

– Max-2SAT (and so MaxSAT) is NP-hard

[GJS76]

– Decision K-SAT is NP-complete – Horn MaxSAT is NP-hard

[JS87]

– Decision K-HornSAT is NP-complete

[JS87] ◮ By definition, any problem in NP is reducible to K-HornSAT ◮ But ... 9 / 33

slide-47
SLIDE 47

Why use Horn MaxSAT?

  • Practical perspective:

– MaxSAT with MHSes is very efficient in practice – For Horn MaxSAT, we can replace SAT call (worst-case exponential) with LTUR call (worst-case linear)

10 / 33

slide-48
SLIDE 48

Why use Horn MaxSAT?

  • Practical perspective:

– MaxSAT with MHSes is very efficient in practice – For Horn MaxSAT, we can replace SAT call (worst-case exponential) with LTUR call (worst-case linear)

  • Theoretical perspective:

– Reducing SAT to Horn MaxSAT & applying a MaxSAT algorithm yields a new proof system

◮ MaxSAT resolution ◮ Core-guided algorithm(s) ◮ MaxHS-like algorithms ◮ ...

– Reducing PHP to SAT and then to Horn MaxSAT admits polynomial time refutations for some MaxSAT algorithms

10 / 33

slide-49
SLIDE 49

What can we solve with Horn MaxSAT?

[IMMS17,MSIM17]

SAT ≤P Horn MaxSAT and so CSP, ASP, SMT*, ... CSP ≤P Horn MaxSAT besides CSP ≤P SAT PHP ≤P Horn MaxSAT besides PHP ≤P SAT MaxClique ≤P Horn MaxSAT and so MinVC, MaxIS MinHS ≤P Horn MaxSAT and so MaxSP MinDS ≤P Horn MaxSAT

11 / 33

slide-50
SLIDE 50

What can we solve with Horn MaxSAT?

[IMMS17,MSIM17]

SAT ≤P Horn MaxSAT and so CSP, ASP, SMT*, ... CSP ≤P Horn MaxSAT besides CSP ≤P SAT PHP ≤P Horn MaxSAT besides PHP ≤P SAT MaxClique ≤P Horn MaxSAT and so MinVC, MaxIS MinHS ≤P Horn MaxSAT and so MaxSP MinDS ≤P Horn MaxSAT

  • Most encodings of cardinality constraints are Horn

– Sequential counters; totalizers; sorting networks; (pairwise) (cardinality networks); bitwise (for AtMost1)

[S05,ES06,ANORC11,...] 11 / 33

slide-51
SLIDE 51

What can we solve with Horn MaxSAT?

[IMMS17,MSIM17]

SAT ≤P Horn MaxSAT and so CSP, ASP, SMT*, ... CSP ≤P Horn MaxSAT besides CSP ≤P SAT PHP ≤P Horn MaxSAT besides PHP ≤P SAT MaxClique ≤P Horn MaxSAT and so MinVC, MaxIS MinHS ≤P Horn MaxSAT and so MaxSP MinDS ≤P Horn MaxSAT

  • Most encodings of cardinality constraints are Horn

– Sequential counters; totalizers; sorting networks; (pairwise) (cardinality networks); bitwise (for AtMost1)

[S05,ES06,ANORC11,...]

  • Some encodings of pseudo-Boolean constraints are Horn

– Local polynomial watchdog (LPW)

[BBR09] 11 / 33

slide-52
SLIDE 52

What can we solve with Horn MaxSAT?

[IMMS17,MSIM17]

SAT ≤P Horn MaxSAT and so CSP, ASP, SMT*, ... CSP ≤P Horn MaxSAT besides CSP ≤P SAT PHP ≤P Horn MaxSAT besides PHP ≤P SAT MaxClique ≤P Horn MaxSAT and so MinVC, MaxIS MinHS ≤P Horn MaxSAT and so MaxSP MinDS ≤P Horn MaxSAT

  • Most encodings of cardinality constraints are Horn

– Sequential counters; totalizers; sorting networks; (pairwise) (cardinality networks); bitwise (for AtMost1)

[S05,ES06,ANORC11,...]

  • Some encodings of pseudo-Boolean constraints are Horn

– Local polynomial watchdog (LPW)

[BBR09]

Knapsack ≤P Horn MaxSAT

11 / 33

slide-53
SLIDE 53

What can we solve with Horn MaxSAT?

[IMMS17,MSIM17]

SAT ≤P Horn MaxSAT and so CSP, ASP, SMT*, ... CSP ≤P Horn MaxSAT besides CSP ≤P SAT PHP ≤P Horn MaxSAT besides PHP ≤P SAT MaxClique ≤P Horn MaxSAT and so MinVC, MaxIS MinHS ≤P Horn MaxSAT and so MaxSP MinDS ≤P Horn MaxSAT

  • Most encodings of cardinality constraints are Horn

– Sequential counters; totalizers; sorting networks; (pairwise) (cardinality networks); bitwise (for AtMost1)

[S05,ES06,ANORC11,...]

  • Some encodings of pseudo-Boolean constraints are Horn

– Local polynomial watchdog (LPW)

[BBR09]

Knapsack ≤P Horn MaxSAT

  • Apparently, we live in a (mostly) Horn world!

11 / 33

slide-54
SLIDE 54

Outline

Maximum Satisfiability Pigeonhole Formulas From SAT to Horn MaxSAT Polynomial Time Refutations of PHP Experimental Results ?

12 / 33

slide-55
SLIDE 55

Pigeonhole formulas I

  • Pigeonhole principle:

– Typical: if m + 1 pigeons are distributed by m holes, then at least

  • ne hole contains more than one pigeon

– Alternative: there exists no injective function mapping from {1, 2, ..., m + 1} to {1, 2, ..., m}, for m ≥ 1

13 / 33

slide-56
SLIDE 56

Pigeonhole formulas I

  • Pigeonhole principle:

– Typical: if m + 1 pigeons are distributed by m holes, then at least

  • ne hole contains more than one pigeon

– Alternative: there exists no injective function mapping from {1, 2, ..., m + 1} to {1, 2, ..., m}, for m ≥ 1

  • Propositional formulation:

Does there exist assignment such that the m + 1 pigeons can be placed into m holes?

13 / 33

slide-57
SLIDE 57

Pigeonhole formulas I

  • Pigeonhole principle:

– Typical: if m + 1 pigeons are distributed by m holes, then at least

  • ne hole contains more than one pigeon

– Alternative: there exists no injective function mapping from {1, 2, ..., m + 1} to {1, 2, ..., m}, for m ≥ 1

  • Propositional formulation:

Does there exist assignment such that the m + 1 pigeons can be placed into m holes?

  • Encoding: xij variables

1 1

pigeons holes

m + 1 i j m

13 / 33

slide-58
SLIDE 58

Pigeonhole formulas II – propositional encoding PHPm+1

m

  • Variables:

– xij = 1 iff the ith pigeon is placed in the jth hole, 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m

14 / 33

slide-59
SLIDE 59

Pigeonhole formulas II – propositional encoding PHPm+1

m

  • Variables:

– xij = 1 iff the ith pigeon is placed in the jth hole, 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m

  • Constraints:

– Each pigeon must be placed in at least one hole, and each hole must not have more than one pigeon

m+1

i=1 AtLeast1(xi1, . . . , xim) ∧ m j=1 AtMost1(x1j, . . . , xm+1 j) 14 / 33

slide-60
SLIDE 60

Pigeonhole formulas II – propositional encoding PHPm+1

m

  • Variables:

– xij = 1 iff the ith pigeon is placed in the jth hole, 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m

  • Constraints:

– Each pigeon must be placed in at least one hole, and each hole must not have more than one pigeon

m+1

i=1 AtLeast1(xi1, . . . , xim) ∧ m j=1 AtMost1(x1j, . . . , xm+1 j)

  • Example encoding, with pairwise encoding for AtMost1 constraint:

Constraint Clause(s) ∧m+1

i=1 AtLeast1(xi1, . . . , xim)

(xi1 ∨ . . . ∨ xim) ∧m

j=1AtMost1(x1j, . . . , xm+1 j)

∧m+1

r=2 ∧r−1 s=1 (¬xrj ∨ ¬xsj) 14 / 33

slide-61
SLIDE 61

Outline

Maximum Satisfiability Pigeonhole Formulas From SAT to Horn MaxSAT Polynomial Time Refutations of PHP Experimental Results ?

15 / 33

slide-62
SLIDE 62

SAT reduces to Horn MaxSAT

F (x1 ∨ ¬x2 ∨ x3) ∧ (x2 ∨ x3) ∧ (¬x1 ∨ ¬x3)

16 / 33

slide-63
SLIDE 63

SAT reduces to Horn MaxSAT

F (x1 ∨ ¬x2 ∨ x3) ∧ (x2 ∨ x3) ∧ (¬x1 ∨ ¬x3)

  • For each xi, create new variables pi and ni
  • pi and ni cannot both be assigned 1:

– Add hard clause (¬pi ∨ ¬ni)

16 / 33

slide-64
SLIDE 64

SAT reduces to Horn MaxSAT

F (x1 ∨ ¬x2 ∨ x3) ∧ (x2 ∨ x3) ∧ (¬x1 ∨ ¬x3)

  • For each xi, create new variables pi and ni
  • pi and ni cannot both be assigned 1:

– Add hard clause (¬pi ∨ ¬ni)

  • Reencode original clauses (as hard clauses):

– Literal xi replaced by ¬ni – Literal ¬xi replaced by ¬pi

  • Goal is to assign value 1 to each variable, if possible:

– Add soft clauses (pi) and (ni)

16 / 33

slide-65
SLIDE 65

SAT reduces to Horn MaxSAT

F (x1 ∨ ¬x2 ∨ x3) ∧ (x2 ∨ x3) ∧ (¬x1 ∨ ¬x3)

  • For each xi, create new variables pi and ni
  • pi and ni cannot both be assigned 1:

– Add hard clause (¬pi ∨ ¬ni)

  • Reencode original clauses (as hard clauses):

– Literal xi replaced by ¬ni – Literal ¬xi replaced by ¬pi

  • Goal is to assign value 1 to each variable, if possible:

– Add soft clauses (pi) and (ni)

  • All clauses are Horn

16 / 33

slide-66
SLIDE 66

SAT reduces to Horn MaxSAT

F (x1 ∨ ¬x2 ∨ x3) ∧ (x2 ∨ x3) ∧ (¬x1 ∨ ¬x3)

  • For each xi, create new variables pi and ni
  • pi and ni cannot both be assigned 1:

– Add hard clause (¬pi ∨ ¬ni)

  • Reencode original clauses (as hard clauses):

– Literal xi replaced by ¬ni – Literal ¬xi replaced by ¬pi

  • Goal is to assign value 1 to each variable, if possible:

– Add soft clauses (pi) and (ni)

  • All clauses are Horn
  • Original formula is satisfiable iff Horn MaxSAT formula can satisfy

n soft clauses (and the hard clauses)

– I.e., if there is an assignment to the n variables consistent with the

  • riginal clauses

16 / 33

slide-67
SLIDE 67

SAT reduces to Horn MaxSAT (Cont.)

F (x1 ∨ ¬x2 ∨ x3) ∧ (x2 ∨ x3) ∧ (¬x1 ∨ ¬x3)

  • Example:

– New variables: p1, p2, p3, n1, n2, n3 – Filter impossible assignments: {(¬p1 ∨ ¬n1), (¬p2 ∨ ¬n2), (¬p3 ∨ ¬n3)} – Original clauses reencoded: (¬n1 ∨ ¬p2 ∨ ¬n3) ∧ (¬n2 ∨ ¬n3) ∧ (¬p1 ∨ ¬p3) – Soft clauses: {(p1), (p2), (p3), (n1), (n2), (n3)}

17 / 33

slide-68
SLIDE 68

SAT reduces to Horn MaxSAT (Cont.)

F (x1 ∨ ¬x2 ∨ x3) ∧ (x2 ∨ x3) ∧ (¬x1 ∨ ¬x3)

  • Example:

– New variables: p1, p2, p3, n1, n2, n3 – Filter impossible assignments: {(¬p1 ∨ ¬n1), (¬p2 ∨ ¬n2), (¬p3 ∨ ¬n3)} – Original clauses reencoded: (¬n1 ∨ ¬p2 ∨ ¬n3) ∧ (¬n2 ∨ ¬n3) ∧ (¬p1 ∨ ¬p3) – Soft clauses: {(p1), (p2), (p3), (n1), (n2), (n3)}

  • Encoding is a variant of the dual-rail encoding, used since the mid

80s

[BBBCS87] 17 / 33

slide-69
SLIDE 69

PHP as Horn MaxSAT

  • New variables nij and pij, for each xij, 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m
  • The soft clauses S, with |S| = 2m(m + 1), are given by

{ (n11), . . . , (n1m), . . . , (nm+1 1), . . . , (nm+1 m), (p11), . . . , (p1m), . . . , (pm+1 1), . . . , (pm+1 m) }

18 / 33

slide-70
SLIDE 70

PHP as Horn MaxSAT

  • New variables nij and pij, for each xij, 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m
  • The soft clauses S, with |S| = 2m(m + 1), are given by

{ (n11), . . . , (n1m), . . . , (nm+1 1), . . . , (nm+1 m), (p11), . . . , (p1m), . . . , (pm+1 1), . . . , (pm+1 m) }

  • Clauses in P: P = {(¬nij ∨ ¬pij) | 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m}

18 / 33

slide-71
SLIDE 71

PHP as Horn MaxSAT

  • New variables nij and pij, for each xij, 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m
  • The soft clauses S, with |S| = 2m(m + 1), are given by

{ (n11), . . . , (n1m), . . . , (nm+1 1), . . . , (nm+1 m), (p11), . . . , (p1m), . . . , (pm+1 1), . . . , (pm+1 m) }

  • Clauses in P: P = {(¬nij ∨ ¬pij) | 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m}
  • AtLeast1 constraints encoded as Li, 1 ≤ i ≤ m + 1
  • AtMost1 constraints encoded as Mj, 1 ≤ j ≤ m

18 / 33

slide-72
SLIDE 72

PHP as Horn MaxSAT

  • New variables nij and pij, for each xij, 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m
  • The soft clauses S, with |S| = 2m(m + 1), are given by

{ (n11), . . . , (n1m), . . . , (nm+1 1), . . . , (nm+1 m), (p11), . . . , (p1m), . . . , (pm+1 1), . . . , (pm+1 m) }

  • Clauses in P: P = {(¬nij ∨ ¬pij) | 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m}
  • AtLeast1 constraints encoded as Li, 1 ≤ i ≤ m + 1
  • AtMost1 constraints encoded as Mj, 1 ≤ j ≤ m
  • Full reduction of PHP to Horn MaxSAT

H, S =

  • ∧m+1

i=1 Li ∧ ∧m j=1Mj ∧ P, S

  • 18 / 33
slide-73
SLIDE 73

PHP as Horn MaxSAT

  • New variables nij and pij, for each xij, 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m
  • The soft clauses S, with |S| = 2m(m + 1), are given by

{ (n11), . . . , (n1m), . . . , (nm+1 1), . . . , (nm+1 m), (p11), . . . , (p1m), . . . , (pm+1 1), . . . , (pm+1 m) }

  • Clauses in P: P = {(¬nij ∨ ¬pij) | 1 ≤ i ≤ m + 1, 1 ≤ j ≤ m}
  • AtLeast1 constraints encoded as Li, 1 ≤ i ≤ m + 1
  • AtMost1 constraints encoded as Mj, 1 ≤ j ≤ m
  • Full reduction of PHP to Horn MaxSAT

H, S =

  • ∧m+1

i=1 Li ∧ ∧m j=1Mj ∧ P, S

  • No more than m(m + 1) clauses can be satisfied, due to P
  • PHPm+1

m

is satisfiable iff there exists an assignment that satisfies the hard clauses H and m(m + 1) soft clauses from S

18 / 33

slide-74
SLIDE 74

PHP as Horn MaxSAT II

  • Clauses in each Li and in each Mj, with pairwise encoding

Original Constraint Encoded To Clauses ∧m+1

i=1 AtLeast1(xi1, . . . , xim)

Li (¬ni1 ∨ . . . ∨ ¬nim) ∧m

j=1AtMost1(x1j, . . . , xm+1,j)

Mj ∧m+1

r=2 ∧r−1 s=1 (¬prj ∨ ¬psj) 19 / 33

slide-75
SLIDE 75

PHP as Horn MaxSAT II

  • Clauses in each Li and in each Mj, with pairwise encoding

Original Constraint Encoded To Clauses ∧m+1

i=1 AtLeast1(xi1, . . . , xim)

Li (¬ni1 ∨ . . . ∨ ¬nim) ∧m

j=1AtMost1(x1j, . . . , xm+1,j)

Mj ∧m+1

r=2 ∧r−1 s=1 (¬prj ∨ ¬psj)

  • Note: constraints with key structural properties:

Constraint Variables Li (¬ni1 ∨ . . . ∨ ¬nim) Lk (¬nk1 ∨ . . . ∨ ¬nkm) Mj ∧m+1

r=2 ∧r−1 s=1 (¬prj ∨ ¬psj)

Ml ∧m+1

r=2 ∧r−1 s=1 (¬prl ∨ ¬psl)

– Variables in each Li disjoint from any other Lk and Mj, k = i – Variables in each Mj disjoint from any other Ml, l = j

19 / 33

slide-76
SLIDE 76

Outline

Maximum Satisfiability Pigeonhole Formulas From SAT to Horn MaxSAT Polynomial Time Refutations of PHP Experimental Results ?

20 / 33

slide-77
SLIDE 77

Main claims

Claim 1

Core-guided MaxSAT (e.g. MSU3) produces a lower bound on the number of falsified clauses ≥ m(m + 1) + 1 in polynomial time

21 / 33

slide-78
SLIDE 78

Main claims

Claim 1

Core-guided MaxSAT (e.g. MSU3) produces a lower bound on the number of falsified clauses ≥ m(m + 1) + 1 in polynomial time

Claim 2

MaxSAT resolution produces a lower bound on the number of falsified clauses ≥ m(m + 1) + 1 in polynomial time

21 / 33

slide-79
SLIDE 79

Main claims

Claim 1

Core-guided MaxSAT (e.g. MSU3) produces a lower bound on the number of falsified clauses ≥ m(m + 1) + 1 in polynomial time

Claim 2

MaxSAT resolution produces a lower bound on the number of falsified clauses ≥ m(m + 1) + 1 in polynomial time

Remark

Horn MaxSAT encoding enables polynomial time refutations of the unsatisfiability of PHP instances, using CDCL SAT solvers

21 / 33

slide-80
SLIDE 80

Proof of claim 1 – outline

  • 1. Assume MSU3 MaxSAT algorithm

– Note: Suffices to analyze disjoint sets separately

22 / 33

slide-81
SLIDE 81

Proof of claim 1 – outline

  • 1. Assume MSU3 MaxSAT algorithm

– Note: Suffices to analyze disjoint sets separately

  • 2. Relate soft clauses with each Li and each Mj

– Each constraint disjoint from the others (but not from P)

22 / 33

slide-82
SLIDE 82

Proof of claim 1 – outline

  • 1. Assume MSU3 MaxSAT algorithm

– Note: Suffices to analyze disjoint sets separately

  • 2. Relate soft clauses with each Li and each Mj

– Each constraint disjoint from the others (but not from P)

  • 3. Derive large enough lower bound on # of falsified clauses:
  • Constr. type

# falsified cls # constr In total Li 1 i = 1, . . . , m + 1 m + 1 Mj m j = 1, . . . , m m · m m(m + 1) + 1

22 / 33

slide-83
SLIDE 83

Proof of claim 1 – outline

  • 1. Assume MSU3 MaxSAT algorithm

– Note: Suffices to analyze disjoint sets separately

  • 2. Relate soft clauses with each Li and each Mj

– Each constraint disjoint from the others (but not from P)

  • 3. Derive large enough lower bound on # of falsified clauses:
  • Constr. type

# falsified cls # constr In total Li 1 i = 1, . . . , m + 1 m + 1 Mj m j = 1, . . . , m m · m m(m + 1) + 1

  • 4. Each increase in the value of the lower bound obtained by unit

propagation (UP)

– In total: polynomial number of (linear time) UP runs

22 / 33

slide-84
SLIDE 84

Proof of claim 1 – unit propagation steps I

Constr Hard cls Soft cls Relaxed clauses Updated AtMostk constr LB incr Li (¬ni1 ∨ . . . ∨ ¬nim) (ni1), . . . , (nim) (sil ∨ ni1), 1 ≤ l ≤ m m

l=1 sil ≤ 1

1 Mj (¬p1j ∨ ¬p2j) (p1j), (p2j) (r1j ∨ p1j), (r2j ∨ p2j) 2

l=1 rlj ≤ 1

1 Mj (¬p1j ∨ ¬p3j), (¬p2j ∨ ¬p3j), (r1j ∨ p1j), (r2j ∨ p2j), 2

l=1 rlj ≤ 1

(p3j) (r3j ∨ p3j) 3

l=1 rlj ≤ 2

1 · · · Mj (¬p1j ∨¬pm+1j), . . ., (¬pmj ∨ ¬pm+1j), (r1j ∨ p1j), . . ., (rmj ∨ pmj), m

l=1 rlj ≤ m − 1

(pm+1j) (rm+1j ∨ pm+1j) m+1

l=1 rlj ≤ m

1

23 / 33

slide-85
SLIDE 85

Proof of claim 1 – unit propagation steps II

Clauses Unit Propagation (pk+1 j) pk+1 j = 1 (¬p1j ∨¬pk+1 j), . . . , (¬pkj ∨¬pk+1 j) p1j = . . . = pkj = 0 (r1j ∨ p1j), . . . , (rkj ∨ pkj) r1j = . . . = rkj = 1 k

l=1 rlj ≤ k − 1

k

l=1 rlj ≤ k − 1

  • ⊢1 ⊥
  • Key points:

– Clauses in P never used – For each Li, UP raises LB by 1 – For each Mj, UP raises LB by m – In total, UP raises LB by m(m + 1) + 1 – PHPm+1

m

is unsatisfiable

24 / 33

slide-86
SLIDE 86

Outline

Maximum Satisfiability Pigeonhole Formulas From SAT to Horn MaxSAT Polynomial Time Refutations of PHP Experimental Results ?

25 / 33

slide-87
SLIDE 87

Experimental setup

  • Instances:

– PHP-pw (46), PHP-sc (46), Urquhart (84), Comb (96) – All in CNF; goal was to analyze CNF formulas

  • Solvers:

SAT SAT+ IHS MaxSAT CG MaxSAT MRes MIP OPB BDD

minisat glucose lgl crypto maxhs lmhs mscg wbo wpm3 eva lp cc sat4j∗ zres

26 / 33

slide-88
SLIDE 88

Results on PHP instances: pw vs. sc

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

slide-89
SLIDE 89

Effect of dropping P clauses

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

slide-90
SLIDE 90

Effect of dropping P clauses on mscg and wbo

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

slide-91
SLIDE 91

Results on Urquhart & combined instances

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

slide-92
SLIDE 92

Conclusions & research directions

  • Initial motivation: optimize MaxHS-like algorithms

– E.g. by exploiting Horn MaxSAT & LTUR

31 / 33

slide-93
SLIDE 93

Conclusions & research directions

  • Initial motivation: optimize MaxHS-like algorithms

– E.g. by exploiting Horn MaxSAT & LTUR

  • Simple reduction from SAT to Horn MaxSAT

– Many other simple reductions to Horn MaxSAT

31 / 33

slide-94
SLIDE 94

Conclusions & research directions

  • Initial motivation: optimize MaxHS-like algorithms

– E.g. by exploiting Horn MaxSAT & LTUR

  • Simple reduction from SAT to Horn MaxSAT

– Many other simple reductions to Horn MaxSAT

  • (Horn) MaxSAT solvers can solve (in polynomial time) hard

instances for resolution

– If equipped with the right reduction

31 / 33

slide-95
SLIDE 95

Conclusions & research directions

  • Initial motivation: optimize MaxHS-like algorithms

– E.g. by exploiting Horn MaxSAT & LTUR

  • Simple reduction from SAT to Horn MaxSAT

– Many other simple reductions to Horn MaxSAT

  • (Horn) MaxSAT solvers can solve (in polynomial time) hard

instances for resolution

– If equipped with the right reduction

  • Where to go with Horn MaxSAT?

– And of course, what about the new proof system(s)?

31 / 33

slide-96
SLIDE 96

Thank You!

32 / 33

slide-97
SLIDE 97

References to this work

  • A. Ignatiev, A. Morgado, J. Marques-Silva:

On Tackling the Limits of Resolution in SAT Solving. SAT 2017: 164-183

  • J. Marques-Silva, A. Ignatiev, A. Morgado:

Horn Maximum Satisfiability: Reductions, Algorithms and Applications. EPIA 2017: 681-694

33 / 33