I changed the interfaces of ShrinkStrategy and FactoredTransitionSystem as
discussed:
- ShrinkStrategy::shrink is now called compute_equivalence_relation and expects
a TransitionSystem and its Distances rather than an FTS
- FactoredTransitionSystem now has three public methods for shrinking, merging,
and applying a label reduction, passing the shrink strategy, the indices of the
factors to be merged, and the label reduction strategy respectively.
Further changes include making the shrink strategy classes use more modern C++
(use return values instead of non-const reference arguments). I had to rearrange
a few methods of FTS which makes the diff a bit more involved at a few places.
For LabelReduction, the interaction with FTS is not solved satisfactorily, I
think, because of the tight coupling of the iterative computation of label
reductions and the required intermediate application of the label mappings to
the FTS. I left a TODO in the code.
pull request: https://bitbucket.org/SilvanS/fd-dev/pull-requests/26/issue722/diff
|