• Welcome to the Speedsolving.com, home of the web's largest puzzle community!
    You are currently viewing our forum as a guest which gives you limited access to join discussions and access our other features.

    Registration is fast, simple and absolutely free so please, join our community of 40,000+ people from around the world today!

    If you are already a member, simply login to hide this message and begin participating in the community!

Computer solving: a new two-phase algorithm?

bcube

Member
Joined
Sep 8, 2010
Messages
449
Hi,

when people say "two-phase algorithm", usually Kociemba´s algorithm for the 3x3x3 cube is meant by that. Kociemba´s algorithm has been implemented into many computer solvers and/or robots.

I haven´t seen any implementation of the following two-phase algorithm, so I was wondering if its implementation is indeed a new approach in computer solving?

In simple terms:
  • Phase 1 - solve as a 3-color cube (phase 1 ends by reaching a configuration that can be solved with half-twists)
  • Phase 2 - final solve (solve as a 6-color cube)
To see this two-phase algorithm in action, go to Interactive section here, click on either the Cube Solver or Quad Core Solver link, then click on Depth 8 -> Random -> Solve buttons. Solution is given in terms of N+N move count where the first N is a move count for phase 1, and the second N is a move count for phase 2.
 
Last edited:
You are correct.

Edit: added this information to the first post.

Edit 2: it is a little bit more complicated because in the DistP2 section here it says "The solver only uses depths 1-8 for suboptimal solutions of which there are 117265 possible (cumulative total)."
 
Last edited:
A three color cube has 4!^5/2 = 3,981,312 different states. If you apply only half turns, you reach only 1/6 of these states, namely 663,552 states.
So your phase 2 has 663,552 states, which means your phase 1 has 43,252,003,274,489,856,000/663,552 = 65,182,537,728,000 different states. The sizes of the two phases are not well balanced and the big size of the phase 1 space is an disadvantage

In my algorithm the sizes are 2,217,093,120 in phase 1 and 19,508,428,800 in phase 2. This smaller sizes allow a "perfect" pruning table (which means it holds the exact distance to the phase 2 subgroup for all 2,217,093,120 possible states) in phase 1 which is essential to generate suboptimal phase 1 solutions very fast. Using suboptimal phase 1 solutions is absolutely necessary if you want to solve the cube in 20 moves or less on average with a two phase algorithm.
It seems that your algorithm has also a quite impressing performance but how many moves does your algorithm have on average using a decent computation time (for example 1 s)?
Edit: I did not see your statistics on first sight. Very impressive work. It really needs some knowhow to make a two phase solver work to produce 20 moves or less solutions. Though I still think that the small size of the phase 2 subgroup is a disadvantage for the two phase solver (but not for the optimal solver).
 
Last edited:
It seems that your algorithm has also a quite impressing performance but how many moves does your algorithm have on average using a decent computation time (for example 1 s)?

The website I was linking to is not mine, its author is Michael Feather. As you figured out, there is a performance summary.

Very impressive work.

I agree :-). Check out the content of dist arrays (Korf calls them "pattern databases", Reid calls them "pruning tables") if you haven´t seen them already.
 
A three color cube has 4!^5/2 = 3,981,312 different states. If you apply only half turns, you reach only 1/6 of these states, namely 663,552 states.
So your phase 2 has 663,552 states, which means your phase 1 has 43,252,003,274,489,856,000/663,552 = 65,182,537,728,000 different states. The sizes of the two phases are not well balanced and the big size of the phase 1 space is an disadvantage

I am nowhere near to your or Feather's understanding of computer solving. In fact, it is still hard for me to think of a 6-color cube as a 3-color cube. I think (I may be wrong) that phase 2 has even less states because of his DistP2 limitation: "The solver only uses depths 1-8 for suboptimal solutions of which there are 117265 possible (cumulative total)" instead of a total of 663 552 for only half-twists.

Disadvantage in what sense? Move count? Performance? Size of distance arrays?

In my algorithm the sizes are 2,217,093,120 in phase 1 and 19,508,428,800 in phase 2. This smaller sizes allow a "perfect" pruning table (which means it holds the exact distance to the phase 2 subgroup for all 2,217,093,120 possible states) in phase 1 which is essential to generate suboptimal phase 1 solutions very fast. Using suboptimal phase 1 solutions is absolutely necessary if you want to solve the cube in 20 moves or less on average with a two phase algorithm.

Assuming both phases in both your and his algorithm are incomparable in terms of their space sizes, what is your explanation for very fast 20 moves or less on average with his algorithm?
 
Last edited:
Not quite. 3 color reduction allows diagonal corner permutation (for example an N perm), which is not allowed in half turn reduction. Any half turn swaps two pairs of corners, and N perm only has one pair to swap.

By the way, I just realized that aside from optimal 3-color cube solver and optimal 6-color cube solver there is also an optimal 6-color cube presolved as 3-color cube solver (optimal 3-color reduction solver if you will).



In Kociemba´s algorithm, phase 1 needs at most 12 moves and phase 2 needs at most 18 moves. It has been proven that the 30 and 29 moves cases can be avoided, so it is guaranteed every cube configuration can be solved in at most 28 moves.

Can anyone do the same analysis for Feather´s algorithm, please? All I know as of now is that phase 2 needs at most 8 moves (and that all of its 117265 configurations can be solved using only half-twists. I also think that God´s number for the 3-color cube is 15 - not sure if this is helpful in any way).
 
The website I was linking to is not mine, its author is Michael Feather. As you figured out, there is a performance summary.
Judging from the data here, this new solver is not competitive yet.
My implementation (min2phase) of Kociemba's two-phase algorithm uses only 2MB of memory and can get a solution within 20 moves in about 10-20ms, which is 50/100 cubes per second.
Kociemba's implementation (Cube Explorer) is faster, it uses about 50MB of memory and solves a few hundred cubes per second.
Rokicki's implementation (cube20src) is much faster, it uses about 600MB of memory and solves a few thousand cubes per second.
 
Last edited:
Judging from the data here, this new solver is not competitive yet.
My implementation (min2phase) of Kociemba's two-phase algorithm uses only 2MB of memory and can get a solution within 20 moves in about 10-20ms, which is 50/100 cubes per second.
Kociemba's implementation (Cube Explorer) is faster, it uses about 50MB of memory and solves a few hundred cubes per second.
Rokicki's implementation (cube20src) is much faster, it uses about 600MB of memory and solves a few thousand cubes per second.

I don´t think you can accurately compare performance among solvers just like that.

Some of the factors you should take into consideration:
  • used programming language/environment
  • hardware differences in benchmark tests
  • software/browser limitations for solvers
  • solver´s objectives/goals
  • scrambles & solutions
I don´t think Feather´s Solver 2 aims to be competitive with e.g. nxopt (cube20src) - a standalone program written in C (if I am wrong as a non-programmer please don´t yell at me :-)) running on a machine with 256 GB of RAM.

I would be interested to see how the solvers you mentioned would perform against Solver 2 if they run locally/natively in a web browser, not on a server.

Likewise, I would be interested to see how would Solver 2 perform against nxopt if it was written in C and run as a standalone program on a machine with 256 (and 128) GB of RAM (with a modified code to store information for all 10,863,756,288,000 configurations for the 3-color cube in a single 782*70*2048*2187/2 = 122,589,573,120 = 115 GB file if I did the math right).

Can you share details/performance summary for the results you stated so that the benchmark tests could be easily reproduced (including basic information like what is average solve time for N random cubes or N optimal 19-movers with the hardware specification being tested on)?
 
I don´t think you can accurately compare performance among solvers just like that.
I would be interested to see how the solvers you mentioned would perform against Solver 2 if they run locally/natively in a web browser, not on a server.
Can you share details/performance summary for the results you stated so that the benchmark tests could be easily reproduced (including basic information like what is average solve time for N random cubes or N optimal 19-movers with the hardware specification being tested on)?
Only min2phase, which I developed, has a browser-oriented version. The other two solvers were not written by me, but I believe that migrating them to the browser will not result in a performance loss of more than 1 order of magnitude.
Min2phase is currently directly referenced by csTimer as a solver library, so you can test its performance directly in the browser through the following script. As for Feather's Solver2, you may need to ask him how to do similar tests yourself.

Specifically, first you need to open csTimer beta version ( https://cstimer.net/new/ ) using chrome or edge, and press F12 to open the console. Then paste the following command into the console and press Enter to run it. After that, the console will print the solution of each scramble algorithm in the console.

I randomly pasted 50 scrambles (from solver2's log) here, and you can also enter other scrambles yourself and let min2phase solve them. On my laptop, its average solving time is about 10ms, and the memory usage of the solver itself should be only a few MB, and no additional pruning table input is required.

Code:
var scrambles = [
	"B L2 B' U F2 R2 B2 L' D2 L' B' L' B2 U L B2 U2 L2 B2 L2",
	"L' U R' L' B' L' F2 U2 R' D2 R' U' L' F2 D2 L2 B2 U2 L2 B2",
	"R U2 R2 U' L2 U' R D2 R2 D' R B L2 D' R2 U2 B2 D2 F2 U2",
	"D2 L D R' U2 L F2 B2 R U2 F U L' F' L2 R2 B2 L2 R2 U2",
	"F2 D' L F' R B R2 B' D' R2 F R B2 D F2 D2 R2 F2 L2",
	"R F B2 L2 U D B2 L' F L F' B' U' R L2 R2 B2 U2 R2 U2",
	"R2 L' B D2 L' U L2 D' F U L D B D2 U' F2 D' U' L2",
	"U F2 D2 F D' F' L2 U2 R' D' R2 D2 R' F' L' B2 L2 B2 L2 D2",
	"F2 L2 B U' D R' D2 L2 U' R2 F' B' L' D2 U L2 U2 R2 D U'",
	"L' B' L' U F' R' F U2 L B' R B R' D' F U2 R2 F2 D2 F2",
	"F2 L' U D' R B2 R F' B2 U' B U' B2 U' F2 D2 U2 L2 D2 L2",
	"R' U R' F2 U2 R' F' R2 D2 L U B D F2 D2 L2 D2 R2 F2 R2",
	"F2 D2 R2 U B2 R U' F' L D' R B' D L' U B2 F2 U2 F2",
	"L2 D R' D R' F' B2 D' L2 F U2 B' R' L' D2 U L2 D' U' L2",
	"F' R2 U2 D R2 U L' D2 B2 U' B2 L2 B' R2 U L2 D2 L2 D2 F2",
	"R' L2 F' L' U R' D2 L' U R' B2 D' R' B' R2 F2 D2 F2",
	"B L' F D2 F' B2 D' B' R F R' D2 R' D' F2 U' B2 U2 R2 U2",
	"D R2 L F' B D L B R' U' L' U B' U F D2 B2 L2 D2 U2",
	"U R U2 D' L F' D' L' U' L' U2 L2 B' U' R F L2 B2 L2 F2",
	"B2 U L' D2 L' B R' D2 R B L' D B' U' F' U2 B2 R2 D2 U2",
	"F2 U2 B U' L B' L2 B2 R L' F R F2 D2 F2 U2 L2 D2 L2 R2",
	"U L' F' L F D' R D' B R L U' R' U2 R2 F2 L2 R2 U2 B2",
	"D B' R B R F' L' B2 U D F' U' L U2 F' L' R' U2 L R",
	"R F U F' D' F2 L2 F2 D F2 L F' B' R D L2 B2 D2 B2 R2",
	"L F L D2 F' D' B' L' D' R2 B' L2 B F2 R2 B2 U2 R2 U2",
	"U B' U2 L2 F' U2 D2 R B2 U' D R' D2 F U L2 F2 D2 L2 F2",
	"L2 U R2 L U F' U B L D2 R D' R2 F B2 F2 R2 F2 L2 D2",
	"R' F B R' U2 D L U' F' U' L D2 F U F2 R2 F2 D2 B2 D2",
	"F' U2 R D R2 F' L2 F' B2 L U' R' F' R U B2 U2 F2 D2 L2",
	"U2 D' F' B R' F R' B2 D L' U' L' R2 F2 D2 B2 U2 F2 R2 D2",
	"U R L B' L D' L' F U2 F2 B2 R' F2 L' U2 F2 R2 F2 R2 D2",
	"U2 D2 L D' L' F2 L2 F D' L' F2 L' B' U B2 U2 B2 F2 R2 B2",
	"D' L' D2 R2 U' B L2 F U' L' F B' R' U L2 U2 L2 B2",
	"F2 R U' L2 F2 L2 D2 F' R D' F' R D2 L' U D2 B2 L2 F2 R2",
	"U D2 R' U D' B2 U2 B U D2 F2 D' L' B U2 B2 F2 R2",
	"R' U' R2 U L' D2 R D B D L F2 R F' L2 U2 F2 D2 U2 F2",
	"L2 U R D F' U' R2 L F' R2 L D B2 D' L2 U B2 L2 U2",
	"R D2 L2 F' B' U L D L' D2 B' U D R U2 B2 L2 U2",
	"R' U2 F' L' F' L D L' B' D2 L D2 F2 D L' U2 L2 B2 R2",
	"F2 D B R2 F2 R' B D' F2 L U2 B2 L U D R2 U2 B2 U2 B2",
	"R L U2 R2 F B L' U F2 U R D2 L' U B2 F2 U2 R2 B2",
	"U' R' B' D2 L2 U L B R' L B' D2 L' D2 L' U2 R2 B2 L2 F2",
	"R' L2 F R2 B2 U L F2 D2 R D' F2 L F B' U2 B2 U2 B2 L2",
	"D B' R' L' D R2 D2 R D L B L2 D' R2 D2 R2 B2 U2 F2 U2",
	"R' L2 U2 L2 D' R2 D' L' B' L2 U L2 F2 D L' U2 L2 B2 U2 B2",
	"F2 B' D' R B' L' B U L' D2 B2 L U R2 U2 B2 L2 U2 B2",
	"L2 U' R D' L' U2 F D F' R2 U2 F2 D B U' B2 R2 D2 B2 F2",
	"L2 F2 R' B' L2 U2 L F2 R U2 D B L B F' L2 B F D2 R2",
	"R' D R' L2 F R B U2 F U' D' F' U F R L2 D2 L2 F2 R2",
];

var search = new min2phase.Search();
var tot_duration = 0;
for (var i = 0; i < scrambles.length; i++) {
	var scramble = scrambles[i];
	var state = min2phase.fromScramble(scramble);
	var tt = performance.now();
	var solution = search.solution(state, 20);
	var duration = performance.now() - tt;
	tot_duration += duration;
	console.log('scramble ' + i + ' solved in' + Math.ceil(duration * 1000) / 1000 + ' ms, scramble=', scramble, 'solution=', solution, ' length=', solution.length / 3);
}
console.log('total duration:', Math.ceil(tot_duration * 1000) / 1000 + ' ms, avg= ', Math.ceil(tot_duration / scrambles.length * 1000) / 1000, ' ms');
 
I randomly pasted 50 scrambles (from solver2's log) here, and you can also enter other scrambles yourself and let min2phase solve them. On my laptop, its average solving time is about 10ms

These are actually solutions, not scrambles. For the first 49 of them his search time was 0.6 s, averaging 12.25 ms per solution.

In the meantime, I got the following results on my crapy CPU/RAM machine using FireFox.

var scrambles = [
"B L2 B' U F2 R2 B2 L' D2 L' B' L' B2 U L B2 U2 L2 B2 L2",
"L' U R' L' B' L' F2 U2 R' D2 R' U' L' F2 D2 L2 B2 U2 L2 B2",
"R U2 R2 U' L2 U' R D2 R2 D' R B L2 D' R2 U2 B2 D2 F2 U2",
"D2 L D R' U2 L F2 B2 R U2 F U L' F' L2 R2 B2 L2 R2 U2",
"F2 D' L F' R B R2 B' D' R2 F R B2 D F2 D2 R2 F2 L2",
"R F B2 L2 U D B2 L' F L F' B' U' R L2 R2 B2 U2 R2 U2",
"R2 L' B D2 L' U L2 D' F U L D B D2 U' F2 D' U' L2",
"U F2 D2 F D' F' L2 U2 R' D' R2 D2 R' F' L' B2 L2 B2 L2 D2",
"F2 L2 B U' D R' D2 L2 U' R2 F' B' L' D2 U L2 U2 R2 D U'",
"L' B' L' U F' R' F U2 L B' R B R' D' F U2 R2 F2 D2 F2",
"F2 L' U D' R B2 R F' B2 U' B U' B2 U' F2 D2 U2 L2 D2 L2",
"R' U R' F2 U2 R' F' R2 D2 L U B D F2 D2 L2 D2 R2 F2 R2",
"F2 D2 R2 U B2 R U' F' L D' R B' D L' U B2 F2 U2 F2",
"L2 D R' D R' F' B2 D' L2 F U2 B' R' L' D2 U L2 D' U' L2",
"F' R2 U2 D R2 U L' D2 B2 U' B2 L2 B' R2 U L2 D2 L2 D2 F2",
"R' L2 F' L' U R' D2 L' U R' B2 D' R' B' R2 F2 D2 F2",
"B L' F D2 F' B2 D' B' R F R' D2 R' D' F2 U' B2 U2 R2 U2",
"D R2 L F' B D L B R' U' L' U B' U F D2 B2 L2 D2 U2",
"U R U2 D' L F' D' L' U' L' U2 L2 B' U' R F L2 B2 L2 F2",
"B2 U L' D2 L' B R' D2 R B L' D B' U' F' U2 B2 R2 D2 U2",
"F2 U2 B U' L B' L2 B2 R L' F R F2 D2 F2 U2 L2 D2 L2 R2",
"U L' F' L F D' R D' B R L U' R' U2 R2 F2 L2 R2 U2 B2",
"D B' R B R F' L' B2 U D F' U' L U2 F' L' R' U2 L R",
"R F U F' D' F2 L2 F2 D F2 L F' B' R D L2 B2 D2 B2 R2",
"L F L D2 F' D' B' L' D' R2 B' L2 B F2 R2 B2 U2 R2 U2",
"U B' U2 L2 F' U2 D2 R B2 U' D R' D2 F U L2 F2 D2 L2 F2",
"L2 U R2 L U F' U B L D2 R D' R2 F B2 F2 R2 F2 L2 D2",
"R' F B R' U2 D L U' F' U' L D2 F U F2 R2 F2 D2 B2 D2",
"F' U2 R D R2 F' L2 F' B2 L U' R' F' R U B2 U2 F2 D2 L2",
"U2 D' F' B R' F R' B2 D L' U' L' R2 F2 D2 B2 U2 F2 R2 D2",
"U R L B' L D' L' F U2 F2 B2 R' F2 L' U2 F2 R2 F2 R2 D2",
"U2 D2 L D' L' F2 L2 F D' L' F2 L' B' U B2 U2 B2 F2 R2 B2",
"D' L' D2 R2 U' B L2 F U' L' F B' R' U L2 U2 L2 B2",
"F2 R U' L2 F2 L2 D2 F' R D' F' R D2 L' U D2 B2 L2 F2 R2",
"U D2 R' U D' B2 U2 B U D2 F2 D' L' B U2 B2 F2 R2",
"R' U' R2 U L' D2 R D B D L F2 R F' L2 U2 F2 D2 U2 F2",
"L2 U R D F' U' R2 L F' R2 L D B2 D' L2 U B2 L2 U2",
"R D2 L2 F' B' U L D L' D2 B' U D R U2 B2 L2 U2",
"R' U2 F' L' F' L D L' B' D2 L D2 F2 D L' U2 L2 B2 R2",
"F2 D B R2 F2 R' B D' F2 L U2 B2 L U D R2 U2 B2 U2 B2",
"R L U2 R2 F B L' U F2 U R D2 L' U B2 F2 U2 R2 B2",
"U' R' B' D2 L2 U L B R' L B' D2 L' D2 L' U2 R2 B2 L2 F2",
"R' L2 F R2 B2 U L F2 D2 R D' F2 L F B' U2 B2 U2 B2 L2",
"D B' R' L' D R2 D2 R D L B L2 D' R2 D2 R2 B2 U2 F2 U2",
"R' L2 U2 L2 D' R2 D' L' B' L2 U L2 F2 D L' U2 L2 B2 U2 B2",
"F2 B' D' R B' L' B U L' D2 B2 L U R2 U2 B2 L2 U2 B2",
"L2 U' R D' L' U2 F D F' R2 U2 F2 D B U' B2 R2 D2 B2 F2",
"L2 F2 R' B' L2 U2 L F2 R U2 D B L B F' L2 B F D2 R2",
"R' D R' L2 F R B U2 F U' D' F' U F R L2 D2 L2 F2 R2",
];

var search = new min2phase.Search();
var tot_duration = 0;
for (var i = 0; i < scrambles.length; i++) {
var scramble = scrambles;
var state = min2phase.fromScramble(scramble);
var tt = performance.now();
var solution = search.solution(state, 20);
var duration = performance.now() - tt;
tot_duration += duration;
console.log('scramble ' + i + ' solved in' + Math.ceil(duration * 1000) / 1000 + ' ms, scramble=', scramble, 'solution=', solution, ' length=', solution.length / 3);
}
console.log('total duration:', Math.ceil(tot_duration * 1000) / 1000 + ' ms, avg= ', Math.ceil(tot_duration / scrambles.length * 1000) / 1000, ' ms');
scramble 0 solved in276 ms, scramble= B L2 B' U F2 R2 B2 L' D2 L' B' L' B2 U L B2 U2 L2 B2 L2 solution= D B R2 U B R' L2 D2 B' L2 U L2 D F2 L2 D' F2 L2 D' F' length= 20
scramble 1 solved in44 ms, scramble= L' U R' L' B' L' F2 U2 R' D2 R' U' L' F2 D2 L2 B2 U2 L2 B2 solution= R2 F R2 L2 B' D' R' L' D2 L2 D' R2 D' L2 U F2 L2 B2 D' F length= 20
scramble 2 solved in10 ms, scramble= R U2 R2 U' L2 U' R D2 R2 D' R B L2 D' R2 U2 B2 D2 F2 U2 solution= F B2 U2 F' U' F' D2 R' L2 U B2 D L2 D F2 U' L2 B2 U' L2 length= 20
scramble 3 solved in93 ms, scramble= D2 L D R' U2 L F2 B2 R U2 F U L' F' L2 R2 B2 L2 R2 U2 solution= B L2 F2 R2 D L2 D' L2 F2 D2 B2 D2 B D2 L B' R2 B' D' B length= 20
scramble 4 solved in17 ms, scramble= F2 D' L F' R B R2 B' D' R2 F R B2 D F2 D2 R2 F2 L2 solution= R2 F2 L F' D R U R U2 D2 R2 U2 R' B2 D2 L' B2 R F2 D' length= 20
scramble 5 solved in32 ms, scramble= R F B2 L2 U D B2 L' F L F' B' U' R L2 R2 B2 U2 R2 U2 solution= U2 L2 U' F R2 U' B D' L' B U2 D2 R2 D2 F U2 F D2 F2 R2 length= 20
scramble 6 solved in73 ms, scramble= R2 L' B D2 L' U L2 D' F U L D B D2 U' F2 D' U' L2 solution= R2 F2 U L2 F2 D' B2 L2 D' F2 B U L2 R' D' R' B F D' length= 19
scramble 7 solved in24 ms, scramble= U F2 D2 F D' F' L2 U2 R' D' R2 D2 R' F' L' B2 L2 B2 L2 D2 solution= L F' R B' U2 R2 D R2 L2 F' D2 F' R2 B2 R2 D2 B U2 R' F2 length= 20
scramble 8 solved in176 ms, scramble= F2 L2 B U' D R' D2 L2 U' R2 F' B' L' D2 U L2 U2 R2 D U' solution= B R' D' F R' F L' B2 R U B2 D' R2 F2 U F2 B2 R2 U' F length= 20
scramble 9 solved in47 ms, scramble= L' B' L' U F' R' F U2 L B' R B R' D' F U2 R2 F2 D2 F2 solution= F2 D2 F2 D L2 D R2 U' B2 F2 U B' L D U L B F D2 L length= 20
scramble 10 solved in254 ms, scramble= F2 L' U D' R B2 R F' B2 U' B U' B2 U' F2 D2 U2 L2 D2 L2 solution= L' U' L' B2 U2 F B' U' F2 R' L2 U' L2 U L2 F2 D F2 R2 B2 length= 20
scramble 11 solved in2797 ms, scramble= R' U R' F2 U2 R' F' R2 D2 L U B D F2 D2 L2 D2 R2 F2 R2 solution= D' F' U2 B U' L' F D2 F2 D' L2 U R2 L2 D R' U' F' R length= 19
scramble 12 solved in13 ms, scramble= F2 D2 R2 U B2 R U' F' L D' R B' D L' U B2 F2 U2 F2 solution= R' F' U L B U R2 D L D2 R2 L2 B L2 D2 B L2 F D2 B2 length= 20
scramble 13 solved in7 ms, scramble= L2 D R' D R' F' B2 D' L2 F U2 B' R' L' D2 U L2 D' U' L2 solution= R' U' R L' F D R2 U2 L R2 B2 D L2 U R2 U D R2 F2 R2 length= 20
scramble 14 solved in136 ms, scramble= F' R2 U2 D R2 U L' D2 B2 U' B2 L2 B' R2 U L2 D2 L2 D2 F2 solution= F L' U' F' B' R2 D2 L2 U R' D2 F2 R2 F2 D' F2 B2 D' B2 U2 length= 20
scramble 15 solved in13 ms, scramble= R' L2 F' L' U R' D2 L' U R' B2 D' R' B' R2 F2 D2 F2 solution= L2 U B U L2 B L F2 R2 D2 F2 L2 U' F2 B2 U2 L2 F2 R2 F length= 20
scramble 16 solved in124 ms, scramble= B L' F D2 F' B2 D' B' R F R' D2 R' D' F2 U' B2 U2 R2 U2 solution= D' R B R F2 L B L2 D R F2 U B2 R2 U L2 F2 L2 U2 B2 length= 20
scramble 17 solved in7 ms, scramble= D R2 L F' B D L B R' U' L' U B' U F D2 B2 L2 D2 U2 solution= F' L' B' U' B' D R U2 D2 F' U2 B R2 D2 B' L2 B D2 F2 U length= 20
scramble 18 solved in11017 ms, scramble= U R U2 D' L F' D' L' U' L' U2 L2 B' U' R F L2 B2 L2 F2 solution= U2 L B2 R2 F2 R B2 D' F' U' L B2 D B D F' R2 D' length= 18
scramble 19 solved in564 ms, scramble= B2 U L' D2 L' B R' D2 R B L' D B' U' F' U2 B2 R2 D2 U2 solution= F' B' D R B2 U F' U2 R' U2 B2 R B2 R' F2 U2 L F' D2 R' length= 20
scramble 20 solved in176 ms, scramble= F2 U2 B U' L B' L2 B2 R L' F R F2 D2 F2 U2 L2 D2 L2 R2 solution= L' B D2 L' U2 D' B' U B F2 R2 L2 D2 F2 B2 D R2 F2 D' R' length= 20
scramble 21 solved in6 ms, scramble= U L' F' L F D' R D' B R L U' R' U2 R2 F2 L2 R2 U2 B2 solution= R L F R2 L2 D R B L2 D2 L' D2 L D2 B2 U2 D2 R L2 length= 19
scramble 22 solved in177 ms, scramble= D B' R B R F' L' B2 U D F' U' L U2 F' L' R' U2 L R solution= R' U2 R U R' B2 L' D2 R2 B2 U' F2 B2 D' B2 D' B2 F R' U' length= 20
scramble 23 solved in24 ms, scramble= R F U F' D' F2 L2 F2 D F2 L F' B' R D L2 B2 D2 B2 R2 solution= B U' L' F' L2 U2 L' U R F' L2 D2 B L2 U2 F' L2 F2 U2 B' length= 20
scramble 24 solved in118 ms, scramble= L F L D2 F' D' B' L' D' R2 B' L2 B F2 R2 B2 U2 R2 U2 solution= F2 L2 D2 F' R2 F2 R2 D2 F' D2 F D' F' D U' L' U2 R2 U' F' length= 20
scramble 25 solved in239 ms, scramble= U B' U2 L2 F' U2 D2 R B2 U' D R' D2 F U L2 F2 D2 L2 F2 solution= B2 D R' B L2 D' F2 B2 R' F2 D R2 U' F2 D F2 D R2 U' F length= 20
scramble 26 solved in4 ms, scramble= L2 U R2 L U F' U B L D2 R D' R2 F B2 F2 R2 F2 L2 D2 solution= U' F R B2 R2 L B' L D2 B2 U' L2 D R2 F2 B2 D F2 D' length= 19
scramble 27 solved in134 ms, scramble= R' F B R' U2 D L U' F' U' L D2 F U F2 R2 F2 D2 B2 D2 solution= R' F' U L B R2 F U2 F2 L U D R2 U R2 F2 D F2 B2 U' length= 20
scramble 28 solved in259 ms, scramble= F' U2 R D R2 F' L2 F' B2 L U' R' F' R U B2 U2 F2 D2 L2 solution= F U' B2 L B R2 U' D' R' U' F' R2 F B2 U2 L2 F U2 R2 length= 19
scramble 29 solved in80 ms, scramble= U2 D' F' B R' F R' B2 D L' U' L' R2 F2 D2 B2 U2 F2 R2 D2 solution= F D2 B2 U D B' R F U F D2 L2 U L2 U' B2 L2 U L2 D' length= 20
scramble 30 solved in8 ms, scramble= U R L B' L D' L' F U2 F2 B2 R' F2 L' U2 F2 R2 F2 R2 D2 solution= R' L F' B R' D F L' U F2 R2 D R2 D2 B2 D' R2 U' L2 length= 19
scramble 31 solved in20 ms, scramble= U2 D2 L D' L' F2 L2 F D' L' F2 L' B' U B2 U2 B2 F2 R2 B2 solution= U D2 L2 B U2 L2 U' F' L' F2 L' F2 B2 L' D2 B2 D2 R D2 R' length= 20
scramble 32 solved in318 ms, scramble= D' L' D2 R2 U' B L2 F U' L' F B' R' U L2 U2 L2 B2 solution= F' U2 F D2 F R2 U2 L' R2 F2 R2 B2 U' B2 D2 B2 R2 B2 L B' length= 20
scramble 33 solved in238 ms, scramble= F2 R U' L2 F2 L2 D2 F' R D' F' R D2 L' U D2 B2 L2 F2 R2 solution= R D2 L F2 R U' R2 B' R U' L2 F2 U2 L2 U2 R2 D R' length= 18
scramble 34 solved in18 ms, scramble= U D2 R' U D' B2 U2 B U D2 F2 D' L' B U2 B2 F2 R2 solution= F D2 F' D R2 U R B' D' F2 L2 U' F2 D2 B2 L2 D' R2 L2 D2 length= 20
scramble 35 solved in20 ms, scramble= R' U' R2 U L' D2 R D B D L F2 R F' L2 U2 F2 D2 U2 F2 solution= R U' L2 D2 B2 U F2 U L2 R2 U B2 U2 F D' L2 R' F' R B length= 20
scramble 36 solved in52 ms, scramble= L2 U R D F' U' R2 L F' R2 L D B2 D' L2 U B2 L2 U2 solution= U' B2 F L2 D2 F2 U F2 U B2 R2 U2 B' R' D2 B2 U B' R length= 19
scramble 37 solved in946 ms, scramble= R D2 L2 F' B' U L D L' D2 B' U D R U2 B2 L2 U2 solution= D U2 B' U2 L2 F R2 B2 D2 R2 B' L R F R2 D L D2 U L length= 20
scramble 38 solved in39 ms, scramble= R' U2 F' L' F' L D L' B' D2 L D2 F2 D L' U2 L2 B2 R2 solution= F2 U R2 D U F2 D' R2 D R2 U' B' L' F L D F' L' F2 U2 length= 20
scramble 39 solved in936 ms, scramble= F2 D B R2 F2 R' B D' F2 L U2 B2 L U D R2 U2 B2 U2 B2 solution= R' F2 L2 F L2 R2 U2 F D2 L2 D2 L B D2 R' F' D L U' B length= 20
scramble 40 solved in40 ms, scramble= R L U2 R2 F B L' U F2 U R D2 L' U B2 F2 U2 R2 B2 solution= F2 L B2 U2 L U2 L2 U2 B2 L D2 R D' U2 R2 B F' L' R U length= 20
scramble 41 solved in53 ms, scramble= U' R' B' D2 L2 U L B R' L B' D2 L' D2 L' U2 R2 B2 L2 F2 solution= F' U' R2 F2 R2 D2 L2 F2 U2 R2 B2 D' B' L2 R B R2 U2 L F2 length= 20
scramble 42 solved in1071 ms, scramble= R' L2 F R2 B2 U L F2 D2 R D' F2 L F B' U2 B2 U2 B2 L2 solution= F2 R F2 D2 L' B2 L' F2 D2 L2 D' B' L2 D2 U' R' B2 L R2 B length= 20
scramble 43 solved in284 ms, scramble= D B' R' L' D R2 D2 R D L B L2 D' R2 D2 R2 B2 U2 F2 U2 solution= D L' D2 F2 D' L U F' L' U R2 D L2 F2 U' F2 U2 F2 U' R' length= 20
scramble 44 solved in544 ms, scramble= R' L2 U2 L2 D' R2 D' L' B' L2 U L2 F2 D L' U2 L2 B2 U2 B2 solution= U' D L2 F' D' R B2 R' F D2 R2 B' D2 B' U2 F U2 F2 L' D length= 20
scramble 45 solved in136 ms, scramble= F2 B' D' R B' L' B U L' D2 B2 L U R2 U2 B2 L2 U2 B2 solution= R' F R' L' U F2 B2 L U B2 L2 B2 R2 U' F2 B2 U' F2 B R2 length= 20
scramble 46 solved in369 ms, scramble= L2 U' R D' L' U2 F D F' R2 U2 F2 D B U' B2 R2 D2 B2 F2 solution= F' B2 L' U R U' D' R U' R' F' D2 R2 L2 B' D2 B2 R2 B R2 length= 20
scramble 47 solved in30 ms, scramble= L2 F2 R' B' L2 U2 L F2 R U2 D B L B F' L2 B F D2 R2 solution= L' U2 L2 B' R2 U2 L B U R' D2 B2 R' U2 B2 R B2 R' F2 L2 length= 20
scramble 48 solved in574 ms, scramble= R' D R' L2 F R B U2 F U' D' F' U F R L2 D2 L2 F2 R2 solution= L' D2 F2 L2 U' L2 D2 L2 B2 D' R2 L' D2 R' U' R B' R' F D length= 20
total duration: 22637 ms, avg= 461.98 ms

YGYGRWYBGBWRGYRWOBRYOGGRBYWBBYOWRWYGYGBRRWOBOOOWROWGOB
OYBRRWBWYGWOWBBRGWRBYYGOWYRGBYOWGGRGOBYGGBOORWRRYOOWBY
OOBORGOWGGWWBBYRYWRGYYGOBYWRBGWWOBBOWRRBBWRGYGYYYORORG
OOGYRWWRGGGRBYWORRWGYRGBYYBOBGWWBOWRYRBYYOBBBGGROOOYWW
OYBBRRRGRYRBWOGYWRYBBYGOWYWBBBOWRRGOWRBWGOGYWGGOWOYGOY
YOWYRBYGWGRGOYOGWRBYROGOGYRWBBYWBRWYBRBYRBWWWOBRGOGGOO
RBWRRRGOWWBYRWGRGBOYBOGWRYGYBOYWBYGGYYOWWBOWBORGOOGRBY
YOGGRGWBYGRRBOOBYRWYRWGWRYYRBBWWOOBBYOWOBGYWGRGBROYWGO
RGWBRGRGRWYGYWYBYOGRBWGBRYOWBOBWBOWGYRRGOOBGBOYWROYYOW
RRRORBBWWYBWRGOGWWGWGOGYOYBRBOGWWWGYRYGYGOYRBBBOYOROYB
YGYRRGRORRYWGYBWYRGOBWGOBYBRBOWWGBGYBROWBOGWOOWGROYWBY
OWBOROOYOWWBYGYGYWRBGBGWRYOBBWGWRYYRBRWORRGGRYGBBOYGOW
OBBBRBGWWYOYROGRROWYBWGOGYRGBGYWBWYGYWBYGRWYOORROOWGRB
BRRGRRGWOOYOYBWBGGYYYYGGOYGWBWRWORRRGOBYWWGBBWBRBOOWYO
GRBGRWYRGOYBRBYROYOGWBGOBYRWBOYWYBRGYGWRGBRWOOWGYOOWBW
BGYWRYRGWWBWGROGRBRYOOGOYYWGBBYWGRROYWYOWGRBBBRGBOOWOY
RYYWRWWYOBBOGGWBGRGRYYGBRYBOBWRWOWRBOOWRWGYBRYGGGOOBYO
RROBRGOYRYOBYOYBOWBYGYGWGYRBBOWWGWBYOROWWWBGGGWGYOBRRR
YWWYRBGGYOOWOORGWRBRGYGWGYRYBOWWGBOWRRYRGOYYOGBBBORWBB
OOYGRRWRYBYRBWBRBGOWWOGOBYBWBWGWYOOWRRYGGOWYBGYRGORYBG
RGBGRBOORYRWBWBWRRYOGBGRYYYGBWBWYGWBOYWRGGOOOYOGROWYBW
WGGWROGGBBRWORYOGYRWRYGBOYGYBOYWROBGWWYRRBWBYROBYOBGWO
BWRORYRROYGWGWYGBBWGRRGGRYOWBOBWBYOGOYYGYOBBOWRRYOGBWW
YWBBROOYGORGWBRWBRYGGGGOWYRWBBWWYWORYOOYROBRRGGBYOYBGW
RWYBRRBBWGWWRYBOBRGGWBGRWYOGBOWWOOGWGYYOORBYBORGROYYGY
YOWBRYOOYOYGWBOBORBWGRGGOYRGBWBWYRWWRRRBWWOGGGBYROGYYB
OROGRYBWGYRWRBWOOYGWBGGOBYGOBWOWWYRRYYWRROBYBGBGYOBRGW
YOYGRRGBRORRWWYBWOBGGYGBYYYGBOYWRGRRYWOBOBRWWGGWBOBOOW
GWWYRGRWGOOYBOYROGRGWRGRWYBOBBRWYBYYOBBWGRWYYGWOGOROBB
WOGGRRRYBGRYBBWRBYRYOOGOBYGWBRYWGGWYBWBWWRGGOOOOBORYYW
GGBWRWWRRYOGRYGYGYOOOBGRWYYGBRBWYBWWBORBRWGOORYYBOGWBO
RRGRRYBGBGWWRWOWGWOGWBGOWYYRBRBWYOBRYWBYYBOOYGBROOOGGY
OOYWROOGBGRGWOYOYBRBYBGBWYWGBGRWRWBGWGRWOYGRBRYBYOWOYR
YWBBROBROOYYOYWBBWRBGYGGRYRWBOWWOROYGRRGGWGGYRBWGOYBWO
BBGGRYBOGWWWRWYRBWOOOOGGYYGRBBRWYYWRGYOGWRBOOWRYBORBGY
OGGORYBOGBGRYWWOGRWWWOGRGYBYBBOWYGRGRROYRWBWOYYBBOWYBR
GBBOROGWYWYOYBRGWOWORGGRBYGRBGYWWYROWORBBRWROGGYWOYBYB
WBBYRRYRROBRGGYBWWROBRGYOYOGBYRWBYOWGWGYWRGYOOGOWOBBGW
WOOGRORBWBOYBWBOYYGWRRGYBYBOBRWWYWGOYGGWGRYBOBWRROYGRG
YWOBROGRRGRWOWYBGWBBRYGGYYOYBOBWRBBGWGYOWRWGYRRGYOOOWB
GWYGRYWWRORRBBWGROBRWOGGWYBRBOYWWBBRYGBWOYOORGYOYOBYGG
BGWBRRYBWOYRGOOGWBOOYGGRBYGWBGYWRROBRWRBYOGBWWOYYORGWY
BRGYRGYWOWOGOOBYWWOYOBGWBYGYBOGWRRGBROYGBRBRWWBRROYGWY
YRBORWBRWOWYOYGRRWRGGRGWBYWGBGYWBYYYGBWOBWGOBRYBOOORGO
YOBORYRWGBBYBBWOOOWGORGGYYYBBRYWBWRRWWRYWYOGGBRGGOORWG
WGYYRGYYGBGBRBRWORGWRRGWBYOYBYRWWGOBWRWGBOYBOOGOWOOYRB
RROYROGYBYGRWBOWGYGGGYGRBYRYBWGWOOBBROGOWYRRBWBWWOOYWB
GGRRRYBGYOBOWRGORWGOWWGBWYBOBGWWRYYBOYYGBWBOBYORGOYRWR
WGOBRBWRWRYBOGRBOGWWGRGYGYOWBBWWWGRYRRRYOOYYOBYGBOGYOB
Solver 2 Log:

Params: use_dist3=2&stl=5s&snc=1&log_brief=1&batch=1

Concurrent Processes: 4

Cube File Loaded:
scrambles.txt

Dist Files Loaded:
Dist1_09F.dat
Dist2_09F.dat
Dist3_10FQ.dat
Dist5_11F.dat
DistP2_15F.dat

Init Time: 2.39
1 U' R2 F R2 B' U2 R' U' R2 F' R' U' B U D L2 D2 B2 U2 R2 [15+5] (20f) 0.21
2 U2 D2 B2 R F2 D' F B2 L' U2 R F2 D B2 F2 L2 B2 D2 R2 U2 [13+7] (20f) 0.01
3 D' R2 F2 L2 D' F2 R B2 R2 L D R' F' R D2 F2 D2 F2 R2 B2 [14+6] (20f) 0.07
4 U' R U L2 B2 R' F U L F2 L2 D B2 R F2 U2 F2 U2 [14+4] (18f) 0.01
5 F' U2 R U L B' D2 F2 L2 U R2 B2 D' F' L2 D2 R2 F2 D2 B2 [14+6] (20f) 0.03
6 B R D' B' L2 U2 F' D' B R' F2 U2 D F U D2 U2 L2 D2 [15+4] (19f) 0.14
7 B' L D B R2 B D L' U D F2 R2 U' R B2 L2 F2 R2 D2 R2 [14+6] (20f) 0.03
8 D F2 R D F' R L F' D B2 U2 F L U L2 F2 L2 D2 L2 R2 [14+6] (20f) 0.01
9 R U F' U' D2 L' F2 L B' U' F D R2 F2 L' B2 D2 B2 R2 B2 [15+5] (20f) 0.04
10 R F D F' B U' L2 U2 F' R2 L U' B' R' B D2 F2 U2 R2 B2 [15+5] (20f) 0.07
11 F' B U L' D' F2 L' B' R U B2 D2 L B U R2 D2 B2 F2 [15+4] (19f) 0.15
12 U2 L' D R' L2 U' B R' D B2 L' B2 U B2 L R D2 B2 L R [13+7] (20f) 0.00
13 B U' F' U2 R2 D F R2 F' L' D2 L2 U2 F R' U2 R2 D2 B2 U2 [15+5] (20f) 0.17
14 D' R L U' R B2 L2 B U2 D F2 L D L2 D2 B2 R2 D2 [13+5] (18f) 0.00
15 D R2 F' U L U2 B2 R L' D' F U' L' D2 L' D2 B2 L2 D2 F2 [15+5] (20f) 0.12
16 L2 U B U L2 B L' D2 L2 D2 B2 U2 B2 U B' F2 D2 L2 R2 U2 [15+5] (20f) 0.04
17 D' R B R F2 L B L2 D R F2 U B2 R2 U L2 F2 L2 U2 B2 [15+5] (20f) 0.17
18 D' B2 U' R D2 B R D F' D' F2 R' F2 L' U2 B' F U2 B F [14+6] (20f) 0.03
19 U2 F' R D L B' U' R' F' B2 R U2 D R' L2 U2 B2 D2 B2 L2 [14+6] (20f) 0.03
20 D2 L2 U' F' L2 B' D B' R2 F' U' L D F D2 R2 B2 D2 L2 B2 [14+6] (20f) 0.02
21 L' F U F2 U' F U2 B D2 L2 B2 R' D F' L U2 F2 R2 U2 B2 [15+5] (20f) 0.12
22 D L B' D B D F2 D F B2 R2 U' B U2 L' R2 F2 U2 L2 [15+4] (19f) 0.13
23 D2 B' U2 R U2 F' D R F' U B' L2 U2 B L2 D2 L2 R2 B2 L2 [14+6] (20f) 0.03
24 L2 U' F' L U2 L F' R' F B' R' U' F' L F D2 R2 F2 [15+3] (18f) 0.06
25 U' R F' B' R' L' B' U2 R' L' U2 D' B D U2 B2 D2 B2 R2 [14+5] (19f) 0.01
26 U' D' R2 F U2 L' F' R2 L B2 U2 B D' R' L2 D' U F2 D' U [14+6] (20f) 0.01
27 R' L B2 L' D R2 B2 U F' R B' U2 R' D L2 D2 U2 B2 R2 D2 [14+6] (20f) 0.02
28 L2 U2 F2 R D B' L F U R2 L' D' B D2 B' D2 B2 R2 D2 [15+4] (19f) 0.04
29 F L' U' B' R' B2 R' L B' D' R D2 L2 F D2 R2 U2 B2 D2 B2 [14+6] (20f) 0.02
30 U' D R' F D2 R B2 L2 D2 L2 D' B R2 U R2 D2 B2 U2 F2 R2 [14+6] (20f) 0.01
31 L' U B' U2 R U' F' D L F2 U L' F2 R' U' L2 D2 F2 U2 [15+4] (19f) 0.15
32 D2 L2 U' L2 B' R2 F2 D L2 B D' R F R' F L2 B2 D2 R2 F2 [15+5] (20f) 0.36
33 R B' R L' D' B R' L2 U2 L' F B2 U2 B' L R2 B2 U2 R2 D2 [15+5] (20f) 0.11
34 R F' R' F' R' U F' D F' L' D R' B F2 D2 R2 B2 F2 U2 R2 [13+7] (20f) 0.00
35 B' L F2 R2 B L' U2 B2 U R' F' L' F D2 L' R' F2 L R' [13+6] (19f) 0.01
36 U2 D2 F2 B U' L D2 F' B2 L D B' U F L R U2 L' R' B2 [14+6] (20f) 0.04
37 B2 R' B R' F2 U F L' U' F2 B U F' D U2 R2 B2 F2 R2 B2 [14+6] (20f) 0.01
38 D2 L F2 D2 F U F' D L2 D R F' B' D R' F2 D2 F2 [15+3] (18f) 0.17
39 R2 F D2 B' U B L2 U L F2 B U B2 F U2 B' F L2 D2 L2 [13+8] (20f) 0.00
40 R L' D2 R2 D' L U2 B U' R2 B2 L' B U2 R' F2 U2 F2 U2 F2 [15+5] (20f) 0.04
41 R D2 L' D' B2 U F B R L B2 U D' B U' B2 D2 L2 B2 F2 [15+5] (20f) 0.09
42 F' U F R' F' U2 B2 L' D' F B2 U2 D L D' B2 U2 L2 D2 U2 [15+5] (20f) 0.15
43 R L D' L2 U' L' F R' U L' F' U' B' L2 U' L2 B2 U2 L2 U2 [15+5] (20f) 0.06
44 L2 U D F2 U' L' F D2 L' U D B R2 B L2 U2 B2 U2 R2 U2 [14+6] (20f) 0.01
45 F2 L' U' R D2 L B L D B' R' U D L' B2 U2 F2 D2 R2 [14+5] (19f) 0.02
46 F2 R D' F2 L2 B2 L2 U R F U' F B L2 F' L' B2 D2 R2 D2 [16+4] (20f) 0.29
47 L D2 B' D L' B R U2 R' B R' B' U R F2 L2 U2 L2 R2 B2 [14+6] (20f) 0.03
48 F' R2 B' U R F2 B2 R D' B2 L' F2 L' D2 B' U2 B2 U2 L2 U2 [15+5] (20f) 0.14
49 L2 D' B' U' L2 F U R' B U' L F' R U R' D2 F2 L2 D2 U2 [15+5] (20f) 0.04
Search Time: 3.56
 
In the meantime, I got the following results on my crapy CPU/RAM machine using FireFox.
You should use Chrome, as Firefox has a significant performance loss in debug mode.
Also, note that your logs show that Solver 2 uses dozens of times more memory (over 800MB) and is using quad-core parallelism.
 
Last edited:
You should use Chrome, as Firefox has a significant performance loss in debug mode.
Also, note that your logs show that Solver 2 uses dozens of times more memory (over 800MB) and is using quad-core parallelism.

Yes. My point, as you know, was to point out that when comparing performance among solvers, one should be looking at the bigger picture (FYI, I was told that batch of 10 000 cubes was solved at the average rate of 153 cubes per second, or around 6.5 ms per solution (for 20 or less move solutions) on Ryzen 7 using Solver 2. It was also able to solve "the hardest position" from cube20.org in 20 moves in 1.02 s. In a test of 100 000 random state cubes it solved 779 cubes per second in 23 moves or less on Ryzen 5).

As for the solver itself, I think its biggest strength lies in optimal solving. Even if nxopt would be migrated to run natively (i.e. with no server-side processing) in a browser, there is probably no web browser being able to handle a memory of 176 GB. And as was Tomas Rokicki saying: "For pruning tables similar in size to what Cube Explorer uses, I don't believe it [nxopt] is significantly faster than Cube Explorer."

Edit: the scramble for "the hardest position" from cube20.org is D2 U2 F' R D2 B U' L' U R D L' F R U' B' D F2 U F'
 
Last edited:
In Kociemba´s algorithm, phase 1 needs at most 12 moves and phase 2 needs at most 18 moves. It has been proven that the 30 and 29 moves cases can be avoided, so it is guaranteed every cube configuration can be solved in at most 28 moves.

Can anyone do the same analysis for Feather´s algorithm, please? All I know as of now is that phase 2 needs at most 8 moves (and that all of its 117265 configurations can be solved using only half-twists. I also think that God´s number for the 3-color cube is 15 - not sure if this is helpful in any way).

To my knowledge, these are the maximum and average lengths for each phase in HTM.

3-color cube reduction -> Solved
phase 1: 15, avg: 12.52
phase 2: 16, avg: 12.46
Code:
Depth   Configurations
0    1
1    6
2    75
3    888
4    11082
5    142230
6    1828443
7    23404284
8    299243019
9    3801549936
10    47276120420
11    540970449436
12    4110442428686
13    6007250783685
14    153690321787
15    4022
Total    10,863,756,288,000
Code:
Depth    Configurations
0    1
1    6
2    27
3    120
4    519
5    2124
6    8188
7    27636
8    78644
9    175497
10    248288
11    252210
12    685188
13    1480040
14    883908
15    137200
16    1716
Total    3,981,312

Kociemba´s algorithm
phase 1: 12, avg: 9.52
phase 2: 18, avg: 13.58
Code:
Depth    Configurations
0    1
1    4
2    50
3    592
4    7156
5    87236
6    1043817
7    12070278
8    124946368
9    821605960
10    1199128738
11    58202444
12    476
Total    2,217,093,120
Code:
Depth    Configurations
0    1
1    10
2    67
3    456
4    3079
5    19948
6    123074
7    736850
8    4185118
9    22630733
10    116767872
11    552538680
12    2176344160
13    5627785188
14    7172925794
15    3608731814
16    224058996
17    1575608
18    1352
Total    19,508,428,800

Half-turn reduction -> Solved
phase 1: 16, avg: 13.18
phase 2: 13, avg: 9.54
Code:
Depth    Configurations
0    1
1    1
2    3
3    23
4    241
5    3002
6    38336
7    490879
8    6298864
9    80741117
10    1028869318
11    12787176355
12    140352357299
13    781415318341
14    421980213679
15    330036864
16    17
Total    1,357,981,544,340
Code:
Depth    Configurations
0    1
1    6
2    27
3    120
4    519
5    2124
6    8188
7    27636
8    78644
9    174521
10    233504
11    116010
12    22228
13    24
Total    663,552

Feather´s algorithm
phase 1: unknown (lower bound: 16, upper bound: 20), avg: unknown
phase 2: 8, avg: 7.54
Code:
Depth    Configurations
0    1
1    6
2    27
3    120
4    519
5    2124
6    8188
7    27636
8    78644
Total    117,265

@rokicki or @jaap or @cuBerBruce (or anyone else), would you be interested to calculate that unknown maximum length?
 
Last edited:
To my knowledge, these are the maximum lengths for each phase in HTM.

3-color cube reduction -> Solved
phase 1: 15
phase 2: 16
Code:
Depth   Configurations
0    1
1    6
2    75
3    888
4    11082
5    142230
6    1828443
7    23404284
8    299243019
9    3801549936
10    47276120420
11    540970449436
12    4110442428686
13    6007250783685
14    153690321787
15    4022
Total    10,863,756,288,000
Code:
Depth    Configurations
0    1
1    6
2    27
3    120
4    519
5    2124
6    8188
7    27636
8    78644
9    175497
10    248288
11    252210
12    685188
13    1480040
14    883908
15    137200
16    1716
Total    3,981,312

Kociemba´s algorithm
phase 1: 12
phase 2: 18
Code:
Depth    Configurations
0    1
1    4
2    50
3    592
4    7156
5    87236
6    1043817
7    12070278
8    124946368
9    821605960
10    1199128738
11    58202444
12    476
Total    2,217,093,120
Code:
Depth    Configurations
0    1
1    10
2    67
3    456
4    3079
5    19948
6    123074
7    73685
8    4185118
9    22630733
10    116767872
11    552538680
12    2176344160
13    5627785188
14    7172925794
15    3608731814
16    224058996
17    1575608
18    1352
Total    19,508,428,800

Half-turn reduction -> Solved
phase 1: 16
phase 2: 13
Code:
Depth    Configurations
0    1
1    1
2    3
3    23
4    241
5    3002
6    38336
7    490879
8    6298864
9    80741117
10    1028869318
11    12787176355
12    140352357299
13    781415318341
14    421980213679
15    330036864
16    17
Total    1,357,981,544,340
Code:
Depth    Configurations
0    1
1    6
2    27
3    120
4    519
5    2124
6    8188
7    27636
8    78644
9    174521
10    233504
11    116010
12    22228
13    24
Total    663,552

Feather´s algorithm
phase 1: unknown (20 or less)
phase 2: 8
Code:
Depth    Configurations
0    1
1    6
2    27
3    120
4    519
5    2124
6    8188
7    27636
8    78644
Total    117,265

@rokicki or @jaap or @cuBerBruce (or anyone else), would you be interested to calculate that unknown maximum length?
Thanks for providing this statistics.

How long does it take to compute these numbers? or in other words, how long to run the code on a normal PC?
 
Back
Top