Mike Barker wrote:Here's the grid for #113. Note that although I have many techniques in my solver they are not all fully implemented. I need to speed things up substantially for a fuller implementation. For example my grouped nice loops are only up to 7 elements with limitations on ALS size and my multi-inference eliminations are limited to two elements per chain from the kraken node. Also my t-chains are only up to 12 elements (none were used in to get to this point in the solution).
Complex patterns, such as unrestricted chains of ALSs, not speaking of AAAAAAHHHH-LSs, have a computational cost (time and memory). The same is of course true for complex nrczt chains. It is therefore natural that you put such limitations in your solver, especially as I don't think a human solver, unless being exceptionally clever and spending days on them, could solve any of the extreme puzzles we are discussing.
Here are the first nrczt-rules that apply in the situation described in your post for top1465#113:
- Code: Select all
+----------------------+---------------------+--------------------+
| 5 4678 14689 | 2 169 179 | 3 178 147 |
| 134 3467 1346 | 567 8 157 | 1257 9 12457 |
| 189 78 2 | 579 3 4 | 1578 1578 6 |
+----------------------+---------------------+--------------------+
| 6 23458 348 | 1 245 278 | 9 357 2357 |
| 2389 1 389 | 678 2569 2789 | 2567 4 2357 |
| 249 245 7 | 4569 24569 3 | 1256 156 8 |
+----------------------+---------------------+--------------------+
| 7 268 168 | 3 1259 12589 | 4 568 15 |
| 1348 9 13468 | 458 7 158 | 1568 2 135 |
| 12348 2348 5 | 48 124 6 | 178 1378 9 |
+----------------------+---------------------+--------------------+
I've used the strict nrc notation, with all the additional candidates added manually together with the explicit references to their justifying candidates. Perhaps, given these chains, you may see corresponding ALS more complex than those you have programmed? As I'm not an expert in ALS, I can't.
nrczt9-chain n1r3{c8 c1} - n9{r3c1 r1c3} - n4r1{c3 c2 c9*} - n8r1{c2 c8 c3#n9r1c3} - n8r3{c7 c2 c1#n1r3c1 c8#n8r1c8} - n7{r3 r2 r1#n4r1c2}c2 - n6{r2 r7 r1#n4r1c2}c2 - {n6 n5 n8#n8r1c8}r7c8 - {n5 n1}r7c9 ==> r1c9 <> 1
nrczt11-chain n9r7{c5 c6} - n2r7{c6 c2 c5*} - n2r9{c1 c5 c2#n2r7c2} - n1{r9 r1 r7*}c5 - n9r1{c5 c3 c6#n9r7c6} - n6r1{c3 c2 c5#n1r1c5} - n8r1{c2 c8 c3#n9r1c3} - n8r7{c8 c3 c2#n2r7c2 c6#n9r7c6} - {n8 n3 n9#n9r1c3}r5c3 - {n3 n4 n8#n8r7c3}r4c3 - {n4 n5 n2#n2r9c5}r4c5 ==> r7c5 <> 5
column c5 interaction-with-block b5 ==> r6c4 <> 5
Now comes a very long nrczt chain with a long distance interaction (a rare event) between the first and the last but one cells.
It is also an example of how z-candidates can be present in the first cell of 3D-chains (which is not possible in the 2D chains). Notice that this possibility allowed by the general definition is very rarely needed and it has a high computational cost.
nrczt15-chain n5{r8c4 r7c6 r8c6*} - n9r7{c6 c5} - n2r7{c5 c2 c6#n5r7c6} - n2{r7c6 r9c5 r7c4#n2r7c5} - n1{r9 r1 r7#n9r7c5}c5 - {n1 n7 n5#n5r7c6}r2c6 - {n7 n9 n1#n1r1c5}r1c6 - n9{r1c3 r3c1} - {n9 n5 n7#n7r2c6}r3c4 - {n5 n6 n7#n7r2c6}r2c4 - n6{r2 r1 r7#n2r7c2}c2 - n7{r1 r3 r2#n7r2c6}c2 - n8{r3c2 r1c3 r1c2#n6r1c2 r3c1#n9r3c1} - n8r7{c3 c8 c2#n2r7c2 c6#n5r7c6} - n6{r7c8 r8c7} ==> r8c7 <> 5
As I don't have much time and I'm not sure such details would be useful for you, let me revert to the sloppy nrc notation for the next steps (the longest chains in the resolution path):
nrczt16-rl-lasso n1{r6c7 r6c8} - n6{r6c8 r7c8} - {n6 n8}r8c7 - {n8 n7}r9c7 - {n7 n5}r3c7 - n1{r3c7 r3c1} - n1{r9c1 r9c5} - {n1 n5}r8c6 - {n5 n4}r8c4 - {n4 n8}r9c4 - n8{r9c1 r5c1} - n9{r5c1 r6c1} - {n9 n3}r5c3 - {n3 n4}r4c3 - {n4 n6}r2c3 - n6{r8c3 r8c7} ==> r2c7 <> 1
nrczt16-lr-lasso n5{r8c4 r7c6} - n9{r7c6 r7c5} - n2{r7c5 r9c5} - n1{r9c5 r1c5} - n6{r1c5 r2c4} - n5{r2c4 r2c7} - n5{r5c7 r5c5} - n6{r5c5 r5c7} - n6{r8c7 r8c3} - n3{r8c3 r8c1} - n3{r9c2 r9c8} - n7{r9c8 r9c7} - n1{r9c7 r9c1} - {n1 n4}r2c1 - n4{r1c3 r4c3} - {n4 n2}r4c5 ==> r8c9 <> 5
row r8 interaction-with-block b8 ==> r7c6 <> 5
nrczt17-lr-lasso n1{r6c7 r6c8} - n6{r6c8 r7c8} - n5{r7c8 r7c9} - n1{r7c9 r2c9} - {n1 n3}r8c9 - n3{r9c8 r4c8} - n5{r4c8 r3c8} - n1{r3c8 r3c1} - n9{r3c1 r1c3} - n1{r1c3 r7c3} - n1{r9c1 r9c5} - {n1 n6}r1c5 - n6{r1c2 r2c2} - n3{r2c2 r9c2} - n2{r9c2 r9c1} - {n2 n8}r7c2 - n8{r1c2 r3c2} ==> r8c7 <> 1
nrczt17-lr-lasso {n4 n8}r9c4 - {n8 n5}r8c4 - {n5 n1}r8c6 - n1{r7c5 r1c5} - n6{r1c5 r2c4} - {n6 n7}r5c4 - {n7 n9}r3c4 - {n9 n7}r1c6 - {n7 n8}r1c8 - n8{r3c7 r8c7} - n6{r8c7 r7c8} - n5{r7c8 r7c9} - n1{r7c9 r2c9} - n1{r2c3 r7c3} - n1{r9c1 r3c1} - n8{r3c1 r3c2} - n8{r7c2 r7c6} ==> r9c5 <> 4
The end of the path to the solution is much easier.
Mike Barker wrote:(Carcul already solved the toughest #77).
Just for fun, would you like trying to solve it with the combination of our two solvers?
The puzzle is:
700000400
020070080
003008009
000500300
060020090
001007006
000300900
030040060
009001005
Here are the first (hard) eliminations before I run out of memory:
***** SudoRules version 13 *****
hidden-single-in-a-row ==> r9c8 = 3
row r9 interaction-with-block b7 ==> r7c3 <> 4, r7c2 <> 4, r7c1 <> 4
nrczt12-lr-lasso n4{r9c1 r9c2} - n4{r3c2 r3c4} - n4{r2c6 r4c6} - {n4 n3}r5c6 - n3{r6c5 r6c1} - n4{r6c1 r6c8} - n2{r6c8 r6c7} - n2{r3c7 r3c8} - n7{r3c8 r3c7} - {n7 n8}r9c7 - {n8 n6}r9c5 - n6{r4c5 r4c6} ==> r5c1 <> 4
nrczt12-lr-lasso n6{r4c6 r4c5} - {n6 n8}r9c5 - {n8 n5}r7c5 - {n5 n2}r7c6 - n6{r7c6 r9c4} - n6{r1c4 r1c3} - n6{r3c1 r3c7} - n7{r3c7 r3c8} - n2{r3c8 r3c4} - n4{r3c4 r2c4} - {n4 n5}r2c3 - n5{r3c1 r3c2} ==> r2c6 <> 6
nrczt13-lr-lasso {n8 n6}r9c5 - {n6 n5}r7c5 - {n5 n1}r3c5 - {n1 n9}r4c5 - {n9 n4}r6c4 - {n4 n3}r5c6 - n3{r5c1 r6c1} - n9{r6c1 r2c1} - {n9 n6}r2c4 - n6{r1c6 r1c3} - n8{r1c3 r1c2} - n1{r1c2 r7c2} - n1{r3c2 r3c1} ==> r6c5 <> 8
nrczt15-lr-lasso {n4 n3}r5c6 - n3{r5c1 r6c1} - {n3 n9}r6c5 - {n9 n6}r4c6 - n4{r4c6 r2c6} - n4{r2c3 r4c3} - n4{r6c2 r6c8} - n2{r6c8 r6c7} - n5{r6c7 r5c7} - n1{r5c7 r5c9} - {n1 n3}r2c9 - {n3 n2}r1c9 - n2{r3c8 r3c4} - n2{r9c4 r9c1} - n2{r4c1 r4c3} ==> r5c4 <> 4
nrczt16-lr-lasso n6{r2c7 r3c7} - n7{r3c7 r3c8} - n2{r3c8 r3c4} - n4{r3c4 r6c4} - {n4 n3}r5c6 - {n3 n9}r6c5 - {n9 n6}r4c6 - n4{r4c6 r2c6} - {n4 n5}r2c3 - n5{r2c7 r1c8} - {n5 n9}r1c6 - {n9 n1}r1c4 - {n1 n8}r5c4 - {n8 n5}r5c1 - {n5 n8}r6c2 - {n8 n1}r1c2 ==> r2c4 <> 6
.