Published March 7, 2024 | Version v1
Software Open

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

  • 1. ROR icon Laboratoire d'Analyse et d'Architecture des Systèmes
  • 2. ROR icon Australian National University
  • 3. ROR icon Université de Toulouse
  • 4. ROR icon Saarland University
  • 5. ROR icon Airbus (France)

Description

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))

 

 

 

Files

benchmarks.zip

Files (3.2 MB)

Name Size Download all
md5:14cc5b75b20a1837dc5737baf654eca9
2.3 MB Preview Download
md5:dc27b2210af8a434d2db062822268583
978.4 kB Preview Download

Additional details

Funding

TUPLES – Trustworthy Planning and Scheduling with Learning and Explanations 101070149
European Commission
AI Planning: The Next Generation DP220103815
Australian Research Council