## The Ultimate FISH Guide

Advanced methods and approaches for solving Sudoku puzzles
Pat wrote:

same house twice in the cover?
can't comment (this gets us into the area where i gave up on his arithmetic)

however, your puzzle should only need 7\8

r1458c1b27\r29c234589
to exclude r9c5

Your logic covers cells r9c458 twice. No other distinction for these cells. However, Templates says that the only single-digit deduction present is:

Code: Select all
`         Templates (A: 1)                <> 7    r9c5`
daj95376
2014 Supporter

Posts: 2624
Joined: 15 May 2006

### Re: The Ultimate FISH Guide

daj95376 wrote:While converting my Fish algorithm to use sets, I also generated the one fish combination that was disallowed by my previous Fish algorithm. The distinction seems to be in how cannibalism in r8c4 is treated.
Code: Select all
` 7-Fish r1458c1b27\r2c23489 +      b8  <> 7    r9c5 +-----------------------------------------------+ |   /   X   X   |   /   #   /   |   /   X   X   | |   X   *   *   |  *X   X   X   |   *   *   *   | |   /   *   *   |   X   /   /   |   .   *   *   | |---------------+---------------+---------------| |   /   X   X   |   X   #   /   |   /   X   X   | |   /   X   X   |   X   /   /   |   /   X   X   | |   /   *   *   |   *   .   .   |   .   *   *   | |---------------+---------------+---------------| |   /   X   X   |   *   *   *   |   .   *   *   | |   /   /   /   |  *X   X   X   |   /   X   X   | |   #   X   X   |   *  **   *   |   .   *   *   | +-----------------------------------------------+`
I don't remember if this scenario of cannibalism was previously resolved.

Requesting opinions on the acceptability of using this fish for this grid?

r9c5 is not a member of a base set, so I see no cannibalism.
r1c5 and r9c1 are endo-fin cells (in two base sets), so if the fish is false each endo-fin must see the same exclusion cell(s).
I think you are missing r9 and c5 in your cover sets.
While 7-Fish r1458c1b27\r29c234589b8 is a valid fish, it is not a desirable first choice for the pattern in the puzzle (shown earlier) because of the endo-fins.
ronk
2012 Supporter

Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

### Re: The Ultimate FISH Guide

ronk wrote:While 7-Fish r1458c1b27\r29c234589b8 is a valid fish, it is not a desirable first choice for the pattern in the puzzle.

Actually, I'm fairly sure your 7-Fish isn't acceptable at all for the puzzle. Your fish has the same problem as Pat's ... too many eliminations when compared to the Templates results.

Code: Select all
` r9c4: covered by r9c4b8   (not a Templates elimination for the puzzle) r9c5: covered by r9c5b8`

If you add [r9] and [c5] again to the cover set, then you cancel Obi-Wahn's count for the endo-fin cells and you get:

Code: Select all
` r9c4: covered by r99c4 b8   (k=4 and cover_count=4 ... unacceptable for elimination) r9c5: covered by r99c55b8   (k=4 and cover_count=5 ...   acceptable for elimination)`
daj95376
2014 Supporter

Posts: 2624
Joined: 15 May 2006

### re: 7\8 (Obi-Wahn's arithmetic)

daj95376 wrote:
Pat wrote:
your puzzle should only need 7\8

r1458c1b27\r29c234589
to exclude r9c5

Your logic covers cells r9c458 twice.
No other distinction for these cells.

However, Templates says that the only single-digit deduction present is:

Code: Select all
`         Templates (A: 1)                <> 7    r9c5`

well i was trying to exclude r9c5,
and you seem to agree with that.

r9c5 is twice in the cover,
and not at all in the base

Pat

Posts: 3700
Joined: 18 July 2005

### Re: The Ultimate FISH Guide

daj95376 wrote:
ronk wrote:While 7-Fish r1458c1b27\r29c234589b8 is a valid fish, it is not a desirable first choice for the pattern in the puzzle.

Actually, I'm fairly sure your 7-Fish isn't acceptable at all for the puzzle. Your fish has the same problem as Pat's ... too many eliminations when compared to the Templates results.

Code: Select all
` r9c4: covered by r9c4b8   (not a Templates elimination for the puzzle) r9c5: covered by r9c5b8`

There are a total of 7 base sets and 9 cover sets, so exclusions are only possible in cells with 3 cover sets (where covering zero base sets). This is satisfied by both r9c4 and r9c5, however ... however ... only r9c5 is seen by both endo-fins r1c5 and r9c1.

The pencimarks and logic set below (without redundant cover b8) pasted into Xsudo confirms the single elimination. In this there are a total of 7 base sets and 8 cover sets, so exclusions are only possible in cells with 2 cover sets. Both endo-fins r1c5 and r9c1 must still see the exclusion cell.

Code: Select all
`+-------------------+-----------------------+---------------------+| 6     8(7)  2     | 3       48(7)   9     | 1     5       48(7) || 1(7)  3     18    | 2       458(7)  58(7) | 789   489     6     || 9     5     4     | 8(7)    1       6     | 278   3       278   |+-------------------+-----------------------+---------------------+| 2     6     89(7) | 5       89(7)   4     | 3     89(7)   1     || 4     1     89(7) | 689(7)  2       3     | 5     689(7)  89(7) || 5     789   3     | 1       6789    78    | 2789  246789  24789 |+-------------------+-----------------------+---------------------+| 3     9(7)  69(7) | 4       6789    2     | 789   1       5     || 8     4     15    | 9(7)    3       15    | 6     29(7)   29(7) || 1(7)  2     1569  | 6789    5689-7  1578  | 4     789     3     |+-------------------+-----------------------+---------------------+     7 Truths = {7R1458 7C1 7B27}     8 Links = {7r29 7c234589}     1 Elimination --> r9c5<>7 `

A graphic would probably be helpful but I make few such contributions anymore.
ronk
2012 Supporter

Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

### Re: The Ultimate FISH Guide

It's my understanding that an Nx(N+k) Fish has fin sectors and not fin cells. So, any argument for an Nx(N+k) Fish that is based on fin cells is invalid IMO. If you ever find an Nx(N+k) Fish for r9c5<>7 that doesn't rely on fin cells, or include some other cell with the same cover_count, let me know.

I still contend that you need to add r99c55 to my 7x7 Fish to get a 7x11 Fish with r9c5 being the only cell with a cover_count=5 and no mention whatsoever of fin cells ... nor extraneous eliminations not supported by Templates.

As for your XSUDO argument, that program simply solved the Templates pattern ... and that pattern lead to r9c5<>7. You could have entered my 7x7 pattern and it would have returned r9c5<>7. You substituted [c5] for my [b8] in the 7x7 Fish ... and added [r9] as a superflous cover set. XSUDO didn't care, but I do.

Bottom Line: If the cover sectors don't at least cover a cell the same number of times as the base sectors, then you're still relying on fin cells to complete your logic. In other words, ( B * C ) = B and ( BI * CI ) = BI for Nx(N+k) Fish.

[Edit: added an additional set constraint and dropped the reference to Obi-Wahn's arithmetic.]
Last edited by daj95376 on Sat Aug 03, 2013 3:07 am, edited 1 time in total.
daj95376
2014 Supporter

Posts: 2624
Joined: 15 May 2006

### Re: The Ultimate FISH Guide

daj95376 wrote:It's my understanding that an Nx(N+k) Fish has fin sectors and not fin cells. So, any argument for an Nx(N+k) Fish that is based on fin cells is invalid IMO. If you ever find an Nx(N+k) Fish for r9c5<>7 that doesn't rely on the fin cells, or include some other cell with the same cover_count, let me know.

That a fin sector is comprised of one or more fin cells is so fundamental that I don't know how to describe it in lesser terms, so I give up.
ronk
2012 Supporter

Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

### Re: The Ultimate FISH Guide

if anyone happened to go back and double check this:
post

my take on obi wans mathematics eliminates the need to add cover and base sectors multiple times to adjust counts and produce eliminations:

I still contend that you need to add r99c55 to my 7x7 Fish

7-Fish r1458c1b27\r2c23489 + b8 <> 7 r9c5

adding C5 is all that's needed.

my solver for the base R1458C9B27 in question produced these:
Type 2 eliminations:
(1) 7x7+2 Base: R1458C9B27, Cover: R29C234589B8, Bi{cells}: 5,73, Exclusions: 77,
(1) 7x7+1 Base: R1458C9B27, Cover: R2C234589B8 Bi{Cells}: 5,73, Exclusions: 77,

the red sector is superfluous and is not needed to yield the same eliminations

edit: upate same fish in my NxN fish solver

7-Fish r1458c1b27\r2c23489b8 + EF(R1C5,R9C1) + F(R4C5) =>> r9c5 <> 7
Code: Select all
` +-----------------------------------------------+ |   /   X   X   |   /   #   /   |   /   X   X   | |   X   *   *   |  *X   X   X   |   *   *   *   | |   /   *   *   |   X   /   /   |   .   *   *   | |---------------+---------------+---------------| |   /   X   X   |   X   #   /   |   /   X   X   | |   /   X   X   |   X   /   /   |   /   X   X   | |   /   *   *   |   *   .   .   |   .   *   *   | |---------------+---------------+---------------| |   /   X   X   |   *   *   *   |   .   *   *   | |   /   /   /   |  *X   X   X   |   /   X   X   | |   #   X   X   |   *  **   *   |   .   *   *   | +-----------------------------------------------+`

.... which is also seen in hudoku as:
Finned Mutant Leviathan: 7 r1458c1b27 r2c23489b8 fr4c5 efr1c5 efr9c1 => r9c5<>7
Last edited by StrmCkr on Sat Aug 03, 2013 11:53 am, edited 2 times in total.
Some do, some teach, the rest look it up.

StrmCkr

Posts: 942
Joined: 05 September 2006

### Re: The Ultimate FISH Guide

Looking at this very basically, r9 isn't required in the cover set.
We then get a 7x7 mutant fish r1458,c1,b27\r2,c234589 which passes a test of mine, that every member of the base and cover sets must contain a body (or vertex) cell.

We now apply this basic logic:
If all PE cells are false the fish is true and will contain N truths so all the fin cells will be false too.
If any PE is true the fish is false and so the only fin cells that must be false are those that see all the PE cells.

The PE cells are r1c5 & r9c1 and the only fin that sees both of them is r9c5 which therefore must be false.

I don't claim to understand all the intricacies of Nx(N+1) fish, but in this case a NxN mutant fish does the trick.

StrmCkr,
I have tried to follow your post but I need to understand your rules for setting the base and cover sets better. Having selected a base set what are the requirements for the cover set?
David P Bird
2010 Supporter

Posts: 1040
Joined: 16 September 2008
Location: Middle England

### Re: The Ultimate FISH Guide

I'm not a fan of Nx(N+k) fish either but it has been very useful in explaining some eliminations that eluded NxN fish. We have since recovered some NxN fish with sharper fishing tools and remote fins but the complexities of Mutant Finned Giant fish May prove that a simpler Nx(N+k) is a better option!!!

tarek

Posts: 2897
Joined: 05 January 2006

### Re: The Ultimate FISH Guide

Tarek, I accept what you say about when Nx(N+k) fish can be useful, but hardly in this case where the collection of cover and base sets includes an NxN fish!

DAJ was arguing that Xsudo was reporting an elimination found using templates, but the evidence isn't conclusive, as the fully contained 7x7 fish should be all that it needed.

I understand he was using this as testbed for checking Nx(N+k) set algorithms, but haven't we got any more suitable examples?

As a casual reader of this thread, I would also appreciate a reference to non-NxN fish and a link to their definition and proofs in your opening post.
David P Bird
2010 Supporter

Posts: 1040
Joined: 16 September 2008
Location: Middle England

### Re: The Ultimate FISH Guide

Just a very personal POV, FWIW ...
In vanilla sudoku, I am only interested in "Fish" when the number of clues is greater than 3 and when there are 3 clues on a "diagonal". In these cases, manual templating reduces easily to the simplest unquestionable "(No)Fishes". In all the other cases, I am using a "combination" of manual templating and "Fish" to avoid randomness while determining all the single digit exclusions.
In the case of daj's example, the manual templating is based on 1r29c1 and straightfowardly leads to -7r9c5 essentially because of the X-Chain[3] : r1c5=r1c9-r3c7=r6c7-r6c6=r9c6 when r2c1=7. The corresponding interpretations : Starfish(7) ...
Code: Select all
`+-------------------+----------------------+-----------------------+| 6     8(7)  2     | 3     48(7)   9      | 1       5       48(7) || 1(7)  3     18    | 2     4578    58(7)  | 89(7)   489     6     || 9     5     4     | 78    1       6      | 28(7)   3       278   |+-------------------+----------------------+-----------------------+| 2     6     789   | 5     789     4      | 3       789     1     || 4     1     789   | 6789  2       3      | 5       6789    789   || 5     789   3     | 1     6789    8(7)   | 289(7)  246789  24789 |+-------------------+----------------------+-----------------------+| 3     9(7)  69(7) | 4     6789    2      | 89(7)   1       5     || 8     4     15    | 79    3       15     | 6       279     279   || 1(7)  2     1569  | 6789  5689-7  158(7) | 4       789     3     |+-------------------+----------------------+-----------------------+`
as 5 base/7 cover sets :
5 Truths = {7R1 7C167 7B7}
7 Links = {7r2679 7c5 7b13}
1 Elimination --> r9c5<>7
as a Forbidding Matrix :
Code: Select all
`r9c7r9c1=r2c1r9c1======r7c23r1c5=r1c2=======r1c9     r2c7=r7c7==r3c7=r6c7r9c6=r2c6============r6c6`

as a Kraken 7C7 :
r2c7-r2c1=r9c1
||
r3c7-r1c9=*Kite[r1c5=*r1c2-r2c1=r9c1]
||
r6c7-r6c6=*XWing[r9c6=*r2c6-r2c1=r9c1]
||
r7c7-r7c23=r9c1
In the last two cases : r9c1=r1c5=r9c6 :=> -7r9c5

Note : the overlapping of the base sets 7C1,7B7 can be avoided by replacing 7B7 by 7R8. In such a case, the quasi-similar interpretations read as follows :

Hidden Text: Show
Code: Select all
`+------------------+----------------------+-----------------------+| 6     8(7)  2    | 3     48(7)   9      | 1       5       48(7) || 1(7)  3     18   | 2     4578    58(7)  | 89(7)   489     6     || 9     5     4    | 78    1       6      | 28(7)   3       278   |+------------------+----------------------+-----------------------+| 2     6     789  | 5     789     4      | 3       789     1     || 4     1     789  | 6789  2       3      | 5       6789    789   || 5     789   3    | 1     6789    8(7)   | 289(7)  246789  24789 |+------------------+----------------------+-----------------------+| 3     79    679  | 4     6789    2      | 89(7)   1       5     || 8     4     15   | 9(7)  3       15     | 6       29(7)   29(7) || 1(7)  2     1569 | 6789  5689-7  158(7) | 4       789     3     |+------------------+----------------------+-----------------------+`
as 5 base/8 cover sets :
5 Truths = {7R18 7C167}
8 Links = {7r269 7c5 7b1389}
1 Elimination --> r9c5<>7
as a Forbidding Matrix
Code: Select all
`r9c7r9c1=r2c1r8c4======r8c89r1c5=r1c2=======r1c9     r2c7=r7c7==r3c7=r6c7r9c6=r2c6============r6c6`

as a Kraken 7C7
r2c7-r2c1=r9c1
||
r3c7-r1c9=*Kite[r1c5=*r1c2-r2c1=r9c1]
||
r6c7-r6c6=*XWing[r9c6=*r2c6-r2c1=r9c1]
||
r7c7-r8c89=r8c4
In the last two cases : r9c1=r1c5=r9c6=r8c4 :=> -7r9c5
JC Van Hay

Posts: 719
Joined: 22 May 2010

### Re: The Ultimate FISH Guide

David P Bird wrote:Looking at this very basically, r9 isn't required in the cover set.
We then get a 7x7 mutant fish r1458,c1,b27\r2,c234589 which passes a test of mine, that every member of the base and cover sets must contain a body (or vertex) cell.

DPB, You found one of the 11 other 7x7 fish present in my grid.

Code: Select all
`7-Fish r1458c16b7\r2c2389b5 + r9|c5|b8  <> 7    [r9c5]7-Fish r1458c1b27\r2c23489  + r9|c5|b8  <> 7    [r9c5]7-Fish r18c167b47\r26c23b39 + r9|c5|b8  <> 7    [r9c5]7-Fish r18c16b467\r26c2389  + r9|c5|b8  <> 7    [r9c5]`

DPB wrote:As a casual reader of this thread, I would also appreciate a reference to non-NxN fish and a link to their definition and proofs in your opening post.

I second that request. So far, the only presentation that I can recall on Nx(N+k) Fish is in Obi-Wahn's post, and he says:

Obi-Wahn wrote:_

Construction Rule: We have a Fish pattern if we can construct two sets of sectors, a Base set and a Cover set, in such a way that every candidate of a given digit belongs to at least as many Cover sectors as it belongs to Base sectors.

My ( BI * CI ) = BI constraint falls under this caveat. And, my 7x11 fish is the only one presented that meets his Construction Rule.
daj95376
2014 Supporter

Posts: 2624
Joined: 15 May 2006

### Re: The Ultimate FISH Guide

DAJ wrote:DPB, You found one of the 11 other 7x7 fish present in my grid.

Not at all. The grid you presented seemed invalid to me because the 6 occupied cells in r9 consisted of 1 PE cell and 5 fin cells all of which could be considered false. Removing the r9 cover sector to make it fit my 'vertex cell in every base and cover sector' rule then exposed one of your original fish.

I admit I haven't explored these lop-sided fish, but it would seem to me that either this rule should be applied or such situations be detected and provided for in the the elimination-finding formulae.

What was behind my two previous posts is the concept that a general fish finding algorithm could be based on lop-sided principles but should be able to detect when a hit is found for k=0. However, I was too brief and never specifically made the point.
David P Bird
2010 Supporter

Posts: 1040
Joined: 16 September 2008
Location: Middle England

### re: 7\8 (Obi-Wahn's arithmetic)

on Thu, Pat wrote:

your puzzle should only need 7\8

r1458c1b27\r29c234589
to exclude r9c5

oops

r1c5 twice in base,
only once in cover
— not valid

and on Fri, i failed to understand your response
you were pointing out that If my 7\8 were valid
then it would exclude r9c4589
(where in fact only r9c5 can be excluded)

daj95376 wrote:
Obi-Wahn wrote:Construction Rule: We have a Fish pattern if we can construct two sets of sectors, a Base set and a Cover set, in such a way that every candidate of a given digit belongs to at least as many Cover sectors as it belongs to Base sectors.

Pat

Posts: 3700
Joined: 18 July 2005

PreviousNext