THE SAT SOLVER FRAMEWORK PRISS Norbert Manthey and Robert Stelzman - - PowerPoint PPT Presentation

the sat solver framework priss
SMART_READER_LITE
LIVE PREVIEW

THE SAT SOLVER FRAMEWORK PRISS Norbert Manthey and Robert Stelzman - - PowerPoint PPT Presentation

THE SAT SOLVER FRAMEWORK PRISS Norbert Manthey and Robert Stelzman Trento, 16.06.2012 We do have powerful SAT solvers Modern SAT solvers Solve SAT efficiently Can be wrapped for other tasks Provide some API to the outside Are


slide-1
SLIDE 1

THE SAT SOLVER FRAMEWORK PRISS

Norbert Manthey and Robert Stelzman

Trento, 16.06.2012

slide-2
SLIDE 2

We do have powerful SAT solvers

Modern SAT solvers

  • Solve SAT efficiently
  • Can be wrapped for other tasks
  • Provide some API to the outside
  • Are special purpose (they solve a CNF formula)
  • . . .

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 2 of 20

slide-3
SLIDE 3

We do have powerful SAT solvers

Modern SAT solvers

  • Solve SAT efficiently
  • Can be wrapped for other tasks
  • Provide some API to the outside
  • Are special purpose (they solve a CNF formula)
  • . . .

However, for research we need more.

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 2 of 20

slide-4
SLIDE 4

Statements that have been made

There has been work on splitting, e.g.

  • If we split on backdoor variables first,

the solver runs faster

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 3 of 20

slide-5
SLIDE 5

Statements that have been made

There has been work on splitting, e.g.

  • If we split on backdoor variables first,

the solver runs faster

  • Branching on auxiliary variables slows the solver down

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 3 of 20

slide-6
SLIDE 6

Statements that have been made

There has been work on splitting, e.g.

  • If we split on backdoor variables first,

the solver runs faster

  • Branching on auxiliary variables slows the solver down
  • Can we prove this easily with existing tools?

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 3 of 20

slide-7
SLIDE 7

Statements that have been made

There has been work on splitting, e.g.

  • If we split on backdoor variables first,

the solver runs faster

  • Branching on auxiliary variables slows the solver down
  • Can we prove this easily with existing tools?
  • Can we extend the results to parallel solvers?
  • We try to provide a modular solver that provides a starting point.

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 3 of 20

slide-8
SLIDE 8

Outline

Motivation The parallel framework The SLS solver ssa The CDCL solver riss 2.0 A special configuration Demo Conclusion

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 4 of 20

slide-9
SLIDE 9

The solver (p)riss

CP2 Master Solver 1 Solver 2 CP2 1 CP2 2 F J F′ J′ J′

1

F′ L1, E1 J′

2

F′ L2, E2 F′, L1, J1 F′, L2, J2 TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 5 of 20

slide-10
SLIDE 10

The solver (p)riss

The framework currently implements two solvers that can be run in parallel

  • The CDCL solver riss 2.0
  • The SLS solve ssa

Clauses can be shared (and filtered) based on their

  • Size, e.g. less than the average since the last restart
  • LBD value
  • PSM value

Furthermore,

  • priss 2.0 shares equivalent literals
  • ssa sends pure literals
  • Sending and receiving can be disabled
  • Messages from specific senders can be refused

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 6 of 20

slide-11
SLIDE 11

Outline

Motivation The parallel framework The SLS solver ssa The CDCL solver riss 2.0 A special configuration Demo Conclusion

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 7 of 20

slide-12
SLIDE 12

The SLS solver ssa

ssa is a re-implementation of sparrow 2011 with some modifications

  • Broken clauses are weighted
  • Variables have scores
  • If we cannot do greedy steps, we do walksat

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 8 of 20

slide-13
SLIDE 13

The SLS solver ssa

ssa is a re-implementation of sparrow 2011 with some modifications

  • Broken clauses are weighted
  • Variables have scores
  • If we cannot do greedy steps, we do walksat
  • We store promising variables in a heap
  • We update variables in this heap incrementally

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 8 of 20

slide-14
SLIDE 14

The SLS solver ssa

ssa is a re-implementation of sparrow 2011 with some modifications

  • Broken clauses are weighted
  • Variables have scores
  • If we cannot do greedy steps, we do walksat
  • We store promising variables in a heap
  • We update variables in this heap incrementally
  • We profiled the order of if-conditionds
  • The solver is not tuned for a specific instance set

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 8 of 20

slide-15
SLIDE 15

Outline

Motivation The parallel framework The SLS solver ssa The CDCL solver riss 2.0 A special configuration Demo Conclusion

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 9 of 20

slide-16
SLIDE 16

The CDCL solver riss 2.0

Initially, we wanted to implement MiniSAT in a modular way

  • Each major component of the CDCL procedure can be replaced easily
  • We want to exchange components easily

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 10 of 20

slide-17
SLIDE 17

The CDCL solver riss 2.0

Initially, we wanted to implement MiniSAT in a modular way

  • Each major component of the CDCL procedure can be replaced easily
  • We want to exchange components easily
  • We want to adapt the solver fast to research needs, e.g. student

experiments

  • We want to reproduce results from other publications

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 10 of 20

slide-18
SLIDE 18

The CDCL solver riss 2.0

Initially, we wanted to implement MiniSAT in a modular way

  • Each major component of the CDCL procedure can be replaced easily
  • We want to exchange components easily
  • We want to adapt the solver fast to research needs, e.g. student

experiments

  • We want to reproduce results from other publications

Some features that have been requested:

  • Branch on a set of variables first
  • Branch on a given polarity first
  • Dump and load learned clauses
  • Enumerate multiple models

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 10 of 20

slide-19
SLIDE 19

Features that are provided

In riss 2.0, we provide:

  • A C++ implementation with templates and library loaders
  • All the above requested features
  • A modular preprocessor (presentation on Sunday)
  • Simplification during search (all techniques handle learned clauses)
  • Several restart schemes (geometric, inner-outer, luby, dynamic)
  • Removal heuristics (activity, LBD, PSM) and schedules
  • Decision heuristics (VSIDS, VMTF), pick dominator
  • Restricted extended resolution during learning
  • Assignment shrinking
  • Reused-Trail restart simulation
  • . . .
  • Some analysis tools

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 11 of 20

slide-20
SLIDE 20

Combining CDCL and SLS for parallel search

Based on ppfolio, and since we have a CDCL and an SLS solver

  • Build a hybrid solver
  • As in portfolio solvers, we want to share data

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 12 of 20

slide-21
SLIDE 21

Combining CDCL and SLS for parallel search

Based on ppfolio, and since we have a CDCL and an SLS solver

  • Build a hybrid solver
  • As in portfolio solvers, we want to share data

What can we share?

  • Learned clauses from CDCL to SLS
  • Currently, pure literals from SLS to CDCL
  • There is more to come . . .

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 12 of 20

slide-22
SLIDE 22

Outline

Motivation The parallel framework The SLS solver ssa The CDCL solver riss 2.0 A special configuration Demo Conclusion

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 13 of 20

slide-23
SLIDE 23

Demonstrating the SLS solver

ssa can solve random SLS instances in Dimacs format

  • After a preprocessor has been run
  • Run alone
  • . . .

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 14 of 20

slide-24
SLIDE 24

Demonstrating the CDCL solver

riss 2.0 can

  • Display its help (huge)

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 15 of 20

slide-25
SLIDE 25

Demonstrating the CDCL solver

riss 2.0 can

  • Display its help (huge)
  • Solve CNF and output statistics
  • Can share information with filters
  • Be verbose
  • Load components from libraries
  • . . . and more

Note: the solver is not tuned on instance sets

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 15 of 20

slide-26
SLIDE 26

Outline

Motivation The parallel framework The SLS solver ssa The CDCL solver riss 2.0 A special configuration Demo Conclusion

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 16 of 20

slide-27
SLIDE 27

Future Work

What we need to do next:

  • Improving the SLS solver
  • Incorporate new techniques and more features into CDCL
  • Tune the systems

– for competition instances – for special applications – as parallel portfolio solver (diverse configurations)

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 17 of 20

slide-28
SLIDE 28

Conclusion

priss 2.0 provides

  • a modular, easy to extend CDCL solver
  • a comparable SLS solver
  • many features
  • many parameters
  • the ability to execute solvers in parallel with sharing information

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 18 of 20

slide-29
SLIDE 29

Where can you find the tool?

http://tools.computational-logic.org

We provide

  • Statically linked binaries
  • The source code of the current version (under GPL 2)
  • We will put updates and fixes online

TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 19 of 20

slide-30
SLIDE 30

Thanks for your attention

The solver is available at http://tools.computational-logic.org TU Dresden, 16.06.2012 The SAT Solver Framework priss slide 20 of 20