concepts.dm.crow.planners.regression_planning_impl.crow_regression_planner_iddfs_v1.CrowRegressionPlannerIDDFSv1#
- class CrowRegressionPlannerIDDFSv1[source]#
Bases:
CrowRegressionPlanner
Methods
dfs
(planning_state, depth)The main entry of the depth-first search.
dfs_impl
(planning_state, depth)The actual implementation of the depth-first search.
dfs_inner
(planning_state, stmt, ...)evaluate
(expression, state[, csp, ...])Evaluate an expression and return the result.
hash_state
(planning_state)hash_state_human
(planning_state)Hash the planning state for human-readable output.
main
()main_entry
(program[, minimize])set_results
(results)Attributes
Whether to always commit the skeleton of the program.
The minimum search depth.
Whether to include the effect appliers in the search result.
Whether to enable the state hash.
The executor.
The initial state.
The goal expression.
The simulation interface.
Whether the goal is ordered.
Whether the goal is serializable.
Whether the refinement for each component of the goal is compressible.
Whether to enable the CSP solver.
The maximum number of CSP trials (for solving a single CSP).
The maximum number of global CSP trials.
The maximum CSP branching factor.
Whether to use the generator manager.
Whether to store the generator manager history.
Whether to include the dependency graph in the search result.
Whether to output verbose information.
- __init__(executor, state, goal_expr, *, simulation_interface=None, is_goal_ordered=True, is_goal_serializable=True, is_goal_refinement_compressible=True, enable_csp=True, max_csp_trials=1, max_global_csp_trials=100, max_csp_branching_factor=5, use_generator_manager=True, store_generator_manager_history=False, include_effect_appliers=False, include_dependency_trace=False, verbose=False, **kwargs)#
Initialize the planner.
- Parameters:
executor (CrowExecutor) – the executor.
state (CrowState) – the initial state.
goal_expr (str | ValueOutputExpression | None) – the goal expression.
simulation_interface (CrowSimulationControllerInterface | None) – the simulation interface.
enable_reordering – whether to enable reordering.
is_goal_ordered (bool) – whether the goal is ordered.
is_goal_serializable (bool) – whether the goal is serializable.
is_goal_refinement_compressible (bool) – whether the goal refinement is compressible.
enable_csp (bool) – whether to enable the CSP solver.
max_csp_trials (int) – the maximum number of CSP trials.
max_global_csp_trials (int) – the maximum number of global CSP trials.
max_csp_branching_factor (int) – the maximum CSP branching factor.
use_generator_manager (bool) – whether to use the generator manager.
store_generator_manager_history (bool) – whether to store the generator manager history.
include_effect_appliers (bool) – whether to include the effect appliers in the search result. The effect appliers are of type
CrowEffectApplier
.include_dependency_trace (bool) – whether to include the dependency graph in the search result.
verbose (bool) – whether to output verbose information.
- __new__(**kwargs)#
- dfs(planning_state, depth)[source]#
The main entry of the depth-first search. This function is a generator of possible planning results. Internally, it calls
dfs_impl()
to perform the actual search but wraps around it to handle visited states (so that we can avoid redundant search).- Parameters:
planning_state (_IDDFSNode) – the current planning state.
depth (int) – the current search depth.
- Return type:
- dfs_impl(planning_state, depth)[source]#
The actual implementation of the depth-first search. This function is a generator of possible planning results.
- Parameters:
planning_state (_IDDFSNode) – the current planning state.
depth (int) – the current search depth.
- Return type:
- dfs_inner(planning_state, stmt, middle_program, scope_id, depth)[source]#
- Parameters:
planning_state (_IDDFSNode)
stmt (CrowBehaviorOrderingSuite | CrowBehaviorForeachLoopSuite | CrowBehaviorWhileLoopSuite | CrowBehaviorConditionSuite | CrowBindExpression | CrowAssertExpression | CrowRuntimeAssignmentExpression | CrowControllerApplicationExpression | CrowAchieveExpression | CrowUntrackExpression | CrowBehaviorApplicationExpression | CrowBehaviorEffectApplicationExpression | CrowBehaviorCommit)
middle_program (CrowBehaviorOrderingSuite | None)
scope_id (int)
depth (int)
- Return type:
- evaluate(expression, state, csp=None, bounded_variables=None, clone_csp=True, force_tensor_value=False)#
Evaluate an expression and return the result.
- Parameters:
expression (ObjectOrValueOutputExpression | VariableAssignmentExpression) – the expression to evaluate.
state (CrowState) – the current state.
csp (ConstraintSatisfactionProblem | None) – the current CSP.
bounded_variables (Dict[str, ObjectConstant | TensorValue] | None) – the bounded variables.
clone_csp (bool) – whether to clone the CSP.
force_tensor_value (bool) – whether to force the result to be a tensor value.
- Returns:
the evaluation result and the updated CSP.
- Return type:
Tuple[None | StateObjectReference | StateObjectList | TensorValue | OptimisticValue, ConstraintSatisfactionProblem | None]
- hash_state_human(planning_state)[source]#
Hash the planning state for human-readable output. Note that this function is not toally consistent with hash_state. This function is a “stronger” version of hash_state. For example, the following two states with different hash_state corresponds to the same human-readable hash.
State1:
unordered{ achieve@4 clear(V::x) } Scopes: 0: {} 1: {} 2: {'x': ObjectConstant<A: block>, 'y': ObjectConstant<B: block>} 3: {'x': ObjectConstant<B: block>, 'y': ObjectConstant<C: block>} 4: {'x': ObjectConstant<B: block>}
State2:
unordered{ achieve@2 clear(V::y) } Scopes: 0: {} 1: {} 2: {'x': ObjectConstant<A: block>, 'y': ObjectConstant<B: block>} 3: {'x': ObjectConstant<B: block>, 'y': ObjectConstant<C: block>} 4: {'x': ObjectConstant<B: block>}
- main_entry(program, minimize=None)[source]#
- Parameters:
program (CrowBehaviorOrderingSuite)
minimize (ValueOutputExpression | None)
- Return type:
- set_enable_human_control_interface(human_control_interface=True)[source]#
- Parameters:
human_control_interface (bool)
- set_enable_visited_states_count(enable_visited_states_count=True)[source]#
- Parameters:
enable_visited_states_count (bool)
- set_results(results)#
- Parameters:
results (List[CrowPlanningResult])
- Return type:
None
- property domain: CrowDomain#
- enable_state_hash: bool#
Whether to enable the state hash. When there are not a lot of duplicated states during search, turning this off can improve the performance.
- executor: CrowExecutor#
The executor.
- goal_expr: ValueOutputExpression | None#
The goal expression. If this is None, the goal will be extracted from the behavior named ‘__goal__’.
- include_effect_appliers: bool#
Whether to include the effect appliers in the search result. The effect appliers are of type
CrowEffectApplier
.
- is_goal_ordered: bool#
Whether the goal is ordered. This only takes effect when the goal is a set of AND-connected expressions.
- is_goal_refinement_compressible: bool#
Whether the refinement for each component of the goal is compressible. This only takes effect when the goal is a set of AND-connected expressions.
- is_goal_serializable: bool#
Whether the goal is serializable. This only takes effect when the goal is a set of AND-connected expressions.
- property results: List[CrowPlanningResult]#
- simulation_interface: CrowSimulationControllerInterface | None#
The simulation interface.