Aimmig / candy-kingdom

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

License:Other


Languages

Language:C++ 62.3%Language:TeX 31.6%Language:Csound Document 4.0%Language:CMake 1.5%Language:C 0.6%Language:Makefile 0.0%Language:Shell 0.0%