gavinmok
Member
- Joined
- Jan 18, 2017
- Messages
- 8
As we know, there are 2 kinds of scrambler algorithm: random moves & random states. Unfortunately, neither of them is perfect. Random moves makes the scramble sequence long and the scramble result is not good enough. Random states is only available for 'small puzzle', and the generating costs time.
Now everybody believes that random states is better than random moves, but there is still a philosophical question: How do we know the state is random enough? Even for random states algorithms, we cannot be sure that it is fair enough. Maybe we can make it random enough for CFOP (obviously there should not be an entire cross), but how about for Bridge? or Blindfolded? or any unknown solving methods? There is no an objective mathematical standard. (WCA should think of this, I think.)
If we do need one, I think that the minimum moves to solve the cube is a good choice.
What's the meaning by objective mathematical standard? For example, in 100m running, if the speed of the winds is faster than 2 m/s, then the result cannot be a record, even if you were faster than Usain Bolt. Similarly for 3x3x3 cube, if the minimum moves to solve the cube is less than a specific number, like 15 or 18, than the result should not be a record, even if you solve it in 4 seconds.
Besides, is random states the only available choice for scrambler algorithm? What is the comparison standard that we thought it was really better than random moves? How if we do some other thing to improve random moves algorithm? Random states is better only because we thought that random moves is really "random".
Random states will never be available for 'big puzzles' like 5x5x5 until a genius invents a good solver for them. Random moves is different while we can always improve it. For example, we can judge the status of the cube before every moves, and select the better ones.
I implemented a "random moves" scrambler as above when I was developing a cube timer application. I have pushed the scrambler algorithm to Github with my personal account after asking permission, and the address is: https://github.com/gavinmok/CuScrambler . It supports 2x2x2 to 9x9x9. However, it is only in Objective-C, which is maybe one of the worst programming language in the world. I would post a Java (for the Android version or the API) or C# version later, perhaps.
A background story: Why do I post this thread?
I was seeking help opinion for our developing cube timer to Stefan, and he looked down upon the scramble algorithm because it was 'random moves' and suggested me post the discussion to the forum.
Btw: Do anyone have a good minimum moves cube solver? I wanna do some research and I searched for it but none is good or simple enough. Or I have to implement one by myself.
Now everybody believes that random states is better than random moves, but there is still a philosophical question: How do we know the state is random enough? Even for random states algorithms, we cannot be sure that it is fair enough. Maybe we can make it random enough for CFOP (obviously there should not be an entire cross), but how about for Bridge? or Blindfolded? or any unknown solving methods? There is no an objective mathematical standard. (WCA should think of this, I think.)
If we do need one, I think that the minimum moves to solve the cube is a good choice.
What's the meaning by objective mathematical standard? For example, in 100m running, if the speed of the winds is faster than 2 m/s, then the result cannot be a record, even if you were faster than Usain Bolt. Similarly for 3x3x3 cube, if the minimum moves to solve the cube is less than a specific number, like 15 or 18, than the result should not be a record, even if you solve it in 4 seconds.
Besides, is random states the only available choice for scrambler algorithm? What is the comparison standard that we thought it was really better than random moves? How if we do some other thing to improve random moves algorithm? Random states is better only because we thought that random moves is really "random".
Random states will never be available for 'big puzzles' like 5x5x5 until a genius invents a good solver for them. Random moves is different while we can always improve it. For example, we can judge the status of the cube before every moves, and select the better ones.
I implemented a "random moves" scrambler as above when I was developing a cube timer application. I have pushed the scrambler algorithm to Github with my personal account after asking permission, and the address is: https://github.com/gavinmok/CuScrambler . It supports 2x2x2 to 9x9x9. However, it is only in Objective-C, which is maybe one of the worst programming language in the world. I would post a Java (for the Android version or the API) or C# version later, perhaps.
A background story: Why do I post this thread?
I was seeking help opinion for our developing cube timer to Stefan, and he looked down upon the scramble algorithm because it was 'random moves' and suggested me post the discussion to the forum.
Btw: Do anyone have a good minimum moves cube solver? I wanna do some research and I searched for it but none is good or simple enough. Or I have to implement one by myself.