0

While thinking about the generation of a lot of similar yet distinct pictures from a simple set of primitives I ended up trying to find an efficient algorithm to generate the elements of a symmetry group generated from a finite set of operations.

For example, in 2D, given the two operations $F = \text{"reflection through an axis A"}$ and $R = \text{"clockwise 90° rotation"}$, I can generate the symmetry group of the square (I think it is called $D_4$).

In my head I could come to the conclusion that this group has exactly 8 elements, written in terms of F and R, (I being the identity): $\{I, R, R^2, R^3, AR, A, RA, R^2A\}$.

However, I cannot find either a formal proof that there are no more elements, or an algorithm that would produce those elements without trial and error.

Is there such an algorithm that could be applicable to other set of generator (say 60° rotation and one reflection) ?

PS: When I say efficient algorithm I really mean deterministic, provably terminating algorithm, the complexity is probably terrible anyway if such an algorithm exists PPS: I think there is a way to formulate this in term of permutation, but I don't have the required background and cannot understand how it works, let alone the answer to a similar question in an isomorphic space.

Shaun
  • 47,747
WIP
  • 103
  • Yes, the best way of formulating this is in terms of permutations of finite sets. Then you can use the Schreier-Sims algorithm, which has all of the nice features you wanted, although it is really suited for computers rather than for hand calcualtions. – Derek Holt Nov 26 '20 at 18:44
  • @DerekHolt could you redact an answer with a hint on how to reformulate my problem in terms of permutations and how to apply the Schreier-Sims algorithm. (What I want is a programmable algorithm, I did it by hand in this case because I couldn't do better) – WIP Nov 26 '20 at 19:46
  • In your example, we could consider $F$ and $R$ as permutations of the vertices of the square on which they act. Numbering these vertices $1,2,3,4$, we could, for example, choose $R = (1,2,3,4)$ and $F = (1,2)(3,4)$. I answered a similar question on the Schreier-Sims algorithm here. – Derek Holt Nov 26 '20 at 20:32

1 Answers1

1

If you're in the group $D_k$ for some $k \geq 3$ (with $r$ as the rotation and $t$ as the reflection), you always have the identity $rt = tr^{k-1}$ hold, so you only need to consider elements of the form $r^x$ or $tr^x$, which adds up to $2k$ elements total that you can simply write down one by one.

maritsm
  • 618