Printing landmarks

69 views
Skip to first unread message

Laura Sebastia

unread,
Jun 15, 2022, 7:19:48 AM6/15/22
to Fast Downward
Hi all,
I'm interested in performing an analysis of the different types of landmarks that can be extracted from a problem. Specifically, I'm interested in disjuctive action landmarks.
Is there any (simple) way of printing these landmarks? I've been surfing the code but I didn't find any "print_landmarks" function :-)
I saw that there was an option "verbosity" in the landmarks plugin, and I thought that maybe this could be useful for inspecting the landmarks graph. But it seems not to work anymore...
Thanks in advance,
Laura

Malte Helmert

unread,
Jun 15, 2022, 7:47:58 AM6/15/22
to fast-d...@googlegroups.com, Laura Sebastia
Hi Laura,

the method is called "dump_landmarks", you were close. :-) If you set
the log level to "debug", it will be called; "verbose" is not enough.

Here is an example (not a good configuration, just to illustrate the
dumping):

./fast-downward.py DOMAIN.PDDL PROBLEM.PDDL \
--evaluator \
"h=lmcount(lm_factory=lm_reasonable_orders_hps(lm_rhw(),verbosity=debug))" \
--search "lazy_greedy([h])"

It prints the landmarks and orderings in graphviz format, but
unfortunately it doesn't print the achievers, so it's not in the form of
disjunctive action landmarks. But perhaps it's a useful starting point?
You'll find the code easily by grepping for "dump_landmarks".


I should also point out that the lmcut heuristic is based on disjunctive
action landmarks (recomputed for every state), but doesn't use the
landmark factory framework of the code at all. It doesn't have a way of
printing the landmarks, but it should not be too difficult to add one.
Perhaps it could be useful to do this via the lmcut_constraints()
constraint generator for the operator-counting heuristic rather than
within the lmcut code itself, or perhaps not. Florian might have some
more advice on this.

Let us know if you have any followup questions.

Best,
Malte

Clemens Büchner

unread,
Jun 15, 2022, 8:36:15 AM6/15/22
to fast-d...@googlegroups.com
Hi Laura,
If you're interested, I have an implementation for converting the Fast
Downward landmark graphs to "disjunctive action landmark graphs" and
also a way to dump them in graphviz format. The code is published here:
https://zenodo.org/record/4604735. If you think this could be helpful, I
could also give more details to guide you through the code. The relevant
class is called "DisjActionLandmarkGraph" in the "cyclic_landmarks"
directory.

Best regards,
Clemens

Laura Sebastia

unread,
Jun 16, 2022, 8:30:15 AM6/16/22
to Fast Downward
Hi Malte and Clemens,
Thank you very much for your answers! I'll have a look at both options, although it seems Clemens' will be more straightforward for what I'm doing.
I'll be back to you with more questions :-)
Regards!
Laura

Reply all
Reply to author
Forward
0 new messages