Delete relaxation constraints

Operator-counting constraints based on the delete relaxation. By default the constraints encode an easy-to-compute relaxation of h+. With the right settings, these constraints can be used to compute the optimal delete-relaxation heuristic h+ (see example below). For details, see

delete_relaxation_if_constraints(use_time_vars=false, use_integer_vars=false)

Example: To compute the optimal delete-relaxation heuristic h+, use

operatorcounting([delete_relaxation_if_constraints(use_time_vars=true, use_integer_vars=true)], use_integer_operator_counts=true))

Note: For best performance we recommend using the alternative formulation by Rankooh and Rintanen, accessible through the option delete_relaxation_rr_constraints.

Delete relaxation constraints from Rankooh and Rintanen

Operator-counting constraints based on the delete relaxation. By default the constraints encode an easy-to-compute relaxation of h+. With the right settings, these constraints can be used to compute the optimal delete-relaxation heuristic h+ (see example below). For details, see

delete_relaxation_rr_constraints(acyclicity_type=vertex_elimination, use_integer_vars=false)

Example: To compute the optimal delete-relaxation heuristic h+, useinteger variables and some way of enforcing acyclicity (other than "none"). For example

operatorcounting([delete_relaxation_rr_constraints(acyclicity_type=vertex_elimination, use_integer_vars=true)], use_integer_operator_counts=true))

Note: While the delete-relaxation constraints by Imai and Fukunaga (accessible via option delete_relaxation_if_constraints) serve a similar purpose to the constraints implemented here, we recommend using this formulation as it can generally be solved more efficiently, in particular in case of the h+ configuration, and some relaxations offer tighter bounds.

LM-cut landmark constraints

Computes a set of landmarks in each state using the LM-cut method. For each landmark L the constraint sum_{o in L} Count_o >= 1 is added to the operator-counting LP temporarily. After the heuristic value for the state is computed, all temporary constraints are removed again. For details, see

lmcut_constraints()

Posthoc optimization constraints

The generator will compute a PDB for each pattern and add the constraint h(s) <= sum_{o in relevant(h)} Count_o. For details, see

pho_constraints(patterns=systematic(2))

State equation constraints

For each fact, a permanent constraint is added that considers the net change of the fact, i.e., the total number of times the fact is added minus the total number of times is removed. The bounds of each constraint depend on the current state and the goal state and are updated in each state. For details, see

state_equation_constraints(verbosity=normal)

FastDownward: Doc/ConstraintGenerator (last edited 2024-07-05 15:33:09 by XmlRpcBot)