Permutations and centralizers in Mathematica
I had a fleeting thought about how little I use group theory when I realize I used it just this week.
A couple days ago I needed to know which permutations of 4 elements commute with reversal. Ifr takes a sequence and reverses it, I need to find all permutations p such that p r = r p.
In group theory jargon, the group of all permutations of 4 elements is the symmetric group S4. The subgroup of elements that commute with r is the centralizer of r. So my task was to find the centralizer of r in S4. How do I pose this task to Mathematica?
Mathematica represents permutations as disjoint cycles. The permutation r is represented as
Cycles[{{4, 1}, {2, 3}}]
because swapping the first and last elements, then swapping the middle two elements, reverses a list of four elements.
To find the centralizer of r I asked Mathematica
GroupCentralizer[SymmetricGroup[4], Cycles[{{4, 1}, {2, 3}}]]
This returns
PermutationGroup[{Cycles[{{1, 4}}], Cycles[{{2, 3}}], Cycles[{{1, 2}, {3, 4}}]}]
This does list the permutations that commute with r but rather the generators of the group of such permutations. If we ask for the elements of the group above with
GroupElements[%]
this returns
{Cycles[{}], Cycles[{{2, 3}}], Cycles[{{1, 2}, {3, 4}}], Cycles[{{1, 2, 4, 3}}], Cycles[{{1, 3, 4, 2}}], Cycles[{{1, 3}, {2, 4}}], Cycles[{{1, 4}}], Cycles[{{1, 4}, {2, 3}}]}
I use basic group theory and other algebra all the time, but I don't think of it that way. In this example, I had a question about permutations, and it only occurred to me later that I could phrase my question in the vocabulary of group theory. I use ideas from algebra more often than I use the vocabulary of algebra.
Related postsThe post Permutations and centralizers in Mathematica first appeared on John D. Cook.