Software Open Access
The zipfile contains an extended version of the Fast Downward planning system (http://fast-downward.org). The code for saturated cost partitioning can be found in the "src/search/cost_saturation" directory.
Please see http://www.fast-downward.org for instructions on how to compile the planner.
The following configuration computes the hSCPdiv heuristic from the paper:
--search "astar(saturated_cost_partitioning([projections(hillclimbing(max_generated_patterns=200, random_seed=0)), projections(systematic(2)), cartesian()],max_orders=infinity, max_time=1000, diversify=true, random_seed=0, max_optimization_time=100, orders=greedy_orders(random_seed=0)))"
The Scorpion variant uses different timeouts for diversification and optimization, prunes irrelevant operators in a preprocessing step and uses partial order reduction during the A* search:
--search "astar(saturated_cost_partitioning([projections(systematic(2)), projections(hillclimbing(max_time=100, random_seed=0)), cartesian()], max_orders=infinity, max_optimization_time=2, max_time=200, diversify=true, orders=greedy_orders(random_seed=0), random_seed=0), pruning=stubborn_sets_simple(min_required_pruning_ratio=0.2))"
Note that for operator pruning you need to make the h2 preprocessor (https://gitlab.com/atorralba_planners/h2-preprocessor) available on the PATH (e.g., using the name "preprocess-h2") and then pass "--transform-task preprocess-h2" to the fast-downward.py script (in Lab you can use the driver_options argument of add_algorithm for this). We include a copy of the h2 preprocessor in the file "h2-preprocessor.zip".
We actively maintain the code at https://github.com/jendrikseipp/scorpion. The GitHub repository also contains a copy of the h² preprocessor.