Fish links

Advanced methods and approaches for solving Sudoku puzzles

Fish links

Postby marek stefanik » Tue Jul 06, 2021 6:27 pm

This thread covers a new type of links which makes better use of the interactions between lines and boxes.

Quick explanation of the vocabulary used:
(1-)truth – set of candidates at least one of which is true, such as all candidates in a cell or the ends of an AIC
(1-)link – set of candidates at most one of which is true, such as all candidates in a cell (or just some of them) or one digit in the targets of a JE
n-link – set of candidates at most n of which are true
(similarly we could create n-truths)
multi-link – n-link where n > 1
fish (multi-)link – a multi-link where all candidates are of one digit and which doesn't need other digits to be proven

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

Some time ago, I posted a puzzle with a MSLS in the marked cells. The tricky part was to notate that no digit could appear in them more then twice.
For any digit X, consider the links Xr2, Xr5, Xc2, Xc5, Xb5. The following grid shows how many times is the candidate of the digit X covered in each cell.
Code: Select all
   +---------+---------+---------+
   | .  1  . | .  1  . | .  .  . |
   | 1  2  1 | 1  2  1 | 1  1  1 |
   | .  1  . | .  1  . | .  .  . |
   +---------+---------+---------+
   | .  1  . | 1  2  1 | .  .  . |
   | 1  2  1 | 2  3  2 | 1  1  1 |
   | .  1  . | 1  2  1 | .  .  . |
   +---------+---------+---------+
   | .  1  . | .  1  . | .  .  . |
   | .  1  . | .  1  . | .  .  . |
   | .  1  . | .  1  . | .  .  . |
   +---------+---------+---------+

This almost looks like the structure we're after, we just have to divide everything by two (and round down to the nearest integer).
Code: Select all
   +---------+---------+---------+
   | .  .  . | .  .  . | .  .  . |
   | .  1  . | .  1  . | .  .  . |
   | .  .  . | .  .  . | .  .  . |
   +---------+---------+---------+
   | .  .  . | .  1  . | .  .  . |
   | .  1  . | 1  1  1 | .  .  . |
   | .  .  . | .  1  . | .  .  . |
   +---------+---------+---------+
   | .  .  . | .  .  . | .  .  . |
   | .  .  . | .  .  . | .  .  . |
   | .  .  . | .  .  . | .  .  . |
   +---------+---------+---------+

We've seen that more than double this pattern can be covered with just 5 links. Therefore only two of the candidates can be true. This pattern is therefore a valid fish 2-link (it can also be proven using a Finned X-Wing).

We could just write it down when describing a pattern:
Links: Xr25c25b5 / 2 etc.

But I think it makes more sense to substitute:
A = 2L(Xr2c25, Xr4c5, Xr5c2456, Xr6c5) = Xr25c25b5 / 2
The first part is a description of which candidates the 2-link covers, the second part is its proof.
When describing a pattern, one would simply write:
Links: (2)A etc.
(The '2' just explicitly states that it's a 2-link, I think it makes it easier to count the links and double-check the logic.)

Another use of fish links is that we can now find fish representations of Broken Wings.
The following is a general representation, see the post below for real-world examples.

Consider the oddagon Xr2c25, Xr4c5, Xr5c246, Xr6c5 with a set of guardians G.
Code: Select all
   +---------+---------+---------+             +---------+---------+---------+             +---------+---------+---------+
   | .  1  . | .  1  . | .  .  . |             | .  .  . | .  .  . | .  .  . |             | .  1  . | .  1  . | .  .  . |
   | 1  2  1 | 1  2  1 | 1  1  1 |             | .  2  . | .  2  . | .  .  . |             | 1  .  1 | 1  .  1 | 1  1  1 |
   | .  1  . | .  1  . | .  .  . |             | .  .  . | .  .  . | .  .  . |             | .  1  . | .  1  . | .  .  . |
   +---------+---------+---------+             +---------+---------+---------+             +---------+---------+---------+
   | .  1  . | 1  2  1 | .  .  . |             | .  .  . | .  2  . | .  .  . |             | .  1  . | 1  .  1 | .  .  . |
   | 1  2  1 | 2  3  2 | 1  1  1 |             | .  2  . | 2  2  2 | .  .  . |             | 1  .  1 | .  1  . | 1  1  1 |
   | .  1  . | 1  2  1 | .  .  . |             | .  .  . | .  2  . | .  .  . |             | .  1  . | 1  .  1 | .  .  . |
   +---------+---------+---------+             +---------+---------+---------+             +---------+---------+---------+
   | .  1  . | .  1  . | .  .  . |             | .  .  . | .  .  . | .  .  . |             | .  1  . | .  1  . | .  .  . |
   | .  1  . | .  1  . | .  .  . |             | .  .  . | .  .  . | .  .  . |             | .  1  . | .  1  . | .  .  . |
   | .  1  . | .  1  . | .  .  . |             | .  .  . | .  .  . | .  .  . |             | .  1  . | .  1  . | .  .  . |
   +---------+---------+---------+             +---------+---------+---------+             +---------+---------+---------+
   the 5 truths                                double the 2-link A                                the guardian set G

We can now get a finned 5-fish:
5 truths: Xr2, Xr5, Xc2, Xc5, Xb5
4+n links: (2)A, (2)A, (n)G
The guardians are candidates covered by the truths and not covered by other links. The number of links required to cover them depends on the circumstances.
The rank of the pattern is n-1 (L - T), any n links then form a truth.
T(G)

Note that the candidate Xr5c5 is part of three truths, but only two links. Therefore it needs another link, which is part of the G set.

Edit: Renamed the thread, corrected typos.
Last edited by marek stefanik on Tue Aug 03, 2021 3:23 am, edited 3 times in total.
marek stefanik
 
Posts: 358
Joined: 05 May 2021

Re: Fish Links

Postby marek stefanik » Tue Jul 06, 2021 6:28 pm

MSLS with fish links (example 1):
This example comes from the puzzle Mau-Mau posted here.
Code: Select all
   +---------------------+---------------------+---------------------+
   | 1239   4      1239  | 1367   1237   236   | 1259   1258   5689  |
   | 5      12*    6     | 9      124*   8     | 124    7      3     |
   | 1239   8      7     | 1346   5      2346  | 1249   12     469   |
   +---------------------+---------------------+---------------------+
   | 1278   6      1258  | 158    12*    9     | 2457   3      457   |
   | 1237   125*   4     | 135*   6      235*  | 8      9      7-5   |
   | 238    9      2358  | 458-3  234*   7     | 6      25     1     |
   +---------------------+---------------------+---------------------+
   | 1246   125    125   | 34567  9      3456  | 1357   158    578   |
   | 169    7      159   | 2      8      356   | 1359   4      59    |
   | 489    3      589   | 457    7-4    1     | 579    6      2     |
   +---------------------+---------------------+---------------------+

A = 2L(1r2c25, 1r4c5, 1r5c24) = 1r25c25b5 / 2
B = 2L(2r2c25, 2r4c5, 2r5c26, 2r6c5) = 2r25c25b5 / 2

MSLS:
7 truths: r2c2, r2c5, r4c5, r5c2, r5c4, r5c6, r6c5
7 links: (2)A, (2)B, 3b5, 4c5, 5r5
-3r6c4, -4r9c5, -5r5c9

MSLS with fish links (example 2):
This more advanced example comes from the puzzle Hanabi constructed by shye posted here.
Code: Select all
   +--------------–––-------+------–––---------------+-------–––--------------+
   | 689*    1       2      | 46–9    7       4689   | 3       5       89*    |
   | 3       589     569    | 2       69      1      | 4       89      7      |
   | 4       789     79     | 5       3       89     | 2       1       6      |
   +---------------–––------+-----------–––----------+-------–––--------------+
   | 2       59      359    | 3469    169     4569   | 589     7       1589   |
   | 1       6       3579   | 379     8       579    | 59      4       2      |
   | 579*    4       8      | 79*     129     2579   | 6       3       15–9   |
   +---------------–––------+-------------–––--------+-----------–––----------+
   | 5679*   3       1      | 8       269     2679   | 579     69      4      |
   | 6789*   2       4      | 1       5       679    | 789     689     3      |
   | 789–56* 5789*   5679*  | 679*    4       3      | 1       2       589*   |
   +----------------–––-----+------–––---------------+-----–––----------------+

A = 2L(7r6c14, 7r78c1, 7r9c1234) = 7r69c14b7 / 2
B = 2L(8r1c19, 8r8c1, 8r9c129) = 8r19c19b7 / 2
C = 3L(9r1c149, 9r6c149, 9r78c1, 9r9c12349) = 9r169c149b7 / 2

MSLS:
11 truths: r1c1, r1c9, r6c1 r6c4, r7c1, r8c1, r9c1, r9c2, r9c3, r9c4, r9c9
11 links: 5r9, 5c1, 6r9, 6c1, (2)A, (2)B, (3)C
-56r9c1, -9r1c4, -9r6c9

Broken Wing (example 3):
The folowing example comes from the puzzle NoFish6 posted by Obi-Wahn here.
Obi-Wahn wrote:
Code: Select all
NoFish6
.------------.------------.------------.
| 1   56  3  | 8   9   7  | 4   2   56 |
| 25  7   8  | 4   235 6  | 59  39  1  |
| 9   256 4  | 1   235 25 | 8   7   356|
:------------+------------+------------:
| 258 4   6  | 25  7   9  | 1   38  35 |
| 3   25  7  | 6   1   258| 259 89  4  |
| 258 1   9  | 3   58  4  | 25  6   7  |
:------------+------------+------------:
| 6   9   2  | 7   4   1  | 3   5   8  |
| 4   8   5  | 9   6   3  | 7   1   2  |
| 7   3   1  | 25  258 258| 6   4   9  |
'------------'------------'------------'

  .  5  . | .  .  . | .  .  5
 *5  .  . | . @5  . |*5  .  .
  .  5  . | .  5  5 | .  .  5
 ---------+---------+---------
 *5  .  . | 5  .  . | .  .  5
  . *5  . | .  . @5 |*5  .  .
 @5  .  . | . -5  . |@5  .  .
 ---------+---------+---------
  .  .  . | .  .  . | .  .  .
  .  .  . | .  .  . | .  .  .
  .  .  . | 5  5  5 | .  .  .

@ is marking the guardian cells that prevent
  an impossible loop of 5 conjugated links

A = 2L(5r2c17, 5r4c1, 5r5c27, 5r6c1) = 5r25c17b4 / 2

Finned 5-fish:
5 truths: 5r2, 5r5, 5c1, 5c7, 5b4
7 links: (2)A, (2)A, 5r2c5, 5r5c6, 5r6c7
T(5r2c5, 5r5c6, 5r6c7) => -5r6c5
marek stefanik
 
Posts: 358
Joined: 05 May 2021


Return to Advanced solving techniques