up_SMT_engine.ProblemBuilder.ForAllProblemBuilder¶
Classes
|
Subclass of BaseProblemBuilder, overriding build and __generate_parallelism_mutexes to implement ForAll parallelism |
- class up_SMT_engine.ProblemBuilder.ForAllProblemBuilder.ForAllProblemBuilder(actions, fluents, is_incremental, initial_values)[source]¶
Bases:
BaseProblemBuilder
Subclass of BaseProblemBuilder, overriding build and __generate_parallelism_mutexes to implement ForAll parallelism
- __generate_parallelism_mutexes(plan_len)¶
Generate mutexes for ForAll parallelism For every pair of actions if interference is found then add a mutex over those two actions
- Args:
plan_len (int): Plan length
- Returns:
Array of constraint clauses: Array of constraint clauses. If using incremental solving this only covers the penultimate timestep. Otherwise the array covers the first to penultimate timesteps
- 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