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)

print_visited_states_count()

set_enable_human_control_interface([...])

set_enable_visited_states_count([...])

set_results(results)

Attributes

domain

results

search_stat

always_commit_skeleton

Whether to always commit the skeleton of the program.

min_search_depth

The minimum search depth.

include_effect_appliers

Whether to include the effect appliers in the search result.

__init__(executor, state, goal_expr, *, simulation_interface=None, enable_reordering=True, min_search_depth=5, max_search_depth=20, max_beam_size=20, always_commit_skeleton=True, is_goal_ordered=False, is_goal_serializable=False, is_goal_refinement_compressible=True, enable_csp=True, max_csp_trials=10, max_global_csp_trials=100, max_csp_branching_factor=5, use_generator_manager=False, store_generator_manager_history=False, include_effect_appliers=False, include_dependency_trace=False, verbose=False)[source]#

Initialize the planner.

Parameters:
  • executor (CrowExecutor) – the executor.

  • state (CrowState) – the initial state.

  • goal_expr (str | ValueOutputExpression) – the goal expression.

  • simulation_interface (CrowSimulationControllerInterface | None) – the simulation interface.

  • enable_reordering (bool) – whether to enable reordering.

  • max_search_depth (int) – the maximum search depth.

  • max_beam_size (int) – the maximum beam size.

  • 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.

  • min_search_depth (int)

  • always_commit_skeleton (bool)

__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 (CrowPlanningState3) – the current planning state.

  • depth (int) – the current search depth.

Return type:

Iterator[CrowPlanningResult3]

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 (CrowPlanningState3) – the current planning state.

  • depth (int) – the current search depth.

Return type:

Iterator[CrowPlanningResult3]

dfs_inner(planning_state, stmt, middle_program, scope_id, depth)[source]#
Parameters:
Return type:

Iterator[CrowPlanningResult3]

evaluate(expression, state, csp=None, bounded_variables=None, clone_csp=True, force_tensor_value=False)#

Evaluate an expression and return the result.

Parameters:
Returns:

the evaluation result and the updated CSP.

Return type:

Tuple[None | StateObjectReference | StateObjectList | TensorValue | OptimisticValue, ConstraintSatisfactionProblem | None]

hash_state(planning_state)[source]#
Parameters:

planning_state (CrowPlanningState3)

Return type:

Tuple[str, …]

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>}
Parameters:

planning_state (CrowPlanningState3) – the planning state to hash.

Returns:

the hash of the planning state. It is a tuple of strings.

Return type:

Tuple[str, …]

main()#
Return type:

Tuple[List[Tuple[CrowControllerApplier, …]], dict]

main_entry(program)[source]#
Parameters:

program (CrowBehaviorOrderingSuite)

Return type:

List[Tuple[CrowControllerApplier, …]]

print_visited_states_count()[source]#
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

always_commit_skeleton: bool#

Whether to always commit the skeleton of the program.

property domain: CrowDomain#
include_effect_appliers: bool#

Whether to include the effect appliers in the search result. The effect appliers are of type CrowEffectApplier.

min_search_depth: int#

The minimum search depth.

property results: List[CrowPlanningResult]#
property search_stat: dict#