Voltara
Member
My online scrambler at https://voltara.org/cube/ just got its first major update in nearly ten years. It now produces optimal move sequences, i.e. the minimum number of moves necessary to reach a randomly selected position (17 or 18 moves, ~94% of the time.)
Previously, it used a C++ implementation of Kociemba's algorithm that I wrote back in 2003. The new version uses multiple solvers that work in tandem to find optimal solutions to randomly generated positions. These are written in C++ and CUDA, and use Two-Phase and IDA* to prove upper and lower bounds respectively for a meet-in-the-middle approach.
The solvers are a still work in progress and haven't been tuned yet (I have been favoring correctness over raw speed), but they are currently finding optimal solutions at an average rate of about 2.7/second on my Mini-ITX desktop. This is within the range of what I should expect from this class of hardware, based on results reported previously by Tomas Rokicki.
Previously, it used a C++ implementation of Kociemba's algorithm that I wrote back in 2003. The new version uses multiple solvers that work in tandem to find optimal solutions to randomly generated positions. These are written in C++ and CUDA, and use Two-Phase and IDA* to prove upper and lower bounds respectively for a meet-in-the-middle approach.
The solvers are a still work in progress and haven't been tuned yet (I have been favoring correctness over raw speed), but they are currently finding optimal solutions at an average rate of about 2.7/second on my Mini-ITX desktop. This is within the range of what I should expect from this class of hardware, based on results reported previously by Tomas Rokicki.