Updated material on B/BMV languages (August 31th, 2010)
by random_permutation_of( Agostino Dovier, Andrea Formisano, and Enrico Pontelli)
Domains in B
From Competitions
- Peg Solitaire and
Instances
from the
2009 Answer Set Competition.
- Sam Lloyd's 15 puzzle and
Instances
from the 2009 Answer Set Competition.
- Hanoi Tower and
Instances
from the 2009 Answer Set Competition.
-
Hydraulic planning and
Instances
from the 2009 Answer Set Competition.
- Trucks
from International
Planning Competition IPC-5.
(A larger set of Instances
in PDDL,
instances used for B, and
instances used for BMV)
- Sokoban from
ASP Competition 2011,
where you can find details and several instances.
Other classical or new domains
- The classical 2N, N+1, N-1 barrel
problem (generalization of the 12-7-5). Solutions with 2N-1 moves.
- The classical Tangram puzzle.
- A B encoding of the Reverse Folding Problem.
- An encoding of the Gas Diffusion Problem. Wrt the BMV encoding (below) we added a "scale" factor.
With scale(16) it would be equivalent to the BMV version. But it run immediately out of memory.
With scale(1) it works but it run 10 times slower than BMV (with numbers 16 times bigger).
Here is the the set of instances tested.
- An absolutely useless encoding of a numerical extended version of the hydraulic problem.
- Other (simpler) domains are
here.
Domains in BMV
All domains in B above can be mapped in BMV simply changing
the declarations fluent(fname) into
fluent(fname,0,1) and changing
fname with fname eq 1
and neg(fname) with fname eq 0
in all static and dynamic rules. Instead we report below the
encodings where the multivalued nature of the domains is exploited.
Executers
- Compiler from B to ASP
For GRINGO 3 and
For GRINGO 4.
Consult/compile it. Then launch the goal :- main( FILENAME , PLAN LENGTH
< optional: , outputfilename >).
It saves a file (possibly, with a default name) that can be executed by ASP solvers (eg lparse/gringo outputfilename | smodels/cmodels/clasp 1).
No need to suggest of checking the working directories.
- In case your domain does not use static causal laws this
Optimized compiler produces faster
ASP code.
- Basic CLP(FD) solver for B (SICStus and
BProlog).
- Slighty modified versions of the above solver:
- CLP(FD) solver for BMV (SICStus).
In these cases, the B/BMV domain is called inside the solver (see the
first lines of the Prolog file). After compiled it launch sicsplan(N)
(or b_plan(N))
where N is the plan length.
We suggest to change search strategies inside the predicate
*my_labeling.