The method presented here divides the cube into layers and you can solve each layer applying a given algorithm not messing up the pieces already in place. You can find a separate page for each one of the seven stages if the description on this page needs further explanation and examples.
Watch the cube being solved layer-by-layer with this method:
It fixes the white edges, corners then flips the cube to solve the second layer and finally completes the yellow face.
Press the Play button to start the animation
If you get stuck or you don't understand something, the online Rubik's Cube solver program will help you quickly fix your puzzle. All you have to do is input your scramble and the program will calculate the steps leading to the solution.
Until this point the procedure was pretty straight forward but from now on we have to use algorithms. We can forget the completed white face so let's turn the cube upside down to focus on the unsolved side.
After making the yellow cross on the top of the cube you have to put the yellow edge pieces on their final places to match the colors of the side center pieces. Switch the front and left yellow edges with the following algorithm:
Turn the top layer only to move another unsolved yellow piece to the front-right-top corner of the cube and do the same R' D' R D again until this specific piece is ok. Be careful not to move the two bottom layers between the algorithms and never rotate the whole cube!
Possible Problem:
The corner you are looking for is in the top layer, but in the wrong position or turned the wrong way around. Turn the cube so that the corner is in the front right top corner then move the corner to the bottom layer by following the following steps.
STEP 5 - COMPLETE THE THIRD LAYER CORNERS
(1) First we will put the corners in the correct position (A).
You will now have either 0, 1 or ALL the corners pieces will be in their correct positions, either the right way up or reversed.
If one corner piece is in the correct corner turn the cube to that this correct corner is in the front top right position. The piece is in the correct position, BUT may not be turned the correct way around.
At speedcube we know you love your speed cubes, and that you want them delivered fast - that's why 99.9% of our customers rate us a 5 star shopping experience. Please do try our fantastic service, or come visit us at our store - we are here to help.
My solution is to generate a minimal perfect hash. This involves keeping ALL of the cubes in memory until I have discovered the entire pattern database then generating a minimal perfect hash based off of that. The MPH takes a couple hours to run depending on the pattern database size, but I only need to do it once since I save it to disk. In the end, I can throw away the cubes themselves storing only the MPH. That way I can take a randomized rubik's cube, apply the pattern, then look up the array index in the MPH to get an estimated solution length.
The corners only pattern database for instance contains all rubik's cubes that have had their edge stickers taken off. There are exactly 88,179,840 cubes in this set. Any corner cubie on a rubiks cube can be in one of 24 different states. The state of the 8th corner cubie can be calculated based on the other 7 so cubes in the corners only pattern database each have 7 values between 0 and 23
Let's start with the white face. Try to form a plus sign on the top of the cube, matching the colors of the side stickers to the colors of the lateral centers. This step shouldn't be too hard, try to do this without reading the examples below.
Turn your cube upside down because we don't need to work with the white face anymore. We can insert an edge piece from the top-front position to the middle layer using a trick. Do the left or right algorithm depending on which side you have to insert the piece:
1. Hold the cube in your hand having an unsolved yellow corner in the highlighted top-right-front position.
2. Repeat the algorithm until this piece is solved.
3. Turn the top layer to bring another unsolved piece in the highlighted position.
4. Repeat R' D' R D until that one is also solved.
5. Do 3 and 4 for any other unsolved yellow corner.
But I have the feeling that this ratio doesn't necessarily correlate with the actual success level (so you're not necessarily closer to the full solution with a relatively high level of correct cell positions). Is there a more elegant (and calculable) way to measure this?
If you could measure the distance from any state to the solved state, you'd have a trivial solution algorithm: simply make any move that reduces the distance! Therefore, a distance measure cannot be simpler than a cube-solving algorithm.
You can represent position of a cell by 3D vector(=array) of 3 values in range that is from -1 left/bottom, to 0 for center to right/top for +1. For example the [1,1,0] is for upper-right cell of front face. Center of cube is the origin. Note: face center cells are fixed so the position is orientation invariant as long as you always orient face centers the same way.
the solution level estimate is simply sum of Manhattan distance to correct position for each cell. While this is likely to be big improvement, it still does not take in account that the cube wraps around.If I am not mistaken the Manhattan distance was used as heuristic for IDA*, one of the first optimal solvers (in terms of least turns).
As you might noticed, the actual distance to solution is corresponding to number (quarter)turns rather than physical distance on the cube. Instead, we should perform turns themselves - 3D rotation of the cell position vectors around axes which would lead to matrix multiplication...
...However as it turns out our case can be greatly simplified. Thanks to choosing instead of we can use the well known swap & negate "trick", a way calculate perpendicular vectors. Fixing one element of vector, swapping the other two and negating one(which one controls the direction) of those will perform the quarter turn on face perpendicular to the fixed element. The procedure could look like this.
For a overestimating approach, you could implement a more or less simple cube solving algorithm and count how many moves it needs from a given position. Then run it with different starting orientations of the cube, and pick the minimum among those counts.
Measuring the number of correctly positioned "small cubes", and also the number of correctly oriented ones among can give you at least a rough measure about the "solution level". A high value of correctness will tell you that there is probably a solver algorithm which needs "not too many" turns any more. Any standard solving algorithm I have seen in the past increases the number of correctly placed "small cubes". If there are two or three "unrelated" cubes swapped, it is not too hard to construct a short move sequence to swap only those two or three cubes.
Unfortunately, the opposite is not true: a low level of correctness does not tell you that there cannot be an algorithm which may solve the cube in just a few turns. So all these suggestions above are just imperfect heuristics - if these helps you or not depends on your specific use case, which you actually did not mention in your question.
I've been looking at this same problem. One approach I am considering is to actually use the Two Phase Solver written by Herbert Kociemba here: -TwophaseSolver to solve the cube and determine the number of steps away from the solution you are.
Enfin ! D'ici quelques minutes, vous allez savoir comment faire un Rubik's cube 3x3 ! Si si ... D'autres avant vous ont souri, d'autres avant vous ont dit que c'était un casse-tête trop compliqué, que ce genre de puzzles ne sont fait que pour les génies des maths...
Et si c'était pourtant simple ? Le tutoriel présenté ici a pour but d'être facile à retenir : il ne nécessite que peu d'étapes et de formules à retenir par coeur, et privilégie l'apprentissage par le développement de l'intuition et des exemples sur la base de séquences -les formules du Rubik's cube, appelées parfois algorithmes dans le jargon des cubeurs- en vidéo !
Le tutoriel décrit ici est une méthode "universelle" dans le sens où il n'y a pas besoin d'être un génie pour la comprendre, elle nécessite simplement un peu de patience et d'entraînement. Elle est destinée à vous qui n'avez jamais résolu un rubik's cube, ou qui saviez le faire dans vos tendres années, mais qui bloquez maintenant pour retrouver les réflexes d'alors.
Le principe est de diviser le Rubik's cube en plusieurs étapes intuitives ou pouvant être résolues par quelques séquences de mouvement que vous apprendrez par coeur, les fameux "algorithmes". Imaginez-vous face à un puzzle conventionnel de 1000 pièces : si vous plongez la main dans le tas et essayez de trouver l'emplacement des pièces que vous aurez piochées au hasard, vous n'y arriverez pas, c'est certain ! Si par contre vous cherchez les coins, puis les bords, puis les pièces d'une même couleur ... et finissez par le grand pavé de ciel bleu, vous aurez une approche systématique qui vous permettra d'avancer progressivement vers la solution. C'est cette technique progressive et la division en étapes faciles qui fait la force de la méthode simple du Rubik's cube !
Cette méthode n'est pas la plus rapide, car elle est avant tout destinée à apprendre comment résoudre le Rubik's cube pour la première fois. Des quantités de solutions plus rapides sont décrites en détails sur francocube, et le tuto le plus populaire est certainement celui de la méthode intermédiaire de Deadalnix. Si vous voulez battre le record du monde, ce sera vers ces méthodes qu'il faudra vous tourner ... et passer à un cube magnétique plutôt que votre vieux cube poussiéreux !
dd2b598166