up_SMT_engine.actions.ThereExistsAction¶
Classes
|
Extension of BaseAction to support ThereExists parallelism, allowing more parallelism than ForAll |
- class up_SMT_engine.actions.ThereExistsAction.ThereExistsAction(grounded_action)[source]¶
Bases:
BaseAction
Extension of BaseAction to support ThereExists parallelism, allowing more parallelism than ForAll
- __get_matching_fluent_set(fluents_list, name_set)¶
Method used to find the set of fluents matching a set of basenames
- Args:
fluents_list (List(BaseFluent or BaseFluent subclass)): List of fluents name_set (Set(String)): Set of basenames
- Returns:
Set(BaseFluent or BaseFluent subclass): Set of fluents matching the basenames
- __get_precondition_fluent_names()¶
Method used to find all fluents mentioned in preconditions. This is a coarse grained approach because each fluent’s semantics are discarded Used with __get_matching_fluent_set to get matching fluent objects
- Returns:
Set(String): Set of fluent basenames
- __get_effect_precondition_fluent_names()¶
Method used to find all fluents mentioned in effect preconditions. This is a coarse grained approach because each fluent’s semantics are discarded. Effects without preconditions are skipped. Used with __get_matching_fluent_set to get matching fluent objects
- Returns:
Set(String): Set of fluent basenames
- __get_effect_fluent_names()¶
Method used to find all fluents affected by an effect, including conditional effects This is also a coarse grained approach. Used with __get_matching_fluent_set to get matching fluent objects
- Returns:
Set(String): Set of fluent basenames
- populate_affecting_fluents_set(fluents_list)[source]¶
Method used to populate the affecting_fluents set for an action
- Args:
fluents_list (List(BaseFluent or BaseFluent subclass)): List of all fluents
- populate_all_fluents_set(fluents_list)[source]¶
Method used to populate the all_fluents set for an action
- Args:
fluents_list (List(BaseFluent or BaseFluent subclass)): List of all fluents
- __get_ThereExists_constraints_at_time_t(timestep, ordered_actions)¶
Method used to generate all parallelism constraints for this action for a ThereExists encoding Affecting actions are found by finding affecting actions of fluents in all_fluents set
- Args:
timestep (int): Current timestep ordered_actions (List(BaseAction or BaseAction subclass)): Ordered list of all actions
- Returns:
List(z3 expression): List of constraints expressing the ThereExists parallelism constraints over simultaneous actions
- get_ThereExists_constraints_up_to_t(timestep, ordered_actions)[source]¶
Method used to get all ThereExists parallelism constraints over simultaneous actions up to timestep t
- Args:
timestep (int): Final timestep ordered_actions (List(BaseAction or BaseAction subclass)): Ordered list of all actions
- Returns:
List(z3 expression): List of constraints expressing the ThereExists parallelism constraints over simultaneous actions
- get_ThereExists_constraints_at_t(timestep, ordered_actions)[source]¶
Method used to get all ThereExists parallelism constraints over simultaneous actions at timestep t
- Args:
timestep (int): Current timestep ordered_actions (List(BaseAction or BaseAction subclass)): Ordered list of all actions
- Returns:
List(z3 expression): List of constraints expressing the ThereExists parallelism constraints over simultaneous actions