thewca / tnoodle-lib

scrambling code portion of TNoodle
GNU General Public License v3.0
39 stars 15 forks source link

Add POC for "layered randomization" big cube scrambles #40

Open gregorbg opened 1 year ago

gregorbg commented 1 year ago

Based on a discussion about allowing 5x5 misscrambles, which pointed us back to https://github.com/thewca/tnoodle-lib/issues/17

Currently, this scrambles all layers that have centers using 3x3 random state scrambles from outside to inside, except for the innermost layer of even NxN, which resorts to using a 2x2 random state scramble. The model scales to any NxN automatically, meaning we can apply the concept to 6x6 and 7x7 on a whim.

As of the intial PR, the outermost layer (the "reduction stage") is not scrambled with a 3x3 random state, although this can be fixed by literally changing one character in the source code (changing a one to a zero in the constant EXCLUDE_OUTER_LAYERS definition)

Obviously this is not tested thoroughly because it's intended as a proof of concept at this stage. These scrambles are not WCA-legal! We also have not had a second pair of eyes to check the original mathematical analysis that prompted this approach.

Feel free to discuss!

gregorbg commented 1 year ago

Renamed based on a suggestion by @lgarron to make clear that this is not equivalent to random state scrambles on big cubes.