| Hello, I would like to iterate through elements of a conjugacy classes of the symmetric group Sn. In other words, I'm looking for an algorithm which given an integer partition p = [p1,...,pk] of n provides an iterator over permutations with cycle decomposition whose length of cycles is exactly given by p. There is one way which uses GAP, but as I have to iterate through conjugacy classes of S(12) and it is infinitely slow inside Sage. On the other hand, there is a useful efficient way to iterate through all permutations of Sn : there exists a "Gray code" for which two consecutive permutations differ by a swap (ie exchange of images between two elements). Such a method is implemented in cython in sage.combinat.permutation_cython (thanks Tom Boothby!).
Thanks, Vincent |
Asked: Dec 07 '10
Seen: 138 times
Last updated: Jul 21 '12
powered by ASKBOT version 0.7.22
Copyright Sage, 2010. Some rights reserved under creative commons license.
I don't know of any such algorithm that is included in Sage. It sounds like you may know enough to implement something like this. The problem with iterating over conjugacy classes in S_{12} is that GAP must produce the full list of classes before returning control to Sage. This is what takes forever. As far as I know there isn't a "generator" type implementation for this in GAP or Sage.
benjaminfjones (Jul 25 '12)