.
Hi
blue!
Ok, firstly I need to clarify a mistake I made on the "rows and bands" tests. You suggested that as long as we had a complete generator for rows/bands, then either rotate or flip should produce the full group when added to this generator.
This is, of course, true!
But, when I tested this on N=5 (25x25), however, it failed for flip, but worked for rotate.
I failed to appreciate the reason for the flip failure, however, until I redid the test, paying more attention this time!
I assumed that the
SmallGeneratingSet GAP function that I used to get the rows/bands generating set would have 2 elements, which was suggested by my tests on N=3 and 4. But in this case it actually had 3. I only extracted the first 2 permutations, and so, as a result, my minimal generator did NOT generate the full set of row/band permutations.
(It turns out that the rows/bands group for N=5 is "not solvable" (whatever that means). This means that that GAP can not guarantee that the
SmallGeneratingSet returned is in fact the minimum size. Solvable groups apparently allow easy calculation of a minimal generator. One suspects that a 2-element generator for N=5 DOES in fact exist, and that would of course work with both rotate and flip to produce the full group.)
Ok, but the real upshot is that this demonstrates what I said earlier about rotate being more "powerful" than flip - the rotate permutation still completed the group, without having a complete subgroup of row/band permutations.
This explains why my x and y operations using (N-1) + (N-2) shifts still work, even though the pair {x, y} does not generate the full band/row subgroup! It doesn't actually have to, because of the power of rotate to fill in the gaps (pun intended)!
Thus I am able to eliminate two swaps in each of x and y.
PS: Yes, my shifts are done left to right (+ means "followed by"). I haven't tested whether this order is critical or not, but will do this.
[
EDIT] The order of the shifts is apparently not critical at all, the "+" actually commutes in this particular case!