Qter Documentation

Cycle Combination Solver

The Cycle Combination Finder of the Qter Architecture Solver finds the non-redundant cycle structures of each register in a Qter architecture. We are not done yet—for every cycle structure, we need to find an algorithm that, when applied to the solved state, yields a state with that cycle structure. That is, we need to solve for the register’s “add 1” operation. Once we have that, all other “add N”s can be derived by repeating the “add 1” operation times and then shortening the algorithm using an external Rubik’s Cube solver.

The Cycle Combination Solver adds two additional requirements to this task. First, it solves for the shortest, or the optimal algorithm that generates this cycle structure. This is technically not necessary, but considering that “add 1” is observationally the most executed instruction, it greatly reduces the overall number of moves needed to execute a Q program. Second, of all solutions of optimal length, it chooses the algorithm easiest to physically perform by hand, which we will discuss in a later section that follows.

In order to understand how to optimally solve for a cycle structure, we briefly turn our attention to an adjacent problem: optimally solving the Rubik’s Cube.