Tools for the enumeration of minimal models and MUSes.

Executables:

ExecutableLinkSource code
WASP 64-bit linux binary Download
Paracoherent rewriter 64-bit linux binary Download. Instructions: g++ --std=c++11 paracoherent_rewriter.cpp -o paracoherent_rewriter

External Executables:

ExecutableLink/Source code
asprinDownload from github.com
emax (private communication with the first author of the paper).Link to the paper

Minimal Models:

asprin-d: (echo "#preference(p1, subset){gap(X)}. #optimize(p1)."; cat $1 | ./paracoherent_rewriter semistable plain asp) | ./asprin --models=0 --ground-once asprin-h: (echo "#preference(p1, subset){gap(X)}. #optimize(p1)."; cat $1 | ./paracoherent_rewriter semistable plain asp) | ./asprin --models=0 --approximation=heuristic --ground-once asprin-w: (echo "#preference(p1, subset){gap(X)}. #optimize(p1)."; cat $1 | ./paracoherent_rewriter semistable plain asp) | ./asprin --models=0 --approximation=weak --ground-once wasp_one: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap -n0 --minimization-algorithm=core-based wasp_opt: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap -n0 --minimization-algorithm=preferences wasp_min: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap -n0 --minimization-algorithm=guess-check-minimize wasp_split: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap -n0 --minimization-algorithm=guess-check-split

The experiments were run with the option --silent=2 (for wasp) and --quiet=2 (for asprin) to print only the numbers of enumerated models. To obtain a fair comparison, comment out in the asprin code all the prints about solving/models stats.

We also tested asprin without the option --ground-once (for testing, just remove it in the above code).

All the benchmarks used in the experiments are publicly-available: DOI

Cautious reasoning:

wasp_enum_cautious: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap --minimization-cautious-enum wasp_min_cautious: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap --minimization-cautious

The experiments were run with the option --silent=2.

All the benchmarks used in the experiments are publicly-available: DOI

MUSes:

Download [wasp.py].

wasp_emax: python3 ./wasp.py enc.asp inst.asp | ./clingo --output=smodels | ./wasp --mus=__debug__ -n0

wasp_camus: python3 ./wasp.py enc.asp inst.asp | ./clingo --output=smodels | ./wasp --mus=__debug__ --mus-algorithm=camus -n0

wasp_camus-1: python3 ./wasp.py enc.asp inst.asp | ./clingo --output=smodels | ./wasp --mus=__debug__ --mus-algorithm=camus,1 -n0

wasp_camus-10: python3 ./wasp.py enc.asp inst.asp | ./clingo --output=smodels | ./wasp --mus=__debug__ --mus-algorithm=camus,10 -n0

wasp_camus-50: python3 ./wasp.py enc.asp inst.asp | ./clingo --output=smodels | ./wasp --mus=__debug__ --mus-algorithm=camus,50 -n0

The experiments were run with the option --silent=2 (for wasp), and we commented out in the emax code all the prints about solving stats.

We used all the benchmarks proposed in the paper: link. Moreover, additional benchmarks (i.e., the ones coming from the ASP competition) will be made available on zenodo in case of acceptance.

Great news! The paper obtained the "best paper award" at the International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR) 2022. Download from springer.

Executables:

ExecutableLinkSource code
WASP 64-bit linux binary Download
Paracoherent rewriter 64-bit linux binary Download. Instructions: g++ --std=c++11 paracoherent_rewriter.cpp -o paracoherent_rewriter

External Executables:

ExecutableLink/Source code
asprinDownload from github.com
emax (private communication with the first author of the paper).Link to the paper

Minimal Models:

asprin: (echo "#preference(p1, subset){gap(X)}. #optimize(p1)."; cat $1 | ./paracoherent_rewriter semistable plain asp) | ./asprin --models=0 wasp_one: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap -n0 --minimization-algorithm=core-based wasp_opt: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap -n0 --minimization-algorithm=preferences wasp_min: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap -n0 --minimization-algorithm=guess-check-minimize wasp_split: cat instance.gringo | ./paracoherent_rewriter semistable plain gringo | ./wasp --minimize-predicate=gap -n0 --minimization-algorithm=guess-check-split

The experiments were run with the option --silent=2 (for wasp) and --quiet=2 (for asprin) to print only the numbers of enumerated models. To obtain a fair comparison, comment out in the asprin code all the prints about solving/models stats.

All the benchmarks used in the experiments are publicly-available: DOI

MUSes:

Download [wasp.py]. Usage: python3 ./wasp.py enc.asp inst.asp | ./clingo --output=smodels | ./wasp --mus=__debug__ -n0

The experiments were run with the option --silent=2 (for wasp), and we commented out in the emax code all the prints about solving stats.

All the benchmarks used in the experiments are the ones of the paper: link.