'Barbarik' is a framework developed to test whether a sampler samples from a target distribution. To read more about Barbarik, have a look at our papers AAAI'19, NeurIPS'20, and NeurIPS'22.
To test QuickSampler:
git clone --depth 1 https://github.com/meelgroup/barbarik.git
cd barbarik
git submodule update --init --recursive
python3 barbarik.py --seed 1 --sampler 2 tests/uniform/blasted_case110.cnf
See python3 barbarik.py --help
for the different samplers supported.
You can choose any of the samplers in the "samplers" directory, see --help
:
- UniGen2 - an almost-uniform sampler, version 2
- ApproxMC3-with-sampling - an almost-uniform sampler (This is a beta version of UniGen3 -- which will be released soon. If you use ApproxMC3 binary, please cite UniGen paper to avoid any confusion.)
- SPUR - Perfectly Uniform Satisfying Assignments
- Quick Sampler
- STS
To run a custom sampler, make appropriate changes to the code -- look for the following tag in barbarik.py
file: # @CHANGE_HERE : please make changes in the below block of code
If you use Barbarik, please cite the following papers : AAAI'19, NeurIPS'20, and NeurIPS'22.
- Kuldeep S. Meel
- Sourav Chakraborty
- Shayak Chakraborty
- Yash Pote
- Mate Soos
- Priyanka Golia