3 CUBED Jordan Abbatiello Adam Corbett and Shanade
3 CUBED Jordan Abbatiello, Adam Corbett and Shanade Beharry.
BRIEF HISTORY • The Rubik's Cube was invented in 1974 by Hungarian sculptor and professor of architecture and design, Ernő Rubik. • It took him well over a month to solve the cube. “If you are curious, you’ll find the puzzles around you. If you are determined, you will solve them. ”-Ernő Rubik.
ABSTRACT Produce the set of face-turns for any scrambled cube, which returns the cube to the completed state with the shortest set size. In order to accomplish this goal, we will first be designing two human oriented algorithms; creating an original implementation of Thisthlethwaite’s algorithm, and analyzing Kociemba’s two-phase algorithm.
FORMAL PROBLEM • Group Theory – Group G = a set of elements that form another element • Along with an operation, in this case, it’s multiplication. • A group is any set of elements such as the faces on a Rubik’s cube: • Axiom 1 - Closure: • All group operations must be restricted to group elements. • If a & b in G, then a*b is in G. • Axiom 2 - Associative: • Priority of moves produce the same result regardless of where the priority resides. • If elements a, b, & c are in the group then (a*b) *c = a*(b*c) • Axiom 3 - Identity: • When applied to any element, the resulting element is itself. • An element in every group so that for the element a the statement a*e = e*a = a • Axiom 4 - Inverse: • Every element has an inverse. When brought together, the element produced is the identity. • For any element a, there is an element a^-1 so that a * a^-1 = e
FORMAL (CONT…) • Each rotation of a face and the cube is considered a permutation of the position and orientation of the sub cubes. • Together the rotations create a generating set which then creates a group by composition of the rotations.
BEGINNER • Developed an algorithm based on the formatting of the beginners method. • • White cross White corners & first layer Second layer Top cross Top edges Position of corners Orientation of corners • Uses a two-tier integer array where the first tier represents the color and the second represents the position of that face. • Series of if-else statements that run face checks on each of the target cubies • Proceeds to instruct the control class to manipulate the current cube.
BEGINNER • RAM • 45 MB • Solve Length • Max: 274 • Average: 183 • Min: 103 • Run. Time • Solve: ~1 ms
THISTLETHWAITE • Morwen B. Thistlethwaite • Used group theory to solve a different set of cubies per phase • G 0 = <L, R, F, B, U, D> • Fixed edge orientation • G 1 = <L, R, F, B, U 2, D 2> • Orientation of corners, middle layer edges • G 2 = <L, R, F 2, B 2, U 2, D 2> • Edges to slice, corners to tetrads, parity fix • G 3 =<L 2, R 2, F 2, B 2, U 2, D 2> • Final corner and edge position • G 4 =<1> Solved Rubik’s cube.
THISTLETHWAITE • RAM • 1. 5 GB • Solve Length • Max: 45 • Average: 35 • Run. Time • Table Generaration: ~30 s • Solve: ~3 ms
KOCIEMBA • Improved version of Thistlethwaite’s algorithm • Combines several phases • Uses IDA* to search the much larger state space • Also generates pruning and move tables during solves • Pruning heuristic based on perceived distance from solve
KOCIEMBA • RAM • 150 MB • Solve Length • Max: 20 • Average: 18 -19 • Run. Time • First solve: ~1750 • Subsequent Solve: ~5 -200 ms
CONCLUSION • Kociemba is by far the best in terms of solution quality. • Considering we were aiming to find the most optimal solution • Our algorithm, while fast, did not come close to surpassing the current best • (It’s called God’s algorithm for a reason)
QUESTIONS • Which algorithm is best? • Kociemba • What is the problem type for a Rubik’s cube? • Group • What search method does Kociemba use? • IDA* • How many phases in Thistlethwaite’s algorithm? • 4 • What are the four axioms that must be satisfied in order to qualify as a group theory probem? • Closure, Associative, Identity, Inverse
FUTURE WORKS • Korf’s Algorithm • Allow for user input and a printed solution in the Beginner’s method. • Create an U, D, F, B, L, R representation for the cube. • Create a cube check method based on this representation. • Continue to implement Thisthlethwaite’s algorithm for a working representation.
- Slides: 14