How to find ALSs to build a chain

Post the puzzle or solving technique that's causing you trouble and someone will help

How to find ALSs to build a chain

Postby jco » Sat Jul 25, 2020 4:12 am

Hello,

I have a question originated while solving the puzzle proposed by Tarek (Jul 24, Puzzles Forum).

After basic moves the configuration is the following.

Code: Select all
.----------------.--------------.-----------------.
| 3     46  1468 | 468  7    5  | 2689  129  1269 |
| 4568  9   2    | 468  68   1  | 7     35   356  |
| 568   7   1568 | 2    3    9  | 68    4    156  |
:----------------+--------------+-----------------:
| 4569  3   456  | 1    246  26 | 69    7    8    |
| 4689  2   468  | 7    46   38 | 1     359  3569 |
| 7     1   68   | 5    9    38 | 4     23   236  |
:----------------+--------------+-----------------:
| 2     8   9    | 3    1    4  | 5     6    7    |
| 146   46  7    | 9    5    26 | 3     8    12   |
| 16    5   3    | 68   268  7  | 29    129  4    |
'----------------'--------------'-----------------'


I inspected several BVCs, trying to find some target BVC that would lead to a contradiction from a chain of implications departing from it.

if r4c7=9 => r1c7<>9 (and r9c7<>9) => r9c7=2 (and r1c7<>2, r8c9<>2,r9c8<>2) => r8c9=1 => r9c8=9 => r1c8=1 (only 1 in c8) => r1c9=2 (only 2 in b3 and in r1) => there is no 9 in b3 (contradiction).
thus r4c9=6 [edit correction: r4c7=6]; stte.

I was trying to use the sketch above to get a solution involving a chain of ALSs, i.e.,
the above implications would be a way to see the key cells involved in order to try building the ALSs.
My question: does it make sense to use forcing chains as a informal tool to find key cells to built ALS chains? (for instance, "no 9 in b3" adds cells r1c789). Perhaps there exists a better way to find good ALSs to eliminate a certain candidate from a target cell.
I am interested in strategies for finding ALSs to build a chain to eliminate a candidate from a target cell. Any help on this matter is very much appreciated.

Regards,
jco.
[Edit: improvements further on in this thread here and here]
Last edited by jco on Mon Sep 07, 2020 12:57 am, edited 3 times in total.
JCO
jco
 
Posts: 758
Joined: 09 June 2020

Re: How to find ALSs to build a chain

Postby eleven » Sat Jul 25, 2020 10:38 pm

For an ALS you need n+1 digits in n cells of a house (row, column or box), 3 digits in 2 cells (useless if they are part of a triple) or 4 in 3 (useless if they are part of a quad), etc.
The basic property is, that if one of the digits is missing in the AIC cells, all others must be there. Interesting ALS's are those, which "split" 2 digits, which both force others. Then you can use it just like a link in a bivalue chain.

There are not so many in this grid, and the first one i saw was 1356 in r2c89,r3c9. It "splits" the 1 in r3c9 from the 6 in one of r23c9, that is, if one is missing the other must be there. The 1 forces 2 in r8c9 and more, a 6 in r23c9 forces a 6 in r4c7 and more, so it might be useful.

Having said that, in practice more often you would not start with an AIC, but stumble over it, when following a chain. E.g. you could look, what the 1 in r8c9 would force and see, that it leads to a triple 356, where the 6 is restricted to r23c9 and forces 6 in r4c7,...
(It should lead you to a solution here.)
eleven
 
Posts: 3174
Joined: 10 February 2008

Re: How to find ALSs to build a chain

Postby eleven » Sun Jul 26, 2020 8:56 am

Now to answer your question.
Your chain, which in fact is a net, because you have to remember earlier steps, starts with 9r4c7 and eliminates all 9's in b3.
This means that vice versa all 9's in b3 would kill the 9 in r4c7. Since there are 3 9's in b3, this would be "Kraken" solution like
9r1c7 => -9r4c7
9r1c8 => 9r9c7 => -9r4c7
9r1c9 and 1r1c8 => 2r1c7 => 9r9c7 => -9r4c7
9r1c9 and 2r1c8 => 1r9c8 => 9r9c7 => -9r4c7

So it does not really give a hint for an ALS chain.
eleven
 
Posts: 3174
Joined: 10 February 2008

Re: How to find ALSs to build a chain

Postby yzfwsf » Sun Jul 26, 2020 10:41 am

Almost Locked Set XY-Wing: A=r2c89,r3c9{1356}, B=r4c7{69}, C=r8c9,r9c7{129}, X,Y=1, 9, Z=6 => r13c7,r56c9<>6
als-xy-wing.png
als-xy-wing.png (32.07 KiB) Viewed 2377 times
yzfwsf
 
Posts: 921
Joined: 16 April 2019

Re: How to find ALSs to build a chain

Postby jco » Sun Jul 26, 2020 5:25 pm

Hello,

Thank you very much eleven for the comments, very insightful. Thanks to yzfwsf too.

Regards,
jco
JCO
jco
 
Posts: 758
Joined: 09 June 2020

Re: How to find ALSs to build a chain

Postby jco » Sat Aug 01, 2020 7:34 pm

Hello,

I have difficulties spotting key ALS-Chains to solve puzzles.
I have being using Hodoku's training mode. Often the puzzles it provides have very complicated and wild ALS-Chain patterns.
From the previous insightful comments by eleven, I understood that looking for simple chains will not help.
I tried some more with many extreme puzzles and my difficulties remain (target cell and ALSs useful to eliminate candidates in the target cell both unknown).
For this reason I have studied more: XYZ-wing, WXYZ-wing and so on patterns
(I known all these have the same principle of ALS-XY chains, being particular cases).
[EDIT: correction. As pointed out by SpAce, I meant ALS chains.]
Returning the puzzle of my previous question (with the solution provided by yzfwsf):

Code: Select all
.----------------.--------------.--------------------.
| 3     46  1468 | 468  7    5  |  2-689  129  1269  |
| 4568  9   2    | 468  68   1  |  7     A35   A356  |
| 568   7   1568 | 2    3    9  | -68     4    A156  |
:----------------+--------------+--------------------:
| 4569  3   456  | 1    246  26 | B69     7    8     |
| 4689  2   468  | 7    46   38 |  1      359  35-69 |
| 7     1   68   | 5    9    38 |  4      23   23-6  |
:----------------+--------------+--------------------:
| 2     8   9    | 3    1    4  |  5      6    7     |
| 146   46  7    | 9    5    26 |  3      8   C12    |
| 16    5   3    | 68   268  7  | C29     129  4     |
'----------------'--------------'--------------------'

Code: Select all
ALS XY-Wing: A=r2c89,r3c9{1356}, B=r4c7{69}, C=r8c9,r9c7{129}, X,Y=1, 9, Z=6 => r13c7,r56c9<>6


In this context, the pattern above now looks a kind of UVWXYZ-Ring (?):

Code: Select all
X=3, Y=5, Z=6, W=1, U=2, V=9


Code: Select all
.--------------.
|  -z+  .    . |
|  -z+ XY  XYZ |
|  -z+ .   WYZ |
:--------------:
| ZV   .   -z+ |
|  .   .   -z+ |
|  .   .   -z+ |
:--------------:
|  .   .    .  |
|  .   .   UW  |
| UV   .    .  |
'-------------'


This seems easier to spot in comparison to the burden of searching "in the wild".

For the solution of rjamil for the Puzzle Section:

Postby rjamil » Sat Aug 01, 2020 8:43 am (Puzzle Section)
Code: Select all
+--------------+--------------+------------------+
 | 9    47   2  | 1  6     4-3 | 5     78   (38)  |
 | 145  45   13 | 8  (3)4  7   | 9     2    6     |
 | 8    67   36 | 2  5     9   | 137   4    13    |
 +--------------+--------------+------------------+
 | 3    2    5  | 6  7     1   | 8     9    4     |
 | 7    9    4  | 3  2     8   | 6     1    5     |
 | 16   8    16 | 4  9     5   | 2     3    7     |
 +--------------+--------------+------------------+
 | 46   1    9  | 5  8     346 | 37    67   2     |
 | 2    456  7  | 9  (3)4  346 | (13)  568  (138) |
 | 56   3    8  | 7  1     2   | 4     56   9     |
 +--------------+--------------+------------------+


Code: Select all
XYZ-Wing Transport: 138 @ r18c9 r8c7 SL 3 @ r28c5 => -3 @ r1c6; stte


The XYZ-Wing Transport pattern already provides a Grouped AIC (discontinuous loop)/ALS-XY-Chain

Code: Select all
3-r1c6-3-ALS:r1c9{38}-8-ALS:r8c79{138}-3-ALS: r8c7{13}-3-r8c5=3=r2c5-3-r1c6,


Code: Select all
3-r1c9 {38}-8-[r8c7, r8c9]{138}-3-r8c7{13}-r8c5{34}-3-r2c5{34}.

It is easier to seach for pivot cell and pincers cells in these patterns.
The mental picture helps finding the pattern in puzzles. I guess such mental pictures are lacking (for me) when I search for ALSs.

Any suggestions, comments, corrections (notation for example) will be appreciated.

Regards,
jco
Last edited by jco on Wed Aug 05, 2020 2:07 pm, edited 2 times in total.
JCO
jco
 
Posts: 758
Joined: 09 June 2020

Re: How to find ALSs to build a chain

Postby SpAce » Sun Aug 02, 2020 1:36 am

Hi jco,

jco wrote:I have difficulties spotting key ALS-Chains to solve puzzles.

Why do you want to find ALS-Chains specifically? In most cases there are simpler options for building chains than to use ALSs all the way (or even at all). Pure ALS-Chains use a lot resources (digits, cells, candidates) for even simple tasks, which makes them complex and hard to read. They're rarely needed. For example, the only naked ALS (i.e. ANS) in my uncompressed solution to the July 24 puzzle is the bivalue cell (12)r8c9:

Code: Select all
.----------------.--------------.----------------------.
| 3     46  1468 | 468  7    5  | ae29-68  e129  e1269 |
| 4568  9   2    | 468  68   1  |   7       35    356  |
| 568   7   1568 | 2    3    9  |   68      4    d156  |
:----------------+--------------+----------------------:
| 4569  3   456  | 1    246  26 |   69      7     8    |
| 4689  2   468  | 7    46   38 |   1       359   3569 |
| 7     1   68   | 5    9    38 |   4       23    236  |
:----------------+--------------+----------------------:
| 2     8   9    | 3    1    4  |   5       6     7    |
| 146   46  7    | 9    5    26 |   3       8    c12   |
| 16    5   3    | 68   268  7  |  b29      129   4    |
'----------------'--------------'----------------------'

(2)r1c7 = r9c7 - (2=1)r8c9 - r3c9 = (129)r1c987 => -68 r1c7; stte

That chain uses 3 digits, 6 cells, and 12 candidates. The most complex thing is the last AHS which can't be avoided. (The original compressed version uses two AHSs and no ALSs.) The corresponding logic could be written as an ALS-Chain (overlapping dual-Z ALS-XY-Wing, to be specific):

Code: Select all
.-----------------.--------------.----------------------.
| 3     46  1468  | 468  7    5  |   29-68   129   1269 |
| 4568  9   2     | 468  68   1  |   7      c35   c356  |
| 56-8  7   156-8 | 2    3    9  | ac68      4    c156  |
:-----------------+--------------+----------------------:
| 4569  3   456   | 1    246  26 |  a69      7     8    |
| 4689  2   468   | 7    46   38 |   1       359   3569 |
| 7     1   68    | 5    9    38 |   4       23    236  |
:-----------------+--------------+----------------------:
| 2     8   9     | 3    1    4  |   5       6     7    |
| 146   46  7     | 9    5    26 |   3       8    b12   |
| 16    5   3     | 68   268  7  |  a29      129   4    |
'-----------------'--------------'----------------------'

(869=2)r349c7 - (2=1)r8c9 - (1=3568)b3p9657 => -68 r1c7, -8 r3c13 (or -6 r1c7, +8 r3c7); stte

That version uses 7 digits, 7 cells, and 16 candidates. Clearly more complex in terms of resources, even if the chain seems slightly shorter (it really isn't, since both use three strong links). It does prove a couple of extra eliminations directly, but they're irrelevant.

I have being using Hodoku's training mode. Often the puzzles it provides have very complicated and wild ALS-Chain patterns.

It's great that you've found Hodoku's training modes. They're very good tools. I've never used them for ALS-stuff, though. Like I said, be aware that there are usually much simpler chains available than the ALS-Chains Hodoku presents. It's good to learn to understand the latter as well, but they're rarely the simplest chains available for the same effect, so I wouldn't aspire to find them specifically. Most of the time those huge ALSs can be at least partly broken into simple XY-Chains or bilocation chains. It's just stupid to use a 7-cell/8-digit ALS that could be replaced with a simple bilocation link, as far as I'm concerned.

From the previous insightful comments by eleven, I understood that looking for simple chains will not help.

Like I said, in most cases simple chains actually help, and are the better choice. Sometimes they're not enough, though, and in that case you may need to use some ALSs or AHSs, like in the example puzzle. Even then, simpler links can usually be used for at least part if not most of the chain, especially in longer chains.

For this reason I have studied more: XYZ-wing, WXYZ-wing and so on patterns
(I known all these have the same principle of ALS-XY chains, being particular cases).

Actually they're special cases of ALS-XZ, or even more specifically ALS-Z (my term for the simplest ALS-patterns that don't need the X-component). ALS-XY-Wings (3 ALSs) are more complex patterns needing three strong links, while ALS-XZ (2 ALSs) needs two, and ALS-Z (also 2 ALSs) needs one.

Edit: I just noticed that the original comment talked about 'ALS-XY chains' instead of ALS-XY-Wings as I'd read it. As I pointed out earlier (below), there's no such thing. I'm guessing that 'ALS-Chains' were meant, and in that case it's true that (UVW)XY(Z)-Wings are special cases of ALS-Chains, if seen as ALS-XZs (which are ALS-Chains of length 2). They're not special cases of ALS-XY-Wings, because those are ALS-Chains of length 3. If seen as ALS-Zs, it's questionable if that pov can be considered an ALS-Chain at all, because it's a bit different (if anything, it's an ALS-Chain of length 1).

Returning the puzzle of my previous question (with the solution provided by yzfwsf):

grid: Show
Code: Select all
.----------------.--------------.--------------------.
| 3     46  1468 | 468  7    5  |  2-689  129  1269  |
| 4568  9   2    | 468  68   1  |  7     A35   A356  |
| 568   7   1568 | 2    3    9  | -68     4    A156  |
:----------------+--------------+--------------------:
| 4569  3   456  | 1    246  26 | B69     7    8     |
| 4689  2   468  | 7    46   38 |  1      359  35-69 |
| 7     1   68   | 5    9    38 |  4      23   23-6  |
:----------------+--------------+--------------------:
| 2     8   9    | 3    1    4  |  5      6    7     |
| 146   46  7    | 9    5    26 |  3      8   C12    |
| 16    5   3    | 68   268  7  | C29     129  4     |
'----------------'--------------'--------------------'

Code: Select all
ALS XY-Wing: A=r2c89,r3c9{1356}, B=r4c7{69}, C=r8c9,r9c7{129}, X,Y=1, 9, Z=6 => r13c7,r56c9<>6

You asked for suggestions, so I'll give you a couple. First, the step-grids Hodoku provides are kind of hard to read, because they list the eliminations in an ancient (and totally unreadable) way. I recommend editing them to isolate the eliminations to the right in the cells, like we do in the Puzzles Section. Lowercase letters are also more readable than uppercase. The example also shows how complex and unreadable the ALS-XY-Wing notation is. The logic is much simpler to see as a normal AIC with ALS-terms, at least for me. Here's how I'd present that (with a slightly different choice of ALSs, though using the same cells):

Code: Select all
.----------------.--------------.----------------------.
| 3     46  1468 | 468  7    5  |  289-6   129   1269  |
| 4568  9   2    | 468  68   1  |  7      a35   a356   |
| 568   7   1568 | 2    3    9  |  8-6     4    a156   |
:----------------+--------------+----------------------:
| 4569  3   456  | 1    246  26 | c69      7     8     |
| 4689  2   468  | 7    46   38 |  1       359   359-6 |
| 7     1   68   | 5    9    38 |  4       23    23-6  |
:----------------+--------------+----------------------:
| 2     8   9    | 3    1    4  |  5       6     7     |
| 146   46  7    | 9    5    26 |  3       8    b12    |
| 16    5   3    | 68   268  7  | c29      129   4     |
'----------------'--------------'----------------------'

(635=1)b3p569 - (1=2)r8c9 - (2=96)r94c7 => -6 r13c7,r56c9

You could still call it ALS-XY-Wing, though it's redundant since the chain makes it obvious. (The pattern name is not important anyway, since the chain has all the logic built into it.)

In this context, the pattern above now looks a kind of UVWXYZ-Ring (?)

Not really. It can't be a ring of any kind since it doesn't loop. It's also not a UVWXYZ-Wing, because such wings are always ALS-Z patterns and this is not even an ALS-XZ.

This seems easier to spot in comparison to the burden of searching "in the wild".

Use whatever spotting aids help you. Still, try not to confuse concepts.

For the solution of rjamil for the Puzzle Section:

grid: Show
Postby rjamil » Sat Aug 01, 2020 8:43 am (Puzzle Section)
Code: Select all
+--------------+--------------+------------------+
 | 9    47   2  | 1  6     4-3 | 5     78   (38)  |
 | 145  45   13 | 8  (3)4  7   | 9     2    6     |
 | 8    67   36 | 2  5     9   | 137   4    13    |
 +--------------+--------------+------------------+
 | 3    2    5  | 6  7     1   | 8     9    4     |
 | 7    9    4  | 3  2     8   | 6     1    5     |
 | 16   8    16 | 4  9     5   | 2     3    7     |
 +--------------+--------------+------------------+
 | 46   1    9  | 5  8     346 | 37    67   2     |
 | 2    456  7  | 9  (3)4  346 | (13)  568  (138) |
 | 56   3    8  | 7  1     2   | 4     56   9     |
 +--------------+--------------+------------------+

Code: Select all
XYZ-Wing Transport: 138 @ r18c9 r8c7 SL 3 @ r28c5 => -3 @ r1c6; stte

The XYZ-Wing Transport pattern already provides a Grouped AIC (discontinuous loop)/ALS-XY-Chain

You're right that it can be presented as both kinds of an AIC, but it's not an "ALS-XY-Chain". In fact, there's no such thing -- only ALS-Chains and ALS-XY-Wings (which are ALS-Chains with exactly three ALSs). This one can be written as an ALS-XY-Wing.

[Discontinous loop with 2 x ALS + 1 x bilocation; Hodoku-notation]
Code: Select all
3-r1c6-3-ALS:r1c9{38}-8-ALS:r8c79{138}-3-ALS: r8c7{13}-3-r8c5=3=r2c5-3-r1c6,

That (presumably) Hodoku-notation is unnecessarily complex in a couple of ways. There's almost never a need to use Discontinuous Loops (though Hodoku does, unfortunately), and the old Nice Loop notation is horrible (unfortunately that's all Hodoku can produce). The same as an AIC written in Eureka:

(3=8)r1c9 - (8=13)r8c97 - r8c5 = (3)r2c5 => -3 r1c6

Much simpler and more readable, wouldn't you agree?

[AIC with 3 x ALS; Hodoku-notation]
Code: Select all
3-r1c9 {38}-8-[r8c7, r8c9]{138}-3-r8c7{13}-r8c5{34}-3-r2c5{34}.

The same (ALS-XY-Wing) in Eureka:

(3=8)r1c9 - (8=134)r9c975 - (4=3)r2c5 => -3 r1c6

While that is slightly shorter than the previous AIC I wrote, it's actually more complex because it uses the digit 4 for no gain. The first form with the bilocation link is better, as far as I'm concerned.

Any suggestions, comments, corrections (notation for example) will be appreciated.

Well, I hope you'll find something useful in my comments. I don't have any specific advice for finding ALS-Chains per se, but like I said, I don't think that's a really useful goal in general. I'd rather recommend learning to find and understand generic chains (you seem to be on the right track there) and then utilize ALSs as parts of them if absolutely needed.

The logic is the same in any chain, no matter how complex nodes they use. The simpler you can keep the nodes, the better. Instead of concentrating on full ALS-Chains, I'd rather recommend learning to spot individual ALSs (N cells with N+1 digits) and examining what internal (strong) and external (weak) links they have. Then you can easily use them as parts of chains too. The same with AHSs, which have external strong links and both internal and external weak links.
-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: How to find ALSs to build a chain

Postby jco » Tue Aug 04, 2020 3:46 pm

Hello SpAce,

First of all, thank you very much for your comments and remarks, all very insightful.
As with many people, nearly 3 months ago I saw someone explaning how to see a finned swordfish in a puzzle and that got me started in Sudoku. I soon found the Hodoku site and began studying in detail every page (except the chapter on last resorts) of Hodoku tutorial on solving techniques and simultaneously practiced on the code. I focused here on ALS chains because in comparison with the other parts of the tutorial, in this part I had the difficulties already described. Of course, from the basics in the tutorial, I deepened my studies with the rich information provided in this forum. Hodoku's tutorial worked as an excellent introductory book on advanced techniques with lots of examples (concise presentation of techniques, but enough to get started). Anyway, that was written to explain my emphasis on ALS chains.

I know very little on UVWXYZ wings/rings because there is little information on them, even in this forum. The logic is clear. Before reading your comments, I didn't know which patterns could be considered an UVWXYZ wing/ring (thus my question mark). In many places, the issue is just dismissed with the comment that at this level it is already better to pursue the ALS framework. I known SukakuExplainer has UVWXYZ wings identification implemented, so it would be nice to get a reference on the subject.

Regarding the puzzle:

Code: Select all
.----------------.--------------.-----------------------.
| 3     46  1468 | 468  7    5  |ea2-(68)9 e129  e1269  |
| 4568  9   2    | 468  68   1  |  7        35    356   |
| 568   7   1568 | 2    3    9  |  68       4    d156   |
:----------------+--------------+-----------------------:
| 4569  3   456  | 1    246  26 |  69       7     8     |
| 4689  2   468  | 7    46   38 |  1        359   3569  |
| 7     1   68   | 5    9    38 |  4        23    236   |
:----------------+--------------+-----------------------:
| 2     8   9    | 3    1    4  |  5        6     7     |
| 146   46  7    | 9    5    26 |  3        8    c12    |
| 16    5   3    | 68   268  7  | b29       129   4     |
'----------------'--------------'-----------------------'


SpAce wrote:
Code: Select all
(2)r1c7 = r9c7 - (2=1)r8c9 - r3c9 = (129)r1c987 => -68 r1c7; stte


I have to study AHS to understand clearly the last part. Right now, still studing more
on ALS from several threads in this forum. The concept of ANS is also unknown to me. I will later search information on it from this forum.

Code: Select all
.----------------.--------------.----------------------.
| 3     46  1468 | 468  7    5  | 2-(68)9  129   1269  |
| 4568  9   2    | 468  68   1  |  7      c35   c356   |
| 56-8   7  156-8| 2    3    9  |ca68      4    c156   |
:----------------+--------------+----------------------:
| 4569  3   456  | 1    246  26 | a69      7     8     |
| 4689  2   468  | 7    46   38 |  1       359   3569  |
| 7     1   68   | 5    9    38 |  4       23    236   |
:----------------+--------------+----------------------:
| 2     8   9    | 3    1    4  |  5       6     7     |
| 146   46  7    | 9    5    26 |  3       8    b12    |
| 16    5   3    | 68   268  7  | a29      129   4     |
'----------------'--------------'----------------------'


SpAce wrote:
Code: Select all
(689=2)r349c7 - (2=1)r8c9 - (1=3568)b3p5679 => -68 r1c7, -8 r3c13 (or -6 r1c7, +8 r3c7); stte


The way I see (AIC) it: if 6,8,9 are not all in r349c7, then 2 must be there. If 2 is in r349c7, then r8c9 can't be 2. If r8c9 isn't 2, then it must be 1. If r8c9 is 1, then in block 3, parts 5,6,7,9, there is no 1, which implies (since 3568 is locked if the four cells) that these cells must have 3,5,6,8. So, if 689 are not all in r349c7, then 3568 is locked in b3p5679. Assuming that 6 is true in r1c7, then 689 are not all in r349c7, so
3568 must be locked in b3p5679, a contradiction. So, -6 r1c7. The same holds for 8.
I see how to justify the eliminations for the move described in the notation. How to come up with this move in a puzzle is the difficulty, but your suggestions will help. Nice to see the use of overlapping ALSs (the tutorial mentions at the very end, when introducing the death blossom).

Thank you again for your generous feedback.
Regards,
jco
JCO
jco
 
Posts: 758
Joined: 09 June 2020

Re: How to find ALSs to build a chain

Postby StrmCkr » Tue Aug 04, 2020 4:59 pm

Als-xz is the parent techniques for all xy, xyz, wxyz simplistic techniques size past 4 isnt documented atdirectly they over lap the generic als-xz too much and are overly reatrictes it search space the only topic relating to the wing/ring expansion was covered by me for size 1-8 under

B.a.r.n.s (bent almost resticed naked set)

Other than that everuthing past size 4, is mearly refrenced by adding the extra letter on the handfull of examples.
Strmckr
Some do, some teach, the rest look it up.
stormdoku
User avatar
StrmCkr
 
Posts: 1433
Joined: 05 September 2006

Re: How to find ALSs to build a chain

Postby SpAce » Wed Aug 05, 2020 4:22 am

Hi jco,

jco wrote:First of all, thank you very much for your comments and remarks, all very insightful.

You're welcome. I'm glad to help if I can.

As with many people, nearly 3 months ago I saw someone explaning how to see a finned swordfish in a puzzle and that got me started in Sudoku.

And you're already dealing with ALS-chains? You seem to be on a fast track! Hope you stay interested, as you'll probably have a bright sudoku future ahead of you, if you can keep that pace.

I soon found the Hodoku site and began studying in detail every page

Good choice. It's probably the best single source of information for the most common techniques, even though some of it is a bit outdated. It's missing some of the more exotic techniques, but when the time comes, you'll find those explained on this forum. I wouldn't recommend to get too greedy too fast, even though you seem to be a quick study. The better you understand the fundamentals, the easier it is to grasp the more difficult bits too. Then again, studying advanced examples can make you realize that the fundamentals are the same in them all.

In the end, everything boils down to the fundamentals, and with a good grasp on those there's really no need to memorize anything. Chaining is by far the most important fundamental skill. The other is (generalized) fishing, but studying that in detail can be delayed almost indefinitely because it gets important only with some of the most advanced techniques like JExocets and MSLS (only needed with the most difficult puzzles, and rarely even available elsewhere). Even normal fishes are rarely important, which might come as a surprise, since many sites and software solvers give them too much credit. Fishes are fun if you can spot them, but chains are much more useful and easier to learn. Besides, many fishes can be seen as chains too, and more easily.

A generic tip: coloring is the best technique to find chains of any kind, and it helps with visualizing any patterns. I highly recommend learning some form of that. Hodoku has pretty good tools to use it, too.

I know very little on UVWXYZ wings/rings because there is little information on them, even in this forum.

Problem is, there are some competing definitions of even WXYZ-Wings, so it's not always clear-cut what is what. When in doubt, the chain form always works unambiguously. Pattern names are nice but not necessary when you know your chains. That said, I'm using a pretty simple definition for those multi-letter wings, and it's that they're all ALS-Z patterns. I've tried to explain that pov here a bit. (There are also single-letter wings, like W-Wings etc, but it's a totally different wing-family with very different definitions.)

The logic is clear. Before reading your comments, I didn't know which patterns could be considered an UVWXYZ wing/ring (thus my question mark). In many places, the issue is just dismissed with the comment that at this level it is already better to pursue the ALS framework. I known SukakuExplainer has UVWXYZ wings identification implemented, so it would be nice to get a reference on the subject.

Like I said, no one has a definite definition for those things. Not so long ago I would have described them as specific kinds of ALS-XZ patterns, and they mostly are. However, while looking for some examples for you, I just found one of a VWXYZ-Wing that isn't an ALS-XZ because it's based on AALS instead of ALS. I'd totally forgotten about that, even though I'd originally asked about it myself. What is interesting is that my ALS-Z definition actually works for that example, too:

Code: Select all
.---------------.---------------------.--------------------.
| 135   7   2   | 159   8        35   | 6      4      59   |
| 1345  9   6   | 7    a12       2345 | 8      235    25   |
| 345   35  8   | 6    a29       2345 | 23579  23579  1    |
:---------------+---------------------+--------------------:
| 579   25  579 | 3   ab129'67  b26   | 129    8      4    |
| 6     8   1   | 49    479-2   b27   | 2359   2359   2579 |
| 379   23  4   | 19    5        8    | 129    6      279  |
:---------------+---------------------+--------------------:
| 2     1   57  | 8     3        9    | 4      57     6    |
| 8     4   579 | 2     67       567  | 579    1      3    |
| 579   6   3   | 45    47       1    | 2579   2579   8    |
'---------------'---------------------'--------------------'

A*LS-Z (VWXYZ-Wing):

(219)r234c5 = (672)b5p236 => -2 r5c5

ALS-Z simply means that two naked locked sets are directly strongly linked, sharing at least (usually just) one cell. In my experience it works for everything that I'd call a (TUVW)XY(Z)-Wing, and not much else. Until now I've thought that it's always a special case of ALS-XZ, but this example proves that it's not restricted to that. Yay! That find actually gives it more value as a special A*LS-pattern.

Here's another example of a WXYZ-Wing and a degenerate VWXYZ-Wing, also using the ALS-Z logic.

Here's an example (Oct 30, 2019) of a VWXYZ-Wing and UVWXYZ-Wing.

Here's a relatively recent (May 13, 2020) example of a VWXYZ-Wing by tarek. My ALS-Z translation: (52)r7c78 = (1475)r7513c8 => -5 r9c8. That puzzle has actually lots of interesting ALS-patterns. For example, I think I just found an example of an ALS-Z that isn't a multi-letter wing:

Code: Select all
.--------------.-----------.---------------------.
| 459  58   7  | 48  2   6 |  3    a14      49-1 |
| 49   3    1  | 48  5   7 |  28    6       249  |
| 6    2    48 | 9   3   1 |  58   a457     47   |
:--------------+-----------+---------------------:
| 7    4    2  | 16  16  3 |  9     8       5    |
| 1    9    3  | 5   8   2 |  47   a47      6    |
| 8    56   56 | 7   4   9 |  1     23      23   |
:--------------+-----------+---------------------:
| 3    567  56 | 16  9   4 |  25    25-17   8    |
| 2    678  48 | 3   16  5 | b47    9      b147  |
| 45   1    9  | 2   7   8 |  6   ab345    b34   |
'--------------'-----------'---------------------'

(1745)r1359 = (3471)b9p8946 => -1 r1c9, -17 r7c8; stte

Why is it not a TUVWXYZ-Wing despite being an ALS-Z? Because the digit 4 is present in both locked sets. I think one definite requirement for a multi-letter wing is that it has an equal number of letters, digits, and cells. This one has seven cells (implying TUVWXYZ) but only six digits, so not a wing. (Another myth broken. I previously thought that all ALS-Z patterns were wings, but apparently that's not true either. It should still work the other way, though: all multi-letter wings are ALS-Z.)

From the same puzzle, here's an example of an ALS-XZ that is not an ALS-Z:

Code: Select all
.----------------.------------.------------------.
|  45-9  58   7  | a48  2   6 | 3   a14    a149  |
| b49    3    1  | b48  5   7 | 28   6      24-9 |
|  6     2    48 |  9   3   1 | 58   457    47   |
:----------------+------------+------------------:
|  7     4    2  |  16  16  3 | 9    8      5    |
|  1     9    3  |  5   8   2 | 47   47     6    |
|  8     56   56 |  7   4   9 | 1    23     23   |
:----------------+------------+------------------:
|  3     567  56 |  16  9   4 | 25   1257   8    |
|  2     678  48 |  3   16  5 | 47   9      147  |
|  45    1    9  |  2   7   8 | 6    345    34   |
'----------------'------------'------------------'

(94=8)r2c14 - (8=419)r1c489 => -9 r1c1,r2c9

Here's yet another recent (June 24, 2020) example of a UVWXYZ-Wing by tarek. (My ALS-Z translation can be found in a lower comment.)

(I haven't double-checked those examples. If you (or anyone else) find mistakes, please inform. Also, ask away if you have questions about them.)

Regarding the puzzle:

grid: Show
Code: Select all
.----------------.--------------.-----------------------.
| 3     46  1468 | 468  7    5  |ea2-(68)9 e129  e1269  |
| 4568  9   2    | 468  68   1  |  7        35    356   |
| 568   7   1568 | 2    3    9  |  68       4    d156   |
:----------------+--------------+-----------------------:
| 4569  3   456  | 1    246  26 |  69       7     8     |
| 4689  2   468  | 7    46   38 |  1        359   3569  |
| 7     1   68   | 5    9    38 |  4        23    236   |
:----------------+--------------+-----------------------:
| 2     8   9    | 3    1    4  |  5        6     7     |
| 146   46  7    | 9    5    26 |  3        8    c12    |
| 16    5   3    | 68   268  7  | b29       129   4     |
'----------------'--------------'-----------------------'

SpAce wrote:
Code: Select all
(2)r1c7 = r9c7 - (2=1)r8c9 - r3c9 = (129)r1c987 => -68 r1c7; stte

I have to study AHS to understand clearly the last part.

It's quite simple actually, if you know how normal hidden subsets (hidden pairs, triples, etc) work. If you look at the cells r1c789 you should notice that the digits 2 and 9 are locked there (no other cell available for them in box 3 or row 1). Thus we only need one more digit locked in those cells to have a hidden triple (which would eliminate all other digits from there). Thus, it's an Almost Hidden Triple, which is one type of 'Almost Hidden Subsets' (AHS). AHS is one of the two types of ALS (the other being the normal ANS).

In this case digit 1 is the most viable candidate to fill the third slot, because it only has one extra candidate in box 3 and row 1. If either of those 1s is removed, we have a Hidden Triple (129) in r1c789 and all other digits from those cells could be eliminated. That gives us a strong link between the hidden triple and either of those 1s. In my chain I used 1r3c9, which explains the last strong link. The full chain proves that either there's a 2 in r1c7 or there's a hidden triple (129) in r1c789. Either way, neither 6 nor 8 can be in r1c7, giving us the critical eliminations.

Right now, still studing more on ALS from several threads in this forum. The concept of ANS is also unknown to me. I will later search information on it from this forum.

ANS = 'Almost Naked Subset'. It's the normal type of ALS you've been using already. Almost everyone calls it just ALS, but it's a bit ambiguous because an AHS is an ALS too. It was probably David Bird who coined the term 'ANS' to disambiguate them, but unfortunately it hasn't really stuck. Personally I'd prefer such a clear hierarchy, but in practice we just have ALS and AHS. Here's one of my attempts to explain those terms, with some relevance to ALS-Chains as well.

grid: Show
Code: Select all
.----------------.--------------.----------------------.
| 3     46  1468 | 468  7    5  | 2-(68)9  129   1269  |
| 4568  9   2    | 468  68   1  |  7      c35   c356   |
| 56-8   7  156-8| 2    3    9  |ca68      4    c156   |
:----------------+--------------+----------------------:
| 4569  3   456  | 1    246  26 | a69      7     8     |
| 4689  2   468  | 7    46   38 |  1       359   3569  |
| 7     1   68   | 5    9    38 |  4       23    236   |
:----------------+--------------+----------------------:
| 2     8   9    | 3    1    4  |  5       6     7     |
| 146   46  7    | 9    5    26 |  3       8    b12    |
| 16    5   3    | 68   268  7  | a29      129   4     |
'----------------'--------------'----------------------'

SpAce wrote:
Code: Select all
(689=2)r349c7 - (2=1)r8c9 - (1=3568)b3p5679 => -68 r1c7, -8 r3c13 (or -6 r1c7, +8 r3c7); stte

The way I see (AIC) it: if 6,8,9 are not all in r349c7, then 2 must be there. If 2 is in r349c7, then r8c9 can't be 2. If r8c9 isn't 2, then it must be 1. If r8c9 is 1, then in block 3, parts 5,6,7,9, there is no 1, which implies (since 3568 is locked if the four cells) that these cells must have 3,5,6,8. So, if 689 are not all in r349c7, then 3568 is locked in b3p5679.

Exactly. You can congratulate yourself. You've understood a fairly complex chain perfectly!

Assuming that 6 is true in r1c7, then 689 are not all in r349c7, so 3568 must be locked in b3p5679, a contradiction. So, -6 r1c7. The same holds for 8.

That's true as well. However, with AICs you don't really have to go through the contradiction route like with Discontinuous Loops. It's better to learn to see the eliminations directly, just by looking at the end-points of the chain simultaneously. An AIC proves an OR-relationship between the end-points, meaning that at least one of them must be true. Thus anything they both see can be eliminated.

In this case the chain proves that either there's a naked triple (689)r349c7 OR a naked quad (3568)b3p5679. Anything they both see can be eliminated. This is a bit special case, though, because the 8r3c7 overlaps as a single in both end-points proving it true directly (making the chain partly a Discontinuous Loop Type 2).

I see how to justify the eliminations for the move described in the notation. How to come up with this move in a puzzle is the difficulty, but your suggestions will help. Nice to see the use of overlapping ALSs (the tutorial mentions at the very end, when introducing the death blossom).

As you can see, overlaps are nothing to be afraid of. The same logic works.

Thank you again for your generous feedback.

No problem at all. Keep them coming. You have good questions, and I'm sure we're all happy to help with your journey -- and ours. I've already learned a few things myself while writing this.
User avatar
SpAce
 
Posts: 2671
Joined: 22 May 2017

Re: How to find ALSs to build a chain

Postby jco » Mon Aug 31, 2020 2:03 pm

Hello,

For the discussion on the topic of this thread, following a good advice by SpAce, I am stepping back to:

How manual solvers can spot ALS-xz moves ?

I found the following very interesting threads in this Forum:

* thread 1

* thread 2

I improved considerably my skills in identifying ALS-xz moves. The following text describes my current approach (with explicit mention of sources). Hopefully further contributions from experienced players in this forum will provide other venues.

The very interesting post by re'born in November 2007 (in this Forum), entitled "Subset Counting & ALS xz-rule: A guide for manual solver", called my attention because I could see his way to identify ALS-xz patterns. A post by Bud was also interesting in this regard.

After reading that post (by re'born), I decided for a while to focus on only three wings when searching for ALS-xz moves: w-wing, xy-wing and xyz-wing. I did not use subset counting arguments, only the idea of searching for "deformed" wings in the above sense (see post by re'born for a more detailed description on the meaning of "deformed").

I collected more than 60 puzzles and each day would choose at random some for practice working in a plain .txt file.
As one can imagine, when the puzzles had ALS-xz patterns related to wxyz-wings and the like, I had some good chances at spotting them. However, in harder puzzles there are many such number combinations (I mean here cells with 45-49-59 in some degenerate form related to an xy-wing, as described by re'born) and also many ALS-xz moves that did not conform (at least not easily) to any of the above patterns.

Searching further in this forum I found the following suggestion by David Bird. I quote:

Hello Surbier, Manually finding every ALSs opportunity is difficult and tedious as there are so many of them. I find it easier to look for their complements which are almost tuples (pairs, triples, quads). The most common and the most productive are Almost Hidden and Almost Naked Pairs which are what I go for first. Only later if I'm still struggling do I look for the others.
I mark single candidates that if false will leave a pair. I call these triggers as they will lead to either the ALS or the Pair being usable for extending an inference chain. With practice you'll then start to spot almost triples too.
You won't catch every ALS this way, but you'll get most of the useful ones!

(in the thread 2 already mentioned).

By then, I understood what eleven meant in the last paragraph of his first post (Re: How to find ALSs to build a chain Postby eleven » Sat Jul 25, 2020 10:38 pm), which is essentially the same advice.

The way I understood (and used) that suggestion in my daily practice is described next.


Forcing chains using a locked set argument:

In the following configuration

Code: Select all
.------------.-------------------.-----------------.
| 4  3   1   | 2     8      57   | 57    9    6    |
| 7  9   8   | 6     35     4    | 1     35   2    |
| 5  2   6   | 1     9      37   | 347   8    47   |
:------------+-------------------+-----------------:
| 9  1   7   | 345   6      8    | 2     345  45   |
| 6  8   45  | 3459  2345   2359 | 3459  7    1    |
| 2  45  3   | 7     1      59   | 8     6    459  |
:------------+-------------------+-----------------:
| 3  7   245 | 459   245    2569 | 4569  1    8    |
| 1  45  9   | 8     457    567  | 4567  2    3    |
| 8  6   245 | 3459  23457  1    | 4579  45   4579 |
'------------'-------------------'-----------------'


a forcing chain, using a key locked set, provides the key cells
for the ALS-xz pattern

* If r6c9 <>9 => r3c9=7 => r1c7,r3c6<>7
* If r6c9 = 9 => r6c6=5 => r1c6=7 => r1c7,r3c6<>7

Thus, r1c7, r3c6 <>7.

The ALS-xz move obtained from these cells is

Code: Select all
.------------.-------------------.------------------.
 | 4  3   1   | 2    8      A57   | 5-7   9     6    |
 | 7  9   8   | 6    35      4    | 1     35    2    |
 | 5  2   6   | 1    9       3-7  | 347   8    B47   |
 :------------+-------------------+------------------:
 | 9  1   7   | 345  6       8    | 2     345  B45   |
 | 6  8   45  | 459  24      239  | 349   7     1    |
 | 2  45  3   | 7    1      A59   | 8     6    B459  |
 :------------+-------------------+------------------:
 | 3  7   245 | 459  245     2569 | 469   1     8    |
 | 1  45  9   | 8    457     56   | 4567  2     3    |
 | 8  6   245 | 349  23457   1    | 4579  45    4579 |
 '------------'-------------------'------------------'


ALS-xz: A=r16c6 {579}, B=r346c9 {4579}, x=9, z=7 => r1c7, r3c6<>7

In the following configuration for a puzzle in the Puzzle Section of this Forum (Oct 04, 2019)

Code: Select all
+---------------------+----------------------+-------------------+
| 3456    345    7    | 158    14689     489 | 2       38    369 |
| 2       1      368  | 58     7         89  | 359     4     369 |
| 9       45     468  | 3      468       2   | 57      78    1   |
+---------------------+----------------------+-------------------+
| 37      39     5    | 178    18        6   | 1389    2     4   |
| 347     6      1349 | 178    2         34  | 1389    5     39  |
| 8       2      134  | 9      45        345 | 13      6     7   |
+---------------------+----------------------+-------------------+
| 456     459    469  | 2      59        1   | 37      37    8   |
| 1       8      2    | 6      3         7   | 4       9     5   |
| 35      7      39   | 4      589       589 | 6       1     2   |
+---------------------+----------------------+-------------------+


Searching for an ALS-xz move we see that

if r5c1<>4, then 37 is locked in c1, so r9c1=5 => r9c6<>5 => 89 locked in c6 => r1c6=4 => r5c6<>4
If r5c1=4 then r5c6<>4
Thus, -4 r5c6.

Based on the cells involved (4 in r5c1 being the trigger), the following ALS-xz move was found

Code: Select all
+---------------------+----------------------+-------------------+
| 3456    345    7    | 158    14689    a489 | 2       38    369 |
| 2       1      368  | 58     7        a89  | 359     4     369 |
| 9       45     468  | 3      468       2   | 57      78    1   |
+---------------------+----------------------+-------------------+
|b37      39     5    | 178    18        6   | 1389    2     4   |
|b347     6      1349 | 178    2         3-4 | 1389    5     39  |
| 8       2      134  | 9      45        345 | 13      6     7   |
+---------------------+----------------------+-------------------+
| 456     459    469  | 2      59        1   | 37      37    8   |
| 1       8      2    | 6      3         7   | 4       9     5   |
|b35      7      39   | 4      589      a589 | 6       1     2   |
+---------------------+----------------------+-------------------+


ALS-xz A=r129c6{4589}, B=r459c1{3457}, x=5, z=4.

This key locked set is found by considering every trivalued cell in the puzzle, searching for triggers (as described by David Bird).
In the above puzzle 9 in r6c9 is a trigger. For me this is much easier to find than searching for "deformed" wings and may enable one to spot ALS-xz moves that aren't close to some wing.

For the puzzle (from Puzzle Section Mon Jan 30, 2017)

Code: Select all
+-------------------+---------------------+------------------------+
 | 2     4    689    | 5     679    167    | 689    16       3      |
 | 3     5    69     | 8     2469   1246   | 269    7        169    |
 | 689   7    1      | 3     269    26     | 4      256      5689   |
 +-------------------+---------------------+------------------------+
 | 579   13   2459   | 6     2347   247    | 2579   8        1459   |
 | 679   13   2469   | 124   5      8      | 2679   12346    1469   |
 | 567   8    2456   | 124   2347   9      | 2567   123456   1456   |
 +-------------------+---------------------+------------------------+
 | 58    2    3      | 9     468    46     | 1      45       7      |
 | 1     6    7      | 24    248    5      | 3      9        48     |
 | 4     9    58     | 7     1      3      | 568    56       2      |
 +-------------------+---------------------+------------------------+


I looked for a forcing chain using a locked set argument somewhere and found one as follows:

if r3c8<>2, then {56} is locked at r39c8 => r7c8=4 => r7c6=6 => r3c6 =2 => -2 r3c5

(2 is a trigger in r3c8)

This was enough to get cells for an ALS-xz move

Code: Select all
+-------------------+---------------------+------------------------+
 | 2     4    689    | 5     679    17-6   | 689    1-6      3      |
 | 3     5    69     | 8     2469   124-6  | 269    7        169    |
 | 689   7    1      | 3    -269   ^26     | 4     #256      5689   |
 +-------------------+---------------------+------------------------+
 | 579   13   2459   | 6     2347   247    | 2579   8        1459   |
 | 679   13   2469   | 124   5      8      | 2679   1234-6   1469   |
 | 567   8    2456   | 124   2347   9      | 2567   1234-56  1456   |
 +-------------------+---------------------+------------------------+
 | 58    2    3      | 9     68-4  ^46     | 1     #45       7      |
 | 1     6    7      | 24    248    5      | 3      9        48     |
 | 4     9    58     | 7     1      3      | 568   #56       2      |
 +-------------------+---------------------+------------------------+

ALS-xz: A=r396c8 {2456} , B= r73c6 {246}, x=2,4, z= 2,5,6

Using an Example from Hodoku tutorial (saved among the set of 60+ puzzles for practice)
(btw, I was amazed when noticed that the pictures in the site of Hodoku tutorial
allow for copying and pasting in text form)

Code: Select all
.-------------------.-------------------.---------------------.
| 158   9     3     | 4    12    7      | 258    6      28    |
| 4     68    168   | 38   12    5      | 9      237    278   |
| 58    2     7     | 6    39    389    | 358    4      1     |
+-------------------+-------------------+---------------------+
| 378   3678  468   | 39   3469  123469 | 1236   1239   5     |
| 9     1     46    | 5    346   2346   | 2367   8      2467  |
| 2     356   456   | 7    8     13469  | 136    139    469   |
+-------------------+-------------------+---------------------+
| 6     378   189   | 2    5     389    | 4      179    789   |
| 1378  4     12589 | 389  3679  3689   | 12678  12579  26789 |
| 78    578   2589  | 1    4679  4689   | 2678   2579   3     |
'-------------------'-------------------'---------------------'


When searching for a forcing chain using an locked set argument, I noticed that if r7c2 <>3, then because of the naked pair 78 in b7, we have -8 r789c3. If r7c2=3, then r6c2<>3, which creates a locked set 456 at b4p689, which implies that r4c3=8, so -8 r789c3.

This forcing chain argument provides the cells for an ALS-xz move:

Code: Select all
.-----------------------.-------------------.---------------------.
|  158    9      3      | 4    12    7      | 258    6      28    |
|  4      68     168    | 38   12    5      | 9      237    278   |
|  58     2      7      | 6    39    389    | 358    4      1     |
+-----------------------+-------------------+---------------------+
|  378    3678  A468    | 39   3469  123469 | 1236   1239   5     |
|  9      1     A46     | 5    346   2346   | 2367   8      2467  |
|  2     A356   A456    | 7    8     13469  | 136    139    469   |
+-----------------------+-------------------+---------------------+
|  6     B378    1-89   | 2    5     389    | 4      179    789   |
|  1378   4      125-89 | 389  3679  3689   | 12678  12579  26789 |
| B78     578    25-89  | 1    4679  4689   | 2678   2579   3     |
'-----------------------'-------------------'---------------------'


ALS-xz: A=r456c3,r6c2 {34568}, B=r7c2,r9c1 {378}, x=3, z=8 => r789c3<>8

One could think of an "degenerate" xyz-wing (looking at 78 and 378
in block 7), but the ALS-xz move is much harder to spot this way.

For the puzzle considered in my first post (How to find ALSs to build a chain
Postby jco » Sat Jul 25, 2020 4:12 am; this Thread) on this topic

Code: Select all
.----------------.----------------.------------------.
| 3     46  1468 | 468   7     5  |  2689  129  1269 |
| 4568  9   2    | 468   68    1  |  7     35   356  |
| 568   7   1568 | 2     3     9  |  68    4    156  |
:----------------+----------------+------------------:
| 4569  3   456  | 1     246   26 |  69    7    8    |
| 4689  2   468  | 7     46    38 |  1     359  3569 |
| 7     1   68   | 5     9     38 |  4     23   236  |
:----------------+----------------+------------------:
| 2     8   9    | 3     1     4  |  5     6    7    |
| 146   46  7    | 9     5     26 |  3     8    12   |
| 16    5   3    | 68    268   7  |  29    129  4    |
'----------------'----------------'------------------'


if r9c6<>2 => 68 is locked at c5 => -6 r4c5
if r9c6=2 => r9c7=9 => r4c7=6 => -6r4c5

Then, using those cells:
Code: Select all
.----------------.----------------.------------------.
| 3     46  1468 | 468   7     5  |  2689  129  1269 |
| 4568  9   2    | 468  A68    1  |  7     35   356  |
| 568   7   1568 | 2     3     9  |  68    4    156  |
:----------------+----------------+------------------:
| 4569  3   456  | 1     24-6  26 | B69    7    8    |
| 4689  2   468  | 7     46    38 |  1     359  3569 |
| 7     1   68   | 5     9     38 |  4     23   236  |
:----------------+----------------+------------------:
| 2     8   9    | 3     1     4  |  5     6    7    |
| 146   46  7    | 9     5     26 |  3     8    12   |
| 16    5   3    | 68   A268   7  | B29    129  4    |
'----------------'----------------'------------------'

ALS-xz: A=r29c5 {268}, B=r49c7 {269}, x=2, z=6 => r4c5<>6

(in this case one may see first 68 at r2c5 and 268 at r9c5, and search for 26,
that appears as 2(9)-(9)6 if viewed as a "deformed" xyz-wing)

However, in the same puzzle another ALS-xz move seems to require a BCV for the trigger

Code: Select all
.-------------------.--------------.------------------.
|  3     46   1468  | 468  7    5  |  2689  129  1269 |
|  4568  9    2     | 468  68   1  |  7     35   356  |
|  568   7    156-8 | 2    3    9  | A68    4    156  |
:-------------------+--------------+------------------:
| B4569  3   B456   | 1    246  26 | A69    7    8    |
|  4689  2   B468   | 7    46   38 |  1     359  3569 |
|  7     1   B68    | 5    9    38 |  4     23   236  |
:-------------------+--------------+------------------:
|  2     8    9     | 3    1    4  |  5     6    7    |
|  146   46   7     | 9    5    26 |  3     8    12   |
|  16    5    3     | 68   268  7  |  29    129  4    |
'-------------------'--------------'------------------'

ALS-xz: A=r34c7 {689}, B=r4c13,r56c3 {45689}, x=9, z=8 => r3c3<>8

Starting with BVCs search first,

if r3c7=8 => r3c3<>8
if r3c7<>8 => r3c7=6=> r4c7=9 =>r4c1<>9 =>r5c1=9 => either r5c3 or r5c3 is 8 => r3c3<>8,

which produces the cells for the above ALS-xz move.

Other ALS-xz move in this puzzle: A=r5c35 {468}, B=r6c3 {68}, x=8, z=6 => r5c1<>6

also seems to require a forcing argument from r5c5<>4 => r5c5=6 => r5c1<>6
r5c5=4 => 68 locked in b4 => r5c1<>6
to find the right cells for the ALS-xz move.

To conclude:

It is easier to look for trivalued cells such that, when removing certain digit, a locked set argument follows which indicates some possible elimination( if no trivalued cell is found, I search for BVCs instead). If that elimination already happens when the digit previously considered off is now considered on, this forcing chain argument (may) provide cells for an ALS-xz move.

The real work involved is only in one part: finding the right trivalued cell to construct the forcing chain that has an locked set argument in it.

In my firt post on this subject, I tried to use a forcing chain that would somehow provide the cells for a possible ALS move.
But, first, that was not a forcing chain (as eleven pointed out at that time), and second, it didn't use any locked set argument.

Using this simple procedure, it's being a while since the last time I failed to find an ALS-xz move in my daily practice.

Finally, one can argue: why do you need the ALS-xz move, if you already proved the elimination using a forcing chain argument?
I do consider ALS-xz moves on a higher level than forcing chains. Hodoku tutorial places forcing chains in the "last resort" section.
So, I'd rather justify the elimination using an ALS-xz move. However, whenever I see a one-step solution to an Extreme puzzle using a kraken move, or another clever forcing chain argument, I am always impressed by its precison, elegance and power!
Anyway, the goal was to find a way to help a manual solver to spot ALS-xz patterns and this is the issue addressed here.

This simple way to spot ALS-xz moves was first noticed when I read the suggestion given by David Bird, quoted above, but eleven (eleven » Sat Jul 25, 2020 10:38 pm) had given the same advice in his reply to my first post in this thread, but I did not get it at that time.

I quote the conclusion of re'born post

... In any case, hopefully this presentation helps somebody understand a little better how to manually spot ALS style reductions and perhaps it will inspire others to share their tricks, especially for the more complicated set-ups.


Reinforcing this, I thank in advance any contribution on this topic.

Can colouring techniques help finding ALS-xz patterns?

Regards,
jco.

PS: I would like to thank again SpAce for his generous explanations, comments and suggestions in the last post.
[Edited again to include links and make small corrections accordingly]
Last edited by jco on Wed Sep 02, 2020 6:19 pm, edited 1 time in total.
JCO
jco
 
Posts: 758
Joined: 09 June 2020

Re: How to find ALSs to build a chain

Postby jco » Tue Sep 01, 2020 2:31 pm

Hello,

Just a short note to show an example of a ALS-xz move that seems out of reach for the approach described in my last post in this thread.
From the following configuration coming from an analysis of a puzzle in the Puzzle Section (by mith, Aug 29, 2020; this Forum)

Code: Select all
.--------------------.-------------------.-----------------------.
|  9     1234    67  |  123   2568   25  |  4578   124    2578   |
|  1234  8       14  |  7     259    235 |  45     6      1259   |
|  67    12      5   |  126   4      89  |  89     127    3      |
+--------------------+-------------------+-----------------------+
|  134   7       146 |  8     256    245 |  345    9      25     |
|  4568  459     2   |  456   3      79  |  1      45     78     |
|  45    345     89  |  245   79     1   |  678    2345   678    |
+--------------------+-------------------+-----------------------+
|  4578  45      89  |  34    1      678 |  2      357    69     |
|  124   6       147 |  9     25     34  |  357    8      157    |
|  2578  1259    3   |  25    78     678 |  69     157    4      |
'--------------------'-------------------'-----------------------'

The symmetry in row 9 and column 9 is noticeable. I focused on the trivalued 678, realizing that removing 6 locks 78 in r9c56, which removes 78 from r9c1 building another locked set in r9c14.

forcing chain argument:

r9c6<>6 =>2578 is locked in r9c1456 => r9c8<>5,7 => r9c8=1 => r8c9=57 => 2578 is locked in r1458 => r2c9<>2,5

r9c6=6 => r9c7<>6 => r7c9=6 => r6c9<>6 => 2578 locked at r1456c9 => r2c9<>2,5

r9c6<>6 => 2578 locked in r9c1456 => r9c2<>2,5

r9c6=6 => r9c7<>6 => r7c9=6 => r6c9<>6 => 2578 locked in r1456c9 => r8c9<>5,7 => r8c9=1 => r9c8=57 => 2578 locked at r9c1458 => r9c2<>2,5

(I noticed first the two shortest chains, that by themselves seem useless, then used the cells to build the ALS-xz move and only later came back to realize how could have shown the eliminations, thus noticing the two symmetrical longer chains).

The cells involved can be used to build the ALS-xz shown which immediately justifies all eliminations.

Code: Select all
.--------------------.-------------------.-----------------------.
|  9     1234    67  |  123   2568   25  |  4578   124   B2578   |
|  1234  8       14  |  7     259    235 |  45     6      1-2-59 |
|  67    12      5   |  126   4      89  |  89     127    3      |
+--------------------+-------------------+-----------------------+
|  134   7       146 |  8     256    245 |  345    9     B25     |
|  4568  459     2   |  456   3      79  |  1      45    B78     |
|  45    345     89  |  245   79     1   |  678    2345  B678    |
+--------------------+-------------------+-----------------------+
|  4578  45      89  |  34    1      678 |  2      357   B69     |
|  124   6       147 |  9     25     34  |  357    8     B157    |
| A2578  1-2-59  3   | A25   A78    A678 | A69    A157    4      |
'--------------------'-------------------'-----------------------'


ALS xz-Rule: A=r9c145678 {1256789}, B=r145678c9 {1256789}, x=1,9 => r2c9,r9c2<>2, r2c9,r9c2<>5.

I must add that the following ALS-xz move shown by Hodoku for that configuration would have been nearly impossible for me to find (in case it was the only ALS move available) using the approach described.

Code: Select all
.-----------------------.----------------.---------------------.
|  9       1234     67  | 123  2568  25  | 4578  124   A2578   |
|  134-2   8        14  | 7    259   235 | 45    6      19-25  |
|  67      12       5   | 126  4     89  | 89    127    3      |
+-----------------------+----------------+---------------------+
|  134     7        146 | 8    256   245 | 345   9     A25     |
|  4568    459      2   | 456  3     79  | 1     45    A78     |
|  45      345      89  | 245  79    1   | 678   2345  A678    |
+-----------------------+----------------+---------------------+
| B4578   B45      B89  | 34   1     678 | 2     357   A69     |
| B124     6       B147 | 9    25    34  | 357   8     A157    |
| B2578    19-25    3   | 25   78    678 | 69    157    4      |
'-----------------------'----------------'---------------------'

ALS-xz: A=r145678c9 {1256789}, B=r7c123,r8c13,r9c1 {1245789}, x=1,9 => r2c19,r9c2<>2, r2c9,r9c2<>5

Regards,
jco

EDIT (Feb 3, 2022): (1-9)r9c2 = (9)r9c7 - (9)r7c9 = (9-1)r2c9 = (1)r2c1 - (1)r13c2 = (1-9)r9c2 Loop get the same eliminations as the last ALS-xz move mentioned and it is easier to find manually.
Last edited by jco on Thu Feb 03, 2022 6:35 pm, edited 1 time in total.
JCO
jco
 
Posts: 758
Joined: 09 June 2020

Re: How to find ALSs to build a chain

Postby jco » Sat Jun 19, 2021 11:13 pm

The following link

http://www.sudocue.net/forum/viewtopic.php?t=726

has a very insightful, interesting article written in 2007 by Sudtyro that I learned about only a few days ago. I enjoyed very much reading it! Among other things, it addresses a question I asked at the end of a previous post in this thread. People interested in the topic of this thread may also have missed this article as I did.
JCO
jco
 
Posts: 758
Joined: 09 June 2020

Re: How to find ALSs to build a chain

Postby jco » Sun Feb 13, 2022 10:50 pm

I found another link for a thread in this Forum that provides several interesting ideas on the topic of the current thread (like means to find ALS chains using coloring).
JCO
jco
 
Posts: 758
Joined: 09 June 2020


Return to Help with puzzles and solving techniques