I would like to ask about the maximum arity of predicates we will find
in the competition problems. A rough estimate would be good enough.
Thanks,
Miguel Ramírez
Miguel Ramírez.
--
Dept. of Information and Communication Technologies - Universitat Pompeu Fabra
------------------------------------------------------------
Artificial Intelligence Group
------------------------------------------------------------
Es la virtud del trabajo
la desdicha del obrero
que quien trabaja no tiene
tiempo de ganar dinero
forgot to answer to this part...
>
> It's not particularly likely we will need more than that, but would it
> be a problem to support an arity of, say, 6 or 8? Not that we will
> need 8-ary predicates, but if we're going to have arbitrary limits,
> I'd prefer them to be rather unconstraining.
>
My question was motivated by the grounding process. The grounding I
have now implemented has a very big problem handling really problems
like Pipesworld, when one has to generate literally millions of
grounded ops. When doing profiling I found out that my procedure to
assign an index to a grounded predicate was taking something like
40%-50% of the overall planning task "pre-process" time.
Looking at what FF does I noticed that FF builds a huge index table
implemented as a static C array with as many dimensions as the maximum
arity. The problem exactly lies in how to define the type of the index
table in an "unconstraining" manner. I have been looking into
expression templates - so the type gets "computed" in compilation time
- but I don't think it is feasible at all or at least haven't ever
heard about anything similar.
I think I will settle for the humongous static array :(
Miguel Ramírez.