ENHSP runs from the shell and (assuming you have compiled) is to be run this way:
enhsp -o <domain_file> -f <problem_file> -planner <configuration>
where
enhsp is your alias for java -jar enhsp.jar or direct script running the java class file
domain_file is the name of the file where you have the operators, type, predicates and functions definitions
problem_file is the name of the file where you have your objects, initial state and goals specified
configuration is the specific configuration that you want to use
(Note that ENHSP can also be run with more sophisticated search and heuristics, and other parameters. How to do so is described in the gitlab readme file or can be obtained running ENHSP --help)
ENHSP can be run in different high-level configurations. The following table lists all such configurations together with the "level of support" for fragments expressible in the language supported by ENHSP and the distribution of ENHSP supporting it. Below, some more information on the given configuration
Mini-Intro. With the sat prefix, we intend configurations designed to work for sat planning. With opt those used for optimal planning. sat runs generally Greedy Best First Search, while opt runs A* as a search engine (there are exceptions though).
This list applies for ENHSP-20 and ENHSP-19. For ENHSP-18 have a look at the associated gitlab page:
sat-hmrp
Greedy Best First Search plus MRP heuristic; paper where this has been used: ICAPS-20
Note that ENHSP-20 uses a 1-0 heuristic for everything that is not simple numeric planning.
Suggested Distribution: ENHSP-20
sat-hmrph
Same as before but with helpful actions
sat-hmrphj
Same as before but with not only helpful actions, but also helpful transitions.
sat-hadd
Greedy Best First Search with numeric hadd; Paper where this has firstly been presented: IJCAI-16
Note that ENHSP-20 uses a 1-0 heuristic for everything that is not simple numeric planning.
Suggested Distribution: ENHSP-20, but if you want to use the version that uses AIBR for non simple constraints, take ENHSP-19
sat-hradd As the previous, but every pair of numeric conditions is augmented with the implied redundant constraint. This does not seem super prolific. Better to use SAT-hadd.
sat-aibr
AStar plus AIBR heuristic; paper where this has firstly been presented: ECAI-16
Suggested Distribution: ENHSP-20
opt-hmax
AStar with hmax numeric heuristic; Paper where this has been firstly presented: IJCAI-16
Suggested Distribution: ENHSP-20
opt-hrmax
same as before, but with redundant constraints. This should be used for optimal simple numeric planning problem, and only rarely can opt-hmax be better than this.
opt-hlm
AStar with numeric landmark heuristic; Paper where this has been firstly presented: IJCAI-17
Requires CPLEX 12.6
Suggested Distribution: ENHSP-19
opt-hlmrd
As before, but with redundant constraints. Should be preferred over the previous
opt-blind
This is a baseline blind heuristic that gives 1 to state where the goal is not satisfied and 0 to state where the goal is satisfied. Despite of its simplicity, especially in system ENHSP-20, this can work very well when the structure of the problem is very complex, and plans not very long (such as ~20 actions top).
To run the planner used in the experiment in our paper, use
enshp -o <domain_file> -f <problem_file> -planner <configuration>
where configuration is to be set according to the given paper; in particular:
IJCAI16:
ENHSP-19 with
sat-hadd, sat-hradd. These are the two inadmissible settings
opt-hmax, opt-hrmax. These are the two optimal settings
ECAI16
ENHSP-19 with sat-aibr
IJCAI17
ENHSP-19 with opt-hlm and opt-hlmrc to get the two landmarks based admissible heuristics
IJCAI18
ENHSP-19 with sat-haddabs to get the effect-abstraction heuristic
ICAPS20
ENHSP-20 with
sat-hmrp to get the MRP heuristic
sat-hmrph to get the MRP heuristic + helpful actions
sat-hmrphj to get the MRP heuristic + helpful actions + up-to-jumping actions.
Although ENHSP accepts conditional effects, these are very unstable. This is justified by the fact that there has never really been the time to work on conditional effects in ENHSP, even because the semantics of them is a bit under-specified, especially in numeric planning.
ENHSP is not optimised for grounding, so avoid using it if your problem has a huge number of parameters in the actions.