BaxMC: a CEGAR approach to Max#SAT (FMCAD22)

Tags: SAT

The Max#SAT problem is defined as follows: given a propositionnal formula $\phi(X, Y, Z)$, find $x_m$ such that the model counting of $\phi$, projected on $Y$ is maximal.

We propose in this paper a CEGAR-based algorithm to solve this problem, along with proofs of correctness assuming both exact and approximate model counting oracles.

Along with this, we devise an alternate hardness proof of the problem and its generalizations.

Artifacts

We provide some artifacts to reproduce our experiments.

Docker Image

To get the docker image, please follow the instructions here.

After the docker has been downloaded and started, you can run the bencmarks using:

tar -xzvf /benchmarks.tar.gz
baxmc --help
baxmc $BENCHMARK_PATH

The benchmarks can be found in the /benchmarks/ folder.

We also provide a reimplementation of MaxCount in the /maxcount.py file. To use it in the docker image, do:

python3 maxcount.py [epsilon] [delta] [file]

Sources

The source code is accessible here.

This project uses nix to pull the dependencies.

The build process is explicited in the README.md file.

If you have any question, feel free to contact me:

thomas DOT vigouroux AT univ-grenoble-alpes.fr