22 April 2007, Grouped AIC's and Rings

Discuss the <a href="http://www.sudocue.net/daily.php">Daily Sudoku Nightmare</a> here
Post Reply
Ron Moore
Addict
Addict
Posts: 72
Joined: Sun Aug 13, 2006 3:34 am
Location: New Mexico

22 April 2007, Grouped AIC's and Rings

Post by Ron Moore »

Start position for the 22 April 2007 Nightmare:

Code: Select all

. . .|4 . 8|. . 1
. . .|. 6 .|2 7 .
. . 6|. . 2|8 5 .
-----+-----+-----
7 . .|. . .|1 . 9
. 8 .|. . .|. 4 .
9 . 4|. . .|. . 5
-----+-----+-----
. 4 9|2 . .|5 . .
. 3 7|. 8 .|. . .
1 . .|3 . 9|. . .
I found this one tougher than most of the Sunday Nightmares. I had occasion to use several "grouped" Alternating Inference Chains (AIC's), in which the nodes of the chains are not necessarily single cells, but possibly groups of cells. Grouped (multi-cell) nodes may be of two types -- nodes which contain Almost Locked Sets (ALS's), and grouped nodes for a single digit.

In an AIC, a digit X may be used to weakly link an ALS node to any other type of node if both nodes contain X as a candidate and all occurrences of candidate X in the two nodes lie in some common house. Thus the digit X cannot exist in both nodes. When digit X weakly links two ALS nodes, it's usually called a "restricted common" digit for those ALS's.

A multi-cell node for a single digit, say digit X, consists of two or three aligned cells, all containing X as a candidate, in some box. Again, a node of this type is weakly linked to another node of any type, containing X as a candidate, if all X candidates in the two nodes lie in some common house. Thus X cannot exist in both nodes. The link is a strong conjugate link (which can be used as a link of weak inference or strong inference in an AIC) if the two nodes together contain all X candidates in that house. Thus, one or the other of the two nodes must contain X.

Sometimes an AIC will loop back to its starting point to form a ring structure in which the alternation of links of strong and weak inference is continuously maintained around the loop. Here I'll use the term "AIC ring" for such a structure. It's a good idea to learn to recognize these as they can sometimes produce many eliminations. Generally, for any AIC ring, we can conclude that the links of weak inference in the ring are also links of strong inference as well. One way to see this is to imagine breaking the ring at any weak link. The remaining chain is an AIC, beginning and ending with a strong link, which connects the two nodes of the broken link and therefore establishes a strong link between them. There are some AIC rings in this solution.

Since this solution is somewhat lengthy, when possible I've tried to use one diagram to illustrate several successive steps. To avoid excessive clutter and confusion, I usually haven't tried to label all cells involved in the various chains or patterns, or show all the eliminations from all steps. When I have shown specific eliminations, I've followed the convention of listing all eliminated digits to the right of the "-" symbol.

Getting down to specifics, basic techniques bring the grid to this position:

Code: Select all

.---------------------.-----------------------.---------------------.
| 235    257    25-3  | 4      357     8      | 6      9      1     |
|*58-34  159   #1358  | 159    6      #135    | 2      7     *4-3   |
|*34     179    6     | 179    179     2      | 8      5     *34    |
&#58;---------------------+-----------------------+---------------------&#58;
| 7      256   #235   | 568    4      #356    | 1      268    9     |
| 2356   8      125-3 | 15679  123579  1567-3 | 37     4      26    |
| 9      126    4     | 1678   1237    167-3  | 37     268    5     |
&#58;---------------------+-----------------------+---------------------&#58;
| 68     4      9     | 2      17      167    | 5      3      78    |
| 256    3      7     | 56     8       4      | 9      1      26    |
| 1      256    258   | 3      57      9      | 4      26     78    |
'---------------------'-----------------------'---------------------'
Uniqueness-based techniques often produce good yield so the solution begins with the "unique corner" eliminations shown in r2c1, from the "34" based UR pattern in r23c19 (marked with "*"). This leaves (4)r2c9 as a hidden single in row 2. With digit 3 thus eliminated from r2c19, there is an X-wing for digit 3 in r24c36 (marked with "#"), giving the eliminations shown in r15c3, r56c6.

Note that an X-wing is a simple example of an AIC ring. For this one we have:
  • (3): r2c3 = r2c6 - r4c6 = r4c3 - r2c3 => AIC ring => r15c3, r56c6 <> 3
Since this is an AIC ring, we conclude that the weak links above, r2c6 - r4c6, and r4c3 - r2c3, are strong conjugate links as well, and from this the indicated eliminations follow.

After basic follow-up:

Code: Select all

.---------------------.---------------------.---------------------.
| 235    257    25    | 4      357    8     | 6      9      1     |
| 58     159    1358  | 159    6      135   | 2      7      4     |
| 4      179    6     | 179    179    2     | 8      5      3     |
&#58;---------------------+---------------------+---------------------&#58;
| 7      256    235   | 568    4      356   | 1      268    9     |
| 2356   8      125   | 15679  123579 1567  | 37     4      26    |
| 9      126    4     | 1678   1237   167   | 37     268    5     |
&#58;---------------------+---------------------+---------------------&#58;
| 68     4      9     | 2      17     167   | 5      3      78    |
| 256    3      7     | 56     8      4     | 9      1      26    |
| 1      256    58-2  | 3      57     9     | 4      26     78    |
'---------------------'---------------------'---------------------'
Here we have the grouped AIC
  • (2=5)r1c3 - (5=8)r2c1 - (8=562)r78c1|r9c2 => r9c3 <> 2
The chain shows that either the first node (r1c3) or the last node (r78c1|r9c2) of the chain (or possibly both) must contain a "2." r9c3 sees all cells of the two nodes, so in particular it sees all the "2" candidates in the two nodes, so it must see digit 2 somewhere and thus cannot contain 2. Note that writing the chain in this way corresponds to viewing the pattern as a fairly simple ALS XY wing, but it's not really necessary or helpful to know this fact as long as the basic logic of the AIC is understood.

It's acceptable to group the first two nodes together, as shown below, and in fact this would be the way to view the pattern as an ALS XZ rule position.
  • (2=58)r1c3|r2c1 - (8=562)r78c1|r9c2 => r9c3 <> 2
Here r9c3 does not see all cells of the first node, but it does see all "2" candidates in the two nodes so the same conclusion follows.

With the candidates in r9c3 reduced to "58," there is a naked "578" triple in r9c359, which eliminates (5)r9c2.

This reduces the r9c2 candidates to "26," so we have a short XY chain:
  • (2=5)r1c3 - (5=8)r2c1 - (8=6)r7c1 - (6=2)r9c2 => r1c2 <> 2
Follow-up brings the grid to this position:

Code: Select all

.----------------------.-----------------------.---------------------.
|  23-5   57     25    | 4     E357      8     | 6      9      1     |
| A58     19-5   138-5 |F159    6       F135   | 2      7      4     |
|  4      179    6     | 179    179      2     | 8      5      3     |
&#58;----------------------+-----------------------+---------------------&#58;
|  7      256    235   | 568    4        356   | 1      268    9     |
|  236-5  8      125   | 15679  12379-5  1567  | 37     4      26    |
|  9      126    4     | 1678   1237     167   | 37     268    5     |
&#58;----------------------+-----------------------+---------------------&#58;
| B68     4      9     | 2      17       167   | 5      3      78    |
| B256    3      7     |C56     8        4     | 9      1      26    |
|  1     B26     58    | 3     D57       9     | 4      26     78    |
'----------------------'-----------------------'---------------------'
Here we have another AIC ring, this one containing two grouped nodes. The nodes in the ring are marked with letters A (cell r2c1) through F (cells r2c46). Nodes B and F are the only multi-cell nodes -- node B is an ALS node, and node F is a grouped node for digit 5.
  • (5=8)r2c1 - (8=265)r78c1|r9c2 - (5)r8c4 = (5)r9c5 - (5)r1c5 = (5)r2c46 - (5)r2c1 => AIC ring
The first two nodes in the chain by themselves establish a strong link between (5)r2c1 and (5)r8c1, thus the eliminations shown in column 1. The other eliminations shown follow from the fact that the links of weak inference in this AIC ring are strong conjugate links as well. Thus,
  • (5)r9c5 = (5)r1c5, eliminating (5)r5c5
and
  • (5)r2c46 = (5)r2c1, eliminating (5)r2c23
After these eliminations:

Code: Select all

.------------------.----------------------.------------------.
| 23    57    25   | 4       357    8     | 6     9     1    |
| 58    19    138  | 159     6      135   | 2     7     4    |
| 4     179   6    | 179     179    2     | 8     5     3    |
&#58;------------------+----------------------+------------------&#58;
| 7    B256   235  | 568     4      356   | 1     268   9    |
|A236   8     125  | 1579-6  12379  157-6 | 37    4    F26   |
| 9    B126   4    | 1678    1237   167   | 37    268   5    |
&#58;------------------+----------------------+------------------&#58;
| 68    4     9    | 2       17     167   | 5     3     78   |
| 256   3     7    | 56      8      4     | 9     1    E26   |
| 1    C26    58   | 3       57     9     | 4    D26    78   |
'------------------'----------------------'------------------'
In this position there is a grouped AIC for digit 6. In the diagram, the nodes in the chain are labelled A (r5c1) through F (r5c9), with node B being the only grouped node.
  • (6): r5c1 = r46c2 - r9c2 = r9c8 - r8c9 = r5c9 => r5c46 <> 6
(An alternative would be to use r78c1 as node B.)

Note that this could be "closed up" to form an AIC ring for digit 6, but this doesn't add anything in this case since all the links of weak inference in the chain are already strong conjugate links.

Independent of this AIC, there is also this non-grouped AIC:
  • (5=2)r1c3 - (2=3)r1c1 - (3)r2c3 = (3)r4c3 => r4c3 <> 5
Finally, we have this grouped AIC, with r5c19 being the only multi-cell node:
  • (3=7)r6c7 - (7=3)r5c7 - (3=62)r5c19 - (2)r5c5 = (2)r6c5 => r6c5 <> 3
After basic followup:

Code: Select all

.-----------------.---------------.---------------.
| 23   57    25   | 4    357  8   | 6    9    1   |
| 58   19    138  | 159  6    135 | 2    7    4   |
| 4    179   6    | 179  179  2   | 8    5    3   |
&#58;-----------------+---------------+---------------&#58;
| 7    256   23   | 568  4    356 | 1    268  9   |
| 236  8     15-2 | 159  1239 15  | 7    4    26  |
| 9    16-2  4    | 1678 127  167 | 3    268  5   |
&#58;-----------------+---------------+---------------&#58;
| 68   4     9    | 2    17   167 | 5    3    78  |
| 256  3     7    | 56   8    4   | 9    1    26  |
| 1    26    58   | 3    57   9   | 4    26   78  |
'-----------------'---------------'---------------'
Here we have:
  • (2=3)r4c3 - (3)r4c6 = (3-2)r5c5 = (2)r6c5 => r6c2 <> 2
There is also this XYZ wing:
  • (2=3)r4c3 - (3=62)r5c19 => r5c3 <> 2
After this elimination the candidates in r5c3 are reduced to "15", so that there is a naked "15" pair in r5c36.

Also, after the eliminations of (2)r5c3 and (2)r6c2 (which are shown in the diagram) from the preceding two chains, there is a short XY chain:
  • (6=1)r6c2 - (1=5)r5c3 - (5=8)r9c3 - (8=6)r7c1 => r5c1, r9c2 <> 6
After followup:

Code: Select all

.---------------.-----------------.---------------.
| 23   57   25  | 4     357  8    | 6    9    1   |
| 58   9    138 | 15    6    13-5 | 2    7    4   |
| 4    17   6   | 17    9    2    | 8    5    3   |
&#58;---------------+-----------------+---------------&#58;
| 7    56   23  | 68-5  4    356  | 1    28   9   |
| 23   8    15  | 9     23   15   | 7    4    6   |
| 9    16   4   | 1678  127  167  | 3    28   5   |
&#58;---------------+-----------------+---------------&#58;
| 68   4    9   | 2     17   167  | 5    3    78  |
| 56   3    7   | 56    8    4    | 9    1    2   |
| 1    2    58  | 3     57   9    | 4    6    78  |
'---------------'-----------------'---------------'
Here we have:
  • (5=1)r2c4 - (1)r2c3 = (1-5)r5c3 = (5)r5c6 => r2c6, r4c4 <> 5
After these eliminations (shown in the diagram), we have an XY chain:
  • (3=1)r2c6 - (1=5)r2c4 - (5=6)r8c4 - (6=8)r4c4 - (2=3)r4c3 => r2c3, r4c6 <> 3
Follow-up of these eliminations brings the grid to a BUG + 1 position, and we're done.
GreenLantern
Regular
Regular
Posts: 14
Joined: Tue May 30, 2006 8:07 pm

Post by GreenLantern »

This was a fun puzzle but took a while as there were a lot of patterns to spot. I ended up solving it with several multicolorings, patterns, and some Nice Loops (some simple and some with grouped nodes). Here is my solution:
  • Unique Rectangle (34): r23c19 => r2c1<>34
  • X-wing in 3's: r24c36 => r1c3/r5c36/r6c6<>3
  • Finned X-wing in 6's: r58c49,r46c4(fins) => r5c6<>6
  • Multicoloring in 6's: r5c1,r78c1,r9c28,r58c9 => r5c4<>6

Code: Select all

+-------------------------+-------------------------+-------------------------+
| 235     257     25      | 4       357     8       | 6       9       1       | 
| 58      159     1358    | 159     6       135     | 2       7       4       | 
| 4       179     6       | 179     179     2       | 8       5       3       | 
+-------------------------+-------------------------+-------------------------+
| 7       256     235     | 568     4       356     | 1       268     9       | 
| 2356    8       125     | 1579    123579  157     | 37      4       26      | 
| 9       126     4       | 1678    1237    167     | 37      268     5       | 
+-------------------------+-------------------------+-------------------------+
| 68      4       9       | 2       17      167     | 5       3       78      | 
| 256     3       7       | 56      8       4       | 9       1       26      | 
| 1       256     258     | 3       57      9       | 4       26      78      | 
+-------------------------+-------------------------+-------------------------+
  • [r2c3]=8=[r2c1]-8-[r7c1]-6-[r7c6]=6=[r8c4]=5=[r9c5]-5-[r1c5]=5=[r1c123]-5-[r2c3] => r2c3<>5
  • [r5c4]=9=[r5c5]=2=[r6c5]=3=[r6c7]=7=[r5c7]-7-[r5c4] => r5c4<>7
  • [r9c3]=8=[r2c3]-8-[r2c1]-5-[r1c3]-2-[r9c3] => r9c3<>2
  • Multicoloring in 2's: r56c5,r58c9,r9c28 => r6c2<>2

Code: Select all

+-------------------------+-------------------------+-------------------------+
| 235     257     25      | 4       357     8       | 6       9       1       | 
| 58      159     138     | 159     6       135     | 2       7       4       | 
| 4       179     6       | 179     179     2       | 8       5       3       | 
+-------------------------+-------------------------+-------------------------+
| 7       256     235     | 568     4       356     | 1       268     9       | 
| 2356    8       125     | 159     123579  157     | 37      4       26      | 
| 9       16      4       | 1678    1237    167     | 37      268     5       | 
+-------------------------+-------------------------+-------------------------+
| 68      4       9       | 2       17      167     | 5       3       78      | 
| 256     3       7       | 56      8       4       | 9       1       26      | 
| 1       26      58      | 3       57      9       | 4       26      78      | 
+-------------------------+-------------------------+-------------------------+
  • [r1c2]-2-[r1c3]-5-[r2c1]-8-[r7c1]-6-[r9c2]-2-[r1c2] => r1c2<>2
  • [r4c2]=5=[r12c2]-5-[r2c1]-8-[r7c1]-6-[r9c2]-2-[r4c2] => r4c2<>2
  • XYZ-wing (235): r14c3,r5c1 => r5c3<>2
  • [r6c4]-6-[r6c2]-1-[r5c3]-5-[r9c3]-8-[r9c9]-7-[r9c5]-5-[r8c4]-6-[r6c4] => r6c4<>6

Code: Select all

+-------------------------+-------------------------+-------------------------+
| 23      57      25      | 4       357     8       | 6       9       1       | 
| 58      159     138     | 159     6       135     | 2       7       4       | 
| 4       179     6       | 179     179     2       | 8       5       3       | 
+-------------------------+-------------------------+-------------------------+
| 7       56      23      | 568     4       356     | 1       28      9       | 
| 23      8       15      | 159     123579  157     | 37      4       6       | 
| 9       16      4       | 178     1237    167     | 37      28      5       | 
+-------------------------+-------------------------+-------------------------+
| 68      4       9       | 2       17      167     | 5       3       78      | 
| 56      3       7       | 56      8       4       | 9       1       2       | 
| 1       2       58      | 3       57      9       | 4       6       78      | 
+-------------------------+-------------------------+-------------------------+
  • Multicoloring in 5's: r1c5,r2c46,r28c1,r9c35 => r2c2/r5c5<>5
  • [r6c5]=2=[r5c5]-2-[r5c1]-3-[r5c7]-7-[r6c7]-3-[r6c5] => r6c5<>3
  • [r4c4]-5-[r2c4]-1-[r3c4]-7-[r3c2]-1-[r6c2]-6-[r4c2]-5-[r4c4] => r4c4<>5
  • [r1c5]=5=[r9c5]-5-[r8c4]-6-[r4c4]-8-[r4c8]-2-[r4c3]=2=[r1c3]-2-[r1c1]-3-[r1c5] => r1c5<>3
For those solvers that are fluent in both Nice Loops and AIC's, I have a couple questions. Are these two basically equivalent techniques that just use a different labeling scheme, or are they two completely different solving methods? If they are different, are there any examples of eliminations possible in one without an equivalent construction in the other?
Myth Jellies
Hooked
Hooked
Posts: 42
Joined: Tue Apr 04, 2006 7:07 am

Post by Myth Jellies »

AICs and Nice Loops are two different ways of envisioning the same reduction. Ultimately, one really cannot do any more than the other. Originally I tried to incorporate the AIC observations as a part of Nice Loops, but they were not accepted and so I presented AICs as an alternate and simplified way of looking at Nice Loops. Here is a post I made about how AICs came about.
A little AIC history from my perspective, so take it for what it is worth. People were already making Nice Loops type deductions before I arrived on the sudoku scene, and even before there was anything called Nice Loops. I believe Nice Loops originally referred to the method of identifying bidirectional chained reductions through the use of Bivalue/Bilocation plots which connected either cells (Jeff & the majority) or candidates (the minority, but you can find early examples of such plots if you dig) with lines which formed loops when there was a potential deduction. The term Nice Loops then evolved to mean a certain kind of bidirectional forcing chain that could have been found using Nice Loops. This was natural, since a large number of people didn't want to mess with drawing lines all over their puzzles. While all this was going on, I was developing the Pattern Overlay Method (POM) and, among other things, using POM to analyze Nice Loop reductions. I found the candidate-to-candidate alternating inference pattern and thought, just as r.e.s. and others have indicated, that pretty much everyone who works with Nice Loops had noticed the same relationship. I used that relationship to structure my Nice Loops just as I assumed most of the aforementioned minority who used candidate based nodes (as opposed to cell based nodes) did. Since I learned about the workings of these loops originally from a debate I had with r.e.s., it is probably not surprising that I was in the digit-to-digit camp. So all along, those of us who were doing Nice Loops in a digit-to-digit fashion were really also doing AICs. When Jeff tried to organize all knowlege about using forcing chains to solve sudokus into one post, I tried very hard to get him to incorporate the simplicity of the digit-to-digit view into Nice Loops. While he saw the merits of it, he stated in no uncertain terms that there would be no candidate-to-candidate linkages in Nice Loops. Thus, I took it upon myself to present the digit-to-digit simplification of Nice Loops. I added a few new features that enabled easier expansion for incorporating new methods as they are discovered. I simplified the ALS representation and called it an AIC.
The primary differences are as follows...

1) Nice Loops were originally intended to describe lined bivalue/bilocation plots with labelled edges (links). They are unsurpassed in that capacity. On the other hand, AICs mesh very well with coloring methods. One can actually use colors, or conjugate string groups, directly in an AIC.

2) Nice Loops work at a cell-to-cell level and tend to hide what is going on inside the cells. Therefore they have a lot of little rules based on cell content that you have to remember. AICs have simplified all of the Nice Loop rules into a single rule. AIC notation also tends to show how all of the candidates are involved in a deduction, which can sometimes be left out of a Nice Loop notation. In my opinion this makes AICs easier to learn if you are not solely doing B/B plots.

3) AICs never need to use the candidates being eliminated in the AIC chain pattern. Since a proof by contradiction starts with an assumption of the opposite of what you prove, one can reasonably argue that AICs cannot possibly be a T&E or contradiction method because they do not use the removed candidate in the deduction or pattern finding process.

4) AICs were originally designed to be extensible so that as new patterns which resulted in strong links were discovered, they could easily be incorporated into AICs. Nice Loops share this capability.

5) The AIC definitions of strong and weak links have evolved so that
a) They can be described/distinguished without resorting to "if A not true then B is true" style assumptions
b) They are readily extendable from single threaded chains to multi-threaded networks.
GreenLantern
Regular
Regular
Posts: 14
Joined: Tue May 30, 2006 8:07 pm

Post by GreenLantern »

Myth Jellies,

Thanks for providing the historical perspective and outlining the key differences between AICs and Nice Loops. This answers a lot of questions.
Sudtyro
Hooked
Hooked
Posts: 49
Joined: Tue Jan 16, 2007 8:17 pm

Post by Sudtyro »

GL,
Many thanks to you and RM for the elegant and complementary solutions to this tough puzzle!

Just wanted to pose one question based on observation of both RM’s AIC-based and your Nice-Loop-based solution strategies...

Most of the Nice-Loop nodes seem to involve only single cells or same-digit groups, so how in general are multi-cell Almost Locked Sets included in Nice Loops? For example, what would the proper Nice Loop notation be for RM’s ALS-XZ rule used for the (2)r9c3 elimination shown in his second grid position?

(2=58)r1c3|r2c1 – (8=562)r78c1|r9c2 => r9c3 <> 2
Steve
Regular
Regular
Posts: 12
Joined: Tue Jan 24, 2006 3:07 am
Location: England

Post by Steve »

I think the nice loop which corresponds to Ron’s pair of almost locked sets is:

r9c3 -2- {r1c3, r2c1} -8- {r7c1, r8c1, r9c2} -2- r9c3

As it happens you could confine yourself to single cells here, if you prefer:

r9c3 -2- r1c3 -5- r2c1 -8- r2c3 =8= r9c3

Steve
GreenLantern
Regular
Regular
Posts: 14
Joined: Tue May 30, 2006 8:07 pm

Post by GreenLantern »

Code: Select all

+---------------------+---------------------+---------------------+
| 235    257    25    | 4      357    8     | 6      9      1     |
| 58     159    1358  | 159    6      135   | 2      7      4     |
| 4      179    6     | 179    179    2     | 8      5      3     |
+---------------------+---------------------+---------------------+
| 7      256    235   | 568    4      356   | 1      268    9     |
| 2356   8      125   | 15679  123579 1567  | 37     4      26    |
| 9      126    4     | 1678   1237   167   | 37     268    5     |
+---------------------+---------------------+---------------------+
| 68     4      9     | 2      17     167   | 5      3      78    |
| 256    3      7     | 56     8      4     | 9      1      26    |
| 1      256    582   | 3      57     9     | 4      26     78    |
+---------------------+---------------------+---------------------+
Steve wrote:As it happens you could confine yourself to single cells here, if you prefer:

r9c3 -2- r1c3 -5- r2c1 -8- r2c3 =8= r9c3
This is actually the third Nice Loop in my solution written backwards:
GreenLantern wrote:[r9c3]=8=[r2c3]-8-[r2c1]-5-[r1c3]-2-[r9c3] => r9c3<>2
Sudtyro wrote:Most of the Nice-Loop nodes seem to involve only single cells or same-digit groups, so how in general are multi-cell Almost Locked Sets included in Nice Loops?
I'm not really an expert on this particular aspect of Nice Loops, but I'll attempt to provide an answer anyway. Some examples of ALS links that can be used within Nice Loops are:

[r2c1]=5|8=[r9c3]
[r1c3]=2|8=[r9c3]
[r1c3]=2|8=[r2c1]

The notation "[r1c3]=2|8=[r2c1]" means that (r1c3<>2 => r2c1=8) AND (r2c1<>8 => r1c3=2). ALS-links can then be used in Nice Loops like this:
  • [r9c3]-2-[r1c3]=2|8=[r2c1]-8-[r7c1]-6-[r8c1|r9c2]-2-[r9c3] => r9c3<>2
  • [r7c9]=8=[r9c9]-8-[r9c3]=8|5=[r2c1]-5-[r8c1]=5=[r8c4]=6=[r7c6]-6-[r7c1]-8-[r7c9] => r15c1<>5
While I'm positive the logic of these Nice Loops is correct as written, I'm not so certain that the ALS-link in the first Nice Loop exactly corresponds with Ron's ALS-XZ rule used in his second grid position:

A={r1c3,r2c1},B={r78c1,r9c2},x=8,z=2 => r9c3<>2

By the way, this ALS-link format is also the same notation used when incorporating other patterns such as Almost Unique Rectangles into Nice Loops.
Post Reply