Version 1 introduced a new class "LabelGroup" as a wrapper for list<int> which
also stores the minimal cost of the included labels, as well as an id used for
indexing the vector of all transitions. The id used is the smallest label number
when creating a new label group for a (set of) labels. The id never changes.
In version 2, I replaced the id by a direct pointer to the transitions of the
group, which still live in a separate place, indexed the same way as before. I
now hash label groups not by their id anymore, but by the address of the group
object itself. This can change the order in which labels are added to groups in
the constructor of composites and this influences bisimulation in the
pracprinter domains (see also issue516). The results look good otherwise:
http://ai.cs.unibas.ch/_tmp_files/sieverss/2015-03-31-v2-v1-comp.html
|