Here is a puzzle I used as test case for Grouped Continuous Nice Loops:
- Code: Select all
3.2....1....97.............5...8.6....15...7..8..4....9....1.27.1.4.......5..79..
After singles my solver used the following:
- Code: Select all
.---------------------.------------------------------.-------------------------.
| 3 45-679 2 | *68 *56 45-68 | 4578 1 45-689 |
| 1 456 468 | 9 7 2345-68 | 23458 34568 234568 |
| 4678 45679 46789 | 23-6-8 1 2345-68 | 234578 345689 2345689 |
:---------------------+------------------------------+-------------------------:
| 5 23479 3479 | 1 8 239 | 6 349 2349 |
| 246 23469 1 | 5 2369 2369 | 2348 7 23489 |
| 26 8 369 | 7 4 2369 | 1 359 2359 |
:---------------------+------------------------------+-------------------------:
| 9 346 3468 | *368 *356 1 | 3458 2 7 |
| 2678 1 3678 | 4 *23569 *-2-35-68-9 | 358 3568 3568 |
| 2468 2346 5 | *2368 236 7 | 9 3468 1 |
'---------------------'------------------------------'-------------------------'
Grouped Continuous Nice Loop r8c6 =5= r78c5 -5- r1c5 -6- r1c4 -8- r79c4 =8= r8c6 => r8c6<>2369, r1c269,r23c6,r3c4<>6, r3c4<>8
After a small rewrite of my chaining code I got a slightly shorter version instead which is missing some of the eliminations:
- Code: Select all
.--------------------.----------------------------.-------------------------.
| 3 45679 2 | A68 A56 4568 | 4578 1 45689 |
| 1 456 468 | 9 7 234568 | 23458 34568 234568 |
| 4678 45679 46789 | 2368 1 234568 | 234578 345689 2345689 |
:--------------------+----------------------------+-------------------------:
| 5 23479 3479 | 1 8 239 | 6 349 2349 |
| 246 23469 1 | 5 2369 2369 | 2348 7 23489 |
| 26 8 369 | 7 4 2369 | 1 359 2359 |
:--------------------+----------------------------+-------------------------:
| 9 346 3468 | *368 *356 1 | 3458 2 7 |
| 2678 1 3678 | 4 *23569 *-2-35-68-9 | 358 3568 3568 |
| 2468 2346 5 | *2368 236 7 | 9 3468 1 |
'--------------------'----------------------------'-------------------------'
Grouped Continuous Nice Loop 8= r8c6 =5= r78c5 -5- ALS:r1c45 -8- r79c4 =8= r8c6 =5 => r8c6<>2369
What I am not really clear about is how to handle ALS nodes in CNLs. the weak link ALS:r1c45 -8- r79c4 should probably eliminated 8 from r1c4, but what about candidate 6?
Is there a general rule regarding ALS? The example looks like "eliminate all candidates the resulting locked set would eliminate" but is that generally true?