Domain: a row, a column, or a box.
D1: a domain in which all cells containing candidate x belong to only two other domains, D2 and D3.
Cells a: cells containing candidate x and lying in the interception of domains D1 and D2.
Cells b: cells containing candidate x and lying in the interception of domains D1 and D3.
Na, Nb: the number of cells a or b.
Usually, in a nice loop, we draw a strong link between the only two cells in a domain where a candidate x can be placed. For example, [r1c1]=8=[r1c7], and the logic of this link is: if 8 is in r1c1, then it cannot be in r1c7, and if 8 is not in r1c1, then it must be in r1c7 (and vice-versa for r1c7). But we can extend this concept by making use of a special property of boxes: they can have more than one cell in their interception with a column or a row. Consider Grid 1 as an example:
- Code: Select all
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
-------+-------+------
. . . | 5 . . | . . .
. . . | 5 . 5 | . . .
. . . | . . 5 | . . .
-------+-------+------
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
Grid 1
Box 5 has more than two possible cells for candidate 5. However, we can consider that these four cells are in only two possible locations inside box 5: columns 4 and 6. So, we can say that, if 5 is not in one of the cells r4c4/r5c4, then it must be in one of the cells r5c6/r6c6; and if 5 is in one of the cells r4c4/r5c4, then it cannot be in cells r5c6/r6c6. With this idea in mind, we are able to make the following generalization of the rule for draw a strong link:
- Code: Select all
If a candidate x is distributed among the cells of a domain D1 in such a way that these cells belong to only two other domains, D2 (cells a) and D3 (cells b), then we can draw a strong link between cells a and cells b, with label x.
We can call this type of strong link a generalized strong link. It is easy to see that Na + Nb can have the maximum value of six. Grid 2 provides some examples, where a and b are cells containing candidate x:
- Code: Select all
a . . | . a a | . b .
a . b | . . . | a . a
. . b | b b b | . b .
-------+-------+------
. . . | a . b | . . .
. . . | a . b | . . .
. . . | a . b | . . .
-------+-------+------
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
Grid 2
For this type of strong link, I propose a notation that is similar to the already known notation: the only difference is in putting the a or b cells between square brackets and separated by a vertical line. For example, for box 2 we can write: [r1c5|r1c6]=x=[r3c4|r3c5|r3c6].
Now, for this type of strong link to be inserted in a nice loop, it must be propagated but in a restricted way: we can only propagate from the set of cells a (or b) to another cell with a weak link having the same label x, and that cell can be of only one of two types: a bivalue cell containing candidate x, or a bi- or polivalue cell containing candidate x and having a strong link with same label x. Furthermore, that cell must be in the same domain common to all cells a (or b).
We can see that, besides its probable scarcity, the generalized strong link as I have defined so far cannot be used to make eliminations in cells a or b. However, this can be possible if Na (or Nb) = 1. Please consider the examples in grid 3 (ab denotes a cell that can function as an a cell or as a b cell):
- Code: Select all
ab. b | a . . | . a .
. . ab| . . b | . . .
. . . | . . b | b . b
-------+-------+------
a . b | . . . | . a .
. . b | . . . | . . .
. . b | . . . | . . .
-------+-------+------
. . . | . . . | . b .
. a . | . b b | . b .
. . . | . . . | . b .
Grid 3
Boxes 1, 2, 3, and 4 show some examples with D1 = box and D2, D3 = rows and/or columns. Boxes 6 and 9, and 7 and 8 exemplify the case for D1 = column/row, and D2, D3 = boxes. In each case, we can draw a generalized strong link between cell a and the set of cells b.
Now, please note that this type of generalized strong link can be more useful because, although the set of cells b can only be propagated as described above, cell a can be propagated as in classic nice loops: with a strong or weak link, with the same or a different label, which can be used to remove a candidate from this cell.
Now, allow me to make the following definition:
Strong Nice Loop: a nice loop that includes one or more generalized strong links.
To exemplify all this, lets return to the puzzle I have mentioned in the beginning of this thread:
- Code: Select all
579 5789 12 | 3 4 12 | 589 59 6
459 6 249 | 7 8 29 | 1 3459 3459
34 89 1349 | 19 6 5 | 489 7 2
----------------+----------------+----------------
79 4 8 | 5 2 79 | 3 6 1
6 1 5 | 89 3 489 | 7 2 49
2 3 79 | 6 1 479 | 459 8 459
----------------+----------------+----------------
1 2 *39* | 4 7 *38 | 6 359 3589
3457 57 6 | 18 9 *138 | 2 *34 3478
8 *79 *3479 | 2 5 6 |*49 1 3479
With the definitions that I have made above, I have noted that Bennyss observation can be described by the following strong nice loop:
[r7c3]=9=[r9c2|r9c3]-9-[r9c7]-4-[r8c8]-3-[r8c6]=3=[r7c6]-3-[r7c3] => r7c3<>3.
(in the grid, the cells marked with * are the ones used in the loop, and the cell marked ** is where the discontinuity arises). Lets confirm the logic inside this loop: if r7c3 is not 9 then it is 3; then one of the cells r9c2/r9c3 is 9; which means that r9c7 is 4, and r8c8 is 3, and r8c6 cannot be 3, so r7c6 is 3, and this is an impossible situation because we have already a 3 in row 7, in cell r7c3: so, r7c3 cannot be 3.
Another example can be seen in the following puzzle, which was posted in this forum in a thread entitled Wondering if there is a solving technique for this? (November 22).
- Code: Select all
. . 1 | . 8 . | 6 . 4
. 3 7 | 6 . . | . . .
5 . . | . . . | . . .
-------+-------+------
. . . | . . 5 | . . .
. . 6 | . 1 . | 8 . .
. . . | 4 . . | . . .
-------+-------+------
. . . | . . . | . . 3
. . . | . . 7 | 5 2 .
8 . 2 | . 9 . | 7 . .
After some basic steps, we can remove a 4 from r7c2 with a Turbot Fish, a 7 from r5c2 with a nice loop, and a 2 from r4c5 and r6c5 with two forcing nets, and we get:
- Code: Select all
29 29 1 | 57 8 3 | 6 57 4
4 3 7 | 6 25 129 | 129 1589 12589
5 6 8 | 1279 247 1249 | 1239 1379 1279
-------------------+------------------+--------------------
12379 124789 349 | 2789*367 5 | 12349 134679 12679
2379 249 6 | 279 1 29 | 8 34579 2579
12379 12789 5 | 4 *367 *2689 | 1239 13679 12679
-------------------+------------------+--------------------
1679 179 49 | 1258 2456 *12468*| 149 14689 3
1369 149 349 | 18 *46 7 | 5 2 1689
8 5 2 | 3 9 146 | 7 146 16
From here, we can make another elimination using the following strong nice loop:
[r7c6]=8=[r6c6]=6=[r4c5|r6c5]-6-[r8c5]-4-[r7c6]
which implies r7c6<>4.
Lets look at a final example. The following puzzle was also posted by Bennys, in his recent thread entitled Not almost locked sets:
- Code: Select all
12 7 126 | 5 126 9 | 3 4 8
3 5 9 | 8 126 4 | 126 26 7
4 8 126 | 3 1267 67 | 126 5 9
----------------+----------------+--------------
169 1349 7 | 12 46 368 | 5 *289 14
5 2 14 | 19 49 78 |*78 3 6
169 1349 8 |*127 4567 3567 |*27 *279 14
----------------+----------------+--------------
1289 149 124 | 6 *579 *57 | 478 *78 3
89 49 5 | *79* 3 1 | 4678 678 2
7 6 3 | 4 8 2 | 9 1 5
Bennys made a clever observation (which concludes that r6c4<>7) that allows the grid to be easily solved from here. However, I have noted that we can arrive at the same conclusion with the following strong nice loop:
[r8c4]=7=[r7c5|r7c6]-7-[r7c8]-8-[r4c8]=8=[r5c7]=7=[r6c7|r6c8]-7-[r6c4]=7=[r8c4]
(or [r8c4]=7=[r8c7|r8c8]-7-[r7c8] ), which implies r8c4 = 7.
Carcul