Hide menu

Running LAMA (SunOS)

Questions, Problems and Bugs

If you have problems with any of the planners, please ask your lab assistant. Through the WWW links provided you can find out more about the planning systems, but please, do not contact their authors!

Known Problems

LAMA, like many planners, requires all the arguments to an operator to be different, i.e. an action such as (move A B A) is considered impossible regardless of the domain definition. This can cause a problem in some domains.

LAMA does not handle planning with durations.

How LAMA Works

LAMA consists of three separate programs:

  1. the translator (written in Python),
  2. the knowledge compilation module (written in C++), and
  3. the search engine (also written in C++).
To solve a planning problem, the three programs are called in sequence; they communicate via text files. The translator transforms the planner input from PDDL into a multi-valued state representation. At this stage a grounding algorithm is used for instantiating operators and axioms these are then fed to invariant synthesis algorithm which determines groups of mutually exclusive facts. These groups are used for determining the order between landmarks. Landmarks are variable assignments that must occur at some point in every solution plan. The knowledge compilation module builds a number of data structures which will be used in the landmark generation and search. It also constructs successor generators that can be used to efficiently determine which actions are applicable in a given state. Also axiom evaluators for efficiently evaluating values of derived state variables are built here.

The search engine uses multi-heuristics to speed up the search process. It makes use of the FF heuristic and also of landmarks. The landmark heuristic measures the distance to a goal by the number of landmarks that still need to be achieved.

Input

LAMA accepts PDDL input, including some parts of ADL: quantified and conditional effects, quantified preconditions and goals and :typing, but not type hierarchies.

Installation

The easiest way of accessing the LAMA planner is to use the command module add /home/TDDC17/www-pub/info/labs/planning/planners.mod, which will include the correct directory in your path. After that, you can run it by just typing the planner's name.

LAMA needs Python to run. If it is not already installed this can be done by executing the command module add prog/python/2.6.0. This will temporarily add the Python module to the environment. To add it permanently, use the command module initadd prog/python/2.6.0.

Running LAMA

LAMA is started with the command

lama options <domain file> <problem file> <result file>
Where options must contain at least one heuristic. The following options exist:
l: Use the landmark heuristic.
L: Use preferred operators of the landmark heuristic.
f: Use the FF heuristic.
F: Use helpful actions ("preferred operators" of the FF heuristic).
i: Run in iterated mode, keep searching for better solutions.
The options can be combined in any way but lLfF appears to give the best results. Using the i option might give better plans, but may also cause the planner to continue indefinitely. It only stops after having completely exhausted the search space.


Page responsible: Fredrik Heintz
Last updated: 2014-09-17