up_SMT_engine.actions.ThereExistsAction

Classes

ThereExistsAction(grounded_action)

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