Having a way to use the same portfolio in anytime mode or single-plan mode could
be useful, although I'm not sure how often one would want to use exactly the
same portfolio for these two purposes. (I'd expect portfolios designed for
anytime planning to include some sort of cost adaptation etc. that is not needed
in single-plan mode. But perhaps this could be handled in a generic and useful way.)
Not a big fan of making the optimal portfolios more complicated by adding
bound=BOUND everywhere for no good reason. What is the use case? I don't think
satisficing vs. optimal portfolios is the interesting dividing line. The
semantic distinction I see is single-plan vs. anytime. Running a portfolio
designed to produce optimal plans in anytime mode makes no sense, so I'm not
sure I see the point of making them support anytime mode -- any such use is
likely to be a user error that is likely to double the runtime. (First, find the
optimal plan, then run the planner again trying in vain to find a
better-than-optimal plan.)
So: the proposal makes sense in principle, but not yet sold on the details.
Also, is setting the maximum number of plans really a useful distinction, i.e.,
do we ever want a number other than 1 or unbounded here? Supporting an arbitrary
number here also requires changes in the search code for things like iterated
search. I'd be happier with an "--portfolio-anytime" or
"--portfolio-single-plan" option. Either way, it's a bit of a hack, and a
parameterized portfolio would be a cleaner option. But don't let the better be
the enemy of the good here.
|