Can this work? Because evaluators are predefinable, the same evaluator can be
used in multiple searches with different tasks.
I think it is important here that we think of the "transform" arguments of
heuristics as task *transformations*, not tasks. A task transformation is a
mapping from task X to task Y, so users of a transformation should have some way
of accessing information about both task X and task Y at some level.
I think the whole idea of task transformations currently only exists at the
conceptual level, and therefore we cannot currently implement this properly. In
particular, it is probably wrong that the "transform" option of heuristics is
"AbstractTask". It should rather be "TaskTransformation", which currently
doesn't exist in the code. I would think of task transformation as a kind of
factory function that takes task X and produces task Y.
There may or may not be some conceptual analogy here to the fact that the option
parser gives us OpenListFactory, not an actual open list, and similarly for
landmark factories.
|