

The method that we will develop for solving the cube isn't the quickest or simplest one. In fact I will streamline it a bit for practical use at the end of the chapter. Our main emphasis however, will be using grouptheory concepts to devise processes that we together make generalpurpose cubesolving algorithm.
The main difficulty in solving the cube is that we are limited in the permutations of the cubelets that are readily available to us. Each turn of a face permutes 4 corner cubelets and 4 edge cubelets. This means that every time we put a cubelet where we want it to go we are also scrambling up at least 7 other cubelets. The ideal process would be a transpositionswapping two cubelets. We've learned in chapter 12 that no such process is possible on the cube.
Another problem is that it is difficult to put the final pieces into place without messing up the pieces that have already been restored. The closer you get to restoring the cube the more limited you are in processes that will help. Some results and ideas of group theory will be of most use in this final phase of restoration.
Our algorithm will proceed in 7 steps.
1. Placing and Orienting the UP Edge Cubelets
fu cubelet needs to be flipped.
In the figure above the fu edge cubelet is in place but not with proper orientation; it needs to be flipped. The process of flipping it will illustrate the method of restoring the UP edge cubelets. In the illustration the red centered face is FRONT and the blue centered face (almost restored here) is UP. The moves to flip the fu cubelet are F R^{1} D^{1}R F^{2}. Let's look at this process. The first three moves are designed to get the fu cubelet into the fd position with the red facelet on the FRONT face. Then F^{2} brings it up to the fu position with proper orientation.
After applying F R^{1} D^{1}R F^{2}
Each move has a reason here. F gets the fu cubelet away from the UP face. R^{1} brings it to the DOWN layer with u facelet point DOWN. The R move restores the ur facelet to its original position and finally the F^{2} move puts the fu cubelet in place with its proper orientation. In the process we have messud up the two Front Up corner cubelets and some of the other cubelets but we have not disturbed the positioning of any of the other UP edge cubelets.
The process for phase 1 is then: get the cubelet onto the bottom layer with its UP facelet pointing DOWN. Rotate the DOWN face until its nonUP facelet is in the correct face and then a double move (F^{2} here) brings it into position. Before the final double move be sure to correct any other UP edge cubelets that may have been disturbed during the process.
2. Placing and Orienting the UP Corner Cubelets
Again we will be using the bottom (DOWN) level of cubelets as a working space. The idea is to find the corner cubelet we want to place and then get it on the DOWN layer with the up facelet pointing to the side (not toward the DOWN face). We can then place it in its position with proper orientation in a simple couple of moves.
In the illustration all the UP cubelets are in their proper position and orientation. It remains to place the final corner cubelet which is currently in the fdr position. A rotation of F^{1} will bring the last cubelet into place but will mess up two alreadyplaced cubelets. The task can be done by the process DFD^{1}F^{1}. Note that there is a clear "rationale" for every move. F^{1} by itself won't work because it messes up previously placed cubelets. So we (D) move the cubelet to be placed out of the way, (F) bring the cubelet it will replace down to its former place, (D^{1}) replace the "wrong" cubelet with the right cubelet and finally (F^{1}) restore everything to the way it should be. With moves such as DFD^{1}F^{1} you should be able to restore any corner cubelet to its proper position and orientation. There might be a little preliminary work necessary to get the cubelet in question into position on the the bottom layer with it's up side pointing outward but this should be simple enough for you to figure out on your own.
A move such as DFD^{1}F^{1} is an example of a commutator. Commutators are very useful in solving the cube and similar puzzles. Notice that if a group is Abelian (has the commutative property) then a commutator aba^{1}b^{1} would be equal to abb^{1}a^{1} = aa^{1} = e. In an Abelian group a commutator is simply a fancy way of doing nothing. In a nonAbelian group a commutator does something but not usually a whole lot. For instance in the process DFD^{1}F^{1} the move F is sandwiched between a D and a D^{1} so anything not affected by the F will be not be disturbed. Similarly the move D^{1} is sandwiched between F and F^{1} with the similar undoings involved. This means that commutators often move few cubelets around leaving many others undisturbed. This is exactly the kind of processes you are looking for in solving the cube. You want to move remaining cubelets into place without disturbing previously placed cubelets.
In fact the best kind of process to have would be an exchange of cubelets. However we have learned that this is impossible. The secondbest kind of process to have at hand would be a process that moved only three cubeletsa threecycle. Fortunately this is possible on the cube. Soon we will prove the fundamental theorem for cubes that will help us find processes for the final, most difficult steps.
3 placing and orienting the middle layer cubelets
After you have gotten the UP face restored four middlelayer cubelets, fr, rb, bl, fl, are placed next. In the last chapter we got a hint of a way to restore them. The problem is to get one of the middlelayer edge cubelets into place without disturbing the UP face which has been painstakingly restored.
In our studies of subgroups of the cube we found that the process (F^{2}R^{2})^{3} has the effect of swapping two pairs of edge cubelets. The uf cubelets changes places with the df cubelet and the ur cubelet changes places with the dr cubelet. Variations of this move will swap other opposite pairs of edge cubelets on other faces. Since these processes affects only edge cubelets our task is to find a way to use this move to move the desired edge cubelet into place without disturbing the completed UP face or any other middlelayer cubelet.
Begin by noticing that (F^{2}D^{2})^{3} swaps fl with fr and swaps dl with dr. This has the advantage of swapping two middlelayer cubelets without distrubing the UP layer. If two of the middle layer cubelets were in need of being swapped on opposite sides of a face this would do the trick. However this process has the disadvantage of disturbing two middlelayer cubelets. We will overcome this problem by forming a conjugate of this process that will involve only one middlelevel edge cubelet and will still leave the UP face undisturbed.
Our strategy will be to find a process which moves the lf cubelet out of the way and replaces it with one of the edge cubelets on the DOWN face. In the process we also want no middle level or UP face edge cubelets placed into the "hot" fl, dl or dr positions. We also want the fr cubelet to remain in its place. So our requirements of this process are:
L^{1}D^{1}(F^{2}D^{2})^{3}DL
Try this on a solved cube and notice the effect. It is equivalent to the permutation (dl, fr) (df, db). This gives us a method for positioning (but not yet orienting) any of the middlelayer cubelets. If a middlelayer cubelet is on the DOWN face we rotate the entire cube until the desired cubelet's home position is in the fr position and then rotate the DOWN face until the cubelet itself is in the dl position. Performing the magic process will then swap the cubelet belonging in the (new) fr position with whatever cubelet is there and also swap two DOWN face cubelets. If the cubelet we want to position is not on the DOWN face then we simple rotate the cube until the desired cubelet is in the fr position, perform the process which sends it to the DOWN face. Then we begin anew to position it correctly.
This process doesn't guarantee that the cubelet will be in the correct orientation (flip) as well as in the correct location. There are two ways to solve this problem. The first is to ignore the problem and solve it with the edgeflipping algorithm that we will create later. The other way is to create a "mirrorimage" process from our process so that one of the two will always be able to orient the cubelet correctly.
Notice that in our process the down facelet of the dl cubelet becomes the front facelet of the fr cubelet. If we watch the process while standing next to a mirror (our side toward the mirror) the lookingglass cubist will be performing
RD(F^{2}D^{2})^{3}D^{1}R^{1}
which is equivalent to the permutation (dr, lf) (df, db). This process swaps the dr cubelet with the lf cubelet with the down facelet of the dr cubelet going to the left facelet of the lf cubelet. If one of these two processes doesn't orient the down facelet of the cubelet to be placed then the other one will.
We will finish our cube restoration algorithm in