If you’ve ever played with a Rubik’s cube, you may have experienced frustration or excitement while trying to solve it. I know I have. You may not know that the Rubik’s cube forms a group–that is, a set with a binary operation (like addition or multiplication) that is associative and has inverses and an identity. The set of integers {…-2, -1, 0, 1, 2, …} is a group under addition because parenthesis don’t matter when you add, you can add -n to n to get zero, and of course the identity is zero. Add zero and nothing happens.
Hooray, you know some abstract algebra! Now for some more fun stuff. It turns out that the set of every single move you can make on a Rubik’s cube is a group. By looking at this group, a group of researchers (including a mathematician) figured out that any cube configuration can be solved in 20 moves or fewer. How’d they do this? Abstract algebra. Specifically, cosets. Not to be confused with closets, like Goodsearch did.
So what’s a coset, you ask? Before I tell you that, you need to know what a subgroup is. Let’s say G is a group. It can be any group. A set of elements H that are all in G is a subgroup if it’s a group under the same operations as G. Now for cosets. We’re going to look at some element g in G and the subgroup H. Then a left coset is gH = {gh : h an element of H }. That’s a set. We just take that element g and all the elements of the subgroup H and apply the operation. It may be a group. It might not be. Right cosets are defined similarly. Just switch the order of g, H, and h.
That’s great, but why do we care about cosets? Solving every single Rubik’s cube is a huge problem, so they made their work easier by choosing a subgroup and working with the cosets. Instead of solving 43,252,003,274,489,856,000 Rubik’s cubes, they solved 2,217,093,120. They got that number down to 55,882,296 thanks to symmetry. Cosets: difficult at first, but they make your life a lot easier.
Now that’s math in action. Thanks, Dr. Koch! I know my entire class cursed the existence of cosets when we learned them (and they were hard), but now the world knows they’re useful. I promise I’ll stop cursing modules when I understand them.