Here we should try to figure out a correct complete goup theoretical treatment for Rubik's Cube variants, for example how many topologically different graphs can be created by atomic moves (up to symmetry). In general restriction to subgroups of the full group give the possible games.
In general it's about cutting, moving and regluing the graph along some edges line(s). This can in the simplest case be around a face and is the rotation of this face. Or one can leave a number of lines to the left or right while walking. The Rubik's move has got a constant number 1 for example, and is build out of three subsequent such moves, so the end state reaches the same plastique rendering as in the start. But of course thereby some interesting things are left out. See the section called “Reticulated 3x3 Cube Variants” we can (by allowing more general moves) construct for example situations where faces might be connected by more than one neighbouring edge. We must specify edge lines and can't focus on sets of [2 - faces/2] many connected faces areas to be rotated because it's crucial to be able to tell what a move on one topology should mean on other graphs. The permutation group then works on faces*topologies*isomorphisms labels (instead of taking the faces as labels one can use the vertices (that's simply using the dual), another thing is to use the (directed or undirected) edges as labels).
It's important to realize that the resulting groups are actually finite. Let's take a torus and morph around by applying torsion. Thereby we store some windings in the graph, and of course this can't go to infinity. There is a point where we reach a graph isomorph to s.th. resulting from reverse actions (a physical model would likely break during the experiment).
For a start let's restrict the discussion to special cases. Let's restrict our choosing of right-hand edge lines to such determined by 'vector' group paths. Those paths shouldn't have self-intersection and surround zero or one face (otherwise we need some additional inner countermovement, but we could of course have the inner part be moved as well) for the moment, but of course in the general case we simply allow all edge lines arising in the process of constructing 'vector' group trails. Moreover let's restrict on such subgroups (that is to say we only use multiples of the atomic moves) where the graph is turned into itself (without intermediate other states), so the labels are just the faces. And to be even more specific, let's focus on the groups generated by pairs of the form twist/untwist.
It's already known that (yes, you probably already expected this goal) on the rubicon (icosahedron accompanied by Rubik - like moves on vertices) thereby we get the sporadic group M12 (Mathieu group) (see [Con99] and the cross groups in [Joy96]), so we decided to try this out for our graphs (ExportData (-rf and) -rg options). As far as we are aware, most results are not new (so don't make a haste to read them too quickly). Thereby the key "a" got various constant distIEs as an investigative measure, and for now the column of results stemming from edge labels is empty, because we used face labels.
Table 11.6. Cross Groups on Polyhedra
| graph | distIE | edge labels | face labels |
|---|---|---|---|
| tetrahedron | 1 | Z(2) × Z(2) | |
| cube | 1 | A(5) | |
| oct_stl_I | 1 | Z(2) × A(16) | |
| oct_stl_II | 1 | A(48) | |
| dodecahedron | 1 | A(12) | |
| dodecahedron | 2 | M(12) | |
| icosahedron | 1 | A(20) | |
| ico_stl_I | 1 | Z(2) × A(60) | |
| ico_stl_II | 2 | A(60) | |
| rubik_cube_3_0 | 2 | A(54) | |
| rubik_cube_3_1 | 2 | A(54) | |
| dode_tor_6 | 2 | Z(2) × A(58) | |
| hexa_tor | 1 | Z(2) × A(72) |
Of course this is only the start. The full groups should be determined. Besides subgroups can be investigated using GAP™ (following the example session about the Rubik's magic cube).
Now let's improve the discussion from above about the full group. Ok, the labels might be faces * (sum (over all non-isomorphic graphs) the number of isomorphisms) for some graphs may have more isomorphisms than others. Besides we decided to use not so many labels and identify graphs which can be transformed into another by an isomorphism (so we have less labels but more complicated permutations). Therefore we need an graph isomorphism testing (see [Nauty] and Chapter 19, Complexity Theory for complexity considerations). In analogy to knot invariants there are graph invariants (such as the node count).
Bearing in mind the practical advantages of probabilistic methods we nevertheless didn't hack together our own primitive algorithm just for the fun of it.
The trick is how to specify what is to be rotated. Instead of starting with connected areas, we use 'vector' group paths as above. We keep track of the coordinate system's origin (loc + orientation) and iterate until we have a period on all topologies. Crossing is allowed. In case of a composed generator (word "ab" instead of only "a") there is a chance that the same edge is passed to right hand twice (in doing "a" and later in doing "b", so it's no period at this point, only later), this is no problem when we take a label every full "ab" step. We do an edge cut/glue to the right and to the left counterwards, thereby the faces are permuted along the path, and areas can be moved in a telescope manner made out of multiple such moves. And then we simply can check if (having kept track of how to map the original and the actual origin) this mapping gives an isomorphism (all periods must be the same), and then we have a way how to identify labels. So it's only faces*topologies labels, and there is no ambuigity about the isomorphism being intertwined with automorphism stuff.
[Otherwise we would have to test for isomorphic graphs and (in case there is some) delivering an isomorphism for identifying labels (maps such as rotations are allowed, but no reflections, the orientation must be preserved). In case multiple isomorphism exist our resulting full group mustn't depend on which iso was used in labels identifying, so probably the solution is to build a quotient with the (inner?) automorphism group (… well s.th. like that is what we have in mind) to give a standardized map.]
How can we move around a face coloring globally? For example do a morphing move to one half of the graph, then walk into that half and turn around your eyes, then do a similar move (into the other direction though) with the other half, and finally walk back to your origin. When you have used isomorphic states, then then you have permuted two isomorphic colorings.
Well, hope this words made the idea clear, now here are the pictures: …
One final idea: has the morphing group to do with this the section called “ McKay Correspondence ” thing? Is the Weyl group E(8) the full morphing group of the icosahedron (and therefore should contain M(12) as a subgroup), or perhaps it's the subgroup dealing with the graphs isomorph to the original (but using twisted connections due to multipliers)? We will have to dump the cover of the morphing and can embed in GL, then look for the algebra …
And take the Schur cover of the rot/flip groups. There are rules for how rot, flip and dual_rot powers are commensurable in terms of torsion. Well, now take the bigger picture, do combine faces and rotate such areas. For example a rubik_cube_2 has rotations of 4 faces mimicking the single face rotation of a standard cube. Same construction for flipping along lines and dual_rots around distant vertices. Check what rules are automatically fulfilled!