Symmetry Reduction: Difference between revisions

No edit summary
No edit summary
Line 11: Line 11:
* nauty: This approach translates a B state into a graph and uses the nauty package in order to compute a canonical form of this graph. If two states have the same canonical form, they are considered equivalent and only one of them is explored. [http://www.stups.uni-duesseldorf.de/ProB/probpublications.php?id=229 More details can be found in this article].
* nauty: This approach translates a B state into a graph and uses the nauty package in order to compute a canonical form of this graph. If two states have the same canonical form, they are considered equivalent and only one of them is explored. [http://www.stups.uni-duesseldorf.de/ProB/probpublications.php?id=229 More details can be found in this article].
* hash: This approach computes a symbolic hash value for every state, having the important property that two symmetric states have the same hash value. Note that this is an "approximate" method, as two non-symmetric states may also be mapped to the same hash value. [http://www.stups.uni-duesseldorf.de/ProB/probpublications.php?id=212 More details can be found in this paper].
* hash: This approach computes a symbolic hash value for every state, having the important property that two symmetric states have the same hash value. Note that this is an "approximate" method, as two non-symmetric states may also be mapped to the same hash value. [http://www.stups.uni-duesseldorf.de/ProB/probpublications.php?id=212 More details can be found in this paper].
=References=
<references />

Revision as of 16:10, 18 January 2010

ProB can make use of symmetries induced by the use of deferred sets in B (and given sets in Z).

Warning: turning on symmetry reduction will also influence the way that animation works. In other words, when executing an operation, the animator may transfer you to an equivalent symmetric state (rather than to the one you may have expected).

In the Symmetry menu of the Preferences menu you can choose the following:

  • off: symmetry reduction is turned off.
  • flood: This performs permutation flooding, whereby all permutations of a newly added state are automatically added (and marked as already treated). This does not reduce the number of states of the state space, but it may still considerably reduce the number of transitions and the number of states which need to be checked (for invariant violations and for computing outgoing transitions). More details can be found in [1].
  • nauty: This approach translates a B state into a graph and uses the nauty package in order to compute a canonical form of this graph. If two states have the same canonical form, they are considered equivalent and only one of them is explored. More details can be found in this article.
  • hash: This approach computes a symbolic hash value for every state, having the important property that two symmetric states have the same hash value. Note that this is an "approximate" method, as two non-symmetric states may also be mapped to the same hash value. More details can be found in this paper.

References

  1. Michael Leuschel, Michael Butler, Corinna Spermann and Edd Turner: Symmetry Reduction for B by Permutation Flooding, Proceedings of the 7th International B Conference (B2007),2007,pp. 79-93,LNCS 4355,Springer, [1]