OMTPlan: Optimal Planning Modulo Theories
|
Public Member Functions | |
def | __init__ (self, task, modifier) |
def | createVariables (self) |
Creates state and action variables needed in the encoding. More... | |
def | encodeInitialState (self) |
Encodes formula defining initial state. More... | |
def | encodeGoalState (self) |
Encodes formula defining goal state. More... | |
def | encodeActions (self) |
Encodes universal axioms: each action variable implies its preconditions and effects. More... | |
def | encodeFrame (self) |
Encode explanatory frame axioms: a predicate retains its value unless it is modified by the effects of an action. More... | |
def | encodeExecutionSemantics (self) |
Encodes execution semantics as specified by modifier class. More... | |
def | encode (self, horizon) |
Public Attributes | |
task | |
modifier | |
mutexes | |
boolean_variables | |
numeric_variables | |
action_variables | |
Private Member Functions | |
def | _ground (self) |
def | _sort_axioms (self) |
Stores numeric axioms sorted according to different criteria. More... | |
def | _computeSerialMutexes (self) |
Computes mutually exclusive actions for serial encodings, i.e., all actions are mutually exclusive. More... | |
def | _computeParallelMutexes (self) |
Computes mutually exclusive actions: Two actions (a1, a2) are mutex if: More... | |
Base encoder class. Defines methods to build standard state-based encodings -- i.e., Rintanen 09
|
private |
Computes mutually exclusive actions: Two actions (a1, a2) are mutex if:
See, e.g., 'A Compilation of the Full PDDL+ Language into SMT'', Cashmore et al.
|
private |
Computes mutually exclusive actions for serial encodings, i.e., all actions are mutually exclusive.
|
private |
Grounds action schemas as per TFD parser)
|
private |
Stores numeric axioms sorted according to different criteria.
Returns 3 dictionaries:
def planner.encoder.Encoder.createVariables | ( | self | ) |
Creates state and action variables needed in the encoding.
Variables are stored in dictionaries as follows:
dict[step][variable_name] = Z3 variable instance
def planner.encoder.Encoder.encode | ( | self, | |
horizon | |||
) |
Basic method to build bounded encoding.
def planner.encoder.Encoder.encodeActions | ( | self | ) |
Encodes universal axioms: each action variable implies its preconditions and effects.
def planner.encoder.Encoder.encodeExecutionSemantics | ( | self | ) |
Encodes execution semantics as specified by modifier class.
def planner.encoder.Encoder.encodeFrame | ( | self | ) |
Encode explanatory frame axioms: a predicate retains its value unless it is modified by the effects of an action.
def planner.encoder.Encoder.encodeGoalState | ( | self | ) |
Encodes formula defining goal state.
def planner.encoder.Encoder.encodeInitialState | ( | self | ) |
Encodes formula defining initial state.