When my daughter got into rubik's cube with her friends, I thought it would be fun to use it as a sample to teach her about applying a simple breadth-first solver to find the shortest path to a solution. Embarrasingly, I neglected to do the math on how many possible states there were before we started. We coded up the solver in just a few minutes, but quickly discovered that a typical solution would take longer than either of our lifetimes...Oops. She learned some coding that day - not the lesson I intended, but probably a more important one!
One of the coauthors of the paper is also a serious web developer: <a href="https://github.com/edemaine/coauthor" rel="nofollow">https://github.com/edemaine/coauthor</a>
Interesting. I wonder, if you can solve 5x5x5 cube, then you can solve them all. How good an approximation is using the optimal methods for solving 5x5x5 to solve the NxNxN case?