aibasel / pyperplan

A lightweight STRIPS planner written in Python.
GNU General Public License v3.0
93 stars 41 forks source link

Support for :equality keyword #13

Closed bonetblai closed 2 years ago

bonetblai commented 2 years ago

Pyperplan does not support the :equality keyword. When enabled, the predicate = becomes available for testing equality among objects. In the (far) past, there was also a difference when grounding operators. By default (no :equality), objects could appear at most once for different arguments of grounded actions (i.e., no object could repeat in the arguments for a grounded action). When enabled, such repetitions are allowed but then the predicate = becomes available.

maltehelmert commented 2 years ago

Hi Blai, the second point (not allowing repetition of objects when grounding unless :equality is specified) isn't part of the regular PDDL semantics. I remember many planners worked like this in the past, but I think the current behaviour of having no such restrictions became the only official semantics when PDDL got formalized a bit more for IPC 2000 or IPC 2002.

I agree on the first part: supporting :equality with the meaning that it makes "=" available would be useful.

BTW, is there a clear statement anywhere who the official maintainer(s) of pyperplan is/are? I'm primarily asking to make clear that I'm not one of them. ;-)

jendrikseipp commented 2 years ago

Yes, there's a note in the README under Contact: https://github.com/aibasel/pyperplan

maltehelmert commented 2 years ago

Thanks, Jendrik! I even checked that section, but apparently ran out of brain power before the end of it. ;-)

bonetblai commented 2 years ago

I just issued a PR for this request. Semantics of grounding isn't change. The PR describes the patch. I'm closing this issue...