This post displays the ALS map for rows of UHC 311, at the moment when the Beeby solver returned the first ALS_XZ. The suset ALS marking and building aid is introduced, and suset tables for rows, columns and boxes are shown.
In systematic ALS_XZ searching, pairs of ALS form an ALS_XZ when there is a group weak link X between one of their value groups, and when an outside candidate sees a group of another value in each ALS.
It became clear that the ALS map could be made much more workable by dividing it into three maps, one for row ALS, one for column ALS, and one for box ALS. Here is the row ALS grid.
It’s surprising that there are that many ALS, just along rows. But you build this map once, then bring updated copies along with you.
Calculating, listing, and updating ALS are more easily performed using a numerical representation introduced much earlier in the blog, the suset. In the suset, two digit strings identify cell positions within the unit and value groups within the ALS. The three ALS in the third row above are described by susets 79/238, 379/1238, and 279/1238. Positions and values are listed in increasing order to make string comparisons easier.
Here is the table of susets for the row ALS of UHC 311.
Each row is represented by two lines. The lighter line lists the cell positions and values. The second, darker line lists the ALS. ALS are built up by combining values and cell positions. For example, in that third line, we notice the common values and combine two cells with three total values for one ALS 79/238. Then we seek to add one cell and only one value. We find two ways to do it, adding 3 and separately, 3. Adding more cells will cover all values and cells, with our suset not representing an ALS. We’ve left several susets in the table with lines through them to indicate this has happened.
Map drawing starts with the suset table in place, and with a copy of the current AIC grid available. With the table in place, we now concentrate on drawing the ALS on the map As we add an ALS, if it looks promising as an ALS node, we can place a copy on the current AIC grid and check it out.
For example, here is a row 2 ALS turning 9r2c8 green. Internal value groups and an internal slink turn the 9 group blue, and a box slink finishes the expansion.
Although bv cells are ALS in themselves, being one position and two values, we place them in the suset tables on the light lines only, not on the darker lines. wo of them in a box, but not a single line, form an ALS. That showed up last post as a pair of bv doing just that, another way to do the cluster expansion above.
Note that it’s the internal slink between 2 and 9 single values that extends the coloring, turning 6r2c8 blue and trapping 6r2c7.
As you build the ALS maps, you can scan for ALS_XZ partners, starting with bv cells. Even before that, you might scan the boxes for unaligned naked pairs.
On the Row ALS map, as you add ALS r8 579/1456, light blue in the map above, and add the single value circles, check for matching bv, then scan previous rows for matching circles. The match of 6 on row 1 gives you a restricted common (X) with ALS r1 27/256. The other single (Z=5) in that ALS is seen by the ALS_65 victim, 5r8c8, which also sees single 5r8c9.
We’re not quite finished with the ALS_XZ scans from r8. Scanning down to r5, we get a singles match on 1 but then no 4 or 5 candidate or group sees both 4 groups or both 5 groups. No victim, no ALS_1Z.
No matches with the r9 single 9 and we’re done.
Let’s finish here with the column and box ALS tables, and invite you to draw some ALS. Next time, we’ll add the maps and fill in some details on ALS_XZ building, and imagine what it was like to construct those found by the Beeby solver on the way to a new UHC 311 solution path.