Skip to content

A collection of SAT solvers and tools for structure analysis in SAT problems.

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENCE
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

Aimmig/candy-kingdom

 
 

Repository files navigation

Linux Windows Coverage Metrics Sonarcloud
travisCI appveyor coveralls tokei sonar

Candy Kingdom

Candy Kingdom is a modular collection of SAT solvers and tools for structure analysis in SAT problems. The original Candy solver is a branch of the famous SAT solver Glucose. Several new approaches (e.g. rsar and rsil-variants) in Candy focus on explicit exploitation of structure analysis in SAT solving. The core of Glucose has been completely reworked with a strong focus on the independence and exchangeability of components in the core solver, while increasing the readability and maintainability of the code. The allocation model of clauses was revisited with a focus on cache efficient memory management. A new sonification module provides Ear Candy, you can now also listen to solver runs.

Build

Candy uses the googletest API, which is why, in order to build Candy you need to initialize and build the googletest submodule like this:

git submodule init
git submodule update
cd lib/googletest
cmake .
cmake --build .

Then you can build Candy like this:

mkdir build
cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_BUILD_TYPE=Release ..
make candy

Run

In order to run candy and solve a problem example.cnf invoke:

./candy example.cnf

Candy offers a multitude of options, like paramaters to tune heuristics and thresholds, or parameters to select an alternative solving strategy (e.g. rsar or rsil). If you have any questions feel free to contact me.

Credits

Credits go to SAT CLIQUE, all the people at ITI and our students.

Build and make on Windows

  • mingw installed (mingw-64 (posix))
  • mingw32-pthreads (mingw32-libpthreadgc-dll, mingw32-libpthreadgc-dev, mingw32-pthreads-w32*)
  • mingw32-libz-dll and mingw32-libz-dev
  • mingw32-libgomp-dll for OpenMP (if needed)
  • everything else required to compile c/c++
  • mingw64\bin directory added to PATH
mkdir release
cd release
cmake -G "MinGW Makefiles" -DZLIB_INCLUDE_DIR=<mingw-include-dir> -DZLIB_LIBRARY=<path-to-mingw-libz.a> -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_BUILD_TYPE=Release ..
cmake --bild . --target candy

example path-to-mingw-include-dir: C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include

example path-to-mingw-libz: C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/lib/libz.a

About

A collection of SAT solvers and tools for structure analysis in SAT problems.

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENCE
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 62.3%
  • TeX 31.6%
  • Csound Document 4.0%
  • CMake 1.5%
  • C 0.6%
  • Makefile 0.0%