concepts.dm.crow.planners.regression_planning_impl.crow_regression_planner_astar_v2.CrowRegressionPlannerAStarv2#

class CrowRegressionPlannerAStarv2[source]#

Bases: CrowRegressionPlanner

Methods

bfs(planning_state)

bfs_add_queue(planning_state)

bfs_expand(planning_state)

The BFS algorithm is simulating a hierarchical planning algorithm.

evaluate(expression, state[, csp, ...])

Evaluate an expression and return the result.

main()

main_entry(program)

set_results(results)

Attributes

__init__(executor, state, goal_expr, *, simulation_interface=None, enable_reordering=True, max_search_depth=20, max_beam_size=20, is_goal_ordered=True, is_goal_serializable=True, 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=True)#

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.

__new__(**kwargs)#
bfs(planning_state)[source]#
Parameters:

planning_state (CrowPlanningState2)

Return type:

Sequence[CrowPlanningResult]

bfs_add_queue(planning_state)[source]#
Parameters:

planning_state (CrowPlanningState2)

bfs_expand(planning_state)[source]#

The BFS algorithm is simulating a hierarchical planning algorithm. The current state can be encoded as:

left_actions = (a1, a2, a3, ...)
middle_program = CrowActionOrderingSuite(...)
right_statements = [RegressionStatement2(...), RegressionStatement2(...), ...]

It corresponds to this figure:

a1 -> a2 -> a3 -> ... -> {middle_program} -> [right_statements]

Therefore,

  • state.left_actions: the actions that have been executed (a1, a2, a3, …).

  • state.program: the current program that is being expanded ({middle_program}).

  • state.right_statements: the statements that are waiting to be expanded ([right_statements]).

At each step,

  • If the program is empty, we will pop up the first right statement and expand it.

  • If the program is not empty, we will randomly pop a statement from the middle program, and prepend it to the right statements.

Parameters:

planning_state (CrowPlanningState2)

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]

main()#
Return type:

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

main_entry(program)[source]#
Parameters:

program (CrowBehaviorOrderingSuite)

Return type:

List[Tuple[CrowControllerApplier, …]]

set_results(results)#
Parameters:

results (List[CrowPlanningResult])

Return type:

None

property domain: CrowDomain#
queue: PriorityQueue#
property results: List[CrowPlanningResult]#
property search_stat: dict#