Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Post the puzzle or solving technique that's causing you trouble and someone will help

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Tue Dec 19, 2017 9:33 pm

eleven wrote:You can reuse candidates as often as you want. If the links are correct, the chain will always be correct.


Thanks, eleven. That's exactly what my intuition told me, though I wouldn't know how to prove (or disprove it).

So the question is just, why should you ?
Apart from ALS eliminations i only see a reason to longer the chain in order to avoid a contradiction (which should be possible in another way too) or to make additional eliminations (which could be done in a later step also).


Exactly. All other things being equal (and sometimes even if not), I prefer simplicity over complexity.
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Tue Dec 19, 2017 10:54 pm

StrmCkr, I'm still going through your thorough replies, and I have a few comments about what you said about fishes:

StrmCkr wrote:you really should read up on obiwans approach to fish finding, it has huge implications as a manual solver and makes complicated fish actually easy.


Can you link to that? I only know one "easy" approach to fishing and it's this:

http://forum.enjoysudoku.com/a-new-view-of-fish-naked-or-hidden-t5017.html?hilit=fish%20subsets

It does make finding (normal) fishes a lot easier, but it's a lot of work to convert the rows and columns into subset format, which cancels the benefit from my point of view. That's why I don't fish almost at all, even though it would sometimes provide effective openings. I've even made some improvements to that method to make finding finned and sashimi fish easier, but I still don't use it, because it's so tedious and the findings are uncertain. Software would considerably help here, but that would break my pencil-and-paper purism.

So, is there an *actually* easy way to find normal fishes manually? If not, I prefer to use a few more chains to work around them, which has worked so far.

for example x-cycles wont find the finned x-wing below.
Finned X-Wing: 2 c28 r25 fr1c2 fr3c2 => r2c13<>2


You mean Hodoku doesn't find it, because it doesn't have X-Cycles? If it did, it would. You just need to use a grouped X-Cycle:

Discontinuous Grouped X-Cycle Type 1: (2)r2c13-r2c8=r5c8-r5c2=r123c2-(2)r2c13 => -2 r2c13

Here's the X-Chain version the same:

X-Chain (Grouped Skyscraper): (2)r2c8=r5c8-r5c2=(2)r123c2 => -2 r2c13

bigger fish can be seen and written as chains: several users are very good at converting and posting large fish logic into chain notation

SpAce wrote:Can you link to any examples? I'd really like to see how it's done. For example, a swordfish with vertices spread into 9 boxes doesn't have any native strong links to work with.


Here is an unfinned mutant jellyfish (4-fish) from #61 of the top1465...
http://forum.enjoysudoku.com/post37073.html#p37073


Thanks for the example, though I guess I didn't pose my question clearly. I'm not an expert on mutant fishes but I've understood that they can usually (always?) be expressed as grouped chains, so I wasn't referring to them when I talked about "bigger fishes that can't be seen as chains". Clearly some bigger fishes can be expressed as chains, especially mutant ones, but that doesn't prove anything about all of them. I'm still pretty sure that some aren't easily converted into chains, and that was my original point. Do you know anyone who can chain a normal 3-3-3-Swordfish spread into 9 boxes?

Mutants are easier to see as chains because their box-based nature typically provides strong links through grouping. That's why I haven't bothered to study them much. Even if I understood them completely, finding the corresponding chains would be much easier and more intuitive for me. I'm more interested in fishing methods for the normal (row/col) fishes which don't seem to have simple chain counterparts.
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Tue Dec 19, 2017 11:32 pm

About the chain notations. Is the second node in my first step actually a bit incorrect?

AIC Type 2 (ALS, Grouped): (2=589)r4c156-(589=4)r4c8-r78c8=(4-7)r7c9=r9c7-r4c7=(7)r4c3 => -2 r4c3

Should it be:

AIC Type 2 (ALS, Grouped): (2=589)r4c156-(5|8|9=4)r4c8-r78c8=(4-7)r7c9=r9c7-r4c7=(7)r4c3 => -2 r4c3

...as per what we discussed in the other thread some time ago?

Also, I can imagine all three different kinds of discontinuous loops that could be made out of it, but I'm not sure about their correctness:

Discontinuous Nice Loop Type 3: (2)r4c3-(2=589)r4c156-(5|8|9=4)r4c8-r78c8=(4-7)r7c9=r9c7-r4c7=(7-2)r4c3 => -2 r4c3

Discontinuous Nice Loop Type 2: (2=589)r4c156-(5|8|9=4)r4c8-r78c8=(4-7)r7c9=r9c7-r4c7=(7-2)r4c3=(2)r4c1 => 2r4c1

Discontinuous Nice Loop Type 1: (8|9-2)r4c1=(589)r4c156-(5|8|9=4)r4c8-r78c8=(4-7)r7c9=r9c7-r4c7=(7-2)r4c3=(2-8|9)r4c1 => -89 r4c1

What do you think of those? I guess the first one is fine and the second one possibly also, but I have a bad feeling about the last one (not that I would have any reason to ever do it that way).

Code: Select all
+----------------+------------------+-----------------+
| 4   267 279    | 5    1679   169  | 19    3    8    |
| 5   89  3      | 149  189    2    | 149   7    6    |
| 689 67  1      | 3479 36789  689  | 2     459  45   |
+----------------+------------------+-----------------+
| 289 1   24579  | 6    589    589  | 45789 4589 3    |
| 3   89  59     | 2    4      7    | 589   6    1    |
| 689 467 4579   | 19   1589   3    | 45789 2    457  |
+----------------+------------------+-----------------+
| 29  24  8      | 1379 123579 159  | 6     145  457  |
| 7   5   246    | 8    126    16   | 3     14   9    |
| 1   3   69     | 79   5679   4    | 578   58   2    |
+----------------+------------------+-----------------+
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Wed Dec 20, 2017 1:34 am

eleven wrote:
David P Bird wrote:I re-notated this to error check it
(4=5)r4c59 - (5)r6c7|r7c5 ?=? (5)r7c7 - (45=1)r36c7 - (14=7)r2c4,r3c5 - (357=4)r4c459 => r4c3 <> 4

Now the link from (5)r7c5 to (5)r7c7 is indeed strong but the link from (5)r6c7 to (5)r7c7 is weak because there is (5)r8c7.

Thanks David, in fact i had the feeling, that something is not tough with that notation. So maybe i should write
(4=5)r4c59-r6c7|r7c5=r7c78-(5=1)r36c7 ...
But it does not reflect, what i saw:
Either the 5 is in r4c5 and r7c5 or in r4c9.


I guess you meant this:

(4=5)r4c59-r6c7|r7c5=r78c7-(5=1)r36c7 ...

I think that should work. Pretty damn cool logic anyway!
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby StrmCkr » Wed Dec 20, 2017 6:50 am

http://forum.enjoysudoku.com/about-the-arithmetic-of-ultimate-fish-t5256.html#p41058

from a manual point of view, this system makes proving a fish friendly
Some do, some teach, the rest look it up.
User avatar
StrmCkr
 
Posts: 840
Joined: 05 September 2006

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Wed Dec 20, 2017 1:04 pm

StrmCkr wrote:http://forum.enjoysudoku.com/about-the-arithmetic-of-ultimate-fish-t5256.html#p41058

from a manual point of view, this system makes proving a fish friendly


Thanks for the link! I bookmarked it and will study it later. I'm sure it's a powerful technique but I'm not so sure it's very human friendly. Seems even more work than the subset method and not exactly intuitive to me. Could be that I just don't understand it yet.
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Wed Dec 20, 2017 1:35 pm

StrmCkr, there's one more thing about loops I'd like to ask. Based on this discussion it seems to me that you like discontinuous loops but only use the eliminating kinds of them. Assuming I'm not mistaken, why is that? Don't you think that they can also be used to prove verities (when the start/end candidate has two strong links)? I understand that eliminating discontinuous loops are the most versatile kind, because you can replace any chain and loop with one or more of them, but sometimes they're not the most efficient or intuitive solution.

Hodoku seems to have a little bit mixed view on the affirming kind of discontinuous loops. They work fine, but instead of making a direct placement they eliminate all other candidates instead. From a logical point of view that's more like seeing them as chains whose strongly linked ends happen to be in the same cell burning all the other candidates out, or as multiple eliminating discontinuous loops (one for each eliminated candidate). Still, it's clear that Hodoku understands the verity explanation too:

"Example on the right: r8c2 =4= r8c9 -4- r9c9 -2- r9c3 =2= r7c2 =4= r8c2. The loop starts with a strong link on 4 (premise: "if r8c2 is not 4") and it ends with a strong link on 4 as well. That means: "if r8c2 is not 4, it is 4" - a contradiction that proves that r8c2 has indeed to be 4. 4 can be placed in r8c2 (HoDoKu doesn't make placements with Nice Loops, it eliminates all other candidates instead, which leaves a single). Another way to look at that type of loop is as a verity: The loop proves, that if r8c2 is not 4, it is in fact 4. But if it is 4, it is of course 4 as well. Both possibilities (r8c2=4 and r8c2<>4) lead to the same result: r8c2=4, which has thus to be true."

http://hodoku.sourceforge.net/en/tech_chains.php#nl2
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby StrmCkr » Wed Dec 20, 2017 3:33 pm

No preference, I use hodoku to write the chains for me
my chain writing skills are absolutely terrible .

I manually build everything and then sort through every possible chain on hodoku/ other sources to find the one that closely matches or matches what I did.
Some do, some teach, the rest look it up.
User avatar
StrmCkr
 
Posts: 840
Joined: 05 September 2006

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Thu Dec 21, 2017 1:48 am

Thanks, StrmCkr! That explains.
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby StrmCkr » Thu Dec 21, 2017 4:39 pm

to date i do not have a link-set generator and an graphical adjacency matrix code based on the link-set to build a proper node tree as seen by other chain engines

instead my my model for a "chain"
is based on Cover-sets using set-wise mathematics and limits imposed by the intersecting sectors

w-wing example

pick 2 cells{nx,xn2} that contain n,n2 digits {simplified}

look for "a" sector that has N as a candidate and dose not contain xn,xn2

A has digit N, and these are Peer[xn]
A has digit N, and these are Peer[xn2]

all N digits found in sector A are found exclusively in the peer[xn]+peer[xn2] overlap.

Sector[A,n] = ( peer[xn]*sector[a,n]) + (Peer[xn2]* sector[a,n] )

eliminates N2 digits from (peer[xn] * peer[xn2])

as n is constrained to being in xn,xn2 or found with in "a" sector since we don't know the location, but the bivalve cells are always connected to it digit 2 is in xn or xn2

visual

Code: Select all
 example
  --------------+-------------+----------- 
01) .   .    .  |  .   .   .  |  .  .   .
    .  yz    .  |  .   .   .  |  . -Z   .     
   +Y  +Y   +Y  |  /   /   /  |  / +Y   /      {sector A}
  --------------+-------------+----------- 
    .   .    .  |  .   .   .  |  .  .   .   
    .   .    .  |  .   .   .  |  .  .   .     
    .   .    .  |  .   .   .  |  .  .   .     
  --------------+-------------+----------- 
    .   .    .  |  .   .   .  |  .  .   .   
    .  -Z    .  |  .   .   .  |  . yz   .     
    .   .    .  |  .   .   .  |  .  .   .   
  --------------+-------------+-----------

Code: Select all
peers of the first yn
    p   p    p  |  .   .   .  |  .  .   .   
    p   yn   p  |  p   p   p  |  p  p   p     
    p   p    p  |  .   .   .  |  .  .   .     
  --------------+-------------+-----------
    .   p    .  |  .   .   .  |  .  .   .   
    .   p    .  |  .   .   .  |  .  .   .     
    .   p    .  |  .   .   .  |  .  .   .     
  --------------+-------------+-----------
    .   p    .  |  .   .   .  |  .  .   .   
    .   p    .  |  .   .   .  |  .  .   .     
    .   p    .  |  .   .   .  |  .  .   .


Code: Select all
 peers for 2nd yn   
    .   .    .  |  .   .   .  |  .  p   .   
    .   .    .  |  .   .   .  |  .  p   .     
    .   .    .  |  .   .   .  |  .  p   .     
  --------------+-------------+----------- 
    .   .    .  |  .   .   .  |  .  p   .   
    .   .    .  |  .   .   .  |  .  p   .     
    .   .    .  |  .   .   .  |  .  p   .     
  --------------+-------------+----------- 
    .   .    .  |  .   .   .  |  p  p   p   
    p   p    p  |  p   p   p  |  p  yn  p     
    .   .    .  |  .   .   .  |  p  p   p
Some do, some teach, the rest look it up.
User avatar
StrmCkr
 
Posts: 840
Joined: 05 September 2006

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby keith » Mon Jan 08, 2018 12:20 pm

eleven wrote:Don't know, what the inventors meant with their namings.
Since i like birds, i had bird wings in mind, when i connected pivot and pincers of an xy-wing.
And for a w-wing the pivot of the bird wing was doubled.
Those (today's simple) techniques were discovered at the same time by different people with different approach and therefore became different names.
The really interesting part is to discover them by oneself, and then to spot them, not to categorize them for optimized learning.


The W-wing is named for George Woods, who was the first to point it out as a pattern.

The M-wing was discovered and named by me for two reasons: It is the simplest case of Medusa coloring, and M is the initial of my last name.

The X-wing was named long before I came along. It is a single-digit technique.

Mostly, Wings are two-digit solution techniques (XY or AIC chains) that are recognizable as patterns.

Keith
keith
2017 Supporter
 
Posts: 215
Joined: 03 April 2006

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby keith » Fri Jan 12, 2018 10:59 am

You can blame me for naming both the W-wing and the M-wing.

At that time, I was talking about short two-digit chains that are recognizable as patterns to visual people like me.

As I have said, W-wing is named for George Woods, who first pointed it out on the Daily Sudoku discussion list.
M-wing is named because I discovered it as the simplest case of Medusa coloring.

In my view, X-wing is misnamed. It is a fish, and should be rightfully viewed as a cyclic skyscraper.

I often wonder how other languages classify these patterns. Japanese? French? Unfortunately, I do not speak or read those languages well enough.

Keith
keith
2017 Supporter
 
Posts: 215
Joined: 03 April 2006

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby David P Bird » Fri Jan 12, 2018 11:34 am

The problem with so many names that are coined is that they are not picked up by the forum's search engine; for example, try searching for M-Wing and X-Wing. Innovators would be well advised to consider this.
David P Bird
2010 Supporter
 
Posts: 1040
Joined: 16 September 2008
Location: Middle England

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Wed Jan 17, 2018 1:02 am

keith wrote:You can blame me for naming both the W-wing and the M-wing. At that time, I was talking about short two-digit chains that are recognizable as patterns to visual people like me. As I have said, W-wing is named for George Woods, who first pointed it out on the Daily Sudoku discussion list. M-wing is named because I discovered it as the simplest case of Medusa coloring.


Thanks, Keith! It's good to know the history. Since I started this thread I've learned to appreciate those kinds of patterns quite a bit more as they're really easy to spot. When I understood what a W-Wing was I started finding lots of them immediately, so it's definitely a pattern worth knowing. Now I think I understand the M-Wing too (I hadn't really bothered before because the explanations seemed too complicated, but I just looked it up in your original thread on Daily Sudoku and that made it clear right away). Seems about as easy, so I'll start looking for those too. It saves time when you can recognize such obvious patterns without really trying.

In my view, X-wing is misnamed. It is a fish, and should be rightfully viewed as a cyclic skyscraper.


I whole-heartedly agree :)
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

Re: Line check for SudoCue Nightmare (Sun Dec 9, 2007)

Postby SpAce » Wed Jan 17, 2018 10:16 pm

Here's architech's definition of "wing" and the different wing types:

http://www.dailysudoku.com/sudoku/forums/viewtopic.php?t=6742

So, basically any AIC with three strong links and two weak links can be called a wing (+ a couple of known exceptions or misnomers)? That's a clear enough general rule to me. Is it a generally accepted/acceptable definition?

Added: A couple of things I don't understand in that list:

"Split wing S-WING x=y-(y=x)-x=y y may be eliminated from the beginning cell and x can be eliminated from the ending cell."

I can't visualize that at all. What does "x=y" mean without brackets, i.e. how can "not x imply y" unless they're in a bivalue cell (or something more exotic like BUG+2 which is obviously not the case here)?

"XYZ-WING (x=y)-(y=xz)-(z=x) any x that can see both ends can be eliminated."

That doesn't seem right. Isn't it just (x=y)-(y=zx) or (x=z)-(z=yx), i.e. ALS-XZ? That's just two strong links. Another exception to the rule?
Code: Select all
   *             |    |               |    |    *
        *        |=()=|    /  _  \    |=()=|               *
            *    |    |   |-=( )=-|   |    |      *
     *                     \  ¯  /                   *   
SpAce
 
Posts: 512
Joined: 22 May 2017

PreviousNext

Return to Help with puzzles and solving techniques