/barbarik

The first efficient procedure to test whether a sampler is uniform

Primary LanguagePythonMIT LicenseMIT

Barbarik, a testing framework for (almost) uniform samplers

Barbarik is a framework developed to test whether a sampler is almost uniform or not. It uses SPUR as the underlying uniform sampler. This work is by Sourav Chakraborty and Kuldeep S. Meel, as published in AAAI'19.

Getting Started

To test QuckSampler:

git clone --depth 1 https://github.com/meelgroup/barbarik.git
cd barbarik
./barbarik.py --seed 1 --sampler 2 blasted_case110.cnf

See ./barbarik.py --help for the different samplers supported.

Samplers used

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

Custom Samplers

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

How to Cite

If you use Barbarik, please cite the following paper : AAAI'19. Here is BIB file

Contributors

  1. Kuldeep S. Meel
  2. Sourav Chakraborty
  3. Shayak Chakraborty
  4. Yash Pote
  5. Mate Soos
  6. Priyanka Golia