This post examines Bob Hanson’s grid analysis, the Sudoku Assistant approach to regular fish, as described in Sudoku Assistant – Solving Techniques.

Bob Hanson actually takes his generalized method fishing! Out on Sudoku lake, the GN looks like this:

If n rows (columns) contain candidates of a number in only n columns(rows), then those columns(rows) cannot contain candidates of the number in other rows(columns).

To apply GN, set A is the set of N unsolved rows for number k. If n of those rows have candidates in only n columns (Set B), each column contains one and only one true candidate in rows A, and therefore cannot have a true candidate outside or the rows of A.

As Bob points out, the phenomenon of n rows locking column positions for the exclusive use of their candidates is the same as numbers locking unit cells for the exclusive use of their candidates. Lines compete with other lines for positions for their candidates. By numbering the positions along a line and cells along a unit, we make lines competing for positions just like numbers competing for cells. SA uses Bob’s *analyzeX* for both.

I’ll use a simple grid analysis example from Bob’s report to show exactly how this works. We can use the Sysudoku Suset algorithm, the scratchpad equivalent of analyzeX. The example is two swordfish removing the same victim.

The sysudokie version is a 5-panel showing the candidates only, and with vertical bars in a free row showing the rows of one swordfish, and dashes in a free column showing the columns of the other swordfish.

Bob’s version is a dot candidate grid with freeforms delineating two swordfish, and two X-chain nice slink loops. The 5’s here just mark the units without of 5-candidates. How does SA find one of these swordfish?

Here is Hanson’s description of the grid analysis process:

The example above shows what SA’s “looking for regions” is like. Candidates of the number 5 lie in 6 rows and 6 columns, but if there are subsets, we know that the maximum size of subset is 3, because 3 rows and 3 columns are assigned 5 clues and 6/2 = 3. For the row analysis, column positions of all rows on a list. Top to bottom, we have

{59, 67, 236, 29, 36, 25}

The scratchpad suset algorithm takes each suset, and combines it with every other one to its right on the list. The combination is just to include all numbers and eliminate duplicates (a set union), while keeping track of the number of numbers. If it forms a suset with n numbers in a list of size n, it has found a Hanson 3 x 3 grid. In this case, we scratch out

59, 67, 236, 29, 36, 25, 5679, 23569, 259

and we have the blue region and swordfish. Believe it or not, this is how I started fishing, but I got tired of playing computer and started looking, human style. I still get out the scratchpad when an almost fish teases my cork, but won’t byte.

That’s all we need to check as far as SA grid analysis finding all regular fish. But does it find anything else? Well, it does find ungrouped nice loops, but we may have to keep reading to discover what else.

Unfortunately, the remainder of Bob’s section on grid analysis is a crash landing.

His next example is a 5 x 5 grid that seems to fullfill the step 1 requirement above in columns, with the removal of outlying candidates in r1.

The problem is, you can’t do grid analysis as Bob has described, without locating all of the 1-candidates, so how can you show that with dots left off of most squares? Yes, you can say that candidates outside of the grid are excluded from grid rows, but that comes after you have laid down the grid. Bob, how did you say SA comes up with that grid? By the way, 5 x 5 is too large. Following the first example, since there are three 1-clues, 3 x 3 is big enough.

OK, put in the dots for the full completion “board”. But does SA do this with nothing more than completion? I thought I understood that cross hatching and range checking came first. Not in this example. Cross-hatch it to prove otherwise.

I wish I could say this section redeems itself with the last example, but it doesn’t. There are three 4 clues, so a 3 x 3 grid is sufficient. There is also a 4-wing, the equivalent of a naked pair. That leaves

(9 – 3 – 2 )/2 = 2,

another 2 x 2 (4-wing) as the only other possible locked grid. The two way jellyfish is dead, i.e. has no victims.

Oh well, Happy 4^{th}!

Next time, we explore Hanson’s bent naked subsets, a novel idea.

I haven’t properly timed myelsf, but aside from a couple of cells, I’m having trouble breaking into the puzzle. It’s just taking a lot of digging and adding and hoping for the best. Will give you an update once I solve it. Thanks for the puzzle nonetheless!

Manon, if all you can tell me is “digging and adding”, don’t bother. I already have the solution.