Starting from §10's Thistlethwaite subgroup chain, through Kociemba's two-phase, Korf's optimal IDA*, and Rokicki's coset enumeration — each solver translates a different group-theoretic idea into running code. Group theory rendered as engineering, in one of its cleanest forms.
| Algorithm | Type | avg HTM | max HTM | Tables | Runtime |
|---|---|---|---|---|---|
Thistlethwaite (1981) first finite-memory suboptimal | 4-stage subgroup chain | ~52 | ~52 | < 100 KB | milliseconds |
Kociemba (1992) modern fast-suboptimal standard | Two-phase | ~21 | ~30 | ~50 MB | ms-seconds |
Korf IDA* (1997) first truly optimal solver | Optimal IDA* + pattern DBs | 17.34 | 20 | ~80 MB | sec-min |
Rokicki cosets (2010) used to prove God's # = 20 | symmetry-reduced enumeration | 17.7 | 20 | ~3 GB cosets | CPU-years |
Core idea: decompose the solve into 4 independent subproblems, each a bounded BFS/IDA* on the quotient . The quotients are small (≤ 10⁶), so each stage has a complete pruning table.
Kociemba collapsed 4 stages into 2: Phase 1 moves the state into , Phase 2 solves within G₂. Both phases run IDA* with pruning tables.
Two-phase is not optimal (overshoots a few moves) but runs in milliseconds at ~21 HTM avg.; nearly every production solver is a variant (cube20 uses Reid's tweaks; kociemba.org uses Phase-2 lookup with N=18).
In 1997 Richard Korf delivered the first optimal Rubik's Cube solver via IDA* (Iterative Deepening A*) plus an ~80 MB pattern database. Key idea: precompute exact distances on chosen subsets (8 corners, or 6 edges) and use h(s) = max of subset distances. The h is admissible (never overestimates), so IDA* yields the optimum.
Tomas Rokicki et al. (2010) used an algorithm that does not solve cubes: partition G into cosets G/H (H = Kociemba's G₂), and for each coset prove "solvable in ≤ 20 moves." Key ingredients:
Let g ∈ G with . Project g via the homomorphism onto subset i; then .
Since π_i is a homomorphism, a k-step word for g pushes forward to a k-step word for π_i(g). So , and the max of admissible heuristics is admissible. ∎
Key point: each in Korf's pattern database is the exact BFS distance in subset i — this is what makes admissibility hold. A loose heuristic (e.g. "mismatch count") gives no optimality guarantee.
| Algorithm | Optimal? | Time | Space | Typical len |
|---|---|---|---|---|
| Naive BFS | yes | infeasible | ||
| Korf IDA* (1997) | yes | , b ≈ 13.34, d ≤ 20 | ~80 MB | opt. 18–20 HTM |
| Kociemba two-phase (1992) | no (suboptimal) | ~ms | ~100 MB | ~21 HTM |
| Thistlethwaite (1981) | no | ~ms | ~10 MB | ~50 HTM |
| Rokicki 2010 | verifier, not solver | 35 CPU-yr | ~2 GB | no alg output |
| DeepCubeA (2019) | no | ~s | ~GB | ~21 HTM |
In 2019 a UC Irvine team (McAleer, Agostinelli, Shmakov, Baldi) published DeepCubeA in Nature Machine Intelligence: a neural network approximates the cost-to-go function h(s), replacing Korf's pattern database. The net is trained "autodidactically" on scrambles solved by reverse BFS, then combined with A* search.