The Ultimate FISH Guide

Advanced methods and approaches for solving Sudoku puzzles

Re: The Ultimate FISH Guide

Postby rjamil » Tue Jul 11, 2017 8:55 pm

Hi StrmCkr,

As per your pointing towards first comments:
Sherman wrote:BTW, N=2 Franken X-Wings do exist, but they are simply combinations of the basic strategies, e.g., pointing pairs and box/line reductions, so do not add anything new.

I am still not convinced that anything, which is eliminated by combination of simple strategies, will be searched by either its transposed form or combined form of advanced strategy (until or unless basic strategies omitted).

1-Fish strategy is transposed form of pointing pairs and box/line reductions strategies; and
Franken X-Wings strategy is combined form of pointing pairs and box/line reductions strategies;

Both strategies are identical and fully overlapping each other, therefore basic strategy superseded over advanced strategy.

Added on 20170712:
Many thanks StrmCkr for the clarifications in pm. I do understand that these fishes ARE really advanced strategies but certain large/complex fishes of them are also identified by more than one small/basic fishes/strategies first.

My point of view is that, "5: Pointing pairs/triplets" and "6: Box/line reduction" strategies either need to be considered as optional in order to catch complex fishes OR complex fishes do not include in program, like Andrew's solver or any other solver.

See this:
Although a "Franken" X-Wing is technically possible, but this degenerates into some other elementary single-digit technique, such as Claiming.

And this:
Illustration not available, sorry. If you have an example, I'd be grateful to you if you sent it to sudokucoach@gmail.com

By the way, adding r5c2 self cannibal candidate in following Franken X-Wings might work as well:
Code: Select all
---------+----------+----------      ---------+----------+----------
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
---------+----------+----------      ---------+----------+----------
 *  X  * |  *  *  * |  X  X  X        /  X  / |  /  /  / |  X  X  X
** *X ** |  .  .  . |  /  /  /       ** *X ** |  .  .  . |  *  *  *
 *  X  * |  *  *  * |  X  X  X        /  X  / |  /  /  / |  X  X  X
---------+----------+----------      ---------+----------+----------
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
---------+----------+----------      ---------+----------+----------
http://www.taupierbw.be/SudokuCoach/SC_FrankenXWing.shtml

R. Jamil
rjamil
 
Posts: 729
Joined: 15 October 2014
Location: Karachi, Pakistan

Re: The Ultimate FISH Guide

Postby StrmCkr » Wed Jul 12, 2017 8:55 pm

Code: Select all
---------+----------+----------      ---------+----------+----------
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
---------+----------+----------      ---------+----------+----------
 *  X  * |  *  *  * |  X  X  X        /  X  / |  /  /  / |  X  X  X
** *X ** |  .  .  . |  /  /  /       ** *X ** |  .  .  . |  *  *  *
 *  X  * |  *  *  * |  X  X  X        /  X  / |  /  /  / |  X  X  X
---------+----------+----------      ---------+----------+----------
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
---------+----------+----------      ---------+----------+----------

the *x cell prevents the formation of the fraken X-wing => no eliminations using a 2-size fish.
the 1 size fish{cyclops} will find eliminations,
{aka box/line reduction} {aka locked Candidates}

1 in c2 => r4c13,r5c13,r6c13<>1 {left grid}

1 in b5 => r5c123789<>1 {right grid} edit: see pats note for how this works as a Mutant-fish
Last edited by StrmCkr on Mon Jul 17, 2017 11:57 am, edited 1 time in total.
Some do, some teach, the rest look it up.
stormdoku
User avatar
StrmCkr
 
Posts: 1417
Joined: 05 September 2006

Postby Pat » Sun Jul 16, 2017 8:24 am

rjamil wrote:adding r5c2 self cannibal candidate in following Franken X-Wings might work as well:
Code: Select all
---------+----------+----------      ---------+----------+----------
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
---------+----------+----------      ---------+----------+----------
 *  X  * |  *  *  * |  X  X  X        /  X  / |  /  /  / |  X  X  X
** *X ** |  .  .  . |  /  /  /       ** *X ** |  .  .  . |  *  *  *
 *  X  * |  *  *  * |  X  X  X        /  X  / |  /  /  / |  X  X  X
---------+----------+----------      ---------+----------+----------
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
 .  /  . |  .  .  . |  .  .  .        .  *  . |  .  .  . |  .  .  .
---------+----------+----------      ---------+----------+----------

http://www.taupierbw.be/SudokuCoach/SC_FrankenXWing.shtml

on the Left -- no ( as StrmCkr has pointed out )

but on the Right -- yes this works!

    we had a 2-step approach
    ( each of them a fish of order 1 )
      b5\r5 ==> b4\c2
    but if we really wish to claim a 1-move approach
    then yes we can combine them
    ( making a fish of order 2 -- an X-wing )
    getting most of the exclusions ( except: r5c13 )
      r46\c2b6
      or
      b45\r5c2
User avatar
Pat
 
Posts: 4056
Joined: 18 July 2005

Re: The Ultimate FISH Guide

Postby SpAce » Tue Feb 06, 2018 4:45 am

Thinking that I need to start learning fishing some day brought me here, and I have a couple of questions about this great guide.

First, where is the definition of exo and endo fins? Being a pretty important distinction, I suppose, I think it should be in the introductory part. Also, the key does specify "#" as an endo fin (without any definition) in the diagrams, which seems a bit weird. From other sources (Hodoku) I've understood that exos are the normal kinds of fins (also available in basic r\c fishes, while endos are only applicable in franken and mutant fishes. What exactly is the definition used here?

Secondly, I like it that the reference list provides the fishy points of view of patterns that are normally seen as something else (e.g. locked candidates, turbot variants, etc.). Such simple examples are a good starting point to understand bigger complex fishes. However, for that reason the 1-fish examples (locked candidates) should be described as franken fishes, right? For some reason they have no such description.

Also, for completeness' sake I think the guide should start with the truly simplest kind of fish: singles. Why are those omitted? I think starting with them would provide pedagogical value, as they can be used for the simplest examples of basic r\c fishes as well as franken fishes. Singles are also a special kind of fish, because they have an extra constraint -- the cell -- which can be used for both base and cover sets. That could be used to demonstrate how fishes and subsets are related. Should cell-constraint types of fishes be called "alien", perhaps? :D That would make a naked quad an alien jellyfish, right?

Anyway, here's what I would add to the very beginning of the 1-fish section:

Code: Select all
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  /  . |  .  .  . 
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  /  . |  .  .  . 
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  /  . |  .  .  . 
---------+----------+----------      ---------+----------+----------
 .  .  . |  *  *  * |  .  .  .        .  .  . |  *  /  * |  .  .  . 
 /  /  / |  /  X  / |  /  /  /        *  *  * |  *  X  * |  *  *  * 
 .  .  . |  *  *  * |  .  .  .        .  .  . |  *  /  * |  .  .  . 
---------+----------+----------      ---------+----------+----------
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  /  . |  .  .  . 
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  /  . |  .  .  . 
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  /  . |  .  .  . 

3 x 1-fish: r\c, r\b, r\n            3 x 1-fish: c\r, c\b, c\n
(basic, franken, alien)              (basic, franken, alien)
Hidden Single (row)                  Hidden Single (column)

 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  . 
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  . 
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  . 
---------+----------+----------      ---------+----------+----------
 .  .  . |  /  /  / |  .  .  .        .  .  . |  *  *  * |  .  .  . 
 *  *  * |  /  X  / |  *  *  *        *  *  * |  *  X  * |  *  *  * 
 .  .  . |  /  /  / |  .  .  .        .  .  . |  *  *  * |  .  .  . 
---------+----------+----------      ---------+----------+----------
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  . 
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  . 
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  . 

3 x 1-fish: b\r, b\c, b\n            3 x 1-fish: n\r, n\c, n\b
(franken, franken, alien)            (alien, alien, alien)
Hidden Single (box)                  Naked Single


Also, it could be mentioned that the current 1-fish examples (locked candidates) could be seen as not only complete franken fishes themselves, but also finned versions of those above. Right? (Edit: Well, not really because the "fins" would be covered as well. Forget that.)

Yes, I understand that none of this has any practical value. I just think the theory should start with the simplest possible case and grow from there. I also bet the Cyclopsfish name was originally coined specifically for singles, before anyone even knew about franken fishes and understood that locked candidates were also 1-fishes. Not knowing the real history I could lose money in that betting, but that name just doesn't work as well for the latter kind.
-SpAce-: Show
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   

"If one is to understand the great mystery, one must study all its aspects, not just the dogmatic narrow view of the Jedi."
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: The Ultimate FISH Guide

Postby tarek » Sat Feb 10, 2018 10:08 am

Hi SpAce,

I like your approach to this topic. I agree in principle with the logic because it follows the rules although the practicality/implementation is cumbersome. Another puritan aspect to throw in as well is the unfinned Sashimi fish where you could look at a perfectly formed Jellyfish when it has perfectly formed smaller fish inside it.

I agree that an update is due & will attempt to make it soon due to the importance of this thread.


tarek
User avatar
tarek
 
Posts: 3762
Joined: 05 January 2006

Re: The Ultimate FISH Guide

Postby SpAce » Sun Feb 11, 2018 11:59 am

tarek wrote:I agree that an update is due & will attempt to make it soon due to the importance of this thread.


Good to hear, tarek! Aside from a welcome update to the examples and definitions, I think we need a distinction for endo/exo-fins in the key as well. How about this:

Code: Select all
# = ExoFin
#X = EndoFin


? That suggestion was based on the assumption that the Hodoku definition of them is the one generally accepted and that I've understood it about correctly. About that, I've looked at the Sudopedia examples of complex fishes, and I'd like to confirm that my understanding of them is about right.

First, a minimum Unfinned Mutant Swordfish to use as a baseline:

Code: Select all
1.1) Unfinned Mutant Swordfish: r19c7\c2b39:

 /  X  / |  /  /  / |  /  X  /
 . **  . |  .  .  . |  X ** **
 . **  . |  .  .  . |  / ** **
---------+----------+----------
 . **  . |  .  .  . |  /  .  . 
 . **  . |  .  .  . |  /  .  . 
 . **  . |  .  .  . |  /  .  . 
---------+----------+----------
 . **  . |  .  .  . |  / ** ** 
 . **  . |  .  .  . |  X ** ** 
 /  X  / |  /  /  / |  /  /  X 

http://sudopedia.enjoysudoku.com/Mutant_Fish.html

Nothing special there, but let's then look at its variants. The first one is a finned variant on the same page:

Code: Select all
1.2) Endo-Finned Mutant Swordfish: r19c7\c2b39 endo-fin r1c7 (part of two base sectors, one cover sector):

 /  X  / |  /  /  / | #X  X  /
 .  *  . |  .  .  . |  X ** **
 .  *  . |  .  .  . |  / ** **
---------+----------+----------
 .  *  . |  .  .  . |  /  .  . 
 .  *  . |  .  .  . |  /  .  . 
 .  *  . |  .  .  . |  /  .  . 
---------+----------+----------
 .  *  . |  .  .  . |  /  *  * 
 .  *  . |  .  .  . |  X  *  * 
 /  X  / |  /  /  / |  /  /  X 


Have I understood correctly that it is specifically an Endofinned variant? That distinction is not made on the page. Interestingly there's no Exofinned example at all, but I attempted to make one:

Code: Select all
1.3) Exo-Finned Mutant Swordfish: r19c7\c2b39 exo-fin r1c9 (not part of any cover sector):

 /  X  / |  /  /  / |  /  X  /
 .  *  . |  .  .  . |  X  *  *
 .  *  . |  .  .  . |  /  *  *
---------+----------+----------
 .  *  . |  .  .  . |  /  .  . 
 .  *  . |  .  .  . |  /  .  . 
 .  *  . |  .  .  . |  /  .  . 
---------+----------+----------
 . **  . |  .  .  . |  /  *  * 
 . **  . |  .  .  . |  X  *  * 
 #  X  / |  /  /  / |  /  /  X 


Did I get that right?

I also have questions about another Mutant Swordfish example found on another page. First, its simple variant (not the original) for a baseline:

Code: Select all
2.1) Unfinned Mutant Swordfish: r8c8b1\r2c2b9:

 /  X  / |  .  .  . |  .  /  .
 X  /  X | ** ** ** | **  X **
 /  X  / |  .  .  . |  .  /  .
---------+----------+----------
 . **  . |  .  .  . |  .  /  . 
 . **  . |  .  .  . |  .  /  . 
 . **  . |  .  .  . |  .  /  . 
---------+----------+----------
 . **  . |  .  .  . | **  X ** 
 /  X  / |  /  /  / |  X  /  X 
 . **  . |  .  .  . | **  X ** 


Again, nothing special there. Then the actual example:

Code: Select all
2.2) Unfinned Mutant Swordfish with cannibalism: r8c8b1\r2c2b9 (r2c2 cannibalized, part of two cover sectors):

 /  X  / |  .  .  . |  .  /  .
 X *X  X | ** ** ** | **  X **
 /  X  / |  .  .  . |  .  /  .
---------+----------+----------
 . **  . |  .  .  . |  .  /  . 
 . **  . |  .  .  . |  .  /  . 
 . **  . |  .  .  . |  .  /  . 
---------+----------+----------
 . **  . |  .  .  . | **  X ** 
 /  X  / |  /  /  / |  X  /  X 
 . **  . |  .  .  . | **  X **

http://sudopedia.enjoysudoku.com/Mutant_Swordfish.html

It's not mentioned on the page, but isn't r2c2 a cannibalistic elimination, being both in a base sector and two cover sectors? I also attempted to make an Endofinned variant of the same:

Code: Select all
2.3) Endo-Finned Mutant Swordfish: r8c8b1\r2c2b9 endo-fin r8c8 (part of two base sectors, one cover sector):

 /  X  / |  .  .  . |  .  /  .
 X  *  X |  *  *  * |  *  X  *
 /  X  / |  .  .  . |  .  /  .
---------+----------+----------
 .  *  . |  .  .  . |  .  /  . 
 .  *  . |  .  .  . |  .  /  . 
 .  *  . |  .  .  . |  .  /  . 
---------+----------+----------
 .  *  . |  .  .  . | **  X ** 
 /  X  / |  /  /  / |  X #X  X 
 .  *  . |  .  .  . | **  X ** 


Did that work out correctly? Of course all of these are simpler to see as either continuous X-Cycles or X-Chains, but that's not the point here as we're looking at them through the fish perspective. One last example from Hodoku:

Code: Select all
3.1) Endo+Exo-Finned Franken Swordfish with Cannibalism: r15b3\c68b2 endo-fins r1c89 (isn't r1c9 also an exo-fin?):

 /  /  / |  /  / *X |  / #X #X
 .  .  . |  *  *  * |  /  X  /
 .  .  . |  *  *  * |  /  /  /
---------+----------+----------
 .  .  . |  .  .  * |  .  *  . 
 /  /  / |  /  /  X |  /  X  / 
 .  .  . |  .  .  * |  .  *  . 
---------+----------+----------
 .  .  . |  .  .  * |  .  *  . 
 .  .  . |  .  .  * |  .  *  . 
 .  .  . |  .  .  * |  .  *  . 

http://hodoku.sourceforge.net/en/tech_fishc.php

Again, that would be simpler to see other ways (like a Finned X-Wing/Grouped X-Chain + Pointing Pair), but is that a valid way to see it as a fish: one of the fins as a pure Endo-Fin and the other as both kinds? That interpretation is not mentioned on the page but that's how it looks to me.

Added: Based on Tarek's reply about the accepted (non-Hodoku) endo-fin definition, I'd now see the above like this:

Code: Select all
3.2) Endo+Exo-Finned Franken Swordfish with Cannibalism: r15b3\c68b2 endo-fin r1c8 exo-fin r1c9:

 /  /  / |  /  / *X |  / #X  #
 .  .  . |  *  *  * |  /  X  /
 .  .  . |  *  *  * |  /  /  /
---------+----------+----------
 .  .  . |  .  .  * |  .  *  . 
 /  /  / |  /  /  X |  /  X  / 
 .  .  . |  .  .  * |  .  *  . 
---------+----------+----------
 .  .  . |  .  .  * |  .  *  . 
 .  .  . |  .  .  * |  .  *  . 
 .  .  . |  .  .  * |  .  *  . 


Edit: Added numbers for the examples for easier referencing. Changed "defining/cover sets" => "base/cover sectors". Added missing PEs to 2.3. Added example 3.2.
Last edited by SpAce on Mon Feb 12, 2018 8:40 am, edited 3 times in total.
-SpAce-: Show
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   

"If one is to understand the great mystery, one must study all its aspects, not just the dogmatic narrow view of the Jedi."
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: The Ultimate FISH Guide

Postby tarek » Sun Feb 11, 2018 8:11 pm

Hi SpAce,

I will need time to digest your post but there is no harm in answering some of the sticking points as that progresses.

Regarding fins and potential eliminations:

Fin (F): Base sectors > Cover sectors
Vertex (V): Base sectors = Cover sectors
Potential Elimination (PE): Base sectors < Cover sectors


An exo-fin (cell) will have Cover sectors = 0 (the fin is only part of base sector(s) so it can’t be a part of a cover sector)
An endo-fin (cell) will have Cover sectors > 0 (the fin is part of a cover sector)
A cannibalistic Potential elimination will have base sectors > 0 (the PE is part of a base sector), if this proves to be an eventual elimination (EE) then the fish is described as Cannibalistic (or Auto-Cannibalistic)

Tarek
User avatar
tarek
 
Posts: 3762
Joined: 05 January 2006

Re: The Ultimate FISH Guide

Postby SpAce » Mon Feb 12, 2018 8:30 am

Hi Tarek!

Thanks for your answers! They already clarified some things. Take your time with any further analysis. Based on your comments I think we're mostly on the same page here. I edited my post to use "base/cover sectors" instead of "defining/cover sets" in order to stick to the apparent conventions here. I'm pretty sure my fish types above mostly correspond with your definitions -- with one exception that results from two slightly different endo-fin definitions (yours and Hodoku's). I'm inclined to prefer yours, now that I've seen it:

Fin (F): Base sectors > Cover sectors
+
An endo-fin (cell) will have Cover sectors > 0 (the fin is part of a cover sector)

Indeed there seems to be a little difference between that and the Hodoku endo-fin definition, which is what I've wanted to clarify. By your definition, my example 3.1 (the Hodoku one) has one endo-fin (r1c8) and one exo-fin (r1c9), right? By the Hodoku definition they're both endo-fins, as it only states that endo-fins are part of more than one base sector without saying anything about the cover sectors:

"If a base candidate is contained in more than one base sector our calculations are not adding up any more. If that candidate was true, we had only (N-1) candidates placed for N cover sets: One cover set would be without a placed base candidate thus destroying the fish. On the other hand we already had base candidates that when set destroy the fish: We called them fins.

The above means, that we can allow base candidates that are contained in more than one base set as long as we treat them as fins. To differentiate these new fins from the regular ones, we call them endo fins."
http://hodoku.sourceforge.net/en/tech_fishg.php

I understand that so that if a cell belongs to more than one base sector, it's an endo-fin whether it's in a cover sector or not. In the example (3) r1c9 is in two base sectors and in zero cover sectors. Thus Hodoku calls it an endo-fin while you see it as an exo-fin, right? I saw it logically as both, which is not a good thing. Your definition seems to simplify things, because then a fin is always(?) one or the other but not both. Have I now understood this correctly? In any case, I think it would be nice to define these clearly in the first post and preferably mention the different Hodoku definition as well.

Would this be in accordance with your definitions:

Code: Select all
3) Endo+Exo-Finned Franken Swordfish with Cannibalism: r15b3\c68b2 endo-fin r1c8 exo-fin r1c9:

 /  /  / |  /  / *X |  / #X  #
 .  .  . |  *  *  * |  /  X  /
 .  .  . |  *  *  * |  /  /  /
---------+----------+----------
 .  .  . |  .  .  * |  .  *  .
 /  /  / |  /  /  X |  /  X  /
 .  .  . |  .  .  * |  .  *  .
---------+----------+----------
 .  .  . |  .  .  * |  .  *  .
 .  .  . |  .  .  * |  .  *  .
 .  .  . |  .  .  * |  .  *  .

? (I also added that interpretation as 3.2 in the original post.)

A cannibalistic Potential elimination will have base sectors > 0 (the PE is part of a base sector), if this proves to be an eventual elimination (EE) then the fish is described as Cannibalistic (or Auto-Cannibalistic)

So there's no difference between Cannibalistic and Auto-Cannibalistic? If they're the same thing, I'd prefer to stick to the shorter term to avoid any confusion.

One last thing about the diagram notation. I think it would be helpful if we had distinct one-character markers for PEs and EEs. That would be clearer especially when the PE or EE occurs on an already marked cell (like a vertex in a cannibalistic situation). It would also improve readability (and writability) of the diagrams in general, I think. I understand the downside is a more complicated key and backwards incompatibility with old diagrams, so I don't know if others would appreciate the change.
-SpAce-: Show
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   

"If one is to understand the great mystery, one must study all its aspects, not just the dogmatic narrow view of the Jedi."
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: The Ultimate FISH Guide

Postby tarek » Mon Feb 12, 2018 2:05 pm

I authored the lead/start post. Most of what you read in it is a collaborative effort. Most of the hard work has been done by other forum members. The exemplars specifically have been collated mainly by ronk ( where are you to help ? ) that is why I’ll need time to digest your post before any modifications.

You will also note that we as a group didn’t agree on a few things (that’s where Ihad an advantage as the lead post author) but I would still point out to these differences.

One of them being the endofin issue. It indeed started off as Hodoku mentions but I didn’t agree on that. It doesn’t affect the logic but mostly the naming. The other being the word Sashimi where many would consider it to be a finned fish when it actually doesn’t necessarily mean finned. Cannibalistic and auto cannibalistic use is again down to the user. The rule here is not strict.

As hodoku embraced the Main rules of this thread, it will be tempting (even for me) to follow its convention. But I’ll stick to my guns for now!!!

Tarek
User avatar
tarek
 
Posts: 3762
Joined: 05 January 2006

Re: The Ultimate FISH Guide

Postby StrmCkr » Mon Feb 12, 2018 10:25 pm

ronk ( where are you to help ? )
not sure, he's been mia for a while now... haven't seen him since he went through and deleted a bunch of posts.
he's definitely the guy for nxn fish...

I prefer nxn+k fish as it removes all the oddities that complicate fish more then it should ....
ie: endo /exo finns
auto-cannibalistic which removes cells in the base sectors regardless of a finn being true or false & or even existing in the base/cover cells
cannibalistic which if the fins are all missing from the base pattern then the base cells are removed + the other eliminations.
but that's neither here nor there in a nxn fish topic.

Code: Select all
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  .
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  .
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  .
---------+----------+----------      ---------+----------+----------
 .  .  . |  /  /  / |  .  .  .        .  .  . |  *  *  * |  .  .  .
 *  *  * |  /  X  / |  *  *  *        *  *  * |  *  X  * |  *  *  *
 .  .  . |  /  /  / |  .  .  .        .  .  . |  *  *  * |  .  .  .
---------+----------+----------      ---------+----------+----------
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  .
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  .
 .  .  . |  .  *  . |  .  .  .        .  .  . |  .  *  . |  .  .  .

3 x 1-fish: b\r, b\c, b\n            3 x 1-fish: n\r, n\c, n\b
(franken, franken, alien)            (alien, alien, alien)
Hidden Single (box)                  Naked Single


to chime in, the naked single doesn't fit the schematic as it compares 9 digit templates to determine that the cell has 1 digit left: this alone is enough to discard it from the fish thread.
concurrently there is no way to see a naked digit on a template for 1 digit. this basic intuition does however scale as a a "multi digit" fish or an interesting way to find als-xz/xy + moves, but that would best segregated to its own thread.

the single fish are technically all cyclopes fish reduced by having two "fins" removed:
thus their eliminations are derived by multiple applications out of the 6 possible applications of {B/R, B/C, R/C , C/R, R/b, C/B }

you could for the cyclops fish
add a *# to note that 2 potential cells can be empty
then have a *-x for max potential eliminations if all the *# are devoid.

i think that formatting gets rather messy

technically the " cyclopes fish" can be written as a 1-2 fins version of a single digit:

i did manage to get these to work in my nxn+k fish version as all fish can have at most 2 extra sectors
however they always showed no eliminations possible. { as the potential eliminations counts did not scale up to match increasing K size} {same problem in a nxn version i had written for testing. }

to work around it i had to add a supplement an extra step, to show the peers of the cover sets see all the same peers of the base but not in the base. then the eliminations worked.

playing around with this issue while tinkering with my fish code did gave me a big idea to expand fish to cover some of the "no-fish"

the idea is that an included subset can be converted to a simpler format then the fish size can be reduced by up to 2
B/RRR => B/C and then the eliminations are sound

this when scaled beyond 1 fish, has practical application for extra eliminations or eliminations not normally found see this idea
thread

{still working on how to get this coded to work but the spreed sheet i included roughly shows how i did get it to work}
Some do, some teach, the rest look it up.
stormdoku
User avatar
StrmCkr
 
Posts: 1417
Joined: 05 September 2006

Re: The Ultimate FISH Guide

Postby StrmCkr » Tue Feb 13, 2018 5:17 am

3.2) Endo+Exo-Finned Franken Swordfish with Cannibalism: r15b3\c68b2 endo-fin r1c8 exo-fin r1c9:

Code: Select all
 /  /  / |  /  / *X |  / #X  #
 .  .  . |  *  *  * |  /  X  /
 .  .  . |  *  *  * |  /  /  /
---------+----------+----------
 .  .  . |  .  .  * |  .  *  .
 /  /  / |  /  /  X |  /  X  /
 .  .  . |  .  .  * |  .  *  .
---------+----------+----------
 .  .  . |  .  .  * |  .  *  .
 .  .  . |  .  .  * |  .  *  .
 .  .  . |  .  .  * |  .  *  .


this should look like this to be correct with corrected eliminations.

Code: Select all
 /  /  / |  /  / *X |  /  X  #X
 .  .  . |  .  .  . |  / *X  /
 .  .  . |  .  .  . |  /  /  /
---------+----------+----------
 .  .  . |  .  .  . |  .  .  .
 /  /  / |  /  /  X |  /  X  /
 .  .  . |  .  .  . |  .  .  .
---------+----------+----------
 .  .  . |  .  .  . |  .  .  .
 .  .  . |  .  .  . |  .  .  .
 .  .  . |  .  .  . |  .  .  .
Some do, some teach, the rest look it up.
stormdoku
User avatar
StrmCkr
 
Posts: 1417
Joined: 05 September 2006

Re: The Ultimate FISH Guide

Postby SpAce » Tue Feb 13, 2018 6:18 am

Thanks for the comments, StrmCkr! I have to process them a bit, but just a quick note about this:

StrmCkr wrote:3.2) Endo+Exo-Finned Franken Swordfish with Cannibalism: r15b3\c68b2 endo-fin r1c8 exo-fin r1c9:

Code: Select all
 /  /  / |  /  / *X |  / #X  #
 .  .  . |  *  *  * |  /  X  /
 .  .  . |  *  *  * |  /  /  /
---------+----------+----------
 .  .  . |  .  .  * |  .  *  .
 /  /  / |  /  /  X |  /  X  /
 .  .  . |  .  .  * |  .  *  .
---------+----------+----------
 .  .  . |  .  .  * |  .  *  .
 .  .  . |  .  .  * |  .  *  .
 .  .  . |  .  .  * |  .  *  .


this should look like this to be correct with corrected eliminations.

Code: Select all
 /  /  / |  /  / *X |  /  X  #X
 .  .  . |  .  .  . |  / *X  /
 .  .  . |  .  .  . |  /  /  /
---------+----------+----------
 .  .  . |  .  .  . |  .  .  .
 /  /  / |  /  /  X |  /  X  /
 .  .  . |  .  .  . |  .  .  .
---------+----------+----------
 .  .  . |  .  .  . |  .  .  .
 .  .  . |  .  .  . |  .  .  .
 .  .  . |  .  .  . |  .  .  .

I don't get that. While it's obvious that both of those eliminations end up being valid, I don't see any single NxN fish that's capable of it in one move. Can you elaborate how that's supposed to work? Are you using the same base/cover sectors as in the example? What are your potential eliminations (not shown in your diagram)? Why do you only have one fin (and marked as an endo-fin)? How do you cannibalize r2c8 with that fish, as it's in one cover sector only (unlike r1c6 which is in two)? This is what Hodoku said about that example:

"Base sets are rows 1 and 5 and box 3, cover sets are columns 6 and 8 and box 2. Three base/cover sets means Swordfish, boxes in base/cover sets mean Franken Swordfish. Possible eliminations are r2c4, r24c6, and r4c8. On closer look we see, however, that base candidates r1c89 are not only in base set row 1, but in base set box 3 too: They have to be treated as fins ("endo fins"). Since none of the possible eliminations sees all the fins that leaves us with nothing to do. Fortunately, however, base candidate r1c6 is contained in two cover sets: cover set column 6 and cover set box 2, it is therefore a possible cannibalistic elimination. It does see all fins, so it becomes the real elimination for this fish (a Cannibalistic Finned Franken Swordfish)."
http://hodoku.sourceforge.net/en/tech_fishc.php

This is what Hodoku says about cannibalism:

"Now let's see what happens, if a base candidate is part of not only one cover set but of two cover sets. If that candidate were placed, we would still need N base candidates to satisfy the sudoku rule for the base sets. Unfortunately we would also get N candidates placed within the cover sets. This means that we would get one cover set with two cells containing the fish digit thus violating the sudoku rule.

Conclusion: If we have a valid fish, a base candidate contained in two cover sets must be false, or to put it the other way round, it can be eliminated. Because it is a part of the base set, the fish is quasi eating itself. Such a fish is consequently called a Cannibalistic Fish.

The same logic holds, if a cannibalistic fish has fins. As in any finned fish, however, the base candidate can only be eliminated, when it sees all the fins."
http://hodoku.sourceforge.net/en/tech_fishg.php

Are you using different rules or different base/cover sectors here, or am I just misunderstanding something?
-SpAce-: Show
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   

"If one is to understand the great mystery, one must study all its aspects, not just the dogmatic narrow view of the Jedi."
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: The Ultimate FISH Guide

Postby SpAce » Tue Feb 13, 2018 7:08 am

A discussion about cannibalism vs autocannibalism here:

http://www.dailysudoku.com/sudoku/forums/viewtopic.php?p=26333

While I said earlier that I'd prefer the shorter term, I guess autocannibalism is actually a more logical term in our case, as it better describes what's happening (the fish eating itself). I'd just rather call it self-cannibalism which is easier to understand:

https://en.wikipedia.org/wiki/Self-cannibalism
-SpAce-: Show
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   

"If one is to understand the great mystery, one must study all its aspects, not just the dogmatic narrow view of the Jedi."
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: The Ultimate FISH Guide

Postby tarek » Tue Feb 13, 2018 7:59 pm

SpAce wrote:A discussion about cannibalism vs autocannibalism here:
http://www.dailysudoku.com/sudoku/forums/viewtopic.php?p=26333
Autocannabilsm will be dropped :D

Now, a few more things to digest:

Blue's post explaining Obi-Wahn's N x (N+k) fish
http://forum.enjoysudoku.com/the-ultimate-fish-guide-t4993-600.html#p229292

My interesting fish using Hodoku:
http://forum.enjoysudoku.com/hodoku-t6551-90.html#p210194

My opinion on Obi-Wahn’s N x (N+k) fish
http://forum.enjoysudoku.com/the-ultimate-fish-guide-t4993-600.html#p229276

tarek
User avatar
tarek
 
Posts: 3762
Joined: 05 January 2006

Re: The Ultimate FISH Guide

Postby StrmCkr » Wed Feb 14, 2018 5:50 am

to mimic ronks answer to me for similar events ... there is two smaller fish hidden inside the bigger fish.
this formation is a Remora fish example which would be poor choice/ example to show case cannibalistic fish

------------------------------
sorry for the delay i had to figure out what my own code was doing as it has no print to screen function implemented listing what performed the eliminations as it finds "all" fish of size selected (1-7) at the same time.

the short answer to a single move for both eliminations is no, concurrently i'm aware of no nxn or nxn+k fish that can display both eliminations as 1 move : as defined by the constructs for both fish the issue is shown shortly.

I built this one manually the #x cell is the one noted by both the combined fish view listed directly below {which is what i based it off of}

i know you can combine fish's to make bigger one's unfortunately some of the eliminations are lost as cells become part of the base/cover equations even though the subset makes them valid
this is even apparent in hodoku as listed by the finned franked sword fish versions of the same eliminations...

{one of my fish test codes, finds subset fish in a larger fish to do extra eliminations that are hidden by the bigger fish using combinations of the sets in the bigger fish}

Code: Select all
 /  /  / |  /  / *X |  /  X  #X
 .  .  . |  .  .  . |  / *X  /
 .  .  . |  .  .  . |  /  /  /
---------+----------+----------
 .  .  . |  .  .  . |  .  .  .
 /  /  / |  /  /  X |  /  X  /
 .  .  . |  .  .  . |  .  .  .
---------+----------+----------
 .  .  . |  .  .  . |  .  .  .
 .  .  . |  .  .  . |  .  .  .
 .  .  . |  .  .  . |  .  .  .

Finned X-Wing: 1 r16 c58 fr1c9 => r2c8<>1
&
Finned Franken X-Wing: 1 r6b3 c58 fr1c9 => r1c5<>1

the example from hodoku for the:
Finned Franken Swordfish: 1 r16b3 c58b2 efr1c8 efr1c9 => r1c5<>1
Finned Franken Swordfish: 1 r126 c58b3 fr2c1 fr2c2 fr2c3 fr2c4 fr2c6 => r2c8<>1
Some do, some teach, the rest look it up.
stormdoku
User avatar
StrmCkr
 
Posts: 1417
Joined: 05 September 2006

PreviousNext

Return to Advanced solving techniques