How Close Are We to God's Algorithm?
Submitted by Jerry Bryan on Thu, 03/27/2008 - 11:26.
Tom Rokicki's message about 25 moves as a new upper limit in the face turn metric got me to thinking about how close we might be to God's Algorithm.
First, I think a distinction must be made that I really hadn't thought about very much. It occurs to me that Tom's method or something akin to it might eventually be able to determine the diameter of the cube group in the face turn metric without actually enumerating the complete God's algorithm. Which is to say, Tom's method is a near-optimal solver for cosets. Generally speaking, it doesn't determine optional solutions and it doesn't determine solutions for individual positions. But that's ok for determining the diameter. If Tom's program could reduce the overall upper limit for the diameter down to some N and if at least one position could be found for which the optional solution required N moves, then the diameter would be proven to be N. And the best candidate we have for N right now is 20. So I think it's possible or even likely that the diameter problem will be solved before the full God's Algorithm problem will be solved. That possibility hadn't occurred to me until recently.
Second, how fast does does a full God's Algorithm program have to run? As a first approximation, let's say that the run time can be reduced to about a million computer years and that we desire to solve the problem in about a year. That means that a million volunteers on the Internet would have to be willing to run a cube solver for a year to achieve that desired result. Whether it would be possible to get that many volunteers is problematic, but let's proceed on the assumption it would be possible.
It is well known that the cube space of about 4.3E19 positions can be reduced by about 96 times using symmetry and antisymmetry. That reduces the search space to about 4.5E17 positions that would have to be solved optimally. Each of our 1,000,000 computers would have to solve about 4.5E11 positions. There are 31536000 seconds in a non-leap year. So each of our million computers would have to solve optimally a little better than 14,000 positions per second. (I calculate 14,286.5 positions per second to be precise, but such precision is silly when there are so many approximations that have gone into the calculations.)
So that raises the question of how close are we to solving 14,000 positions per second. Tom's program is reported to solve 16 million positions per second. However, I think we are comparing apples and oranges, and maybe Tom can clarify. I think he is reporting near-optimal solutions rather than optimal solutions. And I think he is multiplying the number of cosets solved by the number of positions in the coset to come up with the 16 million figure. Actually, I get a slightly different answer than 16 million, but it's very close. The coset size is about 19.5 billion. The average time to solve a coset is reported to be 18 minutes, which yields about 975 million positions per minute. Dividing by 60 yields about 18 million positions per second, which is close to Tom's 16 million. I'm probably doing something wrong in my calculations. If so, someone please correct me.
In any case, I think that if it would be possible to achieve optimal solutions for about 14,000 positions per second, and if it would be possible to have about a million volunteers on the Internet to run such a program, the the full God's Algorithm could be calculated in about a year. I can think of three basic algorithms that could be used to accomplish such a calculation. In the interest of space, I'll discuss those three algorithms in a separate message.
First, I think a distinction must be made that I really hadn't thought about very much. It occurs to me that Tom's method or something akin to it might eventually be able to determine the diameter of the cube group in the face turn metric without actually enumerating the complete God's algorithm. Which is to say, Tom's method is a near-optimal solver for cosets. Generally speaking, it doesn't determine optional solutions and it doesn't determine solutions for individual positions. But that's ok for determining the diameter. If Tom's program could reduce the overall upper limit for the diameter down to some N and if at least one position could be found for which the optional solution required N moves, then the diameter would be proven to be N. And the best candidate we have for N right now is 20. So I think it's possible or even likely that the diameter problem will be solved before the full God's Algorithm problem will be solved. That possibility hadn't occurred to me until recently.
Second, how fast does does a full God's Algorithm program have to run? As a first approximation, let's say that the run time can be reduced to about a million computer years and that we desire to solve the problem in about a year. That means that a million volunteers on the Internet would have to be willing to run a cube solver for a year to achieve that desired result. Whether it would be possible to get that many volunteers is problematic, but let's proceed on the assumption it would be possible.
It is well known that the cube space of about 4.3E19 positions can be reduced by about 96 times using symmetry and antisymmetry. That reduces the search space to about 4.5E17 positions that would have to be solved optimally. Each of our 1,000,000 computers would have to solve about 4.5E11 positions. There are 31536000 seconds in a non-leap year. So each of our million computers would have to solve optimally a little better than 14,000 positions per second. (I calculate 14,286.5 positions per second to be precise, but such precision is silly when there are so many approximations that have gone into the calculations.)
So that raises the question of how close are we to solving 14,000 positions per second. Tom's program is reported to solve 16 million positions per second. However, I think we are comparing apples and oranges, and maybe Tom can clarify. I think he is reporting near-optimal solutions rather than optimal solutions. And I think he is multiplying the number of cosets solved by the number of positions in the coset to come up with the 16 million figure. Actually, I get a slightly different answer than 16 million, but it's very close. The coset size is about 19.5 billion. The average time to solve a coset is reported to be 18 minutes, which yields about 975 million positions per minute. Dividing by 60 yields about 18 million positions per second, which is close to Tom's 16 million. I'm probably doing something wrong in my calculations. If so, someone please correct me.
In any case, I think that if it would be possible to achieve optimal solutions for about 14,000 positions per second, and if it would be possible to have about a million volunteers on the Internet to run such a program, the the full God's Algorithm could be calculated in about a year. I can think of three basic algorithms that could be used to accomplish such a calculation. In the interest of space, I'll discuss those three algorithms in a separate message.