Introducing ARCS: Almost Row-Column Subsets

Advanced methods and approaches for solving Sudoku puzzles

Introducing ARCS: Almost Row-Column Subsets

Postby Ruud » Wed Aug 16, 2006 12:07 pm

I'm not sure if this technique has been introduced earlier with a different name. If that is true, please ignore this post and my ignorance. A pointer to the message would be wonderful. I did search the forum. For now, I will proceed as if this is something new.

I would like to start with a few definitions:

Primary Lines: a number of lines which are either all rows or all columns.
Secundary Lines: a number of lines perpendicular to the primary lines.

Row-Column Subset: a pattern where N primary lines have all candidates for a selected digit D confined to N secundary lines, allowing us to eliminate the candidates for digit D in these N secundary lines which are not located in any of the primary lines. There are many different names (Hidden single, X-Wing, Swordfish, Jellyfish), depending in the value of N.

Almost Row-Column Subset (ARCS): a pattern where N primary lines have all candidates for a selected digit confined to N+1 secundary lines. The smallest ARCS, where N = 1, is a bilocation unit, a.k.a. conjugate pair.

There is an overlap between ARCS and Finned Fish, in case all fin cells are located in a single secundary line. Theoretically, the ARCS can have any number of surplus candidates, but for practical purposes, confinement to a single box is the only way to see all of them at the same time. The main difference is in how we use them. In finned fish, we focus on the box containing the fin. In ARCS, this box is only a possible "point of entry" for using it in an AIC.

Following ALS rules, we can now define ARCS rules.

Any move that eliminates all ARCS candidates in one of the secundary lines, automatically forces the remainder of the pattern into a row-column subset.
Following such a move, there is weak inference between the pattern as a whole, and any surplus candidate on any of the remaining secundary lines.


I'm not an expert in formal definitions nor in any of the notation systems, so I'll leave the task of embedding ARCS into nice loops and AIC's to the qualified people.

For now, this is only an introduction (see title) and pure theory. We need practical examples, maybe from our finned fish collections.

Ruud
Ruud
 
Posts: 664
Joined: 28 October 2005

Postby Mike Barker » Thu Aug 17, 2006 4:08 am

Its probably not too surprising that I've also been thinking about how to extend constraint subsets (the Franken Squirmbags were the first step in this process). I've been looking at almost fish with the basis set consisting of "n" columns (rows) and the covering set consisting of "n+m" rows (columns) and boxes. As in the case of the standard fish (basic, finned, big fin, and franken) the idea is to locate a candidate in a cell not part of the fish which reduces the size of the covering set to "n-1". For standard fish this extra candidate is the same as the candidate which makes up the fish and the candidate cell is directly visible by enough cells of the fish to achieve the requisite dimension reduction. Although the almost fish can be linked into a nice loop (see here), I think I prefer the approach Anne Morelot used to solve #5000 of Ruuds Top50000 (see here). The key in her solution is to connect a non-fish cell to enough fish cells via ALSs to reduce the size of the covering set to "n-1". Although she used ALSs here, basic and grouped strong links as well as directly visible cells can be used as well. As seen in the example, the elimnated candidate need not be the same as the candidate making up the fish.

The puzzle and her Almost Swordfish elimination are:
Code: Select all
.....14..7...6..1..2.8..7...3...2...6...8...9...4...2...1..9.5..4..1...6..73.....
+--------------------+-------------------+---------------------+
|  3589  *589  35689 | *2579  2379     1 |      4  3689   2358 |
|     7  *589  34589 |  *259     6   345 | *23589     1   2358 |
|     1     2  34569 |     8   359   345 |      7   369     35 |
+--------------------+-------------------+---------------------+
|     4     3   @589 | *1569   @59     2 |   1568   -78   1578 |
|     6    17      2 |   157     8   357 |    135     4      9 |
|   589    17    589 |     4  3579  3567 |  13568     2   1358 |
+--------------------+-------------------+---------------------+
|   238    68      1 |   267   247     9 |    238     5  23478 |
|  2359     4    359 |   257     1   578 |  *2389  3789      6 |
|  2589 *5689      7 |     3   245  4568 |    128   #89   1248 |
+--------------------+-------------------+---------------------+

The almost fish consists of 3 columns (c247) which contain "9". r12 are the "n-1" constraint subsets which will remain. An ALS (r4c35) and a bivalue (r9c8) are used to link r4c8 to the remaining cells of the almost fish (r4c4, r9c2, and r8c7), so that if r4c8=8 then these cells cannot contain "9" and thus r4c8<>8.

I'm still in the process of checking out the algorithm in my solver, but I think it is pretty much working. Here is a complete non-minimal solution to #5000 including 5 almost X-wings and 2 almost Swordfish. I'm not sure if it is a bug or real, but most of the eliminations occur using ALS. There is one grouped strong link as well. Prior to implementing this technique, my solver couldn't solve #5000, but with it it can. I don't know how generally useful the technique is yet.
Code: Select all
Hidden Single: r3c1 => r3c1=1,r46c1<>1
Hidden Single: r4c1 => r4c1=4,r45c3<>4,r4c89<>4
Hidden Single: r5c3 => r5c3=2,r8c3<>2
Hidden Single: r5c8 => r5c8=4,r9c8<>4
Locked Column Line/Box: r79c2 => r1c2<>6
Locked Column Line/Box: r13c8 => r4c8<>6
Naked Block Triple: r6c13|r4c3 => r5c2<>5,r6c2<>589
Column X-Wing Fillet-o-Fish: r568c6|r48c8 => r4c45<>7
Locked Row Box/Box: r5c246|r6c256 => r6c9<>7
WXYZ-wing: r3c56|r2c6, r4c5 => r1c5<>5
UVWXYZ-wing: r78c4|r79c5|r8c6, r7c2 => r8c13<>8
5-element Nice Loop: r9c7=1=r9c9=4=r7c9=7=r4c9-7-r4c8-8-r9c8~9~r9c7 => r9c7<>9
Almost X-Wing (r56c7-3-r78c7|r9c8-2-, r6c9-3-r123c9-2-): r5c67|r6c5679 => r7c9<>2,r2c7<>2,r9c9<>2
Almost X-Wing (r56c7-3-r78c7|r9c8-8-, r6c9-3-r123c9-8-): r5c67|r6c5679 => r79c9<>8
+--------------------+-------------------+---------------------+
|  3589   589  35689 |  2579  2379     1 |      4  3689  @2358 |
|     7   589  34589 |   259     6   345 | -23589     1  @2358 |
|     1     2  34569 |     8  3459   345 |      7   369    @35 |
+--------------------+-------------------+---------------------+
|     4     3    589 |  1569    59     2 |   1568    78   1578 |
|     6    17      2 |   157     8  *357 |   *135     4      9 |
|   589    17    589 |     4 *3579 *3567 | *13568     2  *1358 |
+--------------------+-------------------+---------------------+
|   238    68      1 |   267   247     9 |   @238     5 -23478 |
|  2359     4    359 |   257     1   578 |  @2389  3789      6 |
|  2589  5689      7 |     3   245  4568 |    128   @89  -1248 |
+--------------------+-------------------+---------------------+

Almost X-Wing (r78c1|r8c8-3-r468c3-5-, r3c8-3-r3c9-5-): r178c1|r138c8 => r3c3<>5
+--------------------+-------------------+--------------------+
| *3589   589  35689 |  2579  2379     1 |      4 *3689  2358 |
|     7   589  34589 |   259     6   345 |   3589     1  2358 |
|     1     2 -34569 |     8  3459   345 |      7  *369   @35 |
+--------------------+-------------------+--------------------+
|     4     3   @589 |  1569    59     2 |   1568    78  1578 |
|     6    17      2 |   157     8   357 |    135     4     9 |
|   589    17   @589 |     4  3579  3567 |  13568     2  1358 |
+--------------------+-------------------+--------------------+
|  *238    68      1 |   267   247     9 |    238     5   347 |
| *2359     4   @359 |   257     1   578 |   2389 *3789     6 |
|  2589  5689      7 |     3   245  4568 |    128    89    14 |
+--------------------+-------------------+--------------------+

Almost X-Wing (r78c1|r8c8-3-r468c3-5-, r3c8-3-r2c2479-5-): r178c1|r138c8 => r2c3<>5
Almost X-Wing (r78c1|r8c8-3-r468c3-8-, r3c8-3-r2c2479-8-): r178c1|r138c8 => r2c3<>8
+--------------------+-------------------+--------------------+
| *3589   589  35689 |  2579  2379     1 |      4 *3689  2358 |
|     7  @589 -34589 |  @259     6   345 |  @3589     1 @2358 |
|     1     2   3469 |     8  3459   345 |      7  *369    35 |
+--------------------+-------------------+--------------------+
|     4     3   @589 |  1569    59     2 |   1568    78  1578 |
|     6    17      2 |   157     8   357 |    135     4     9 |
|   589    17   @589 |     4  3579  3567 |  13568     2  1358 |
+--------------------+-------------------+--------------------+
|  *238    68      1 |   267   247     9 |    238     5   347 |
| *2359     4   @359 |   257     1   578 |   2389 *3789     6 |
|  2589  5689      7 |     3   245  4568 |    128    89    14 |
+--------------------+-------------------+--------------------+

Almost X-Wing (r78c1|r8c8-3-r468c3-9-, r3c8-3-r3c569-9-): r178c1|r138c8 => r3c3<>9
+--------------------+-------------------+--------------------+
| *3589   589  35689 |  2579  2379     1 |      4 *3689  2358 |
|     7   589    349 |   259     6   345 |   3589     1  2358 |
|     1     2  -3469 |     8 @3459  @345 |      7  *369   @35 |
+--------------------+-------------------+--------------------+
|     4     3   @589 |  1569    59     2 |   1568    78  1578 |
|     6    17      2 |   157     8   357 |    135     4     9 |
|   589    17   @589 |     4  3579  3567 |  13568     2  1358 |
+--------------------+-------------------+--------------------+
|  *238    68      1 |   267   247     9 |    238     5   347 |
| *2359     4   @359 |   257     1   578 |   2389 *3789     6 |
|  2589  5689      7 |     3   245  4568 |    128    89    14 |
+--------------------+-------------------+--------------------+

5-element Nice Loop: r7c5=4=r7c9=7=r4c9-7-r4c8-8-r9c8-9-r3c8=9=r3c5~4~r7c5 => r3c5<>4
Locked Column Line/Box: r23c6 => r9c6<>4
Almost X-Wing (r78c1|r8c8-3-r468c3-9-, r3c8-3-r2c2479-9-): r178c1|r138c8 => r2c3<>9
+--------------------+-------------------+--------------------+
| *3589   589  35689 |  2579  2379     1 |      4 *3689  2358 |
|     7  @589   -349 |  @259     6   345 |  @3589     1 @2358 |
|     1     2    346 |     8   359   345 |      7  *369    35 |
+--------------------+-------------------+--------------------+
|     4     3   @589 |  1569    59     2 |   1568    78  1578 |
|     6    17      2 |   157     8   357 |    135     4     9 |
|   589    17   @589 |     4  3579  3567 |  13568     2  1358 |
+--------------------+-------------------+--------------------+
|  *238    68      1 |   267   247     9 |    238     5   347 |
| *2359     4   @359 |   257     1   578 |   2389 *3789     6 |
|  2589  5689      7 |     3   245   568 |    128    89    14 |
+--------------------+-------------------+--------------------+

UR+3C/2SL (34): r23c36 => r3c6<>3
UR+4X/2SL (63): r13c38, r3c69 => r1c8<>3
Almost Swordfish (r13c5|r5c6-3-r23c6-5-, r5c7-3-r5c7=5=r5c46): r1c1359|r3c3589|r5c67 => r6c6<>5
+--------------------+-------------------+--------------------+
| *3589   589 *35689 |  2579 *2379     1 |      4   689 *2358 |
|     7   589     34 |   259     6  @345 |   3589     1  2358 |
|     1     2   *346 |     8  *359   @45 |      7  *369   *35 |
+--------------------+-------------------+--------------------+
|     4     3    589 |  1569    59     2 |   1568    78  1578 |
|     6    17      2 |  @157     8  @357 |   @135     4     9 |
|   589    17    589 |     4  3579 -3567 |  13568     2  1358 |
+--------------------+-------------------+--------------------+
|   238    68      1 |   267   247     9 |    238     5   347 |
|  2359     4    359 |   257     1   578 |   2389  3789     6 |
|  2589  5689      7 |     3   245   568 |    128    89    14 |
+--------------------+-------------------+--------------------+

Almost Swordfish (r9c2|r8c7-9-r49c8-7-, r4c4-9-r4c358-7-): r129c2|r124c4|r28c7 => r8c8<>7
+--------------------+------------------+--------------------+
|  3589  *589  35689 | *2579  2379    1 |      4   689  2358 |
|     7  *589     34 |  *259     6  345 |  *3589     1  2358 |
|     1     2    346 |     8   359   45 |      7   369    35 |
+--------------------+------------------+--------------------+
|     4     3   @589 | *1569   @59    2 |   1568   @78  1578 |
|     6    17      2 |   157     8  357 |    135     4     9 |
|   589    17    589 |     4  3579  367 |  13568     2  1358 |
+--------------------+------------------+--------------------+
|   238    68      1 |   267   247    9 |    238     5   347 |
|  2359     4    359 |   257     1  578 |  *2389 -3789     6 |
|  2589 *5689      7 |     3   245  568 |    128   @89    14 |
+--------------------+------------------+--------------------+

Hidden Single: r4c8 => r4c8=7,r4c9<>7
Hidden Single: r7c9 => r7c9=7,r7c45<>7
Hidden Single: r7c5 => r7c5=4,r9c5<>4
Hidden Single: r9c9 => r9c9=4
Hidden Single: r9c7 => r9c7=1,r456c7<>1
Three Grouped Strong Links: r2c2=8=r1c123-8-r1c8=8=r89c8-8-r7c7=8=r7c12~8~ => r9c2<>8
3-element Nice Loop: r9c1=2=r9c5-2-r7c4-6-r7c2~8~r9c1 => r9c1<>8
Locked Row Line/Box: r7c12 => r7c7<>8
3-element Nice Loop: r9c2=6=r7c2-6-r7c4-2-r9c5~5~r9c2 => r9c2<>5
Locked Column Box/Box: r689c1|r468c3 => r1c13<>5
4-element Nice Loop: r5c6=3=r5c7-3-r7c7-2-r7c4-6-r4c4=6=r6c6~3~r5c6 => r6c6<>3
4-element Nice Loop: r9c5=2=r1c5=7=r6c5-7-r6c6-6-r4c4=6=r7c4~2~r9c5 => r7c4<>2
Naked Single: r7c4 => r7c4=6,r7c2<>6,r4c4<>6,r9c6<>6
Naked Single: r7c2 => r7c2=8,r7c1<>8,r12c2<>8
Hidden Single: r9c2 => r9c2=6
Hidden Single: r6c6 => r6c6=6,r6c7<>6
Hidden Single: r4c7 => r4c7=6
Locked Row Line/Box: r1c13 => r1c89<>8
Locked Column Box/Box: r689c1|r468c3 => r1c13<>9
Locked Column Box/Box: r26c7|r246c9 => r8c7<>8
UR+2B/1SL (23): r78c17 => r8c1<>3
ALS xz-rule with A=1 cells: r5c7-3-r6c137 => r6c9<>5
UR+4X/2SL (75): r58c46, r5c2 => r8c6<>5
4-link Advanced Colouring: r5c7=3=r5c6=7=r8c6=8=r8c8=3=r3c8~3~ => r2c7<>3
4-link Advanced Colouring: r6c5=3=r5c6=7=r8c6=8=r8c8=3=r3c8~3~ => r3c5<>3
Naked Column Pair: r34c5 => r1c5<>9,r6c5<>59,r9c5<>5
Naked Single: r9c5 => r9c5=2,r9c1<>2,r1c5<>2,r8c4<>2
Locked Row Line/Box: r4c45 => r4c3<>9
Three Strong Links: r5c7=3=r5c6-3-r6c5=3=r1c5-3-r1c1=3=r7c1~3~ => r7c7<>3
Naked Single: r7c7 => r7c7=2,r7c1<>2,r8c7<>2
Naked Single: r7c1 => r7c1=3,r1c1<>3,r8c3<>3
Naked Single: r1c1 => r1c1=8,r1c3<>8,r6c1<>8
Hidden Single: r8c1 => r8c1=2
5-node XY-chain: r58c7|r9c68 => r5c6<>5
Naked Block Pair: r6c5|r5c6 => r5c4<>7
Empty Column Rectangle : r48c4|r8c3 => r4c3<>5
Naked Single: r4c3 => r4c3=8,r4c9<>8,r6c3<>8
Locked Row Line/Box: r6c13 => r6c7<>5
2-line BUG Lite Elimination (SL:r1c9=2=r1c4, SL:r1c9=2=r2c9, XY:r2c2|r1c4-9-r2c4): r12c249 => r1c9<>5,r2c4<>9
7-node XY-chain: r1c358|r9c68|r8c4 => r1c4<>7
The Solution is completed with singles
Mike Barker
 
Posts: 458
Joined: 22 January 2006

Postby Ruud » Thu Aug 17, 2006 1:28 pm

Hi Mike,

Thanks for your response.

Anne already pointed me to her solution of my #5000. Never thought it had already been used in one of my own puzzles.

I agree with you that this is a logical extension of constraint subsets. This idea struck me when I was trying to code a generic constraint subset method in SudoCue. (it's not working yet:( )

Using an ALS as the fuse for ARCS makes sense. At first, I was only looking at bivalue cells to link to the entry point, but a bivalue cell is also an ALS. With multiple fin cells, a larger ALS may be able to hit them all.

About the method to find these:

Finned fish are abundant, and so are ALS. We need a search program that can scan collections for combinations of the two.

When we find such a combination, the only thing we need is an AIC from one of the 'victims' of the RCS to the ALS that forces it into play.

Ruud
Ruud
 
Posts: 664
Joined: 28 October 2005

Postby ronk » Thu Aug 17, 2006 2:23 pm

Backtest [edit: comment was based on an incorrect candidate grid.]
Last edited by ronk on Thu Aug 17, 2006 5:08 pm, edited 1 time in total.
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Postby Mike Barker » Thu Aug 17, 2006 8:48 pm

Edit: Comment no longer pertinent.
Last edited by Mike Barker on Fri Aug 18, 2006 3:44 pm, edited 1 time in total.
Mike Barker
 
Posts: 458
Joined: 22 January 2006

Postby ronk » Thu Aug 17, 2006 9:05 pm

Mike Barker wrote:if r4c8=8 then r4c3={59} and r4c5={59} forming a naked pair so r4c4<>9. The backtest solutions include r4c4=9. Does it handle ALS?

Sorry, my candidate grid had r4c5={579} when backtest applied.
ronk
2012 Supporter
 
Posts: 4764
Joined: 02 November 2005
Location: Southeastern USA

Postby Ruud » Wed Aug 23, 2006 5:48 pm

The responses to this thead are a bit below expectations, so maybe I can attract your attention by posting an example recently found:

This is a One-Trick Puzzle. I originally posted it as a Nishio example, but somebody already spotted a Broken Wing in this pattern.

Code: Select all
000050200507094030000700009070100040600000051002007600008300090090006000700020010
.------------------.------------------.------------------.
| 1389  1368  1369 | 68    5     138  | 2     7     4    |
| 5     26    7    | 26    9     4    | 1     3     8    |
| 12348 12348 134  | 7     138   1238 | 5     6     9    |
:------------------+------------------+------------------:
| 38    7     35   | 1     6     358  | 9     4     2    |
| 6     348   349  | 289   38    2389 | 7     5     1    |
| 19    15    2    | 59    4     7    | 6     8     3    |
:------------------+------------------+------------------:
| 12    1256  8    | 3     17    15   | 4     9     567  |
| 134   9     1345 | 458   178   6    | 38    2     57   |
| 7     3456  3456 | 4589  2     589  | 38    1     56   |
'------------------'------------------'------------------'

And an image for the ASCII-impaired:

Image

The blue candidates occupy 4 rows and 2 columns. Any move that would eliminate all candidates from 2 of those rows would force the remaining pattern into an X-Wing (Row-Column set of size 2)

The green candidates fit the same description.

The 2 patterns are connected by the candidates in rows 4 and 6. These 4 candidates can be grouped, because each of them can see all members of the other group: (r4c6]+[r6c2]) is strongly linked with ([r4c3]+[r6c4]).

It is now possible to define a (not so nice) loop that includes these twin ARCS:

[r9c9]-5-[ARCS:r79c26]=5=([r4c6]+[r6c2])-5-([r4c3]+[r6c4])=5=[ARCS:r89c34]-5-[r9c9] => [r9c9]<>5

I'm not sure if Jeff will approve of this addition, but on an abstract level, there is no difference between an ALS and an ARCS. Both are constraint subsets with a surplus.

Ruud
Ruud
 
Posts: 664
Joined: 28 October 2005

Postby tarek » Wed Aug 23, 2006 6:29 pm

Wasn't this mentioned before & described (In the general context) as Counting, This helped us when we discussed Big fish, especially when we realised that there shouldn't be a finned Squirmbag, & that there existed finned fish with 0 vetices lines........

It also swallows ALS completely & even provides simpler alternatives to ALS that go beyond ALS xy rules.....

It is powerful but how can we capture its power..........

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

Postby daj95376 » Wed Aug 23, 2006 7:01 pm

This topic is way beyond my understanding of Sudoku techniques, but the example above is ripe for pseudo-Double Implication Chain logic.

Code: Select all
[r6c2]=5 => (X-Wing) => [r89c9]<>5.
[r6c4]=5 => (X-Wing) => [r79c9]<>5.

Therefore, [r9c9]<>5.
daj95376
2014 Supporter
 
Posts: 2624
Joined: 15 May 2006

Postby Myth Jellies » Sat Aug 26, 2006 12:16 am

Perhaps a little late (I've been on holiday) and off topic, but I see a grouped coloring method to make the following deduction, similar to what daj has seen...

Code: Select all
.------------------.------------------.------------------.
| 1389  1368  1369 | 68    5     138  | 2     7     4    |
| 5     26    7    | 26    9     4    | 1     3     8    |
| 12348 12348 134  | 7     138   1238 | 5     6     9    |
:------------------+------------------+------------------:
| 38    7    X35   | 1     6    x358  | 9     4     2    |
| 6     348   349  | 289   38    2389 | 7     5     1    |
| 19   x15    2    |X59    4     7    | 6     8     3    |
:------------------+------------------+------------------:
| 12   X1256  8    | 3     17   X15   | 4     9     567  |
| 134   9    x1345 |x458   178   6    | 38    2     57   |
| 7    X3456 x3456 |x4589  2    X589  | 38    1    -56   |
'------------------'------------------'------------------'

x=X => r9c9 <> 5

Either the x's or the X's are true, and as daj pointed out, the x's occupy an r89c34 x-wing, while the X's occupy an r79c26 x-wing, either of which will wipe out any other fives in r9.

I've used this type of logic to color x-wings and box-box interactions before, but I've never noticed a case like this which has two colored x-wings. Very interesting.
Myth Jellies
 
Posts: 593
Joined: 19 September 2005

Postby daj95376 » Sat Aug 26, 2006 1:08 am

Look here for another example with two X-Wings.
daj95376
2014 Supporter
 
Posts: 2624
Joined: 15 May 2006

Postby Myth Jellies » Sat Aug 26, 2006 2:44 am

I hadn't seen that one yet, daj....
Code: Select all
 *-----------------------------------------------------------------------------*
 | 1       279     3       | 4       2689    268     | 5       27      268     |
 | 67      8       24      |A136     5      A1236    | 1467    9       1267    |
 | 269     249     5       | 1689    12689   7       | 1468    124     3       |
 |-------------------------+-------------------------+-------------------------|
 | 4      B359     8       | 135679- 1369    1356-   | 2      B137     167     |
 | 239     6       1       | 379     234     234     | 47      8       5       |
 | 235    B235     7       | 13568-  12348   12358-  | 146    B134     9       |
 |-------------------------+-------------------------+-------------------------|
 | 8       457     9       | 2       146     1456    | 3       157     17      |
 |a235     1       24      |A358     7      A3458    | 9       6       28      |
 | 2357   b2357     6      | 1358    138     9       | 178     125     4       |
 *-----------------------------------------------------------------------------*


A = a - b = B => color A or color B or both is true. Either the colored box-box interaction A or the colored box-box interaction B will eliminate the threes in r46c46. These also work as colored x-wings.

Ruud, can you tell us if your ARCS basically say the same thing, only in a more general & programming friendly fashion?
Myth Jellies
 
Posts: 593
Joined: 19 September 2005

Postby Ruud » Sat Aug 26, 2006 2:35 pm

The symmetry of this pattern is very nice:D

Image

Any of the 4 red candidates can be eliminated with a nice loop:

[r4c4]-3-[ARCS:r28c46=r8c1]-3-[ARCS:r9c2=r46c28]-3-[r4c4] => [r4c4]<>3

The coloring version is obviously shorter.

Ruud
Ruud
 
Posts: 664
Joined: 28 October 2005

Postby Havard » Sun Aug 27, 2006 5:55 pm

Hi.

Great to see some innovation again!:)

I have to try and sum this up for myself. (read: to see if even I can understand this...):)

so, basically we are dealing with fish that has extra bits. let's take a very basic example:
Code: Select all
. . . | . . . | . . .
. X . | . X . | . . .
. | . | . | . | . . .
--|---+---|---+------
. | . | . | . | . . .
. X . | . X . | . . .
. | . | . . . | . . .
--|---+-------+------
. | . | . . . | . . .
. X . | . . . | . . .
. . . | . . . | . . .

now, if it were not for that pesky little candidate in r8c2, we could eliminate all the little "*" in good old X-wing style.
Code: Select all
. . . | . . . | . . .
* X * | * X * | * * *
. | . | . | . | . . .
--|---+---|---+------
. | . | . | . | . . .
* X * | * X * | * * *
. | . | . . . | . . .
--|---+-------+------
. | . | . . . | . . .
. X . | . . . | . . .
. . . | . . . | . . .


now, what Ruud is saying(i think...) is that that extra candidate that prevents us from formin the fish, is connected to all the potential eliminations(*), by that if one of the * were to be TRUE, and that somehow made the r8c2 X false, then the * can't be true, and we can eliminate it anyway...:)

not being to imaginative, I can think of this little xy-chain connecting those:
Code: Select all
. . . | . . . | . . .
. 3 . | . 3 . | . * .
. | . | . | . | . . .
--|---+---|---+------
. | . | . | . | . . .
. 3 . | . 3 . | . * .
. | . | . . . | . . .
--|---+-------+------
. | . | . .45 | .53 .
. 3 . |34 . . | . . .
. . . | . . . | . . .

now if any of the * were to be TRUE, then (53) would become 5,
(45) would become 4,
(34) would become 3,
and our 3 in r8c2 could then not be a 3,
and we would get an X-wing formed with the 4 other 3's, so that both our * would be eliminated = CONTRADICTION!
hence we can safely eliminate the two "*".

Another way of looking at it is that the "extra 3" get's an "extended arm" using the little xy-chain to be able to "see" the X-wing-casualties(*).

Ruud demonstrated this with two X-wing's that can see eachothers "extrabits", and hence any eliminations the two x-wings have in common must be true.

Now Mike Barker presented (in my opinion) a bit of a twist to this. Instead of concidering the link between a fishes extra bits and its potential elimination, he finds ALS that will potentially reduce the fish to an "illegal" state. The proper definition is that if a fish concists of n columns, but only n-1 rows, it is in fact not possible... It is rotten fish, unfit for consumption!:)

now to again use an example as simple as possible, we can take the same fish from before:
Code: Select all
. . . | . . . | . . .
. 3 . | . 3 . | . . .
. | . | . | . | . . .
--|---+---|---+------
. | . | . | . | . . .
. 3 . | . 3 . | . . .
. | . | . . . | . . .
--|---+-------+------
. | . | . . . | . . .
. 3 . | . . . | . . .
. . . | . . . | . . .


We all agree that this is a column-fish, that takes up columns 2 and 5. It also occupies three rows, 2, 5 and 8. Now if the placement of any candidate would destroy the fish so much that it actually took away two of the three rows, we would have a rotten fish, 2 columns and only one row, and that would be a contradiction!:)

again not to imaginative, we could do this with two ALS placed like so:
Code: Select all
. . . | . . . | . . .
. 3 . | . 3 . | . . .
. | . | . | . | . . .
--|---+---|---+------
. | . | . | . | . . .
. 3 . | . 3 . | .34 .
. | . | . . . | . . .
--|---+-------+------
. | . | . . . | . . .
. 3 . | . . . | . . .
. .34 | . . . | . . .


now, one of our (34) sees "all" the candidates in the fishes third row. (row 8, yes there are only one...), and our other (34) sees all the candidates in the fish'es second row (row 5).

Now as some of you will see, these ALS makes it impossible for a 4 to vacate r9c8, so any 4 there can be eliminated(*):
Code: Select all
. . . | . . . | . . .
. 3 . | . 3 . | . . .
. | . | . | . | . . .
--|---+---|---+------
. | . | . | . | . . .
. 3 . | . 3 . | .34 .
. | . | . . . | . . .
--|---+-------+------
. | . | . . . | . . .
. 3 . | . . . | . . .
. .34 | . . . | . * .


why? because a 4 in r9c8 would make both (34)'s into 3's, and that would again destroy all the 3's in r8c2 and r5c25. That again would make it a rotten fish, hence no 4 in r9c8.:)

Now are these two (the Ruud and Barker ways) the same thing? I don't quite think so, but they are both great contributions to the solvingtechnique-librarys in my opinion. (but it should be added that I have found almost-x-wings in Carculs and others loops a long, long time ago, so there are probably a lot of credit to be handed out for this):)

Havard
Havard
 
Posts: 378
Joined: 25 December 2005

Postby Myth Jellies » Sun Aug 27, 2006 8:43 pm

A very nice job, Havard, of showing the difference in approach for the two multi-digit cases. Thumbs up all around.
Myth Jellies
 
Posts: 593
Joined: 19 September 2005

Next

Return to Advanced solving techniques