- L. Chrpa, M. Vallati: Planning with Critical Section Macros: Theory and Practice, Journal of Artificial Intelligence Research
Benchmark domains are in respective directories that have the following structure
domain.pddl
contains the original domain modeldomain_<macro>.pddl
contains a macro enhanced domain model (after macros are learnt - not part of the repo)knowledge_<macro>.kf
contains a description of macros (after macros are learnt - not part of the repo)/learn
contains a set of training problems/testing
contains a set of testing problems/testing_<macro>
contains a set of enhanced testing problems (after macros are learnt - not part of the repo)
To compile, get into /src
and type make
To unfold macros in plans, use the following tool (to compile, get into /unfold_plans
and type make
):
./unfold_plans <plan_w_macros> <knowledge_file> <plan_for_original_problem>
To learn Critical Section Macros (CSM), use the following script (you must be in the /scripts
directory)
./learn-csm.sh <domain_folder> <planner-script> <CSM-type>
where, <CSM_type>
can be as follows:
- csm - normal CSMs with argument limit
- ncsm - normal CSMs without argument limit
- acsm - aggressive CSMs with argument limit
- ancsm - aggressive CSMs without argument limit
For example: ./learn-csm.sh ../benchmarks/bw ff-script acsm
To learn Compound CSMs, use the following script (you must be in the /scripts
directory)
./learn-c-csm.sh <domain_folder> <planner-script> <CSM-type>
where, <CSM_type>
can be as follows:
- ccsm - normal compound CSMs with argument limit
- nccsm - normal compound CSMs without argument limit
- accsm - aggressive compound CSMs with argument limit
- anccsm - aggressive compound CSMs without argument limit
To learn MUM macros, use the following script (you must be in the /scripts
directory)
./learn-mum.sh <domain_folder> <planner-script>
To learn BloMa macros, use the following script (you must be in the /scripts
directory)
./learn-bloma.sh <domain_folder> <planner-script>
Note that paths to the planners in <planner>-script
files has to be updated accordingly
Note that the ptt-old
binary is used by MUM and BloMa (because of some issues with backwards compatibility of the code)
Lukas Chrpa, chrpaluk<at>fel.cvut.cz