Kociemba Two-Phase Solver
Kociemba Two-Phase Solver
The Kociemba two-phase solver is a fast, complete Rubik’s Cube method based on decomposing the full cube group into a sequence of two searches. It is widely used as a practical baseline because it solves essentially any scramble extremely quickly, though without optimality guarantees.[1][2]
Core idea
The algorithm splits solving into two phases:
Phase 1: Reach a restricted subgroup
Phase 1 searches for a move sequence that transforms the cube into a restricted subset of states (a subgroup) that satisfies a set of structural constraints (commonly described via orientation and slice constraints). This dramatically reduces the effective complexity of the remaining problem.[1:1]
Phase 2: Solve within that subgroup
From the restricted subgroup, Phase 2 completes the cube using a reduced move set that preserves the Phase-1 constraints. This final step is typically fast because the remaining search space is much smaller.[1:2]
Properties (practical perspective)
- Complete: given sufficient search bounds and standard tables, it finds a solution for any valid cube state.[1:3][2:1]
- Very fast: typical runtimes are far below learned planning and far below optimal heuristic search on full scrambles.[2:2]
- Not optimal: solution lengths are usually longer than provably optimal solutions and can be longer than learned planners on some instances.[2:3]
Position in the solver landscape
Kociemba is best understood as a “structured, engineering-heavy” solver family:
- Optimal-search contrast: IDA* + Pattern Databases target provable shortest solutions but become computationally expensive at high scramble difficulty.[3]
- Learned-search contrast: DeepCube’s MCTS uses a learned value/policy model to guide search under budgets, often producing short (but not guaranteed optimal) solutions.[2:4]
References
Herbert Kociemba. “Two-phase algorithm details.” Technical description hosted at kociemba.org. ↩︎ ↩︎ ↩︎ ↩︎
Stephen McAleer, Forest Agostinelli, Alexander Shmakov, Pierre Baldi. “Solving the Rubik’s Cube Without Human Knowledge.” arXiv:1805.07470, 2018. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Richard E. Korf. “Finding Optimal Solutions to Rubik’s Cube Using Pattern Databases.” AAAI, 1997. ↩︎