Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marcthurley/sharpSAT
The #SAT solver sharpSAT
https://github.com/marcthurley/sharpSAT
Last synced: 29 days ago
JSON representation
The #SAT solver sharpSAT
- Host: GitHub
- URL: https://github.com/marcthurley/sharpSAT
- Owner: marcthurley
- License: mit
- Created: 2012-08-24T15:22:56.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2022-08-28T18:13:04.000Z (over 2 years ago)
- Last Synced: 2024-09-26T01:41:12.895Z (5 months ago)
- Language: C++
- Size: 372 KB
- Stars: 55
- Watchers: 9
- Forks: 24
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-sat-solvers - SharpSAT
README
=========
sharpSAT
=========sharpSAT is a #SAT solver based on modern DPLL based SAT solver technology.
This is a new version with several incremental improvements over the 2006
sharpSAT 1.1 which has been published at SAT 2006.This version also fixed several bugs - most importantly a counting bug,
that causes sharpSAT to report wrong model counts on some instances.=========
Usage
=========Usage: sharpSAT [options] [CNF_File]
Options:
-noPP turn off preprocessing
-noCC turn off component caching
-noIBCP turn off implicit BCP
-q quiet mode
-t [s] set time bound to s seconds
-cs [n] set max cache size to n MB=========
Building
=========It suffices to change to the ./Release subdirectory and run
make
NOTE:
- it is necessary to have at least G++ 4.7 installed for sharpSAT to
compile. This is particularly necessary as we use delegating constructors- the GMP bignum package has to be installed in your system
=========
Changes
=========> 12.08 <
- rewrote most of the codebase of the solver, including a redesigned SAT solver
foundation based on more recent developments such as MiniSAT and TiniSAT,
e.g. conflict clause minimization is used now- disentangled component analysis and the SAT solver part by separating the
datastructures. Although this imposes a small memory overhead it allows
for simpler and faster algorithms both in the SAT solver and in the component
analysis part.- the redesign reduced the number of code lines by more than 30%
- implicit BCP is more efficient now since for every failed literal l found
every literal corresponding to a UIP of the conflict caused by l is asserted
and add a UIP clause for that conflict is added- changed the decision heursitics to floating point values, and changed
the VSADS weighting and the activity decay rate.- As it does not make sense to use only finite precision, the GMP bignumber
package is now a prerequisite for sharpSAT. This also has to do with the
fact that we use GMP integer arithmetic now instead of GMP floating points
which is both simpler and has a small memory advantage.- A new coding of the cached components is introduced which frequently saves
30 - 50% of cache memory.- reduced the memory overhead of cached components to less than 40% of the
original overhead- cache size will now be automatically set to at most 95% of the free RAM
available at program start. This can be overridden, however, by setting the
maximum cache size using the "-cs" optionBUGFIXES
- corrected a bug in the use of the GMP bignumber package that caused (among others)
wrong solution counts reported on bmc-ibm-5, bmc-ibm-10, ra, rb, and rc.- the solver is fully 64bit compliant now; esepcially the cache size can now be
larger than GB- several out-of-memory problems with the old sharpSAT have been resolved