RevPlan - Computing Reverse Plans
The purpose of this student project is, to demonstrate the applicability of the approach of "Undoing the effects of action sequences", that was presented by T. Eiter, E. Erdem, W. Faber.
As described in the paper, the idea is to undo the effects of previously executed actions of a plan, i.e., a sequence of actions, and recover to the state before executing the action sequence.
- T. Eiter, E. Erdem, W. Faber "Undoing the Effects of Action Sequences", Journal of Applied Logic, 36 pp., 2007. In press.
- T. Eiter, E. Erdem, W. Faber "On Reversing Actions: Algorithms and Complexity", In M. Veloso, editor, Proceedings 20th International Joint Conference on Artificial Intelligence (IJCAI 2007), pages 336-341, 2007.
- T. Eiter, E. Erdem, W. Faber "Plan Reversals for Recovery in Execution Monitoring", In J. P.
Delgrande and T. Schaub, editors, Proceedings 10th International Workshop on Nonmonotonic Reasoning
(NMR 2004), Action and Causality Track, pages 147-154, June 2004.
- T. Eiter, E. Erdem, W. Faber "Undoing the Effects of Action Sequences", Technical report INFSYS
RR-1843-04-05, December 2004.
The approached has been realized by implementing the following:
A reverse-plan library
The reverse-plan library contains the actions / plans with its
corresponding reverse-plans. The applicability of a reverse plan may
depend on conditions in the starting state as well as on the state to
be reached. It is implemented as an XML-based data structure.
Reverse-plan Composition and Search
Reverse-plans can be obtained by searching the reverse-plan library.
We have also implemented the algorithms for reverse-plan composition.
That is, if no reverse plan for the whole input action sequence is
stored in the library, still a reverse plan may be found by concatenating
shorter reverse plans that are found for the different parts of the input
For testing and experimenting we have implemented a protoypical
DLVK domains into a
"reverse"-domain in order to compute reverse plans to fill
the reverse-plan library.
Download and extract
release.zip, as well as the file
binary.zip included in the former archive.
Set the execution rights for the scripts found in
./scripts/ according to your operating system.
If you want to have a look at some examples, you also have to extract the
src.zip. The examples are located in the
You might also wish to consult the user manual (in German).