Class HSP
java.lang.Object
fr.uga.pddl4j.planners.AbstractPlanner
fr.uga.pddl4j.planners.statespace.AbstractStateSpacePlanner
fr.uga.pddl4j.planners.statespace.HSP
- All Implemented Interfaces:
Planner,StateSpacePlanner,Serializable,Callable<Integer>
This class implements a simple state space planner based on A* algorithm. It is possible to choose the heuristic
function used and its weight.
The command line syntax to launch the planner is as follow:
HSP [-hV] [-e=<heuristic>] [-l=<logLevel>]
[-t=<timeout>] [-w=<weight>] <domain> <problem>
Description:
Solves a specified planning problem using A* search strategy.
Parameters:
<domain> The domain file.
<problem> The problem file.
Options:
-l, --log=<logLevel> Set the level of trace: ALL, DEBUG, INFO, ERROR,
FATAL, OFF, TRACE (preset INFO).
-t, --timeout=<timeout> Set the time out of the planner in seconds (
preset 600s).
-w, --weight=<weight> the weight of the heuristic (preset 1.0).
-e, --heuristic=<heuristic>
Set the heuristic : AJUSTED_SUM, AJUSTED_SUM2,
AJUSTED_SUM2M, COMBO, MAX, FAST_FORWARD,
SET_LEVEL, SUM, SUM_MUTEX (preset: FAST_FORWARD)
-h, --help Show this help message and exit.
-V, --version Print version information and exit.
Command line example:
java -cp build/libs/pddl4j-4.0-all.jar fr.uga.pddl4j.planners.statespace.HSP
src/test/resources/benchmarks/pddl/ipc2002/depots/strips-automatic/domain.pdd
src/test/resources/benchmarks/pddl/ipc2002/depots/strips-automatic/p01.pddl
-e MAX
-w 1.2
-t 600
- See Also:
PlannerConfiguration, Serialized Form
-
Nested Class Summary
Nested classes/interfaces inherited from interface fr.uga.pddl4j.planners.Planner
Planner.Name -
Field Summary
Fields inherited from interface fr.uga.pddl4j.planners.Planner
DEFAULT_DOMAIN, DEFAULT_LOG_LEVEL, DEFAULT_PROBLEM, DEFAULT_TIME_OUT, DOMAIN_SETTING, LOG_LEVEL_SETTING, PROBLEM_SETTING, TIME_OUT_SETTINGFields inherited from interface fr.uga.pddl4j.planners.statespace.StateSpacePlanner
DEFAULT_HEURISTIC, DEFAULT_SEARCH_STRATEGIES, DEFAULT_WEIGHT_HEURISTIC, HEURISTIC_SETTING, SEARCH_STRATEGIES_SETTING, WEIGHT_HEURISTIC_SETTING -
Constructor Summary
ConstructorsConstructorDescriptionHSP()Creates a new planner with default parameters.HSP(PlannerConfiguration configuration)Creates a new planner with a default configuration. -
Method Summary
Modifier and TypeMethodDescriptionbooleanChecks the planner configuration and returns if the configuration is valid.instantiate(DefaultParsedProblem problem)Instantiates the planning problem from a parsed problem.static voidThe main method of theHSPplanner.voidsetHeuristic(StateHeuristic.Name heuristic)Set the name of heuristic used by the planner to solve a planning problem.voidsetHeuristicWeight(double weight)Sets the weight of the heuristic.Methods inherited from class fr.uga.pddl4j.planners.statespace.AbstractStateSpacePlanner
addSearchStrategy, getConfiguration, getDefaultConfiguration, getHeuristic, getHeuristicWeight, getSearchStrategies, isSupported, setConfiguration, setSearchStrategies, solve, throwInvalidConfigurationExceptionMethods inherited from class fr.uga.pddl4j.planners.AbstractPlanner
call, getDomain, getDomainFile, getLogLevel, getParser, getParserErrorManager, getProblem, getProblemFile, getStatistics, getTimeout, parse, parse, setDomain, setLogLevel, setProblem, setTimeout, solveMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface fr.uga.pddl4j.planners.Planner
getDomain, getDomainFile, getLogLevel, getParserErrorManager, getProblem, getProblemFile, getStatistics, getTimeout, parse, parse, setDomain, setLogLevel, setProblem, setTimeout, solve
-
Constructor Details
-
HSP
public HSP()Creates a new planner with default parameters. -
HSP
Creates a new planner with a default configuration.- Parameters:
configuration- the configuration of the planner.
-
-
Method Details
-
setHeuristicWeight
public final void setHeuristicWeight(double weight)Sets the weight of the heuristic.- Overrides:
setHeuristicWeightin classAbstractStateSpacePlanner- Parameters:
weight- the weight of the heuristic. The weight must be greater than 0.- Throws:
IllegalArgumentException- if the weight is strictly less than 0.
-
setHeuristic
Set the name of heuristic used by the planner to solve a planning problem.- Overrides:
setHeuristicin classAbstractStateSpacePlanner- Parameters:
heuristic- the name of the heuristic.
-
hasValidConfiguration
public boolean hasValidConfiguration()Checks the planner configuration and returns if the configuration is valid. A configuration is valid if (1) the domain and the problem files exist and can be read, (2) the timeout is greater than 0, (3) the weight of the heuristic is greater than 0, (4) the heuristic is a not null and (5) the list of search strategies to use constains one search strategy : ASTAR.- Specified by:
hasValidConfigurationin interfacePlanner- Overrides:
hasValidConfigurationin classAbstractStateSpacePlanner- Returns:
trueif the configuration is validfalseotherwise.
-
instantiate
Instantiates the planning problem from a parsed problem.- Parameters:
problem- the problem to instantiate.- Returns:
- the instantiated planning problem or null if the problem cannot be instantiated.
-
main
The main method of theHSPplanner.- Parameters:
args- the arguments of the command line.
-