SkillAgentSearch skills...

Barbarik

The first efficient procedure to test whether a sampler is uniform

Install / Use

/learn @meelgroup/Barbarik
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

License: MIT

Barbarik, a testing framework for samplers

'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.

Getting Started

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.

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 papers : AAAI'19, NeurIPS'20, and NeurIPS'22.

Contributors

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

Related Skills

View on GitHub
GitHub Stars13
CategoryDevelopment
Updated11mo ago
Forks1

Languages

Python

Security Score

87/100

Audited on May 6, 2025

No findings