I have one general suggestion: I wouldn't call it "por" and
"PartialOrderReductionMethod" etc.
What the interface allows us is to prune successors, and possibly to reorder
them. (We haven't discussed the reordering part yet, but the reordering options
we have in one of our search algorithm could also very well be done here.)
Not all pruning methods are POR. For example, we could move the pruning based on
g bounds into a pruning method (which would have the advantage of being more
nicely composable), or we could do random pruning as in some search algorithms,
or we could perform dominance pruning, which is not partial-order reduction.
So I suggest to use a more general name like "PruningMethod" and directory name
"pruning" to reflect the more general purpose. (This name doesn't capture the
fact that this could also be used for reordering, but I don't have a good
suggestion for that.)
|