Sat4j
the boolean satisfaction and optimization library in Java
 

Release 1.7 is out!

See the release notes or download SAT4J 1.7 now!

Sudoku demo 2.1 is out!

A new version of the Sudoku as Satisfiability demo written by Ivor Spence has been released. That demo has been customized for the French Science Fest 2006. See the information for the science fest (in French) or download the sudoku demo now!

Release 1.6 is out!

See the release notes or download SAT4J 1.6 now!

Top

New members in the SAT4J project

Ivor Spence and Kerry Soileau joined the SAT4J project in January 2006.

Preparing the SAT Race 2006

All the details regarding the preparation for the SAT Race will be available on the project wiki.

Bugfix release 1.5_01 is out!

The default CSP to SAT translator was not correct: some constraints were missing when a value had an empty support. That release fixes this problem. There is no other changes. If you are not using the CSP translator, there is no need to update now.

A new CSP to SAT translator is available on CVS, that generalizes support encoding to nary constraints, based on the work of Bessiere et al 2003. The output of the CSP reader has also been improved.

SAT4J hosted on ObjectWeb

SAT4J is now being hosted on ObjectWeb.

Release 1.5 is out!

The release 1.5 of SAT4J is now available. Note that this version requires Java 5.

Among the new features:
  • Improved SAT solvers (include features from latest MiniSAT and Siege)
  • Pseudo Boolean reasoning
  • Can handle CSP benchmarks using the first CSP competition input format
  • Improved design and code, bug fixes, etc.

That release follows the participation of the library to the Fourth SAT competition, First Pseudo Boolean evaluation and First CSP competition. You can check by yourself that SAT4J performed reasonably against current state-of-the-art SAT/PB/CSP solvers.

Download now!

Hot news

Our SAT based CSP solver is performing quite well in the CSP competition (look for dleberre/1 solver in yellow). As a result, we improved further the CSP to SAT translator.

Interested in testing that new CSP solver by yourself?

java -jar sat4j-1.5.jar path/to/bench.txt
will solve the instance bench.txt using the default SAT solver and the default CSP to SAT translator. Note that the instance filename must end with .txt to invoque the CSP to SAT translator.

It is also possible to prefix any file with CSP or CSP2 to explicitely mention that the file contains a CSP instance:

java -jar sat4j-1.5.jar CSP:path/to/bench.txt
will solve the instance bench.txt using the default SAT solver and the direct CSP to SAT translator. This is the configuration used in the CSP competition, with some improvements with memory management and SAT decoding.
java -jar sat4j-1.5.jar CSP2:path/to/bench.txt
will solve the instance bench.txt using the default SAT solver and the support (default) CSP to SAT translator. In that case, binary relations expressed by allowed tuples are translated using the support encoding proposed by Ian Gent (ECAI 2002 paper).

Places where you can see SAT4J in action