Possible bugs

1 view
Skip to first unread message

Sylvie C.W. Ong

unread,
Mar 3, 2011, 7:36:19 PM3/3/11
to IPPC 2011
Hi Scott and Sungwok,

I came across two issues that might possibly be bugs:
(1) This has to do with the RDDL to Symbolic Perseus translator.

The sysadmin_pomdp.sysp1.perseus file has observation names as
running_obs__c1, running_obs__c2, etc, whereas the corresponding RDDL
file, sysadmin_bool_pomdp.rddl, has observation fluents named as
running-obs(c1), running-obs(c2), etc.
The hyphen between "running" and "obs" got translated into an
underscore in the Symbolic Perseus file. This makes it difficult/
impossible to map observation fluents received from the server to the
observation variables parsed from the Symbolic Perseus file (unless
hyphens *always* get translated into underscores and we take that into
account.)

(2) This has to do with the RDDL server or possibly the RDDL parser.

I tried sending actions to the server for the problem instance is2
(sidewalk.rddl) (by modifying the cclient code). The only action that
the server seems to be able to accept is for the direction defined as
the default. So with the .rddl file as-is, I can only send
walk(p1,@none) walk(p2,@none), otherwise the server complains with an
error. And if, for example, I change the default direction to up like
this:
walk(person) : { action-fluent, direction, default = @up};

then the only actions I can send are walk(p1,@up) walk(p2,@up).

Hope you can shed some light into these issues. Thanks!

best regards,
Sylvie

Scott Sanner

unread,
Mar 3, 2011, 9:39:09 PM3/3/11
to ippc...@googlegroups.com, Sylvie C.W. Ong
Hi Sylvie,

Thanks for the email.

For (1), please note that when RDDL tests String equality for all fluents, it assumes "-" and "_" are equivalent.  This was the easiest way to deal with the fact that certain languages don't allow hyphens, but RDDL does.  If you are using the most recent update to the Server, you should be able to send the action name directly as translated (with "-" replaced by an "_").

For (2), I'll look into this... thanks -- I gather it is a problem with non-boolean fluents and a number of Server updates made in the last two months.  Because I don't recall that anyone has signed up for the general fluents track (there was a call for this a month or two ago), I'll look into this, but probably not before the test competition (which is only using boolean fluents at this time).

However, I guess it's a good time to ask again: will anyone *definitely* compete in a general fluents (boolean, integer, continuous) track?  If so, please email Sungwook and me.

Cheers,
Scott

Andrey Kolobov

unread,
Mar 4, 2011, 3:10:43 AM3/4/11
to ippc...@googlegroups.com, Scott Sanner, Sylvie C.W. Ong
Hi Scott,
 
On a related note -- there is an issue with the way the RDDL server communicates with PPDDL clients (and possibly with other clients too). When it sends predicates (derived from action names) to the client, it is not replacing "-" with "_". However, the PPDDL versions of all problems contain only "_" in action names. So, if an RDDL problem has action action-1, in the PPDDL version that action turn into action_1. However, the server still sends predicates like action-1(arg1) to the client, potentially making the client very confused.
 
One way to fix this is, of course, to make the client replace "-" with "_" in action names it receives. However, it seems more logical to put this conversion together with the rest of the translation routines, i.e. in the RDDL code.
 
Cheers,
 
 
Andrey

Andrey Kolobov

unread,
Mar 4, 2011, 7:18:14 AM3/4/11
to ippc...@googlegroups.com, Scott Sanner, Sylvie C.W. Ong
Hello Scott,
 
A small correction -- everything I said in the previous email regarding the "-" to "_" translation pertains to predicates, not actions. The issue is that RDDL server doesn't do this translation when sending the predicates to the client.
 
Thanks,
 
 
Andrey

Scott Sanner

unread,
Mar 4, 2011, 7:34:02 AM3/4/11
to Andrey Kolobov, ippc...@googlegroups.com, Sylvie C.W. Ong
Hi Andrey,

One way to fix this is, of course, to make the client replace "-" with "_" 
> in action names it receives. However, it seems more logical to put this 
> conversion together with the rest of the translation routines, i.e. in the 
> RDDL code.

I agree this is confusing and on second thought, I should have excluded "-" from fluent and term names in RDDL.  I will likely do this in a post-competition revision of RDDL (along with many other improvements arising from my experience with RDDL so far).

For the time being, however, usage of either "-" or "_" is legal RDDL and a few teams have written their own parsers based on the current language, so I don't want to change things prior to the competition.

The simple solution I can suggest is to categorically replace "-" with "_" in your client *if* you are using one of the translations that does this conversion (PPDDL, SPUDD, Symbolic Perseus).  I realize it incurs a small amount of overhead, but I presume this is negligible compared to the cost of planning at any given time step.

Apologies for the inconvenience this has caused... hopefully it only take a few minutes to workaround.

Cheers,
Scott
Reply all
Reply to author
Forward
0 new messages