OMTPlan: Optimal Planning Modulo Theories
|
Functions | |
def | utils.getDomainName (task_filename) |
Tries to find PDDL domain file when only problem file is supplied. More... | |
def | utils.getValFromModel (assignment) |
Extracts values from Z3 model making sure types are properly converted. More... | |
def | utils.varNameFromNFluent (fluent) |
Returns variable name used for encoding numeric fluents in SMT. More... | |
def | utils.varNameFromBFluent (fluent) |
Returns variable name used for encoding boolean fluents in SMT. More... | |
def | utils.isBoolFluent (fluent) |
Checks if fluent is propositional. More... | |
def | utils.isNumFluent (fluent) |
Checks if fluent is numeric. More... | |
def | utils.inorderTraversal (encoder, nax, numeric_variables) |
Traverses the parsed domain as returned by TFD parser: More... | |
def | utils.inorderTraversalFC (encoder, condition, numeric_variables) |
Inorder traversal for Comparison axioms – see "Using the Context-enhanced Additive Heuristic for Temporal and Numeric Planning", Eyerich et al. More... | |
def | utils.extractVariables (encoder, nax, variables) |
Extracts variables contained in PDDL numeric expressions. More... | |
def | utils.extractVariablesFC (encoder, condition) |
Extracts variables contained in PDDL comparison axioms. More... | |
def | utils.parseMetric (encoder) |
Extracts variables appearing in PDDL metric. More... | |
def | utils.buildMetricExpr (encoder) |
Builds Z3 expression of PDDL metric. More... | |
def | utils.printSMTFormula (formula, problem_name) |
Prints SMT planning formula in SMT-LIB syntax. More... | |
def | utils.printOMTFormula (formula, problem_name) |
Prints OMT planning formula in SMT-LIB syntax. More... | |
def utils.buildMetricExpr | ( | encoder | ) |
Builds Z3 expression of PDDL metric.
encoder | encoder object. |
def utils.extractVariables | ( | encoder, | |
nax, | |||
variables | |||
) |
Extracts variables contained in PDDL numeric expressions.
encoder. | |
nax | numeric axioms returned by TFD. |
variables | dictionary containing Z3 variables. |
def utils.extractVariablesFC | ( | encoder, | |
condition | |||
) |
Extracts variables contained in PDDL comparison axioms.
encoder. | |
condition | PDDL comparison axiom. |
def utils.getDomainName | ( | task_filename | ) |
Tries to find PDDL domain file when only problem file is supplied.
task_filename | path to PDDL problem file. |
def utils.getValFromModel | ( | assignment | ) |
Extracts values from Z3 model making sure types are properly converted.
assigment | variable assignment with Z3 type. |
def utils.inorderTraversal | ( | encoder, | |
nax, | |||
numeric_variables | |||
) |
Traverses the parsed domain as returned by TFD parser:
See "Using the Context-enhanced Additive Heuristic for Temporal and Numeric Planning", Eyerich et al.
encode | object. |
nax | numeric axioms returned by parser. |
numeric_variables | Z3 numeric variables. |
def utils.inorderTraversalFC | ( | encoder, | |
condition, | |||
numeric_variables | |||
) |
Inorder traversal for Comparison axioms – see "Using the Context-enhanced Additive Heuristic for Temporal and Numeric Planning", Eyerich et al.
Internally relies on inorderTraversal().
encoder | |
codnition | numeric PDDL condition. |
numeric_variables | dictionary with Z3 variables |
def utils.isBoolFluent | ( | fluent | ) |
Checks if fluent is propositional.
fluent | PDDL fluent. |
def utils.isNumFluent | ( | fluent | ) |
Checks if fluent is numeric.
fluent | PDDL fluent. |
def utils.parseMetric | ( | encoder | ) |
Extracts variables appearing in PDDL metric.
encoder. |
def utils.printOMTFormula | ( | formula, | |
problem_name | |||
) |
Prints OMT planning formula in SMT-LIB syntax.
formula | |
problem_name |
def utils.printSMTFormula | ( | formula, | |
problem_name | |||
) |
Prints SMT planning formula in SMT-LIB syntax.
formula | |
problem_name |
def utils.varNameFromBFluent | ( | fluent | ) |
Returns variable name used for encoding boolean fluents in SMT.
fluent | Propositional PDDL fluent. |
def utils.varNameFromNFluent | ( | fluent | ) |
Returns variable name used for encoding numeric fluents in SMT.
fluent | Numeric PDDL fluent |