So, I realize this isn't a very math-oriented question, but I thought it fit better here than anywhere else. Anyway, I was simply wondering how people come up with the many Rubik's Cube algorithms, assuming there actually is a method to the apparent madness..
Group Theory – Creating a Rubik’s Cube Algorithm
algorithmsgroup-theoryrubiks-cube
Related Solutions
I'm workkng from the description on Jaap's puzzle page.
First, fix an orientation of the cube. I'm going to assume White is on top, Yellow on bottom, and Red in front.
Phase 1 is to get all the edge pieces "GOOD". Each edge piece is either GOOD or BAD, depending on how it is flipped around. A GOOD edge piece can be restored to its home location and rotation without twisting the top or bottom layers of the cube. Performing a quarter turn of the top or bottom layer flips all the edge cubies on it from GOOD to BAD or vice versa. You know you're done with phase 1 when all the edge cubies are GOOD. This can be done in a worst case of 7 moves.
Phase 2 involves getting all of the corners in a similar "GOOD" orientation, and placing the edge cubies { White, Yellow } x { Red, Orange } into their slice, i.e. not touching the Blue or Green sides. Every corner piece has a Blue or Green square on it. A corner piece is GOOD when its Blue or Green square is on either of the Blue or Green faces, i.e. having a Blue square on the Green face is GOOD. No quarter-turn U or D moves will be necessary (but U^2 or D^2 may be), and this can be accomplished in 10 or fewer moves.
The end goal of phase 3 is to get every square on all sides of the cube either correct or the opposite color. All squares on the Red side should be Red or Orange, all squares on the Blue side should be Blue or Green, etc. This can be done using only F, B, F^2, B^2, L^2, R^2, U^2, and D^2 moves, and can be done in 13 or fewer moves.
The fourth phase is to get the cube totally solved. This can be done with only U^2, D^2, L^2, R^2, F^2, and B^2 moves, with a maximum of 15 of them.
Each of these phases can be treated as a simple depth first search problem. However, you can use color substitutions and pregenerated lookup tables to speed up individual solutions.
Take phase 3 for instance. Virtually replace all the Orange stickers with Red, all the Yellow stickers with White, and all the Green stickers with Blue. Now the goal of this phase changes to solving this color-reduced cube. When you find a series of moves that solves it, go back to the original cube at the end of phase 2 with its full coloration and replay those moves onto it.
Wikipedia's article on the Rubik's cube group says that the largest order of any element in the group is 1260. For instance, $RU^2D'BD'$ is one such move.
Best Answer
I assume you are referring to human methods and not using Rubik's cube solvers such as Cube Explorer to create algorithms for you.
In addition, I assume that you are wondering about how to create a set of algorithms which collectively solve a certain phase of a step-by-step process. Maybe you want to find an algorithm set which solves the last 3 corners? An algorithm which flips the last 4 edges?
First off, if you want to create an algorithm which affects a certain amount of pieces on a cube in a certain fashion (or at least a definable portion of a cube), it's only practical to be able to experiment with a solved cube. That is, use some computer animated Rubik's cube for which you can click the reset (solve) button to start off with a solved cube again whenever you try to do some moves but accidentally scramble the cube.
After a while of experimenting, if you write down short sequences you find which affect a few pieces at a time and learn about commutators and conjugates, then eventually you will have a small "library" of sequences which you use to build longer and more complicated algorithms from than you ever imagined.
An interesting technique I taught myself is that you can literally cyclically shift the moves of one algorithm to create another algorithm. For example, maybe you know of the Niklas commutator, R U' L' U R' U' L U. If we shift (conjugate it with the inverse of the first move) this algorithm once, we get an alternate 3 corner cycle algorithm U' L' U R' U' L U R.
In addition, we can invert turns in some existing algorithms to get other useful algorithms. Using the Niklas again, how about we invert all U face turns to get R U L' U' R' U L U'. How about convert some turns to half turns? R U L2 U' R' U L2 U'
This leads me into another strategy. I recall many times when I studied existing algorithms to see (or guess) how they work, and in that process of struggling, I perhaps not only understood how an existing algorithm worked, I created a new one based off of the "idea" of my interpretation of how that algorithm worked. In addition, some existing algorithms can be broken into several understandable steps, and so perhaps you can use a portion of an existing algorithm to create a new algorithm.
In addition, a simple technique (although algorithms found this way will be quite lengthy) is to repeat a short random sequence you find to create a base algorithm (instead of using commutators). For example, if you have the algorithm R U R' U' R (which appears to be random moves), you can repeat it three times to create an algorithm which swaps two edges: (R U R' U' R)3. It of course also cycles 4 corners, but maybe we can use it to do something we are familiar with. Let's give it a shot!
If we:
= B' U' R2 U R' U' R2 U R' U' R2 U R' B, then we have an algorithm which can be used to place an edge in the middle layer (where we assume we have solved the bottom layer and have not solved the top layer), for example.
All in all, it really depends what you want to accomplish with the algorithms you find for anyone to more accurately describe to you the methods humans use to do what you want to do in particular, as there are literally an unlimited number of algorithms you can find, and there are many sub-step methods (one of them being the beginner's layer by layer 3x3x3 solving method), some which are speedsolving methods, others are fewest move methods, others blind-solving methods, and so forth.
Personally, I have created hundreds of very short and complicated 4x4x4 parity algorithms from 2009-2013 which I eventually put on this page, and thus I probably do not look at parity algorithms the way anyone else does. The way I created so many algorithms is because when I found one algorithm, I remembered how I found it--the different pieces which make it up--and I later reused either those moves or simply the concept to construct a new parity algorithm. That is, the human mind has the memory capacity to be able to relate two unrelated algorithms (which can affect a cube differently) and form a third algorithm which you can think of as a "hybrid" of the two ideas from both algorithms. In addition, I started a thread about the methods I created and used to find several parity algorithms, if you're also interested in the 4x4x4.
I could continue on and on, but hopefully this post has given you a small idea of how humans can find algorithms without using solvers. However programs can be used to find all possible short sequences to do a specific task for you, for example, and you can then experiment with those short sequences and build algorithms from them: no one ever ruled out computer and human interaction.