sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · sat4j, un moteur...

62
Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation ` a diriger des recherches Daniel Le Berre CRIL-CNRS UMR 8188 - Universit´ e d’Artois Vendredi 3 d´ ecembre 2010, Lens 1/43 )

Upload: vothuy

Post on 19-Jul-2019

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Sat4j, un moteur libre de raisonnement enlogique propositionnelle

Habilitation a diriger des recherches

Daniel Le Berre

CRIL-CNRS UMR 8188 - Universite d’Artois

Vendredi 3 decembre 2010, Lens

1/43 )

Page 2: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Outline

Preliminary remarks

Software dependency problems

Representing with extended propositional logic

The open source Sat4j library

Evaluating propositional solvers

Conclusion, future directions

2/43 )

Page 3: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Solving real problems with a constraint solver

Problem Model Representation Solver

3/43 )

Page 4: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Solving real problems with a constraint solver

Problem Model Representation Solver

Linux Depen-dency Manage-ment

3/43 )

Page 5: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Solving real problems with a constraint solver

Problem Model Representation Solver

Linux Depen-dency Manage-ment

CUDF

3/43 )

Page 6: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Solving real problems with a constraint solver

Problem Model Representation Solver

Linux Depen-dency Manage-ment

CUDF PBO

3/43 )

Page 7: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Solving real problems with a constraint solver

Problem Model Representation Solver

Linux Depen-dency Manage-ment

CUDF PBO Sat4j

3/43 )

Page 8: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Solving real problems with a constraint solver

Problem Model Representation Solver

p2cudf

Linux Depen-dency Manage-ment

CUDF PBO Sat4jp2

3/43 )

Page 9: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Solving real problems with a constraint solver

Problem Model Representation Solver

PBOQCL

SAT

MAXSAT

WBO

CSP

QBF OpenQBF

OpenSAT

JSAT

Sat4jEclipse p2

3/43 )

Page 10: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Outline

Preliminary remarks

Software dependency problems

Representing with extended propositional logic

The open source Sat4j library

Evaluating propositional solvers

Conclusion, future directions

4/43 )

Page 11: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Current softwares are composite !

I Linux distributions : made of packages

I Eclipse application : made of plugins

I Any complex software : made of libraries

I There are requirements between the diverse components

5/43 )

Page 12: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Dependency Management Problem

P a set of packages

depends requirement constraints

depends : P → 22P

conflicts impossible configurations

conflicts : P → 2P

Definition (consistency of a set of packages)

Q ⊆ P is consistent with (P, depends, conflicts) iff∀q ∈ Q, (∀dep ∈ depends(q), dep∩Q 6= ∅)∧(conflicts(q)∩Q = ∅).

6/43 )

Page 13: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Dependency Management Problem

P a set of packages

depends requirement constraints

depends : P → 22P

conflicts impossible configurations

conflicts : P → 2P

Definition (consistency of a set of packages)

Q ⊆ P is consistent with (P, depends, conflicts) iff∀q ∈ Q, (∀dep ∈ depends(q), dep∩Q 6= ∅)∧(conflicts(q)∩Q = ∅).

What is the complexity of finding if a Q containing a specificpackage exists ?

6/43 )

Page 14: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Just as hard as SAT : NP-complete !See how to decide satisfiability of (¬a ∨ b ∨ c) ∧ (¬a ∨ ¬b ∨ c) ∧ a ∧ ¬c

package : av e r s i o n : 1c o n f l i c t s : a = 2

package : av e r s i o n : 2c o n f l i c t s : a = 1

package : bv e r s i o n : 1c o n f l i c t s : b = 2

package : bv e r s i o n : 2c o n f l i c t s : b = 1

package : cv e r s i o n : 1c o n f l i c t s : c = 2

package : cv e r s i o n : 2c o n f l i c t s : c = 1

package : c l a u s ev e r s i o n : 1depends : a = 2 | b = 1 | c = 1

package : c l a u s ev e r s i o n : 2depends : a = 2 | b = 2 | c = 1

package : c l a u s ev e r s i o n : 3depends : a = 1

package : c l a u s ev e r s i o n : 4depends : c = 2

package : f o r m u l av e r s i o n : 1depends : c l a u s e = 1 , c l a u s e = 2 ,

c l a u s e = 3 , c l a u s e = 4

r e q u e s t : s a t i s f i a b i l i t yi n s t a l l : f o r m u l a

Page 15: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Dependencies expressed by clauses

I Dependencies can easily be translated into clauses :

package : av e r s i o n : 1depends : b = 2 | b = 1 , c = 1

a1 → (b2 ∨ b1) ∧ c1

¬a1 ∨ b2 ∨ b1,¬a1 ∨ c1

I Conflict can easily be translated into binary clauses :

package : av e r s i o n : 1c o n f l i c t s : b = 2 , d = 1

¬a1 ∨ ¬b2,¬a1 ∨ ¬d1

8/43 )

Page 16: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

From decision to optimization

I NP-complete, so we can use a SAT solver to solve itI Finding a solution is usually not sufficient !

I Minimizing the number of installed packagesI Minimizing the size of installed packagesI Keeping up to date versions of packagesI Preferring most recent packages to older onesI ...

I In practice an aggregation of various criteria

I Need a more expressive representation language than plainCNF !

9/43 )

Page 17: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Outline

Preliminary remarks

Software dependency problems

Representing with extended propositional logicMaxSatPseudo-Boolean OptimizationWorking with ordered disjunctions (QCL)

The open source Sat4j library

Evaluating propositional solvers

Conclusion, future directions

10/43 )

Page 18: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Representing with MaxSat MinUnsat

I Associate to each constraint (clause) a weight (penalty) wi

taken into account if the constraint is violated : Softconstraints φ (optional, recommended packages).

I Special weight (∞) for constraints that cannot be violated :hard constraints α (dependencies, conflicts)

I Find a model I of α that minimizes weight(I , φ) such that :I weight(I , (ci ,wi )) = 0 if I satisfies ci , else wi .I weight(I , φ) =

∑wc∈φ weight(I ,wc)

Weight ∞ denomination

∞ yes Satk no MaxSatk yes Partial MaxSatN no Weighted MaxSatN yes Weighted Partial MaxSat

Page 19: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Representing optimization criteria with MaxSat ?

α ≡∧

pv∈P(pv → (∧

dep∈depends(pv ) dep),∞)∧∧conf ∈conflicts(pv )(pv → ¬conf ,∞, ) ∧ (q,∞)

denote the formula to satisfy for installing q.

Minimizing the number of installed packages (Partial MaxSat) :

φ ≡ (∧

pv∈P,pv 6=q

(¬pv , k)) (1)

Minimizing the size of installed packages (Weighted PartialMaxSat) :

φ ≡ (∧

pv∈P,pv 6=q

(¬pv , size(pv ))) (2)

Those problems are really Binate Covering Problems (CNF +objective function).

12/43 )

Page 20: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Linear Pseudo-Boolean decision and optimization problems

Linear Pseudo-Boolean constraint

−3x1 + 4x2 − 7x3 + x4 ≤ −5

I variables xi take their value in {0, 1}I x1 = 1− x1

I coefficients and degree are integral constants

Pseudo-Boolean decision problem : NP-complete(a1) 5x1 + 3x2 + 2x3 + 2x4 + x5 ≥ 8(a2) 5x1 + 3x2 + 2x3 + 2x4 + x5 ≥ 5(b) x1 + x3 + x4 ≥ 2(c) x1 + x2 + x5 ≥ 1

Plus an objective function : Optimization problem, NP-hard

min : 4x2 + 2x3 + x5

13/43 )

Page 21: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Representing optimization criteria using pseudo-booleanoptimization

I We can now rewrite the previous optimization criteria in asimpler manner :

I Minimizing the number of installed packages :

min :∑

pv∈P,pv 6=q

pv

I Minimizing the size of installed packages :

min :∑

pv∈P,pv 6=q

size(pv )× pv

I We can express easily that only one version of package libnsscan be installed :libnss1 + libnss2 + libnss3 + libnss4 + libnss5 ≤ 1

14/43 )

Page 22: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Using QCL to express preferences between versions

I QCL adds a new connective × to propositional logic to orderalternatives : firefox36×firefox25

I QCL is non monotonic

firefox36×firefox25 |= firefox36

(firefox36×firefox25) ∧ ¬firefox36 |= firefox25

(firefox36×firefox25) ∧ ¬firefox36 ∧ ¬firefox25 |= ⊥

I QCL allows preferences to be embedded in any propositionalformula :gnome230 → (evolution230×thunderbird30) ∧¬gnome230 → (thunderbird30×(kmail3∨kmail4)×evolution230)

15/43 )

Page 23: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

How to put everything together ?

I Use PBO as main representation language.

I Translate MaxSat into an equivalent PBO problem (see later)I Integration of QCL formula

I Put in normal form (as one single basic choice formula)I Translate into a PBO problem (through WPMS)

I Main issue : we enter multi-criteria optimization !

16/43 )

Page 24: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Outline

Preliminary remarks

Software dependency problems

Representing with extended propositional logic

The open source Sat4j library

Evaluating propositional solvers

Conclusion, future directions

17/43 )

Page 25: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Sat4j, from ADS to p2cudf

1998 2000 2002 2004 2006 2008 2010

DPLL ERA CDCL ERA

ADS JSAT

Chaff

OpenSAT

Minisat

SAT4J

I Birth of SAT4J, Java implementation of Minisat.

I Open Source (licensed under GNU LGPL).

18/43 )

Page 26: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Sat4j, from ADS to p2cudf

1998 2000 2002 2004 2006 2008 2010

DPLL ERA CDCL ERA

ADS JSAT

Chaff

OpenSAT

Minisat

SAT4J PB

I Joint project with INESC → PB evaluation + Sat4j PB

I First CSP competition → release of Sat4j CSP

18/43 )

Page 27: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Sat4j, from ADS to p2cudf

1998 2000 2002 2004 2006 2008 2010

DPLL ERA CDCL ERA

ADS JSAT

Chaff

OpenSAT

Minisat

SAT4J PB MAXSAT

I First MaxSAT evaluation

I Birth of Sat4j MaxSAT

18/43 )

Page 28: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Sat4j, from ADS to p2cudf

1998 2000 2002 2004 2006 2008 2010

DPLL ERA CDCL ERA

ADS JSAT

Chaff

OpenSAT

Minisat

SAT4J PB MAXSAT Eclipse

I Integration within Eclipse [IWOCE09]

I Sat4j relicensed under both EPL and GNU LGPL

18/43 )

Page 29: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Sat4j, from ADS to p2cudf

1998 2000 2002 2004 2006 2008 2010

DPLL ERA CDCL ERA

ADS JSAT

Chaff

OpenSAT

Minisat

SAT4J PB MAXSAT Eclipse p2cudf

I Application to Linux dependencies : p2cudf [LoCoCo 2010]

I Licensed under EPL

18/43 )

Page 30: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Initial aim of the project

I Providing 100% Java SAT technology

I With an Open Source software

I Flexible enough to experiment our ideas

I Efficient enough to solve real problems

I Designed to be used in academia or production software

19/43 )

Page 31: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

A flexible framework for solving propositional problems

generic CDCL

constraints clauses

cardinalities

PBconstraints

inference

resolution

cuttingplanes

optimization

explanation

Page 32: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

A generic and flexible CDCL solver

Basis Minisat 1.10 specification + conflict minimizationfrom Minisat 1.13

Static Restarts strategies Minisat, Biere, Luby

Generic Conflict minimization None, Simple, Expensiveworks with all constraints and data structures

Learning LimitedLearning, LearnAllClauses, NoLearning, ...learning is not coupled with conflict analysis

Learned clauses deletion Memory based, Glucose

Phase selection Random, Positive, Negative,AppearInLastLearnedClauses, RSAT phase saving

Lazy Data structures Watched Literals, Head/Tail

Default configuration

21/43 )

Page 33: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Pseudo Boolean solvers in SAT4J

SAT4J PB RES learn clauses. takes advantage of the full existingSAT machinery.

SAT4J PB CuttingPlanes learn PB constraints. No lazy datastructure for constraints, need arbitrary precisionarithmetic for correctness.

I The resolution based PB solver is usually faster than the CPbased one.

I Some benchmarks can only be solved using CP solver (e.g.pigeon hole).

I The principles behind each solver are clear : no tweaks tosolve a few more benchmarks during the PB evaluations !

I New in PB 2010 (Sat4j 2.2.1) : running both in parallel forimproved wall clock running time.

22/43 )

Page 34: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Generalized use of selector variablesThe minisat+ syndrom : is a SAT solver sufficient for all our needs ?

Selector variable principle : satisfying the selector variable shouldsatisfy the selected constraint.

clause simply add a new variable∨li ⇒ s ∨

∨li

cardinality add a new weighted variable∑li ≥ d ⇒ d × s +

∑li ≥ d

The new constraints is PB, no longer a cardinality !

pseudo add a new weighted variable∑wi × li ≥ d ⇒ d × s +

∑wi × li ≥ d

if the weights are positive, else use

(d +∑

wi<0 |wi |)× s +∑

wi × li ≥ d

23/43 )

Page 35: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

From Weighted Partial Max SAT to PBO

Once cardinality constraints, pseudo boolean constraints andobjective functions are managed in a solver, one can easily build aweighted partial Max SAT solver

I Add a selector variable si per soft clause Ci : si ∨ Ci

I Objective function : minimize∑

si

I Partial MAX SAT : no selector variables for hard clauses

I Weighted MAXSAT : use a weighted sum instead of a sum.Special case : do not add new variables for unit weightedclauses wk lkIgnore the constraint and add simply wk × lk to the objectivefunction.

24/43 )

Page 36: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Selector variables + assumptions = explanation

I From the beginning in Minisat 1.12

I Add a new selector variable per constraint

I Check for satisfiability assuming that the selector variables arefalsified

I if UNSAT, analyze the final root conflict to keep only selectorvariables involved in the inconsistency

I Apply a minimization algorithm afterward to compute aminimal explanation (QuickXplain)

I Advantages :I no changes needed in the SAT solver internalsI works for any kind of constraints !

I See in action during the unsat core track of the next SATcompetition !

25/43 )

Page 37: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

SAT4J today

I SAT4J MAXSAT considered state-of-the-art on Partial[Weighted] MaxSAT application benchmarks (2009).

I SAT4J PB (Res, CP) are not very efficient, but correct(arbitrary precision arithmetic).

I SAT4J SAT solvers can be found in various software fromacademia (Alloy 4, Forge, ....) to commercial applications(GNA.sim).

I SAT4J PB Res solves Eclipse plugin dependencies since June2008 (Eclipse 3.4, Ganymede)

I SAT4J ships with every product based on the Eclipse platform(more than 25 millions downloads from Eclipse.org since June2008)

I SAT4J helps to build Eclipse products daily (e.g. nightly buildson Eclipse.org, IBM, SAP, etc)

I SAT4J helps to update Eclipse products worldwide daily

26/43 )

Page 38: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Outline

Preliminary remarks

Software dependency problems

Representing with extended propositional logic

The open source Sat4j library

Evaluating propositional solvers

Conclusion, future directions

27/43 )

Page 39: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

DP 60 and DLL62 : the very first SAT competition !

In the present paper, a uniform proof procedure forquantification theory is given which is feasible for usewith some rather complicated formulas and which doesnot ordinarily lead to exponentiation. The superiority ofthe present procedure over those previously available isindicated in part by the fact that a formula on whichGilmore’s routine for the IBM 704 causes the machine tocompute for 21 minutes without obtaining a result wasworked successfully by hand computation using thepresent method in 30 minutes [Davis and Putnam, 1960].

The well-formed formula (...) which was beyond thescope of Gilmore’s program was proved in under twominutes with the present program [Davis et al., 1962]

28/43 )

Page 40: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

A brief history of SAT competitive eventsSince the beginning the SAT community has been keen to run competitive events

I 1992 : Paderborn

I 1993 : The second DIMACS challenge [standard input format]Johnson, D. S., & Trick, M. A. (Eds.). (1996). Cliques, Coloring

and Satisfiability : Second DIMACS Implementation Challenge, Vol.

26 of DIMACS Series in Discrete Mathematics and Theoretical

Computer Science. AMS.

I 1996 : Beijing

I 1999 : SATLIB

I 2000 : SAT-Ex

I Since 2002 : yearly competition (or Race)

29/43 )

Page 41: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Why organizing a SAT competition ?

I Provide independent experimental results of existing SATsolvers :

I Too many solvers and benchmarks available to maintain aSatEx like web site : use yearly snapshot.

I Target the whole community : application, crafted and randombenchmarks, complete/incomplete solvers.

I Foster the implementation of new SAT solvers.

I Gather new benchmarks.

I Promote SAT technology outside the community.

I Have fun :)

30/43 )

Page 42: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Limitations of the approach

Results depends on :

I available solvers and benchmarks.

I hardware (amount of RAM, size of L2 cache, etc).

I operating system (linux)

I competition rules (timeout, source code)

I the amount of computing resources available

I ...

We do not claim to have statistically meaningful results !

31/43 )

Page 43: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Huge success in the community !

2002 2003 2004 2005 2007 20090

10

20

30

40

50

60

2528

55

44 44

50

5

1418

21 22

31

Nu

mb

erof

solv

ers

sub

mit

ted

CDCLOthers

Page 44: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Consequences of the competition

I Many efficient SAT solvers available for research purposes,several fully open source.

I SAT solvers are easier to use, more reliable.

I Online reference results.

I Many benchmarks gathered over the years.

I SAT technology is widely adopted in other area (FormalVerification, Software Engineering, Bioinformatics, etc).

I Some winners got a grant, a job, some money...

I Many offsprings : QBF, PB, MAXSAT, ASP, CSP, ...

33/43 )

Page 45: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

What about raw performances ?

0

200

400

600

800

1000

1200

0 20 40 60 80 100 120 140 160 180

CP

U T

ime

(in

sec

on

ds)

Number of problems solved

Results of the SAT competition/race winners on the SAT 2009 application benchmarks, 20mn timeout

Limmat 02Zchaff 02Berkmin 561 02Forklift 03Siege 03Zchaff 04SatELite 05Minisat 2.0 06Picosat 07Rsat 07Minisat 2.1 08Precosat 09Glucose 09Clasp 09Cryptominisat 10Lingeling 10

Page 46: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Lessons learned from the competition

I Allowing the author of a solver to validate its behaviorimproves the reliability of results ;

I Lower entry level when it becomes too hard (Minisat hacktrack) ;

I Make scoring scheme as simple and clear as possible ;I Make the results easily browsable (web) ;I Solvers and benchmarks should be made available for research

purpose, preferably in source ;I Do not be too tough with the competitors : enter fixed

versions of solvers found buggy on the side of the competitionfor instance ;

I Be pragmatic (e.g. Siege, Eureka).

Requires a good hardware (cluster) and software (Sat-Ex fromLaurent Simon, evaluation from Olivier Roussel) infrastructure.

35/43 )

Page 47: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Directions for improvements

I Taking into account multi-core architecture (wall-clock timevs CPU time, reproducibility) : see the next SAT competition.

I Better selection of benchmarks (TPTP/CASC,SMTLIB/SMT-COMP) ?

I Specific use case : interactive, batch, etc.

I Robustness assessment ?

36/43 )

Page 48: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

A note about FOSS in academia

I Without the availability of the source code of GRASP, SATOand RELSAT, no Chaff !

I Minisat is widely used because it is open source (MIT) andfast

I Without Sat4j being fully open source, and business friendly(EPL), no integration in Eclipse

I My opinion : drastic improvements in SAT solvers rely heavilyon the exchange of knowledge through source code !(see the improvements in areas when the code of the solvers isnot available ...)

I Tip to make “No commercial use” OSS friendly : GNU GPL+ specific licenses

37/43 )

Page 49: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Outline

Preliminary remarks

Software dependency problems

Representing with extended propositional logic

The open source Sat4j library

Evaluating propositional solvers

Conclusion, future directions

38/43 )

Page 50: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

Page 51: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

Qualitative Choice Logic

Page 52: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

QBF policies

Page 53: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

QBF (F. Letombe PhD)

Page 54: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

Iterated Revision

Page 55: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

Competitions

Page 56: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

Aggregation of Interval Orders

Page 57: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

Dependency Management

Page 58: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of publications according to CRIL structure

Handling of imperfect, incomplete, context-sensitive,time-sensitive and multi-source knowledge

Inference and decision process

[KR02, AIJ04a] [IJCAI01, AIJ04b] [SAT01]

[RFIA02,KR06]

[AAAI05,RFIA06,JSAT06a] [SAT05]

[SAT03a] [SAT03b]

[SAT04a] [SAT04b]

[AMAI05a,b][FLAIRS07] [ADT09]

[IWOCE09] [LoCoCo10][JSAT06b] [JSAT10]

Unit Propagation Lookahead

Page 59: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Summary of SAT4J functionalities

Optimization problems

Partial Weighted MaxSat PB Optimization/WBO

Sat4j-Core Sat4j-PB-Res Sat4j-PB-CP

Resolution Cutting Planes

Clauses/Cardinalities Clauses/Cardinalities/PB Contraints

Decision Problems

Sat Pseudo-boolean Problems

40/43 )

Page 60: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Future research directions

I Multi-criteria optimization problems

I Unified modeling language for extended propositional logic

I Efficient implementation of QCL inference

I Cooperation of solvers in multi-core settings

I Continue Sat4j development for PBO (SMT ?)

I Tech-A-Way prototype for configuring visits at Le Louvre LensMuseum

41/43 )

Page 61: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Scaling the dependency problem in an interactive setting

Eclipse 3K Linux 50K Maven 200K

42/43 )

Page 62: Sat4j, un moteur libre de raisonnement en logique ...leberre/hdr-defense.pdf · Sat4j, un moteur libre de raisonnement en logique propositionnelle Habilitation a diriger des recherches

Thanks for your attention

Thanks to my co-authors during those past 10 years : Anne,Armando, Edward, Florian, Gerhard, Gilles, Helene, Ines,Jerome, Joao, Josep, Karima, Laurent, Mary-Anne, Massimo,Meltem, Olivier, Pascal, Paul, Pierre, Salem, Souhila, Sylvie.

Questions ?

43/43 )