MRR is an implementation of a MaxSAT-based technique for finding minimum deorderings and reorderings of a partial order plan. It can be configured to either find a minimum deorder or minimum reorder as per Muise et al., or a minimum reinstantiated deorder or minimum reiinstantiated reorder as per Waters et al.
Download the following .jar files to the lib
directory:
The following programs must be installed:
The programs loandra
and maxpre
must be in the PATH
.
From the root directory run:
ant build
MRR will be compiled into lib/mrr-0.0.1.jar
.
Run MRR with the following command:
usage: pop-opt.py [-h] --domain DOMAIN --problem PROBLEM --plan PLAN --encoder ENCODER [--verbose]
Required arguments:
--domain DOMAIN
: The location of the PDDL domain file.--problem PROBLEM
: The location of the problem instance PDDL file.--plan PLAN
: The location of the plan which solvesPROBLEM
.--encoder CSP_ENCODER
: The encoder used to convert the input plan into a MaxSAT instance. Options are:MD
: Finds a minimum deorder as per Muise et al.MR
: Finds a minimum reorder as per Muise et al.MR_OPSB
: Finds a minimum reorder, also encodes operator symmetry breaking constraints.MRD
: Finds a minimum reinstantiated deorder.MRR
: Finds a minimum reinstantiated reorder.MRR_OPSB
: Finds a minimum reinstantiated reorder, also encodes operator symmetry breaking constraints.
Options:
--verbose
: Verbose output.
Plan files with a .m
extension are assumed to be Madagascar parallel plans (e.g., example/p01.pddl.m
), otherwise plans are assumed to be standard IPC format plans (e.g., e.g., example/p01.pddl.bfws
).
The example
directory contains a small planning instance from the IPC rovers
domain, and three different plans. Run MRR over the example with the following commmand:
./mktr.sh --domain example/domain.pddl --problem example/p01.pddl
--plan example/p01.pddl.m --encoder MRR
All features of basic STRIPS
are supported, and some aspects of ADL
, namely equality
, typing
and negative preconditions
.
Max Waters ([email protected]).
This project is using the GPLv3 for open source licensing for information and the license visit GNU website (https://www.gnu.org/licenses/gpl-3.0.en.html).
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.