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_SETTING
Fields 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
ConstructorDescriptionHSP()
Creates a new planner with default parameters.HSP(PlannerConfiguration configuration)
Creates a new planner with a default configuration. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks the planner configuration and returns if the configuration is valid.instantiate(DefaultParsedProblem problem)
Instantiates the planning problem from a parsed problem.static void
The main method of theHSP
planner.void
setHeuristic(StateHeuristic.Name heuristic)
Set the name of heuristic used by the planner to solve a planning problem.void
setHeuristicWeight(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, throwInvalidConfigurationException
Methods inherited from class fr.uga.pddl4j.planners.AbstractPlanner
call, getDomain, getDomainFile, getLogLevel, getParser, getParserErrorManager, getProblem, getProblemFile, getStatistics, getTimeout, parse, parse, setDomain, setLogLevel, setProblem, setTimeout, solve
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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:
setHeuristicWeight
in 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:
setHeuristic
in 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:
hasValidConfiguration
in interfacePlanner
- Overrides:
hasValidConfiguration
in classAbstractStateSpacePlanner
- Returns:
true
if the configuration is validfalse
otherwise.
-
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 theHSP
planner.- Parameters:
args
- the arguments of the command line.
-