GpuShareSat
Source code for GpuShareSat, a library for SAT solvers to use the GPU for clause sharing between CPU threads. (by nicolasprevot)
cadical
CaDiCaL SAT Solver (by arminbiere)
GpuShareSat | cadical | |
---|---|---|
1 | 3 | |
29 | 310 | |
- | - | |
10.0 | 9.5 | |
almost 3 years ago | 6 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
GpuShareSat
Posts with mentions or reviews of GpuShareSat.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-26.
-
The Silent (R)evolution of SAT
There is a solver that can make effective use of GPUs (shameless self-promotion): https://github.com/nicolasprevot/GpuShareSat
It is a VERY fun work. Code entirely written by Nicolas Prevot, a magician of CUDA. Paper link here: https://comp.nus.edu.sg/~meel/Papers/sat21-psm.pdf
cadical
Posts with mentions or reviews of cadical.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-26.
-
The Silent (R)evolution of SAT
That is true, but there are many interesting heuristics in modern SAT solvers, such as kissat: https://github.com/arminbiere/kissat (winner for a few years now). LBD ("glues" in glucose) is one of them. Kissat is actually quite readable. More readable is CaDiCaL, also extremely fast and effective: https://github.com/arminbiere/cadical
I personally also develop a SAT solver called CryptoMiniSat, but the above two are easier to read :)
-
How would you suggest building an application to solve a puzzle?
You'd probably end up with thousands of variables and tens / hundreds of thousands of constraints. You'd assign each variable a number, then feed the whole mess of constraint equations into an off-the-shelf SAT solver like Cadical, then interpret the solver's results in terms of puzzle piece positions.
-
kotlin-satlib: SAT solver wrappers for Kotlin
Alongside with the SAT solver interface and its extensions, `kotlin-satlib` provides wrappers for native SAT solvers (these days, most of them are written in C/C++) implemented using JNI technology. Currently, the solvers included are: MiniSat, Glucose, Cadical and CryptoMiniSat. Sadly, `kotlin-satlib` won't work out-of-the-box, you have to provide it with some external SAT solver, either in the form of a library or a binary. Luckily, there are build instructions for each of the supported SAT solver, both for Linux and Windows. Checkout the README!
What are some alternatives?
When comparing GpuShareSat and cadical you can also consider the following projects:
kissat
cryptominisat - An advanced SAT solver
minisat-v1.14 - MiniSat v1.14
jnisat - Java JNI bindings for the PicoSat and MiniSat SAT solvers
microsat - microsat
ipasir - The Standard Interface for Incremental Satisfiability Solving
CDCL.jl - Conflict Driven Clause Learning in Julia
kotlin-satlib - 🗿 SAT solver wrappers for Kotlin