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.



The approached has been realized by implementing the following:

  1. 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.
  2. 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 input sequence.
  3. A prototypical DLVK transformation

    For testing and experimenting we have implemented a protoypical transformation for DLVK domains into a "reverse"-domain in order to compute reverse plans to fill the reverse-plan library.



Download and extract, as well as the file 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 The examples are located in the ./demo/ folder.

You might also wish to consult the user manual (in German).