このページは http://www.slideshare.net/sakai/2014-0227-sakaimaxsatrevisedweb の内容を掲載しています。

掲載を希望されないスライド著者の方は、削除申請よりご連絡下さい。

埋込み型プレイヤーを使用せず、常に元のサイトでご覧になりたい方は、自動遷移設定をご利用下さい。

約4年前 (2014/03/06)にアップロードinテクノロジー

The slides for my talk on Feb. 27 2014 at ZIB.

Abstract:

Maximum Satisfiability (Max-SAT) and it...

The slides for my talk on Feb. 27 2014 at ZIB.

Abstract:

Maximum Satisfiability (Max-SAT) and its weighted variants are optimization extension of Boolean Satisfiability (SAT), and it is interesting that technologies from both AI/CP community and OR community are employed to solve Max-SAT problems.

In this talk, I present brief introduction of SAT/Max-SAT problems, some of solving approaches, and my experience of submitting SCIP and my own SAT-based solver "toysat" to the Max-SAT Evaluation 2013; the annual Max-SAT solver competition. After that, I would like to have a discussion on submitting SCIP to the upcoming Max-SAT Evaluation 2014.

- Introduction to Max-SAT

and Max-SAT evaluation

(slightly revised version)

Masahiro Sakai

2014-02-27 @ ZIB Berlin - Today’s topics

About Myself

SAT and related problem classes

My experience of Max-SAT evaluation 2013

Towards Max-SAT Evaluation 2014

Conclusion - About myself

Masahiro Sakai (酒井 政裕), from Japan

I’m NOT an expert of “MATHEMATICAL

PROGRAMMING” nor “OPERATIONS RESEARCH”

My background

Logic, Programming Language Theory (Domain

Theory, Type Theory, Functional Programming),

Category Theory, etc.

My job at TOSHIBA

Software Engineering

Model Checking, Specification Mining, etc.

Recommendation System - “Software Abstractions”

Japanese

translation

Textbook about

“Formal Methods”

and Alloy tool - “Types and Programming

Languages”

Japanese

translation

Textbook about “type systems” - About myself (cont’d)

My recent interests:

Decision procedures or Solver algorithms

Because of

my interests in logic

e.g. I’m impressed by decidability of Presburger

arithmetic and theory of real closed fields.

prevalent usage of SAT/SMT solvers in software

engineering (Alloy is one example)

Along the way, I also got interested in mathematical

programming.

I implemented several toy-level implementations of

these algorithms. - My hobby project “toysolver”/“toysat”:

toy-level implementations of

various algorithms

Integer Arithmetic

Gröbner basis

Cooper’s Algorithm

(Buchberger algorithm)

Omega Test

Cylindrical Algebraic

Decomposition

Gomory’s Cut

Simplex method

Conti-Traverso

Uninterpreted functions

Branch-and-bound

Congruence Closure

Real Arithmetic

SAT / MaxSAT / Pseudo

Fourier-Motzkin variable

Boolean

elimination

github.com/msakai/toysolver - SAT and

related problems - SAT

SAT = SATisfiability problem (of propositional logic)

“Given a propositional formula φ containing

propositional variables,

Is there a truth assignment M that makes the

formula true? (i.e. M ⊧ φ)”

SAT solver decides the SAT problem

When the formula is satisfiable,

it also produce one such truth assignment. - SAT: Examples

Example 1: (P∨Q) ∧ (P∨￢Q) ∧ (￢P∨￢Q)

→ “Satisfiable” (or “Feasible” in mathematical programming term)

Assignments: (P,Q) = (TRUE, FALSE))

Example 2: (P∨Q) ∧ (P∨￢Q) ∧ (￢P∨￢Q) ∧ (￢P∨Q)

→ “Unsatisfiable” (or “Infeasible” in mathematical programming term)

Note:

Input formula is usually given in CNF (conjunction normal form)

CNF ::= Clause ∧ … ∧ Clause

Clause ::= Literal ∨ … ∨ Literal

Literal ::= Variable | ¬Variable

Non-CNF formula can be converted to equi-satisfiable CNF in linear

size by introducing auxiliary variables. (“Tseitin encoding”, similar to

linearization of 0-1 integer programing) - Why SAT solvers attract

attentions?

SAT is a classical and canonical NP-complete problem.

But SAT solvers speed up drastically in last 15 years

State-of-art SAT solver can solve problems of millions

of variables and constraints.

Many applications in software engineering and other fields,

now encode their problems into SAT/SMT and use off-the-

shelf SAT/SMT solver.

to utilize the advances of off-the-shelf solvers

to separate two concerns:

problem formulation which requires domain knowledge

solving algorithms - SAT: Basic algorithm

Classical algorithm: DPLL (Davis-Putnam-Logemann-Loveland)

algorithm

Tree-search algorithm

Constraint propagation called unit propagation

All except one literals in a clause become false,

the remaining literal is assigned to true.

Modern improvements

CDCL (Conflict-driven clause learning)

Non-chronological backtracking

Efficient data-structure for constraint propagation

Adaptive variable selection heuristics

Restarts, Conflict Clause Minimization, Component caching, etc. - Related problems:

Max-SAT and Pseudo Boolean

Satisfaction/Optimization - “Computer Algebra”

Related Problems

field

“Mathematical

more like optimization

Programming”

Ar

M

RCF

field

o

ith r

(Real Closed

e

m

Field)

etical

PBS

Integer

PBO

Program

ming

SMT

Automatic

Theorem

SAT

Max

Proving

SAT

Finite

Model

Finding

Focus of this talk.

“Theorem

Proving”

QBF

field

This is a rough overview.

propositional logic to

Ignore detailed positions

first-order logic - Max-SAT

Max-SAT is an optimization extension of SAT

“Given a set of clauses, find an assignment that

maximize satisfied clause.”

Unlike its name, it’s common to formulate as

minimization of VIOLATED clauses.

Example:

{¬P1∨¬P2, ¬P1∨P3, ¬P1∨¬P3, ¬P2∨P4, ¬P2∨¬P4, P1, P2}

→ (P1, P2, P3, P4)=(F, F, F, T) , 2 clauses are violated - Partial / Weighted

variants of Max-SAT

Partial Max-SAT:

Example of

Weighted Partial Max-SAT

HARD and SOFT clauses

Weighted Max-SAT:

x1 ∨ ￢x2 ∨ x4

each clause has associated cost

￢x1 ∨ ￢x2 ∨ x3

minimize the total costs of

[8] ￢x2 ∨ ￢x4

violated clauses

[4] ￢x3 ∨ x2

Weighted Partial Max-SAT:

[3] x1 ∨ x3

obvious combination of the two - Some Algorithms to solve

Max-SAT family

Convert to Pseudo Boolean Optimization (PBO) or

Integer Programming problems.

Branch-and-Bound

w/ modified version of unit-propagation

w/ specific lower bound computation

(e.g. using disjoint inconsistent subsets)

Unsatisfiability-based (or core-guided) approach

Hybrids of those - Conversion to PBO (1)

Some SAT solvers are extended to handle more expressive

constraints than clauses

Clause

“L1 ∨ … ∨ Ln” “L1 + … + Ln ≥ 1”

if truth is identified with 1-0

Cardinality constraints

“at least k of {L1, …, Ln} is true” “L1 + … + Ln ≥ k”

Pseudo boolean constraints

integer-coefficient polynomial inequality constraints

over literals

e.g. 2 L1 + 2 L2L3 + L4 ≥ 3 - Conversion to PBO (2)

Pseudo boolean satisfaction (PBS)

satisfiability problems of pseudo-boolean

constraints

Pseudo boolean optimization (PBO)

PBS with objective function

≅ (non-linear) 0-1 integer programming - Conversion to PBO (3)

Minimize

x1 ∨ ￢x2 ∨ x4

8 r3 + 4 r4 + 3 r5 + 2 ¬x6

￢x1

Subject to

∨ ￢x2 ∨ x3

[8]

x1 + ￢x2 + x4 ≥ 1

￢x2 ∨ ￢x4

[4]

￢x1 + ￢x2 + x3 ≥ 1

￢x3 ∨ x2

[3] x1

r3 + ￢x2 + ￢x4 ≥ 1

∨ x3

[2] x6

r4 + ￢x3 + x2 ≥ 1

r5 + x1 + x3 ≥ 1

• ris are relaxation variables for Soft clause.

• Unit clause (e.g. x6) does not need a relaxation variable.

• Further conversion to 0-1 ILP is obvious. - PBS/PBO algorithm

PBS

SAT solver is extended to handle pseudo-boolean

constraints

Sometimes “cutting-plane proof system” instead of

“resolution” is used for conflict analysis / learning.

PBO

Satisfiability-based approach

Branch-and-Bound

Unsatisfiability-based approach - PBO: Satisfiability-based

algorithm

Minimize Σn

Many SAT solver allows

j=1 cj lj

Subject to P

incrementally adding

constraints and re-solving.

(It is faster than solving

M ← None

from scratch, since learnt

UB ← ∞

lemma and other info are

reused.)

while true

if P is SAT

M ← getAssignments()

UB ← Σnj=1 cj M(lj)

This is linear search on

P ← P ∧ (Σnj=1 cj lj < UB)

objective values, but binary

else

search and more

return M and UB

sophisticated search are

also used. - PBO: Branch-and-Bound

Various lower-bound computation methods are used.

LP relaxation

MIS (Maximum Independent Set) lower bounding

Lagrange relaxation

Note

LP relaxation is tighter, but more time-consuming.

Therefore, sometimes, more lax but cheeper

methods are preferred. - Unsatisfiability-based

Max-SAT algorithm

Treat all SOFT-clauses as HARD clauses, and invoke SAT solver.

If unsatisfiable, relax the unsatisfiable subset, and solve again.

First satisfiable result is the optimal solution.

φ ← φ

W

while (φ is UNSAT)

W

do Let φ be an unsatisfiable sub-formula of φ

Can be extended for

C

W

V ←

weighted version, but

R

∅

omitted here for simplicity.

for each soft clause ω ∈ φC

do ω ← ω

For detail, see “Improving

R

∪ { r }

φ ← (φ \ { ω })

}

Unsatisfiability-based

W

W

∪ {ωR

Algorithms for Boolean

V ← V

R

R ∪ { r }

Optimization” by Vasco

φ ← { Σ_{r

} r ≤ 1 }

R

∈VR

Manquinho, Ruben Martins

φ ← φ

// Clauses in φ are declared hard

and Inês Lynce.

W

W ∪ φR

R

return |φ| − number of relaxation variables assigned to 1 - Remark: Semidefinite

Optimization Approaches

SDP (Semi-definite programming) relaxation of Max-

SAT is known to be tighter than LP relaxation.

There are beautiful results on approximate

algorithms based on SDP relaxation

Still there are no practical Max-SAT solver that

incorporate SDP, AFAIK. - Max-SAT Evaluation

2013 - Max-SAT evaluation

Max-SAT evaluation is the annual Max-SAT solver

competition

one of the solver competitions affiliated with SAT-

conference

Why I submitted to Max-SAT 2013?

I submitted my “toysat” to the Pseudo Boolean

Competition 2012 (PB12) one year ago, and its

performance was not so bad in some categories,

considering it was not tuned up well.

I wanted to re-challenge, but it was the last PB

competition, so I moved to Max-SAT evaluation. - Results of PB12:

PBS/PBO track

DEC-SMALLINT-LIN

1st: SAT 4j PB RES // CP, …, 19th: SCIP spx standard, 20th: toysat

DEC-SMALLINT-NLC

1st: pb_cplex, 2nd: SCIP spx standard, …, 18th: toysat, …

DEC-BIGINT-LIN

1st: minisatp, …, 4th: SCIPspx, 16th: toysat, …

OPT-SMALLINT-LIN

1st: pb_cplex, 2nd: SCIP spx E, …, 24th: toysat, …

OPT-SMALLINT-NLC

DEC: decision problem (PBS)

1st: SCIP spx E, …, 27th: toysat, …

OPT: optimization problem (PBO)

SMALLINT: all coefficients are ≤220

OPT-BIGINT-LIN

BIGINT: some coefficients are >220

LIN: linear constraints/objective

1st: SAT4J PB RES // CP, …, 8th: toysat, …

NLC: non-linear … - Results of PB12:

WBO track

PARTIAL-BIGINT-LIN

1st: Sat4j PB, 2nd: toysat, 3rd: wbo2sat, …

PARTIAL-SMALLINT-LIN

1st: SCIP spx, 2nd: clasp, 3rd: Sat4j PB, 4th: toysat, …

SOFT-BIGINT-LIN

1st: Sat4j PB, 2nd: toysat, 3rd: npSolver, …

SOFT-SMALLINT-LIN

1st: SCIP spx, 2nd: Sat4j PB, 3rd: clasp, 4th: toysat, … - My submission to

Max-SAT 2013

toysat: my own SAT-based solver

Simple incremental SAT-solving using linear search on

objective values

(since other features are not tuned up / tested enough)

scip-maxsat:

SCIP Optimization Suite 3.0.1 with default configuration

Simple conversion to 0-1 ILP.

glpk-maxsat

GLPK 4.45 with default configuration.

Simple conversion to 0-1 ILP. - Results for Complete Solvers

Results of

Winners:

Max-SAT 2013

MaxSAT

Weighted

Partial

W. Partial

Random

MaxSatz2013f

ISAC+

ISAC+

Maxsatz2013f

ISAC+

Maxsatz2013f

WMaxSatz+

ISAC+

WMaxSatz09

ckmax–small

WMaxSatz09

WMaxSatz09

Crafted

ISAC+

ISAC+

ISAC+

MaxHS

Maxsatz2013f

Maxsatz2013f

SCIP-maxsat

ISAC+

WMaxSatz09

WMaxSatz+

ILP

ILP

Industrial

pMiFuMax

—

ISAC+

ISAC+

ISAC+

—

QMaxSAT2-mt

WPM1-2013

WPM1

—

MSUnCore

wMiFuMax

This time, toysat did not perform well :(

12/17 - My opinion:

Benefits of submitting a solver to

competitions

You can benchmark your solver with others for FREE.

Benchmarking solvers is a hassle.

Requires lots of resources.

Not all solvers are open-source.

There are various sets of benchmarks, which

sometimes reveal subtle bugs in your solver.

PB12 revealed a subtle bug of toysat in conflict

analysis of pseudo boolean constraints.

Max-SAT 2013 revealed two bugs in SCIP/SoPlex. - Max-SAT 2013:

Bugs of SCIP

Organizers notified me that SCIP-maxsat produced wrong

results on some instances, and I resubmitted fixed version.

Case 1:

Running out of memory in SoPlex-1.7.1 LP solver leads

to declare non-optimal solution as optimal.

As an ad-hoc measure, I simply modified SoPlex to

terminate its process immediately after memory

allocation error w/o exception handling.

Case 2:

SCIP produced wrong optimal result on ONLY one

instance of the competition.

SCIP-2.1.1 worked correctly, but SCIP-3.0.1 did not!

Michael Winkler fixed the bug. Thanks!! - Towards Max-SAT

Evaluation 2014 - My Submission Plan

Important dates

Submission deadline: April 11, 2014

Results of the evaluation: July 8-12, 2014

My plan

SCIP and FibreSCIP

If you do not submit by yourselves, I’ll submit instead.

I’d like to know a configuration that is better than default one.

toysat

I’m tuning its core implementation now, and I’ll adopt more

sophisticated algorithm than linear incremental SAT solving

(e.g. core-guided binary search). - Concluding Remarks
- Interaction between

AI/CP and OR community

Now the two fields are overlapping, and interactions

between them are active/interesting research area.

Examples:

SCIP incorporates techniques from SAT/CP.

Cutting-plane proof systems in SAT-based PB

solvers.

SMT solvers use Simplex, cutting-plane, etc. as

“theory solvers” for arithmetic theory.

I hope this direction yields more fruitful results in

the future. - “Computer Algebra”

Related Problems

field

“Mathematical

more like optimization

Programming”

Ar

M

RCF

field

o

ith r

(Real Closed

e

m

Field)

etical

PBS

Integer

PBO

Program

ming

SMT

Automatic

Theorem

SAT

Max

Proving

SAT

Finite

Model

Finding

Focus of this talk.

“Theorem

Proving”

QBF

field

This is a rough overview.

propositional logic to

Ignore detailed positions

first-order logic - Any Questions?
- Reference
- Reference

Diagnose

Implication Graph

Reason

ω6:

ω4:

x3@3

Side

How a CDCL SAT

¬x8 ¬x9 ¬x7 x8

¬x7 ¬x9

ω5:

x1@1 ω1

x2@2 ω5

¬x2 ¬x7 x9

x5@4

x9@4

ω3

ω5

ω6

Solver works

¬x2 ¬x7

x4@4 ω1

x7@4

ω2

ω3

ω6

x6@4

ω4 x8@4 Conﬂict

Side

Clause DB

• ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9

Masahiro Sakai

• ω2: ¬x4 x6

• ω7: ¬x8 x9

Twitter: @masahiro_sakai

• ω3: ¬x5 ¬x6 x7

• ω4: ¬x7 x8

• ω5: ¬x2 ¬x7 x9

12年9月23日日曜日

Implication Graph12年9月23日日曜日

http://www.slideshare.net/sakai/how-a-cdcl-sat-

solver-works - Appendix:

About my icon

=

+

Commutativity makes

category theorists happy!