Running LAMA
Running LAMA
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:
- the translator (written in Python),
- the knowledge compilation module (written in C++), and
- 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.
Running LAMA
LAMA is started with the command
- /home/TDDC17/bin/downward/src/lama <domain file> <problem file>
Note that after LAMA finds a solution, it keeps searching for a
better one. It only stops after having completely exhausted
the search space.