Code and Benchmarks for the ICAPS24 paper: Explaining the Space of SSP Policies via Policy-Property Dependencies: Complexity, Algorithms, and Relation to Multi-Objective Planning
Résumé
Source code and benchmark archive for the ICAPS24 paper "Explaining the Space of SSP Policies via Policy-Property Dependencies: Complexity, Algorithms, and Relation to Multi-Objective Planning".
Dependencies:
Building and running the code requires CPLEX (tested in version 22.11) and MiniSAT (in version 2.2).
CMake (>= 2.8.12)
C++ compiler with C++17 support (tested with GCC).
Python 3
Compiling and running:
Our code builds on probabilistic fast downward, and inherits the same build and run procedure. The build process is started through the build.py xaipp script in the source code root directory:./build.py xaipp.
CPLEX and MiniSat are located using the cplex_DIR and minisat_DIR environment variables.
The planner is invoked through the fast_downward.py script, and follows the general syntax
./fast_downward.py --build xaipp [DOMAIN.pddl] [PROBLEM.pddl] --translate-options --enumerate-forall --search-options --search "[CONFIG]"
where [CONFIG] is one of the following
exhaustive MIP:marco(full_mip())
idual with hmax dead-end detection and PPDB2 heuristic:marco(xaidual(reset=false, relaxed_check=true, eval=psmax([ps_ppdbs(), ps_hmax()])))
i2dual (i.e., idual configuration merried with the projection-occupation-measure heuristic)marco(xai2dual(reset=false, relaxed_check=true, eval=ps_hmax()))
multi-objective value function precomputation via exhaustive MIP:marco(dmo(full_mip, reset=false, relaxed_check=false, apply_enforced_properties=true, cost_precision=5e-2, prob_precision=5e-2))
multi-objective value function precomputation via idual:marco(dmo(xaidual, reset=false, relaxed_check=true, apply_enforced_properties=true, cost_precision=5e-2, prob_precision=5e-2))
multi-objective value function precomputation via i2dual:marco(dmo(xai2dual, reset=false, relaxed_check=true, apply_enforced_properties=true, cost_precision=5e-2, prob_precision=5e-2))