We provide a new algorithm to determine stuttering equivalence with time
complexity O(mlogn), where n is the number of states and m is the
number of transitions of a Kripke structure. This algorithm can also be used to
determine branching bisimulation in O(m(log∣Act∣+logn)) time
where Act is the set of actions in a labelled transition system.
Theoretically, our algorithm substantially improves upon existing algorithms
which all have time complexity O(mn) at best. Moreover, it has better or
equal space complexity. Practical results confirm these findings showing that
our algorithm can outperform existing algorithms with orders of magnitude,
especially when the sizes of the Kripke structures are large. The importance of
our algorithm stretches far beyond stuttering equivalence and branching
bisimulation. The known O(mn) algorithms were already far more efficient
(both in space and time) than most other algorithms to determine behavioural
equivalences (including weak bisimulation) and therefore it was often used as
an essential preprocessing step. This new algorithm makes this use of
stuttering equivalence and branching bisimulation even more attractive.Comment: A shortened version of this technical report has been published in
the proceedings of TACAS 201