Issue1078

Title Integrate Translator and Search Component
Priority feature Status chatting
Superseder Nosy List augusto, gabi, jendrik, malte, silvan
Assigned To Keywords
Optional summary
In the long term, we would like to integrate the translator and the search 
component. The translator functionality should become more modular, time- and 
memory-efficient (probably re-implementing large parts in C++).

Created on 2023-02-02.16:03:47 by gabi, last changed by augusto.

Summary
In the long term, we would like to integrate the translator and the search 
component. The translator functionality should become more modular, time- and 
memory-efficient (probably re-implementing large parts in C++).
Files
File name Uploaded Type Edit Remove
flowchart.jpg gabi, 2023-02-02.16:07:41 image/jpeg
translator_flowchart.pdf gabi, 2023-02-02.16:05:59 application/pdf
translator_flowchart.tex gabi, 2023-02-02.16:06:11 text/x-tex
Messages
msg10969 (view) Author: augusto Date: 2023-02-03.16:02:21
For future reference, we already have a C++ implementation of the Datalog grounder used in the translator: https://github.com/abcorrea/grounder

Essentially, the master branch in this repo (commit 1e55403) implements the build_model.py file in the translator. The branch 'instantiation' also tries to implement the rest of the functions of 'instantiate.py', but this is not fully finished -- I believe it only 'works' for STRIPS. The other branches are very explorative and are related to some research questions (see the papers on lifted delete-relaxation).

This is the same code base used to compute delete-relaxation heuristics in Powerlifted.
msg10967 (view) Author: jendrik Date: 2023-02-03.13:43:20
Just a heads-up: the package name "downward" will clash with the Downward Lab package called "downward". But we'll find a solution for this.

Regarding the C++ executable: I think it's crucial that we can still easily profile the search component (with callgrind, for example). Is that also possible via Python?
msg10966 (view) Author: gabi Date: 2023-02-03.12:52:53
We had a meeting on the overall design and the possible first steps:

In the long term, the planner should be a python program that accesses C++ 
components via a single package (called downward).

First steps would be to update the build environment (CMake) to integrates the 
package building (pybind11), probably requiring a general modernization. The 
translator functionality should then be made available as subpackages (split by 
functionality, in the long term not having one subpackage "translate" and one 
"search"). For the search functionality, a first step could be to support a simple 
call with a command line configuration string.

Open question: Should the package replace the C++ executable or should we still have 
one (as an alternative way of using Fast Downward).
msg10964 (view) Author: gabi Date: 2023-02-02.16:07:41
I also add the photo of the flip chart (included in PDF). It only covers 
everything after instantiation.
msg10963 (view) Author: gabi Date: 2023-02-02.16:05:59
As a first step, we had a look at the pipeline and information flow in the 
translator. Adding our notes.
History
Date User Action Args
2023-02-03 16:02:21augustosetnosy: + augusto
messages: + msg10969
2023-02-03 13:43:20jendriksetmessages: + msg10967
2023-02-03 12:52:53gabisetmessages: + msg10966
2023-02-02 19:14:51silvansetnosy: + silvan
2023-02-02 16:08:56jendriksetnosy: + jendrik
2023-02-02 16:07:41gabisetfiles: + flowchart.jpg
messages: + msg10964
2023-02-02 16:06:11gabisetfiles: + translator_flowchart.tex
2023-02-02 16:05:59gabisetfiles: + translator_flowchart.pdf
messages: + msg10963
2023-02-02 16:03:47gabicreate