Solver 2.1 Info

This version of the solver adds new search array Dist7 (edge cube) for use with the optimal and presolved solvers. The full size of the edge cube is 981 billion configs which reduces by symmetry to 21 billion, it is further reduced to 660 MB by excluding three bits from edge twist and storing four configs per byte. The distribution of configs by depth for Dist7 is here. The distribution for the full size edge cube is here, search for: "Analysis of 3x3x3 edges only using q+h turns".

A different method is used for pruning with search arrays that contain 6-color cube components (Dist7 contains "EPR" component as defined here) to avoid eliminating 3-color suboptimal solutions. Instead of pruning based on search depth, it is done based on the minimum length suboptimal solution that has currently been found (call it "minmv") thus no 3-color suboptimal solutions that may prove to be optimal will be eliminated.

This method relies on the 3-color pruning to quickly find a solution close to optimal because it can only prune as efficiently as the normal method when minmv = depth+1. This is actually the state that the optimal solver is often in when solving random cubes because it already has a 19 move suboptimal solution and it is searching depth 18 so in either case it is pruning nodes where distance > 18 (prune if dist > depth or dist ≥ minmv).

For best performance with concurrent processing, minmv should be shared between workers so that they can all use the lowest minmv found by any of them. Prior versions of the solver did not share minmv which is why the log shows multiple workers finding the same length solutions. This version does share and as a result there are fewer solutions in the log, usually only one for each solution length found.