Archives

Optimal solutions to the Eliac puzzle

The Eliac is a complex deep-cut 2-gen circle puzzle:



The left circle rotates in increments of 90 degrees and the right circle rotates only by 180 degrees. There is a simulator of the puzzle here.

Using ksolve++ I made an optimal solver modified it slightly to turn it into a coset solver. The subgroup I used for the coset solver is the subgroup of positions where the 18 small triangles, 10 diamonds, and 2 squares are solved. There are 1600300800 arrangements of those 30 pieces and each coset has 3024000 solvable positions. Unfortunately since the puzzle is 2-gen, there isn't a good way to select a subgroup generated by a subset of the generators of the whole puzzle, which (as far as I can tell) is what is required in order to make the "pre-pass" trick work for sub-optimally solving cosets very quickly. So each coset needs to be solved optimally using a pure DFS, which takes quite a long time (about 1.5 hours on my laptop). Notice that the puzzle has a horizontal reflection symmetry so we only need to solve one coset in each symmetry class.