The Ultimate FISH Guide

Advanced methods and approaches for solving Sudoku puzzles

Fish or NoFish ??

Postby ronk » Fri Jul 02, 2010 11:11 am

Is the exclusion r9c3<>7 below due to a Fish or a NoFish? If a fish, can use of remote fin(s) be avoided?

Code: Select all
.4.......8...91.5.9....8.6216..4.......8.3.......1..9553.7....6.9.35...1.......2.

After SSTS and one (or two) swordfish for r6c37<>7:
 2367  4     23567 | 256   2367  267   | 18    18    9
 8     27    236   | 246   9     1     | 347   5     47
 9     1     357   | 45    37    8     | 347   6     2
-------------------+-------------------+------------------
 1     6     27    | 9     4     5     | 27    3     8
 247   5     9     | 8     267   3     | 12467 147   47
 2347  278   2348  | 26    1     267   | 246   9     5
-------------------+-------------------+------------------
 5     3     1     | 7     28    24    | 9     48    6
 26    9     268   | 3     5     46    | 478   478   1
 467   78    4678  | 1     68    9     | 5     2     3

There is only one single-digit templates exclusion ... r9c3<>7:
 7  .  7 |  .  7  7 |  .  .  .
 .  7  . |  .  .  . |  7  .  7
 .  .  7 |  .  7  . |  7  .  .
---------+----------+----------
 .  .  7 |  .  .  . |  7  .  .
 7  .  . |  .  7  . |  7  7  7
 7  7  . |  .  .  7 |  .  .  .
---------+----------+----------
 .  .  . |  7  .  . |  .  .  .
 .  .  . |  .  .  . |  7  7  .
 7  7 -7 |  .  .  . |  .  .  .
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Re: The Ultimate FISH Guide

Postby daj95376 » Sat Jul 03, 2010 1:29 am

I see a Kraken X-Wing where the fin cell needs a network to perform the elimination.

Code: Select all
X-Wing r34\c37 or r3c5=7

(7): r3c5 - r1c6 = r6c6  - r6c2
             ||                 = r9c2 - r9c3
            r3c7 = r2c79 - r2c2

 +-----------------------------------+
 |  7  .  7  |  .  7  7  |  .  .  .  |
 |  .  7  .  |  .  .  .  |  7  .  7  |
 |  .  . *7  |  . @7  .  | *7  .  .  |
 |-----------+-----------+-----------|
 |  .  . *7  |  .  .  .  | *7  .  .  |
 |  7  .  .  |  .  7  .  |  7  7  7  |
 |  7  7  .  |  .  .  7  |  .  .  .  |
 |-----------+-----------+-----------|
 |  .  .  .  |  7  .  .  |  .  .  .  |
 |  .  .  .  |  .  .  .  |  7  7  .  |
 |  7  7 -7  |  .  .  .  |  .  .  .  |
 +-----------------------------------+

Unfortunately, I doubt if this addresses the specifics of your query.
daj95376
2014 Supporter
 
Posts: 2624
Joined: 15 May 2006

Re: The Ultimate FISH Guide

Postby David P Bird » Sun Jul 04, 2010 12:37 am

Code: Select all
  |       c  |       b  | c        | Box
--|----------|----------|----------|- -- -
c | X  /  -  | /  -  X  | /  /  /  | b . .   b = Base set
c | /  X  /  | /  /  /  | -  /  X  |         c = Cover set
  | /  /  X  | /  .  /  | X  /  /  | . . b   
--|----------|----------|----------|- -- -   / = Empty
b | /  /  X  | /  /  /  | X  /  /  |       
  | .  /  /  | /  .  /  | -  .  .  |         X = Fish
c | -  -  /  | /  /  X  | /  /  /  |         + = Fin
--|----------|----------|----------|- -- -   - = Spot
  | /  /  /  | .  /  /  | /  /  /  | b . .   
  | /  /  /  | /  /  /  | -  .  /  |         
  | +  +  X  | /  /  /  | /  /  /  |         
--|----------|----------|----------|- -- - 
 Mutant 5Fish:r4c6b137\r126c37
(7)r9c12 = (7)5Fish:r4c6b137\r126c37 - (7)r69c2 = (7)r2c2 - (7)r2c79 = (7)r3c7 - (7)r4c7 = (7)r4c3 => r9c3 <> 7

If the mutant fish is false (ie has less than 5 truths) then one of the two fin cells at r9c12 must be true.
If the fish is true then all fin and spot cells are false which leads to (7)r4c3 being true too.
Thus r9c3 is false which makes this fish false too.

My take on this is that the construction of the base and cover sets is perfectly valid as each house in both sets holds at least one fish cell, and it is only because some other cells have already been eliminated that it can't be true. However once the elimination of r9c3 is made, box 7 no longer holds a fish cell and the fish becomes invalid.

From my puritanical standpoint a fish pattern should only consist of the cells in the two constraint sets and nothing more. This elimination depends on the external cell r5c2 being empty which consequently must be linked to the fish using an AIC. It then ceases to be a purely fish-based elimination. On these grounds I suspect most, if not all, remotely finned fish patterns would also fail.

[Edit] r5c3 corrected to r5c2
Last edited by David P Bird on Sun Jul 04, 2010 8:49 am, edited 1 time in total.
David P Bird
2010 Supporter
 
Posts: 1043
Joined: 16 September 2008
Location: Middle England

Re: The Ultimate FISH Guide

Postby ronk » Sun Jul 04, 2010 3:28 am

David P Bird wrote: Mutant 5Fish:r4c6b137\r126c37[/code](7)r9c12 = (7)5Fish:r4c6b137\r126c37 - (7)r69c2 = (7)r2c2 - (7)r2c79 = (7)r3c7 - (7)r4c7 = (7)r4c3 => r9c3 <> 7

David, I can't make your fish work. Don't know exactly why, but suspect it has something to do with the elimination candidate being in a base set (b7). Will take another look in the AM.
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Re: The Ultimate FISH Guide

Postby JC Van Hay » Sun Jul 04, 2010 1:33 pm

A pure net solution

    Image

Code: Select all
*7  . *7 |  . *7 *7 |  .  .  .
 .  7  . |  .  .  . |  7  .  7
 .  . *7 |  . *7  . | *7  .  .
---------+----------+----------
 .  . *7 |  .  .  . | *7  .  .
*7  .  . |  . *7  . | *7 *7 *7
 7  7 -7 |  .  .  7 | -7  .  .
---------+----------+----------
 .  .  . |  7  .  . |  .  .  .
 .  .  . |  .  .  . |  7  7  .
 7  7 -7 |  .  .  . |  .  .  .

The 4 base sets (7)r1345 and the Sudoku puzzle rules are sufficient to justify the simultaneous eliminations of (7)r6c37&r9c3.

XWing[r34/c37]=(7)r3c5-[r1c56 AND r5c5]=Franken Swordfish[r145/c13b6] :=> (7)r6c37&r9c3


A Fish Solution

    Image

Code: Select all
*7  . *7 |  .  7 *7 |  .  .  .
 . *7  . |  .  .  . | *7  . *7
 .  . *7 |  .  7  . | *7  .  .
---------+----------+----------
 .  .**7 |  .  .  . | *7  .  .
*7  .  . |  .  7  . |  7  7  7
*7 *7  . |  .  . *7 |  .  .  .
---------+----------+----------
 .  .  . |  7  .  . |  .  .  .
 .  .  . |  .  .  . |  7  7  .
*7 *7-*7 |  .  .  . |  .  .  .

Locally Finned Whale : (7)r49c6b134/r126c137 with XF(7)r9c2 NF(7)r4c3 :=> r9c3<>7 (autocannibalism).

Note : the fish body has only one solution, as in jellyfish4 on the previous page!


A NoFish Solution

    Image

Code: Select all
(*) form an invalid STARFISH in the Columns c12569/r1256b2
w/o at least one (G) preventing it

[Note the central role played by the Finned XWing in the columns 1 & 5]

each (G) => [r9c3]<>7

 *7 .  7 |  . *7 *7 |  .  .  .
 . *7  . |  .  .  . |  7  . *7
 .  .  7 |  . *7  . |  7  .  .
---------+----------+----------
 .  .  7 |  .  .  . |  7  .  .
*7  .  . |  . *7  . |  7  7 *7
*7 *7  . |  .  . *7 |  .  .  .
---------+----------+----------
 .  .  . |  7  .  . |  .  .  .
 .  .  . |  .  .  . |  7  7  .
G7 G7 -7 |  .  .  . |  .  .  .
JC
[edit] corrected a typo in cover sets of a NoFish solution : r1235b2 -> r1256b2 ! in accordance with the accompanying picture
Last edited by JC Van Hay on Sun Jul 04, 2010 11:39 pm, edited 2 times in total.
JC Van Hay
 
Posts: 719
Joined: 22 May 2010

Re: The Ultimate FISH Guide

Postby daj95376 » Sun Jul 04, 2010 5:37 pm

David, interesting network.

A) Assume fin cells are false.

B) Perform unfinned fish eliminations also.

C) Demonstrate that resulting candidate grid would perform the desired elimination.

Code: Select all
5Fish:r4c6b137\r126c37

             -------------
            /             \
(7): r9c12 = 5Fish - r6c2 = r2c2 - r2c79 = r3c7 - r4c7 = r4c3 => r9c3<>7
Last edited by daj95376 on Tue Jul 06, 2010 8:49 pm, edited 3 times in total.
daj95376
2014 Supporter
 
Posts: 2624
Joined: 15 May 2006

Re: The Ultimate FISH Guide

Postby David P Bird » Sun Jul 04, 2010 7:29 pm

JC I can get a linear AIC incorporating your mutant 6Fish:

Code: Select all
  | c     c  |       b  | c        | Box
--|----------|----------|----------|- -- -
c | -  /  -  | /  -  X  | /  /  /  | b . .   b = Base set
c | /  X  /  | /  /  /  | -  /  X  |         c = Cover set
  | /  /  X  | /  .  /  | X  /  /  | . . b   
--|----------|----------|----------|- -- -   / = Empty
b | /  /  +  | /  /  /  | X  /  /  | b .   
  | X  /  /  | /  .  /  | -  .  .  |         X = Fish
c | -  X  /  | /  /  X  | /  /  /  |         + = Fin
--|----------|----------|----------|- -- -   - = Spot
  | /  /  /  | .  /  /  | /  /  /  |         
  | /  /  /  | /  /  /  | -  .  /  |         
b | X  +  X  | /  /  /  | /  /  /  |         
--|----------|----------|----------|- -- - 
 Mutant 6fish:r49c6b134\r126c137

(7)r4c4,r9c2[Fin set] = (7)6Fish:r49c6b134\r126c137 - (7)r1c13[Spots] = (7)r1c46 - (7)r3c5 = (7)2Fish:r34c37 => r9c3 <> 7

Like the one I posted before, this AIC uses external constraints such as b2 & r4, so it also fails my "pure fish" exclusion test.

I don't understand your No-fish solution though.
The 5Fish you give is valid in my book as each constraint holds a body cell and it's only the contents of external cells that make it impossible in practice.
My first problem is that r6c12 are marked as if they are body cells but I take them to be fins and so they would also be guardians.
My second problem is that I don't think proving the fish must be false can be done using a linear inference chain. It either requires a net based approach and/or splitting out a sub-puzzle assuming all spot and fin cells are false which amounts to bifurcation – two techniques I refuse to allow myself.
David P Bird
2010 Supporter
 
Posts: 1043
Joined: 16 September 2008
Location: Middle England

Re: The Ultimate FISH Guide

Postby daj95376 » Mon Jul 05, 2010 3:23 am

How about a scenario where the unfinned fish results in a candidate grid where one candidate is forced true ... and it's not!

Code: Select all
 finned Franken Jellyfish c129b5\r1256 w/fins r9c12
 +-----------------------------------+
 | *7  . ~7  |  . ~7 ~7  |  .  .  .  |
 |  . *7  .  |  .  .  .  | ~7  . *7  |
 |  .  .  7  |  .  7  .  |  7  .  .  |
 |-----------+-----------+-----------|
 |  .  .  7  |  .  .  .  |  7  .  .  |
 | *7  .  .  |  . *7  .  | ~7 ~7 *7  |
 | *7 *7  .  |  .  . *7  |  .  .  .  |
 |-----------+-----------+-----------|
 |  .  .  .  |  7  .  .  |  .  .  .  |
 |  .  .  .  |  .  .  .  |  7  7  .  |
 | #7 #7 -7  |  .  .  .  |  .  .  .  |
 +-----------------------------------+

(7): r9c12 - r9c3

(7): r1c1 - r1c56 = r3c5 - r5c5 = r6c6 - r6c2 = r4c3 - r9c3
            ||                                /
            r56c1 ----------------------------
daj95376
2014 Supporter
 
Posts: 2624
Joined: 15 May 2006

Re: The Ultimate FISH Guide

Postby David P Bird » Mon Jul 05, 2010 9:50 am

Re-visiting that finned x-wing and allowing split group nodes we can get:

Code: Select all
 +-----------------------------------+
 |  7  .  7  |  .  7  7  |  .  .  .  |
 |  .  7f .  |  .  .  .  |  7d .  7d |
 |  .  .  7a |  .  7b .  |  7ac.  .  |
 |-----------+-----------+-----------|
 |  .  .  7a |  .  .  .  |  7a .  .  |
 |  7  .  .  |  .  7c .  |  7  7  7  |
 |  7  7f .  |  .  .  7d |  .  .  .  |
 |-----------+-----------+-----------|
 |  .  .  .  |  7  .  .  |  .  .  .  |
 |  .  .  .  |  .  .  .  |  7  7  .  |
 |  7  7g 7! |  .  .  .  |  .  .  .  |
 +-----------------------------------+


(7)2Fish:r23c37 = (7)r3c5 - (7)r3c7,r5c5 = (7#2)r2c79,r6c6 - (7)r2c26 = (7)r9c2 => r9c3 <> 7

Perhaps permitting split group nodes is a lesser evil than having to resort to mutant fish! They verge on using nets but there's an important difference in that while parallel inferences are being followed, they must stay in step.

TAGdpbSplitNodes

[edit] diagram and TAG added
Last edited by David P Bird on Thu Jun 02, 2016 2:15 pm, edited 1 time in total.
David P Bird
2010 Supporter
 
Posts: 1043
Joined: 16 September 2008
Location: Middle England

Re: The Ultimate FISH Guide

Postby ronk » Mon Jul 05, 2010 2:03 pm

Thanks to all for the responses. Here are my favorites. The jellyfish is a different outlook on JC Van Hay's "pure net solution." The starfish is an adaptation of daj95376's deduction here. The whale is an exact replica of JC Van Hay's "fish solution."

Note that the smaller the fish, the larger the quantity of remote fins. The jellyfish has two remote fins, the starfish has one and the whale has none. Note also that the chains for the remote fins use only the defining base sets for the fish.

Jellyfish:
Code: Select all
*7  . *7 |  . *7 #7 |  .  .  .
 .  7  . |  .  .  . |  7  .  7
 .  . *7 |  . *7  . | *7  .  .
---------+----------+----------
 .  . *7 |  .  .  . | *7  .  .
*7  .  . |  . *7  . | *7 #7 #7
 7  7  . |  .  .  7 |  .  .  .
---------+----------+----------
 .  .  . |  7  .  . |  .  .  .
 .  .  . |  .  .  . |  7  7  .
 7  7 -7 |  .  .  . |  .  .  .

jellyfish body: r1345\c1357 -7- r9c3
remote fin: r6c89 -7- r4c7 =7= r4c3 -7- r9c3
remote fin: r1c6 -7- r3c5 =7= x-wing:r34\c37 -7- r9c3

Starfish:
Code: Select all
 7  .  7 |  .  7 *7 |  .  .  .
 . *7  . |  .  .  . |  7  . *7
 .  . *7 |  . *7  . | #7  .  .
---------+----------+----------
 .  . *7 |  .  .  . | *7  .  .
 7  .  . |  .  7  . |  7  7 *7
 7 *7  . |  .  . *7 |  .  .  .
---------+----------+----------
 .  .  . |  7  .  . |  .  .  .
 .  .  . |  .  .  . |  7  7  .
 7 #7 -7 |  .  .  . |  .  .  .

starfish body: r34c269\r26c3b26 -7- r9c3
local fin: r9c2 -7- r9c3
remote fin: r3c7 -7- r2c9 =7= r5c9 -7- r4c7 =7= r4c3 -7- r9c3

Whale:
Code: Select all
*7  . *7 |  .  7 *7 |  .  .  .
 . *7  . |  .  .  . | *7  . *7
 .  . *7 |  .  7  . | *7  .  .
---------+----------+----------
 .  . @7 |  .  .  . | *7  .  .
*7  .  . |  .  7  . |  7  7  7
*7 *7  . |  .  . *7 |  .  .  .
---------+----------+----------
 .  .  . |  7  .  . |  .  .  .
 .  .  . |  .  .  . |  7  7  .
*7 #7 -7 |  .  .  . |  .  .  .

whale body:r49c6b134\r126c137 -7- r9c3
local fin: r9c2 -7- r9c3
local endofin: r4c3 -7- r9c3

Comments: My "Is this a Fish or NoFish?" question was misleading. I meant the move was to be considered NoFish only if a valid Fish did not exist. My GFF program does not find the whale above, so I'm off bug-hunting.

David P Bird, As stated earlier, I was unable to make your fish work in Xsudo. Subsequent retries were also unsuccessful.

daj95376, no, we don't get to look at the answer. :)
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Re: The Ultimate FISH Guide

Postby daj95376 » Mon Jul 05, 2010 3:31 pm

ronk wrote:daj95376, no, we don't get to look at the answer. :)

None of what I did depends on knowing if the forced candidate is true or false. I added the comment "and it's not" to highlight that my X-chain was based on a false premise leading to the elimination. I though this was more noteworthy than starting from a true premise and reaching the elimination.

That said, you might note that the Jellyfish has only two fin cells ... and both of them are peers to the elimination cell. The only exception to a traditional GFF solution is that the unfinned fish pattern doesn't include the elimination cell as a PE. What's needed to complete the process is that the candidate grid doesn't support all of the vertices of the unfinned fish pattern ... and applying the unfinned fish eliminations leads to the (subsequently incorrectly) forced cell leading to the desired elimination.
daj95376
2014 Supporter
 
Posts: 2624
Joined: 15 May 2006

Re: The Ultimate FISH Guide

Postby David P Bird » Mon Jul 05, 2010 4:02 pm

Ronk wrote:David P Bird, As stated earlier, I was unable to make your fish work in Xsudo. Subsequent retries were also unsuccessful.
I'm not familiar with Xsudo so have no idea why it can't process the first fish I used.

Code: Select all
    |       c  |       b  | c        | Box
  --┌──────────┬──────────┬──────────┐-------
  c │ X  /  -  │ /  -  X  │ /  /  /  │ b F F   b = Base set
  c │ /  X  /  │ /  /  /  │ -  /  X  │         c = Cover set
    │ /  /  X  │ /  F  /  │ X  /  /  │ F F b   
  --├──────────┼──────────┼──────────┤-------  / = Empty
  b │ /  /  X  │ /  /  /  │ X  /  /  │         
    │ F  /  /  │ /  F  /  │ -  F  F  │         X = Fish
  c │ -  -  /  │ /  /  X  │ /  /  /  │         + = Fin
  --├──────────┼──────────┼──────────┤-------  - = Spot
    │ /  /  /  │ F  /  /  │ /  /  /  │ b F F   
    │ /  /  /  │ /  /  /  │ -  F  /  │         
  b │ +  +  X  │ /  /  /  │ /  /  /  │         
  --└──────────┴──────────┴──────────┘-------
      Mutant 5Fish:r4c6b137\r126c37
(7)r9c12 = (7)5Fish:r4c6b137\r126c37 - (7)r69c2 = (7)r2c2 - (7)r2c79 = (7)r3c7 - (7)r4c7 = (7)r4c3 => r9c3 <> 7

If any fin cell is true then the body cells can't hold a truth in the same base constraint and the fish would be false as it couldn't hold 5 truths. This is the basis of the opening strong inference
    (7)r9c12 = (7)5Fish:r4c6b137\r126c37
If each of the 5 constraints in the base and cover sets is satisfied by a body cell, then no other fin or spot cell can be true. This is the basis for the following weak inference where the second node consists of one fin and one spot cell.
    (7)5Fish:r4c6b137\r126c37 - (7)r69c2
The rest of the elimination comes from just following alternating inferences.

That's why I object to focussing only on the non-body cells in the cover set as "Potential Eliminations" and ignoring their equivalence to fin cells.

As for favourites, mine is the final one I posted using the finned X-wing and split group nodes.

PS As can be seen, I've been playing with my grid template. It displays well with Internet Explorer, but please let me know if it doesn't on any other browser.

[edit] Grid changed - sorry I originally pasted the wrong one out of my collection.
Last edited by David P Bird on Mon Jul 05, 2010 10:16 pm, edited 1 time in total.
David P Bird
2010 Supporter
 
Posts: 1043
Joined: 16 September 2008
Location: Middle England

Re: The Ultimate FISH Guide

Postby ronk » Mon Jul 05, 2010 5:07 pm

David P Bird wrote:
Ronk wrote:David P Bird, As stated earlier, I was unable to make your fish work in Xsudo. Subsequent retries were also unsuccessful.
I'm not familiar with Xsudo so have no idea why it can't process the first fish I used.

I had to change your "5Fish:r4c6b137\r126c37" to "5Fish:r4c26b13\r126c37" to make it work. This starfish has two fins -- local fin r9c2 and remote endo-fin r2c2.
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Re: The Ultimate FISH Guide

Postby daj95376 » Mon Jul 05, 2010 5:59 pm

Ron,

It took me awhile to accept David's original network, but it works for me as two steps combined into one.

Step 1: Assuming fin cells to be false leads to unfinned fish PE eliminations, of which only one is needed.

This leaves a candidate grid sans the fin cells and the single PE.

Step 2: The candidate in r2c2 remains alone in [c2]. An X-Chain based on it being true results in r9c3<>7.

In this approach, it takes more than the fin cells and the PEs to draw the desired conclusion. They are only a part of the whole -- just like a strong link in a UR can be part of an AIC deduction.

David's network:

Code: Select all
5Fish:r4c6b137\r126c37

             -------------
            /             \
(7): r9c12 = 5Fish - r6c2 = r2c2 - r2c79 = r3c7 - r4c7 = r4c3 => r9c3<>7
daj95376
2014 Supporter
 
Posts: 2624
Joined: 15 May 2006

Re: The Ultimate FISH Guide

Postby David P Bird » Mon Jul 05, 2010 10:34 pm

Sorry all, I've just had to edit my previous post as the grid it was showing was for JC's 6Fish rather than my original 5Fish.
My talk through should make more sense now.
David P Bird
2010 Supporter
 
Posts: 1043
Joined: 16 September 2008
Location: Middle England

PreviousNext

Return to Advanced solving techniques