aig-upf / tarski

Tarski - An AI Planning Modeling Framework
Apache License 2.0
59 stars 19 forks source link

General RDDL Improvements & Support #90

Open mejrpete opened 4 years ago

mejrpete commented 4 years ago

As discussed on The Planning Community slack (with Guillem Francès and Emil Keyder). I am interested in extending the existing RDDL support in tarski (and want to do it as much as possible in consultation with the maintainers!). The goal of this issue is to discuss general improvements, identify which are relevant to the core tarski project, and make sure implementations of new features and support are appropriate in design and integration.

Examples include:

Simple bug reports and fixes are omitted since I assume those should be submitted as separate issues and submitted fixes in a normal workflow (please correct me if I'm wrong!)

Thanks!

miquelramirez commented 4 years ago

Hello @mejrpete ,

thanks very much for your interest in tarski, and I welcome too your interest into RDDL.

discuss general improvements, identify which are relevant to the core tarski project, and make sure implementations of new features and support are appropriate in design and integration.

As far as I know, the only big use case of the current RDDL support in tarski are these benchmarks, which represent one of the three use cases @gfrances and me had in mind when we started this project:

  1. Support programmatic modelling of planning problems (i.e. "tarski problem generator library"
  2. Faciliate the transformation of planning problems across languages, bridging semantic gaps if any procedurally (i.e. "tarski as a translating library")
  3. Provide a platform to compile high level specifications of transition systems characterized with path and state constraints into "standard" planning languages (i.e. tarski as a compiler).

We have pursued these three goals mostly on an "as needed" basis to support our research. So I can't really guarantee that all the stuff in the codebase is relevant to these three aims :)

The three features you mention sound very useful to me.

The one feature I will be probably working on over the next months is to make sure that tarski can generate specifications of dynamical systems with perturbation correctly. Related to that, I would like at some point to explore several possible ways of compiling RDDL compliant specs into DBNs, analyze their structure and visualize them. Last in the TODO list is to verify to what extent RDDL can model uncertainty over states (i.e. having means and covariance matrices for numerical fluents, some other distributional representation for discrete variables).

A normal workflow where issues are created for each separate bug/problem and PRs to incorporate them sounds perfectly reasonable to me.

Thanks again for your interest, and looking forward to further discussion and inputs 👍

mejrpete commented 4 years ago

Great! Thanks very much. These benchmarks for code generation help a lot for context. I have a few specific questions/issues that are directly related to what I'm currently working on (specifically on the "tarski problem generator" use case) related to boolean-valued fluents and RDDL-style conditionals which can probably be pulled into a separate issue. I think that's probably the best place to start!

Thanks a lot!

miquelramirez commented 4 years ago

No worries @mejrpete happy to hear that those problem generators illustrated use case #1 and provided some context.