To summarize, the following is not a canonical form since not all puzzles can be transformed into it:
- Code: Select all
|123|456|789|
|456|...|...|
|789|...|...|
There are many options for canonical forms. If the puzzle is transformed to have the smallest row order lexicographic value, then the row-normal form develops:
- Code: Select all
|123|456|789|
|45.|...|...|
|...|...|...|
If, in addition, box 1 is required to be 1-9 in row order then the box-normal form develops:
- Code: Select all
|123|45.|...|
|456|...|...|
|789|...|...|
where the extra "45" always occurs although not explicitly required by the definitions (braid analysis helped me to picture why).
Transformation of a puzzle into canonical form is accomplished by the following operations:
1. Permuting the three stacks (6 permuations)
2. Permuting the three bands (6 permuations)
3. Permuting the three columns within a stack (6^3 permuations)
4. Permuting the three rows within a band (6^3 permuations)
5. Transposing or 90deg rotation (2 permuations)
6. Remapping the 9 digits (9! permutations)
This allows up to 6^8*2*9!=1,218,998,108,160 arrangements (including automorphisms - identical puzzles after transformation). Actual canonicalization can be accomplished with 9*6^2*2=648 operations since the remaining cell order and digit mapping can be immediately determined:
1. Permuting the 9 boxes to box 1 (9 permutations)
2. Permuting the three columns in box 1 (6 permutations)
3. Permuting the three rows in box 1 (6 permutations)
4. Transposing or 90deg rotation (2 permutations)