up_SMT_engine.ProblemBuilder.R2EProblemBuilder

Classes

R2EProblemBuilder(actions, fluents, ...)

Subclass of BaseProblemBuilder, overriding build and adding new methods to implement relaxed relaxed ThereExists parallelism

class up_SMT_engine.ProblemBuilder.R2EProblemBuilder.R2EProblemBuilder(actions, fluents, is_incremental, initial_values)[source]

Bases: BaseProblemBuilder

Subclass of BaseProblemBuilder, overriding build and adding new methods to implement relaxed relaxed ThereExists parallelism

add_fluent_constraints(problem_instance, plan_len)[source]

For each fluent object generate all relevant constraints

Args:

problem_instance (z3.Solver): The solver to which clauses are added plan_len (int): The plan length

add_action_constraints(problem_instance, plan_len)[source]

For each action object generate all relevant constraints

Args:

problem_instance (z3.Solver): The solver to which clauses are added plan_len (int): The plan length

build(problem_instance, plan_len, goal_clause)[source]

Using clauses generated by actions and fluents build the problem in the z3 Solver

Args:

problem_instance (z3.Solver): The current solver to which clauses are added plan_len (int): The plan length goal_clause (Clause): The clause representing all goal conditions