- Code: Select all
Do you implement it in your solver? I think the logic of AHS-XZ is more complex than that of ALS-XZ.
its identical
their is two ways to approach it:
"twiddle"
the ALS size ie digits 123 swaps to digits 456789 and you have the als set that is "off"
the sector *Cells[1234] => Cells* 56789 {off}
instead of searching for "on sets" the als is now looking for "off" sets ie the counter part ahs
which used the exact same code as the als engine.
my code completely removes all solve cells in the "pm grid" so the above doesn't work for me.
the 2nd way to do it is a have 2 separate data bases
one that records all
digits in each cell for a sector {standard als-xz array}
a second one
that stores the RCB
positions for what is active per digit {ahs}
so yes i have ahs sets programed to a degree in my solver {my current program isn't as actuate as my previous, as Ive updating its fundamentals and speed it up 4 fold}
both codes use the same engine:
my elimination routine in my AHS- is the only thing i really had to modify as the eliminations aren't directly correlated to my eliminations storage systems i have atm.
{and this still has some bugs in it, for my rebuild upgrade code i am currently using}
xsudoku:
will cause a lot of issues when trying to discern what the real ahs-xz eliminations are as it cant identify them explicitly as it uses truth links and it tends to add in extra eliminations
when a sector is reduced to 1 cell. {when it used in the links}
AHS
A ) 16 @ R38C7
B) 128 @ R7C9,R8C79
R: R89C7
eliminations:
R9C7 <> 4,
r7C9 <> 1 {missing in my current code from glitches on dual link processing}
which leaves it as a single and from the internal limitation we get the cannibalistic extension eliminations from set A. as set b locks A
- Code: Select all
+-------------------+----------------------+-----------------+
| 3 158 2458 | 6 458 7 | 9 24 14 |
| 69 7 46 | 49 1 2 | 3 8 5 |
| 2589 158 2458 | 4589 3 4589 | 146 2467 147 |
+-------------------+----------------------+-----------------+
| 7 6 125 | 3 245 145 | 8 9 24 |
| 258 58 9 | 4578 6 458 | 247 1 3 |
| 4 3 128 | 789 278 189 | 27 5 6 |
+-------------------+----------------------+-----------------+
| 168 9 678 | 2 -8(47) 3 | 5 467 1478 |
| 568 4 5678 | 1 9 58 | 26 3 278 |
| -1(58) 2 3 | (4578) (4578) 6 | 14 47 9 |
+-------------------+----------------------+-----------------+
ahs
a) 58 @ R7C5,R9C45
b) 47 @ R9C145
R: R9C45, Z: ZR9C45
eliminations:
R9C1 <> 1,
R7C5 <> 8 {missing in my current code from glitches on dual link processing}