new to PDDL planning

764 views
Skip to first unread message

Aram Ebtekar

unread,
Aug 10, 2014, 4:23:12 AM8/10/14
to fast-d...@googlegroups.com
Hi everyone,

I'm a PhD student working in graph planning, but am new to symbolic languages such as PDDL. I wish to test out some ideas involving the transfer of discovered paths between related problem instances in order to speed up planning time.

To begin, I'm coding a very simple planner in C++ (say weighted A* using only the FF heuristic) which I hope to integrate with a PDDL parser so that it can run on every domain from IPC2014. Could anyone please provide pointers on how to use the Fast Downward parser (or any parser that can meet my goals)? Is there an API?

Aram Ebtekar

unread,
Aug 11, 2014, 5:12:29 AM8/11/14
to fast-d...@googlegroups.com
Some further clarification if I may:

For now, I'd like to make the simplest reasonable A*-based planner that can handle IPC domains, so that I'd be able to easily understand and edit the code. I'm not sure if it's feasible to write my own PDDL parser, so I thought it best to use an existing one as a blackbox. Although the full PDDL language is quite complex, the official page of the IPC2014 deterministic sequential satisficing track states that only the following core features need be supported: STRIPS, action costs, negative preconditions, and conditional effects. I find these easy enough to understand; I'd like to know just how to extract them into simple data structures accessible from C++ code, if possible. It seems to me that Fast Downward does something like this, but I don't understand the details.

Any help would be appreciated.
Thanks.

Gabi Roeger

unread,
Aug 12, 2014, 6:13:08 AM8/12/14
to fast-d...@googlegroups.com, arame...@gmail.com
Dear Aram,

On 08/11/2014 11:12 AM, Aram Ebtekar wrote:
> For now, I'd like to make the simplest reasonable A*-based planner that
> can handle IPC domains, so that I'd be able to easily understand and
> edit the code. I'm not sure if it's feasible to write my own PDDL
> parser, so I thought it best to use an existing one as a blackbox.
> Although the full PDDL language is quite complex, the official page of
> the IPC2014 deterministic sequential satisficing track states that only
> the following core features need be supported: STRIPS, action costs,
> negative preconditions, and conditional effects. I find these easy
> enough to understand; I'd like to know just how to extract them into
> simple data structures accessible from C++ code, if possible. It seems
> to me that Fast Downward does something like this, but I don't
> understand the details.

Fast Downward does not have a direct PDDL to C++ parser. The planner
first runs a translation phase (implemented in python) that reads the
PDDL specification and transforms it from the propositional PDDL to
SAS+, where variables are not only true or false but can have several
values. For example, there can be a variable location-of-package with a
domain {in-truck1, in-truck-2, at-location-1, at-location2}. The
resulting SAS+ task is written to an output file that is then read by
another preprocessing component, which is written in C++. There the task
is read into data structures that could be suitable for you, but it is
not conditional STRIPS but conditional SAS+.

If you want to get an easy start to planning you could also have a look
on Pyperplan. It is a planner that has been written for teaching
purposes so it features a very clean code structure. However, since it
is written in python, it is slower than most competition planners. You
find it at:
https://bitbucket.org/malte/pyperplan

If you want to enter the competition, it takes probably much fewer time
to learn how Fast Downward (or some other existing planner) can be
extended than to implement a competitive planner from scratch. For
example, Fast Downward features a plugin mechanism that makes it very
easy to add new heuristics. For a very simple example, you could have a
look on at file goal_count_heuristic.cc in src/search.

Cheers,
Gabi

Aram Ebtekar

unread,
Aug 12, 2014, 8:28:04 PM8/12/14
to fast-d...@googlegroups.com, arame...@gmail.com
Thank you Gabi for the pointers. I'm not looking to enter the competition (because the criteria I seek to optimize are somewhat different), but I do want to support the latest competition format in order to access the standard benchmarks of the planning community. I'll look into using the full FD planner, as you suggested, as my experiments would be more meaningful if applied to the state of the art. My edits will go deeper than adding a heuristic, so I might need to return with additional questions.

Phuong Hoang

unread,
Feb 27, 2015, 9:59:28 AM2/27/15
to fast-d...@googlegroups.com
Dear Gabi and Aram!

I am very new at PDDL. I am trying to run blackbox (I downloaded from here:http://www.cs.rochester.edu/u/kautz/satplan/blackbox/).
I made procedure like this page says but something wrong(I am using ubuntu version and I downloaded LinuxBinaryVersion43)
         cd Examples/logistics-strips 
        blackbox -o domain.pddl -f  prob004-log-a.pddl
Here is my result: bash: /usr/bin/blackbox: No such file or directory.
Please, tell me how to fix it.

I do thank you in advance.
Vào 17:23:12 UTC+9 Chủ Nhật, ngày 10 tháng 8 năm 2014, Aram Ebtekar đã viết:
Reply all
Reply to author
Forward
0 new messages