Optimal solutions for Rubik's Cube