Continuous Loops with ALS nodes

Advanced methods and approaches for solving Sudoku puzzles

Continuous Loops with ALS nodes

Postby SpAce » Sun Dec 03, 2017 3:27 pm

We just had an instructive discussion about Continuous Nice Loops with ALS nodes in another thread http://forum.enjoysudoku.com/how-to-notate-this-als-chain-nightmare-sun-dec-2-2007-t34302.html, and I thought further general discussion about this topic would probably belong here. There seemed to be a bit of confusion (speaking for myself) what kind of eliminations were valid in these loops, or at least what the general rule was. I think we found an agreement, and there seems to be an actual rule that confirms it:

"ALS nodes in Grouped Continuous Nice Loops are especially interesting: If we take all ALS candidates, subtract the candidates used to enter and to leave the ALS (they are normal weak links that become strong links as usual in continuous loops), the remaining candidates become locked within the ALS cells and can provide eliminations in all cells, that see all instances of one of the locked candidates within the ALS. Please note that this possible only in continuous loops." http://hodoku.sourceforge.net/en/tech_chains.php

In other words, the loop entry and exit digits of the ALS are treated like normal weak link end-points in continuous loops and provide their own eliminations, but the rest of the ALS digits can also produce eliminations because they get locked in the ALS cells no matter which way you traverse the loop. That can make these loops quite powerful eliminators, as we saw in the other thread.

I'm not sure how widely that rule is understood, though, and that's why I brought it up here just in case. For instance, it seems to be missing from this SudokuWiki example (last one): http://www.sudokuwiki.org/AIC_with_ALSs. Let's take a look at that:

Code: Select all
+----------------+-----------------+----------------+
| 7    5   9     | 8     26  124   | 124 3    146   |
| 2    48  348   | 13459 36  1459  | 7   16   1456  |
| 34   1   6     | 345   7   2345  | 245 9    8     |
+----------------+-----------------+----------------+
| 138  9   7     | 2     5   13    | 14  168  146   |
| 6    24  145   | 7     9   8     | 15  12   3     |
| 138  28  1358  | 13    4   6     | 9   1278 157   |
+----------------+-----------------+----------------+
| 5    3   2     | 6     1   79    | 8   4    79    |
| 149  6   14    | 459   8   4579  | 3   17   2     |
| 1489 7   148   | 349   23  249   | 6   5    19    |
+----------------+-----------------+----------------+


Andrew's loop and eliminations translated into Eureka and rYcX format:

(3)r2c3 - (3=6)r2c5 - r2c8 = (6-8)r4c8 = r4c1 - (8=1=3)r6c14 - (3)r6c3 = (3)r2c3
=> -3 r2c4; -6 r2c9; -1 r4c8; -8 r6c23, r9c1

That's six eliminations, but they're all based on the normal weak links of the loop. The extra ALS eliminations aren't there. What would they be?

In this loop we have one ALS node r6c14{138}. Of those three digits 3 and 8 are the entry/exit digits, and their eliminations have been taken care of by the normal weak link rules (three 8s, no 3s available). We still have the digit 1 left, however, and that's a locked digit. Either way you travel the loop, the 1s are locked in the two ALS cells, and other 1s can be eliminated from the cells that see them both. In this case we can eliminate from the row only: -1 r6c389. That's still three more eliminations.

Note that if the ALS cells were packed in the box-row then we'd get two more eliminations in the box, but that's not possible here. Also, if it were a bigger ALS there would be more locked digits and they could all produce eliminations. (In the other thread our sample loop produced a total of 14 eliminations, of which 11 were by two locked ALS digits and only three by the normal weak link rules.)

Do we all agree on this observation? If so, was it already obvious to everyone or did this possibly clarify something? I just know it wasn't very clear to me even though I thought I had a somewhat decent grasp on chaining logic. If someone has more examples of these, that might be instructive.
Last edited by SpAce on Sun Dec 03, 2017 7:56 pm, edited 1 time 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: Continuous Loops with ALS nodes

Postby JC Van Hay » Sun Dec 03, 2017 7:05 pm

Code: Select all
+--------------------+--------------------+--------------------+
| 7      5   9       | 8       26    124  | 124  3       146   |
| 2      48  48(3)   | 1459-3  (36)  1459 | 7    1(6)    145-6 |
| 34     1   6       | 345     7     2345 | 245  9       8     |
+--------------------+--------------------+--------------------+
| 13(8)  9   7       | 2       5     13   | 14   -1(68)  146   |
| 6      24  145     | 7       9     8    | 15   12      3     |
| (138)  28  58-1(3) | (13)    4     6    | 9    278-1   57-1  |
+--------------------+--------------------+--------------------+
| 5      3   2       | 6       1     79   | 8    4       79    |
| 149    6   14      | 459     8     4579 | 3    17      2     |
| 149-8  7   148     | 349     23    249  | 6    5       19    |
+--------------------+--------------------+--------------------+
The loop (3=6)r2c5-6r2c8=(6-8)r4c8=8r4c1-(8=1=3)r6c14-3r6c3=3r2c3@ implies
6r2c5==6r2c8 => -6r2c9
6r4c8==8r4c8 => -1r4c8
8r4c1==8r6c1 => -8r9c1
1r6c4==1r6c1 => -1r6c389
3r2c3==3r2c5 => -3r2c4

A more general view :

The set P(uzzle) of 6 constraints [aka base sets] P={(36)r2c5, 6C8, 8R4, (813)r6c1, (13)r6c4, 3C3}
is a subset of the set P' of 6 constraints[aka cover sets] P'={6R2, (618)r4c8, 8C1, 1R6, 3R6, 3R2}.
As each solution of P is also a solution of P', the solutions of P exlude the set X=P'-P of 7 candidates,
where X={6r2c9, 1r4c8, 8r9c1, 1r6c389, 3r2c4}.

Warning : the solutions of P could exclude a candidate inside P [cannibalism] or outside P'

There is no cannibalism here, contrary to your last example in the previous thread [-7r3c7].
Here :
a. 8r4c1==8r4c8 => -8r6c23 outside P'
Code: Select all
+---------------------+-------------------+------------------+
| 7       5   9       | 8      26    124  | 124  3      146  |
| 2       48  48(3)   | 13459  (36)  1459 | 7    1(6)   1456 |
| 34      1   6       | 345    7     2345 | 245  9      8    |
+---------------------+-------------------+------------------+
| 1-3(8)  9   7       | 2      5     13   | 14   1(68)  146  |
| 6       24  145     | 7      9     8    | 15   12     3    |
| 138     28  15-8(3) | 13     4     6    | 9    1278   157  |
+---------------------+-------------------+------------------+
| 5       3   2       | 6      1     79   | 8    4      79   |
| 149     6   14      | 459    8     4579 | 3    17     2    |
| 1489    7   148     | 349    23    249  | 6    5      19   |
+---------------------+-------------------+------------------+
b. The loop contains a subchain
3r6c3=3r2c3-(3=6)r2c5-6r2c8=(6-8)r4c8=8r4c1-> 3r6c3=8r4c1 => -{8r6c3, 3r4c1} outside P'

Conclusion : the solutions of P exclude 10 candidates.
JC Van Hay
 
Posts: 719
Joined: 22 May 2010

Re: Continuous Loops with ALS nodes

Postby SpAce » Sun Dec 03, 2017 9:21 pm

JC, your constraint-set-based approach is indeed a very interesting way to look at chains. I don't understand much more of it than the first time, but I'm impressed anyway :) It doesn't seem like a human-friendly solving method, though, so I suppose the practical value of this method is more as a mathematical proof and/or for computer-based solving? Or do you actually use it manually?

My very limited understanding of constraint sets is in the context of fishes and locked sets, so I'd need a more detailed description to even begin to grasp how they're applied with chains. How do you define the base and cover sets? Can you link to a more detailed discussion of this? I don't have a mathematical background so I don't even expect to understand this stuff very deeply, but having a better general idea would be nice. Seems like it produces correct and comprehensive results, which was very helpful in guiding the previous thread to the right track.

As a practical matter, I'm wondering how we should handle the subchain you pointed out in the example. Can such subchain eliminations be included as part of applying a continuous loop, or should it be a separate move?
Last edited by SpAce on Sun Dec 03, 2017 10:46 pm, edited 1 time 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: Continuous Loops with ALS nodes

Postby tarek » Sun Dec 03, 2017 9:47 pm

The journey looks tedious but it should get you to your destination. A good starting point is http://forum.enjoysudoku.com/nice-loops-for-advanced-level-players-b-b-plot-t2143.html

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

Re: Continuous Loops with ALS nodes

Postby SpAce » Sun Dec 03, 2017 10:31 pm

tarek, to be honest I think that thread has mostly historical value :) There are surely more current documents and threads available on this topic? For one, everything there is in the nice loop notation, while everyone here seems to use Eureka now (which is better anyway). I doubt there's anything relevant to this specific topic either.

For general AIC and Nice Loop stuff I'd personally recommend starting with these:

David's AIC primer: http://forum.enjoysudoku.com/an-aic-primer-t33934.html
Hodoku Chains and Loops: http://hodoku.sourceforge.net/en/tech_chains.php
Paul Stephen's Nice Loops: https://www.paulspages.co.uk/sudokuxp/howtosolve/niceloops.htm
(And possibly for more theoretical and historical understanding the Eppstein paper: https://arxiv.org/pdf/cs/0507053.pdf)

I personally welcome any links that go deeper than those. This thread, however, has a specific target and is not about chains and loops in general. I'd like to see more examples of continuous nice loops with ALS nodes, because I suspect it's the least well understood form of (the common types of) nice loops.
-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: Continuous Loops with ALS nodes

Postby Leren » Mon Dec 04, 2017 10:02 am

There was a time when JC didn't seem to like cover sets too much. Have a look here. Times have changed but I have a good long term memory :D.

SpAce wrote :

(3)r2c3 - (3=6)r2c5 - r2c8 = (6-8)r4c8 = r4c1 - (8=1=3)r6c14 - (3)r6c3 = (3)r2c3
=> -3 r2c4; -6 r2c9; -1 r4c8; -8 r6c23, r9c1

I must be getting a bit better at this ALS loop business. I can see 9 eliminations straight off. It's obvious from the notation that 1 is True both ways in r6c14 so you get - 3 r2c4; - 6 r2c9; - 1 r4c8, r6c389; - 8 r6c23, r9c1.

Can't see -3 r4c1 as "obvious" without that extra sub-chain.

Leren
Leren
 
Posts: 5042
Joined: 03 June 2012

Re: Continuous Loops with ALS nodes

Postby pjb » Tue Dec 05, 2017 2:13 am

There's a slightly simpler continuous loop with 8 eliminations:
(1=6)r2c8 - (6=3)r2c5 - r2c3 = (3-5)r6c3 = (5-7)r6c9 = r6c8 - (7=1)r8c8 - loop => -1 r6c39, r456c8; -3 r3c4; -6 r2c9; -8 r6c3
Phil
pjb
2014 Supporter
 
Posts: 2568
Joined: 11 September 2011
Location: Sydney, Australia

Re: Continuous Loops with ALS nodes

Postby tarek » Tue Dec 05, 2017 1:47 pm

SpAce wrote:tarek, to be honest I think that thread has mostly historical value :)
I prefer romantic value ;)
User avatar
tarek
 
Posts: 3762
Joined: 05 January 2006

Re: Continuous Loops with ALS nodes

Postby ghfick » Tue Dec 05, 2017 6:02 pm

In HoDoKu, Edit : Preferences : Steps : then check 'Allow ALS in Chains'. Then, import the displayed puzzle by copying and pasting. Then, 'All steps'. One then sees a fascinating set of 'All possible steps'. Many variations of 'Grouped Continuous Nice Loops' [with ALS nodes] and many other choices including CNLs without ALS nodes.
ghfick
 
Posts: 232
Joined: 06 April 2016
Location: Calgary, Alberta, Canada youtube.com/@gordonfick

Re: Continuous Loops with ALS nodes

Postby JC Van Hay » Thu Dec 07, 2017 10:09 pm

FWIW, here are some more general comments.

To solve a puzzle whatever its level of difficulty and its number of solutions, I only use the following [already bashed away(!?)] principle :

The solutions of a set P(uzzle) of N [native] constraints [aka base sets/truths/native SIS/...) P={C1, ..., CN} where N=1, 2, ... determine a set C'(onstraint) of derived or not constraints C'={C'1, ...} excluding a set X(cluded) of candidates : P => -X.

Just a reminder :
1. A native constraint is the set (a...)ricj of all the possible digits in a cell or the set a[Ri or Ci or Bi] of all the possible digits a in a unit, where i, j = 1 to 9.
2. There are 9x9 + 3x9x9 = 324 such sets.
3. In each solution of a puzzle, each constraint contains exactly one element.

Notes :
1. A set P is determined by inferences from one of a slightly extended ordered set of empirical or not rules defined by Stephen Kurzhals in his blog on the sudoku.com.au site.
2. As Eureka notation is not my cup of tea, I am generally looking for the set X by writing the set P either in an ordered way on a single line or, if necessary, in a matrix form as defined by Andrei Zelevinsky and very well summarized in SteveK's blog.

Example 1 from the previous thread :
Code: Select all
+------------------------+--------------------+----------------------+
| -48(27)   5       148  | 148     128  1246  | 9     26-4(7)  3     |
| 9         134     134  | 7       123  1246  | 156   8        256-4 |
| 378-4(2)  1378-4  6    | 1389-4  5    19-24 | 1-7   (247)    (247) |
+------------------------+--------------------+----------------------+
| 34578     3478    2    | 6       789  79    | 3578  1        4578  |
| 3678      13678   138  | 2       4    5     | 3678  367      9     |
| 45678     9       458  | 18      178  3     | 2     4567     45678 |
+------------------------+--------------------+----------------------+
| 358       38      3589 | 1359    6    1279  | 4     2357     2578  |
| 3456      2       3459 | 3459    379  8     | 3567  3567     1     |
| 1         3468    7    | 345     23   24    | 3568  9        2568  |
+------------------------+--------------------+----------------------+
The pivot 7R1 , better than 7B8, of a Wing gives
P={7R1, 2C1, (247)r3c89} written as a Symmetric Pigeonhole Matrix :
Code: Select all
7r1c8  7r1c1
       2r1c1     2r3c1
7r3c8            2r3c8  4r3c8
7r3c9            2r3c9  4r3c9
  |      |         |      |
  V      V         V      V
-7r3c7 -(48)r1c1 -2r3c7 -4r3c1236
                        -4r1c8,r2c9
Note : native constraints are in the rows while the derived ones are in the columns

Exemple 2 fom this thread :
Code: Select all
+----------------------+--------------------+--------------------+
| 7       5    9       | 8       26    124  | 124  3       146   |
| 2       48   48(3)   | 1459-3  (36)  1459 | 7    1(6)    145-6 |
| 34      1    6       | 345     7     2345 | 245  9       8     |
+----------------------+--------------------+--------------------+
| 1-3(8)  9    7       | 2       5     13   | 14   -1(68)  146   |
| 6       24   145     | 7       9     8    | 15   12      3     |
| (138)   2-8  5-18(3) | (13)    4     6    | 9    278-1   57-1  |
+----------------------+--------------------+--------------------+
| 5       3    2       | 6       1     79   | 8    4       79    |
| 149     6    14      | 459     8     4579 | 3    17      2     |
| 149-8   7    148     | 349     23    249  | 6    5       19    |
+----------------------+--------------------+--------------------+
The 2 solutions of C5 [-> 0 or 1 solution] gives
P={3C3, (36)r2c5, 6C8, 8R4, (138)r6c1, (13)r6c4} written as a Symmetric Pigeonhole Matrix :
Code: Select all
3r6c3 3r2c3
      3r2c5 6r2c5
            6r2c8 6r4c8
                  8r4c8  8r4c1 --------> 3r6c3==8r4c1 => -{3r4c1, 8r6c3}
3r6c1                    8r6c1   1r6c1
3r6c4                            1r6c4
  |     |     |     |      |       |
  V     V     V     V      V       V
  x   -3r2c4  x   -1r4c8 -8r9c1  -1r6c389
                         -8r6c23

Example 3 : not a loop containing 3 almost loops
As an ALS is an almost loop, here is a not so straightforward example

The SER9.0 puzzle : ..578.........92788....1.5.....37.....3....19.......4.65.....84.8...6....2.8....7

P1={1B3} => -{1r1c12}
P2={2B9} + P3={2R15} => -{2r8c45, 2r6c6}
P4={3B7, 3C68} => -{3r12c1, 3r8c4}
Code: Select all
+-----------------------------+------------------------+------------------+
| 249      3469     5         | 7          8      234  | 13469  369  136  |
| 14       1346     146       | 3456       456    9    | 2      7    8    |
| 8        3469(7)  469(27)   | 2346       246    1    | 3469   5    36   |
+-----------------------------+------------------------+------------------+
| 25(149)  -6(149)  -6(12489) | -256(149)  3      7    | 568    26   256  |
| 2457     (467)    3         | 2456       2456   2458 | 5678   1    9    |
| 12579    (1679)   7-169(28) | 12569      12569  258  | 35678  4    2356 |
+-----------------------------+------------------------+------------------+
| 6        5        179       | 1239       1279   23   | 139    8    4    |
| 13479    8        1479      | 13459      14579  6    | 1359   239  1235 |
| 1349     2        149       | 8          1459   345  | 13569  369  7    |
+-----------------------------+------------------------+------------------+
The pivot 7C7 of a Wing could be interesting as 7r6c7 leads to a solution.
However, from the ALC point of view and marking up, the ALCs 1R4, 4R4 and 9R4 gives
P5={(149)R4, (28)C3, 7R3, (46)r5c2, (1679)r6c2} written as the following Forbidding Matrix [or Block Triangular Matrix] containing 3 Symmetric Pigeonhole (sub)Matrices [between the|] (a continuous network, an AHP and an AHT)
Code: Select all
|1r4c4     1r4c123                      |
|4r4c4             4r4c123              |
|9r4c4                     9r4c123      |
|                  4r5c2           6r5c2|7r5c2
|          1r6c2           9r6c2   6r6c2|7r6c2
                                         7r3c2 7r3c3
                                           2r3c3|2r6c3       2r4c3|
                                                |8r6c3       8r4c3|
                                                             1r4c3|      1r4c1     1r4c2 1r4c4|
                                                             4r4c3|      4r4c1     4r4c2 4r4c4|
                                                             9r4c3|      9r4c1     9r4c2 9r4c4|
  |          |        |      |       |             |           |           |         |      |
  V          V        V      V       V             V           V           V         V      V
-(256)r4c4 -1r6c13 -4r5c1 -9r6c13 -6r4c23        -(1469)r6c3 -(1679)r4c3 -(25)r4c1 -6r4c2 -(256)r4c4
                                  -6r6c3                    /
                                     |                     /
                                     V                    /
                                   6r56c2                /
                                     |                  /
                                     V                 /
                                  -6r12               /
                                      \              /
                                       \            /
                                        \          /
                                         -(256)r4c4
                                         -6r4c2
                                         -6r4c3
                                         -(196)r6c3
P6={6B4, 6R1} => -{6r1c1, 6r3c79}; stte

PS : about linksets/cover sets/...
1. Each candidate of P belongs to 3 native constraints called cover sets.
2. An excluded candidate belongs either to 1 cover set or to the intersection of 2, 3 or 4 cover sets or to the intersection of 1 base set and 1, 2 or 3 cover sets.
JC Van Hay
 
Posts: 719
Joined: 22 May 2010

Re: Continuous Loops with ALS nodes

Postby SpAce » Sat Dec 09, 2017 11:46 pm

Thanks for all the comments! I especially appreciate JC's effort in trying to explain that constraint stuff in detail. Not sure when if ever I'll be able to digest it fully, but hopefully some day.

In the mean time, I have another question possibly relating to this. Can the doubly-linked ALS-XZ be thought of as a continuous loop? If so, I'd be happy. Like I've said before, I'm not a big fan of memorizing lots of unintuitive patterns and their elimination rules if understanding a single logical principle is sufficient.

Hodoku offers two examples of doubly-linked ALS-XZ:

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

Am I correct in seeing them as these loops with the same eliminations:

(2=1=4)r4c23 - (4=79=2)r2c239 - loop

(4=178=6)r2c23,r3c23 - (6=7=4)r23c4 - loop

...or not? In fact, I'd rather see them like this, each with just a single multi-cell ALS node:

(2=1)r4c2 - (1=4)r4c3 - (4=79=2)r2c239 - loop

(4=178=6)r2c23,r3c23 - (6=7)r2c4 - (7=4)r3c4 - loop

The chains are longer that way, but they seem simpler and more intuitive to me than looking at multiple ALS nodes and thinking of RCCs. I'd be much more likely to find them that way too. At least for now -- more experience or good arguments may change my perspective.
-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: Continuous Loops with ALS nodes

Postby JC Van Hay » Sun Dec 10, 2017 5:14 pm

Hi spAce,
No comment, I completely agree :D Here are some more observations, for completeness:

First example
Code: Select all
+---------------------------+-----------------------+-------------------+
| 124579    1579-2   1579-4 | 2468   246789  24689  | 45679  3    5679  |
| 6         (279)    (479)  | 5      234-79  234-9  | 1      8    (79)  |
| 4579      8        3      | 46     1       469    | 45679  2    5679  |
+---------------------------+-----------------------+-------------------+
| 248-1     (12)     (14)   | 9      5       7      | 3      46   68-1  |
| 134578    6        157-4  | 148    348     1348   | 4578   9    2     |
| 12345789  13579-2  1579-4 | 12468  23468   123468 | 45678  467  15678 |
+---------------------------+-----------------------+-------------------+
| 1379      1379     6      | 18     89      189    | 2      5    4     |
| 59        4        8      | 7      269     2569   | 69     1    3     |
| 1579      1579     2      | 3      4689    145689 | 6789   67   6789  |
+---------------------------+-----------------------+-------------------+
The continuous loop (2=1)r4c2-(1=4)r4c3-(4=79)r2c39-(79=2)r2c2
can also be written as the following Symmetric Pigeonhole Matrix
Code: Select all
2r4c2 1r4c2
      1r4c3 4r4c3
            4r2c3|7r2c3 9r2c3|
                 |7r2c9 9r2c9|
2r2c2             7r2c2 9r2c2
The 4 solutions of the 5 base sets {r24c23, r2c9} covered by the 5 native constraints {2C2, 1R4, 4C3, (79)R2} exclude the indicated 10 candidates.
Note : reading the SPM from the 4th row gives another possible continuous loop :
(7=9)r2c9-9r2c23=*XY-Ring{(72*)r2c2, (21)r4c1, (14)r4c3, (47*)r2c3} [Continuous loop with an Almost Continuous loop node]

Second example
The Doubly Linked ALS-XZ can be detected, for example, as follows :
Code: Select all
+----------------------+--------------------+------------------+
| 1346789 134678 6789  | 2467  145678 12457 | 158  157   1578  |
| 2       (1678) (678) | (67)  15678  157   | 3    4     9     |
| 5       (1478) (78)  | (47)  3      9     | 2    6     178   |
+----------------------+--------------------+------------------+
| 13678   9      25678 | 23467 467    2347  | 156  12357 12357 |
| 367     23567  4     | 1     67     237   | 9    8     2357  |
| 1367    12367  267   | 5     9      8     | 16   1237  4     |
+----------------------+--------------------+------------------+
| 479     457    1     | 8     2      3457  | 45   359   6     |
| 4689    24568  25689 | 349   145    1345  | 7    12359 12358 |
| 4789    24578  3     | 479   1457   6     | 1458 1259  1258  |
+----------------------+--------------------+------------------+
XYZ-Wing[NP(78)r23c3=6r2c3-(6=7)r2c4]-...-(7=4)r3c4-(4r3c2,6r2c2,7r2c2)=NT(178)r2c2,r3c23 Loop
or
Code: Select all
|7r3c3 8r3c3|
|7r2c3 8r2c3|6r2c3
             6r2c4 7r2c4
                   7r3c4  4r3c4
                          4r3c2|1r3c2 7r3c2 8r3c2|
                               |      7r3c3 8r3c2|
             6r2c2 7r2c2       |1r2c2       8r2c2|
The 6 native constraints in this loop are the 6 cells r23c234.
They are covered by the 6 native constraints {4R3, 1C2 or 1B1, 7B1, 8B1, 6R2, 7C4 or 7B4}.
Therefore, the following Symmetric Pigeonhole Matrix can be written
Code: Select all
|4r3c2 1r3c2 7r3c2 8r3c2|
|            7r3c3 8r3c2|
|      1r2c2 7r2c2 8r2c2| 6r2c2
|            7r2c3 8r2c3| 6r2c3
                          6r2c4 7r2c4
 4r3c4                          7r3c4
Fortunately, this SPM can be written in Eureka.
Anyway, whatever the way the continuous loop is written, it leads to 17 exclusions by taking into account the above cover sets.
However, unlike in Hodoku, the 5 solutions of the 6 base sets give 2 more exclusions ! To wit,
Code: Select all
+-----------------------------------------+--------------------------+------------------+
| 3469-178 346-178           69-78        | 246-7     14568-7 1245-7 | 158  157   1578  |
| 2        (1ab    6c -7 8a) (6a 7b  8c)  | (6b  7ac) 158-67  15-7   | 3    4     9     |
| 5        (1ac 4b    7a 8a) (   7ac 8ab) | (4ac 7b)  3       9      | 2    6     18-7  |
+-----------------------------------------+--------------------------+------------------+
| 13678    9                 25678        | 2346-7    467     2347   | 156  12357 12357 |
| 367      23567             4            | 1         67      237    | 9    8     2357  |
| 1367     2367-1            267          | 5         9       8      | 16   1237  4     |
+-----------------------------------------+--------------------------+--------------- --+
| 479      457               1            | 8         2       3457   | 45   359   6     |
| 4689     24568             25689        | 349       145     1345   | 7    12359 12358 |
| 4789     24578             3            | 49-7      1457    6      | 1458 1259  1258  |
+-----------------------------------------+--------------------------+------------------+
a : 6r2c3 -> 7r2c4, 4r3c4, (78)r3c3, (18)r2c2, (178)r3c3 [3 solutions]
b : 7r2c3 -> 6r2c4, 7r3c4, 8r3c3, 1r2c2, 4r3c3 [1 solution]
c : 8r2c3 -> 7r3c3, 4r3c4, 1r3c2, 6r2c2, 7r2c4 [1 solution]
From a=b=c :
1. 7r3c4==7r3c23==7r2c3 => -7r2c2 [Auto-Cannibalism]
Interpretation : XYZ-Wing(678)r23c3,r2c4-7r2c2 [see above]
2. 7r3c23==7r3c4==7r3c3 => -7r3c9
Interpretation :
Code: Select all
7r3c9 [-> r2c3={}]
  |
  V
7r3c4 4r3c4
7r3c3       8r3c3
7r3c2 4r3c2 8r3c2 1r3c2
            8r2c2 1r2c2 6r2c2 [7r2c2]
                        6r2c4  7r2c4
            8r2c3       6r2c3  7r2c3
which is another way to write down the SPM
Reading it from the 2 last rows gives the following "chain" containing 3 Almost Continuous Loops nodes :
8r2c3-8r3c23=NT(147)r3c234
||
NP(67)r2c34-(6[7])r2c2=SueDeCoq[(7=4)r3c4-(4=18=7)r2c2,r3c23]
Note : because the SdC can have the solution (147)r3c234.8r2c2, this chain is a discontinuous loop!
JC Van Hay
 
Posts: 719
Joined: 22 May 2010

Re: Continuous Loops with ALS nodes

Postby SpAce » Sun Dec 10, 2017 6:42 pm

Thanks, JC! Just one question/comment on the notation at this time:

JC Van Hay wrote:The continuous loop (2=1)r4c2-(1=4)r4c3-(4=79)r2c39-(79=2)r2c2


Are you sure it can be written like that? That's exactly how I wrote and almost posted it at first, because it's the most intuitive way to see the chain in that direction, but then I tried to walk it backwards:

(2=79)r2c2-(79=4)r2c39-(4=1)r4c3-(1=2)r4c2

Doesn't make sense now, does it? It should be:

(2=79)r2c29-(79=4)r2c3-(4=1)r4c3-(1=2)r4c2

Right? If we want to uphold the principle of reversibility, then I think we must use the larger ALS:

(2=1)r4c2 - (1=4)r4c3 - (4=79=2)r2c392

It's not as intuitive to me, but it does work backwards too:

(2=79=4)r2c293 - (4=1)r4c3 - (1=2)r4c2
-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: Continuous Loops with ALS nodes

Postby JC Van Hay » Sun Dec 10, 2017 7:40 pm

SpAce wrote:Just one question/comment on the notation at this time:

JC Van Hay wrote:The continuous loop (2=1)r4c2-(1=4)r4c3-(4=79)r2c39-(79=2)r2c2


Are you sure it can be written like that?
As far as I can tell, it is a bidirectional chain. Clearly, from right to left [or reading the SPM bottom up], if r2c2=7 or 9, you can't have r2c39=7 and 9 [otherwise, you would have r2c239=79 !]. Therefore, r2c3=4. Nevertheless, this doesn't prevent writing the chain in a more or less condensed way ;)
JC Van Hay
 
Posts: 719
Joined: 22 May 2010

Re: Continuous Loops with ALS nodes

Postby SpAce » Sun Dec 10, 2017 8:18 pm

JC Van Hay wrote:As far as I can tell, it is a bidirectional chain.


I think you're right!

(2=79)r2c2-(79=4)r2c39-(4=1)r4c3-(1=2)r4c2

That does make sense if the first instance of "79" is read as "7 or 9" and the second as "7 and 9". For some reason that way of reading it wasn't intuitive to me.

Edit: In a way the second "79" is also "7 or 9" because only one of them is eliminated by the preceding weak link (and not both). However, we can also think that the weak link destroys the possibility of a "7 and 9" relationship in those cells, so I guess it can be seen either way. Anyway, this is why I find that chain a bit confusing :)
-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

Next

Return to Advanced solving techniques