I'll be surprised if that's due to anything other than coincidence.
not a coincedence.
if the engine is based off of the work of whom paul lists.
some things are more complicated
or an alternative view on the same things.
I'll be surprised if that's due to anything other than coincidence.
ronk wrote:PIsaacson wrote:daj95376 wrote:It seems to me, after examining your first two examples, that you also have an alternate way of finding XY-Loops.
I like it! Even though the XY-loops involve other cells, it accounts for the reductions. Yikes, now I need to see if all the other cases can be subsumed by XY-loops/chains.
I'll be surprised if that's due to anything other than coincidence.
StrmCkr wrote:not a coincedence.
if the engine is based off of the work of whom paul lists.
some things are more complicated
or an alternative view on the same things.
PIsaacson wrote:Gentlemen (and ladies if present),
I need serious help in developing rules for bringing AHSs into this picture. My engine produces the paired AHS for each ALS and they are just sitting there begging to come to the party. I use these beasts in nice-loops, but while I found it relatively easy to work out the rules for weak link propagation for an AHS in a nice-loop chain, I can't seem to get my head around how to directly combine:
AHS to ALS
ALS to AHS (probably a symmetrical set of rules to the above)
AHS to AHS
In my nice-loop code, I generate a strong link from an external cell/candidate false to the AHS extraneous candidate true (not part of the N candidate N+1 cell structure) - AHS becomes an LS due to the extraneous candidate true, LS is weak linked to all other extraneous candidates becoming false as well as any peers of the newly formed LS becoming false. What am I missing for using this for ALS/AHS chains??? The only solutions I've come with all involve helper/bridge cells which makes it more like grouped nice-loops. I'm waiting for that "Eureka!" (no pun intended) moment, but it has yet to happen.
6 289 27e9 |2789 4 15789 |125 129 3
489 1 2349 |23689 2568 689 |246 7 569
479 2349 5 |23679 1267 1679 |8 12469 169
--------------------------------------------------------------------
14789 4689 14679 |5 678 2 |13467 134689 16789
3 5A68 167 |4c678 9 4678 |1567 168 2
45789 2d4689 24679 |1 678 3 |467 4689 56789
--------------------------------------------------------------------
145 346 8 |2467 12567 1467 |9 23 167
149 7 13469 |24689 1268 14689 |23 5 168
2 569 169 |6789 3 156789 |167 168 4
[]6r9c78 - 6r9c23 = AC:r7c2r8c3(6r7c2r8c3 - 4r7c2r8c3) = 4r78c1 - 4r23c1
= AC:r2c3r3c2(4r2c3r3c2 - 2r2c3r3c2) = 2r1c23 - 2r1c78
= AC:r2c7r3c8(2r2c7r3c8.å - 6r2c7r3c8)
= 6r23c9 - 6r78c9
[]6r9c78 - 6r9c23 = || = 4r78c1 - 4r23c1 = || = 2r1c23 - 2r1c78 = ||= 6r23c9 - 6r78c9
ALS r78c1r9c23 ALS r1c23r23c1 ALS r1c78r23c9
PI wrote:... but while I found it relatively easy to work out the rules for weak link propagation for an AHS in a nice-loop chain, I can't seem to get my head around how to directly combine:
AHS to ALS
ALS to AHS (probably a symmetrical set of rules to the above)
AHS to AHS
here PIsaacson wrote:ruud_top10000 #2916
[...]
do_alschains - reducing r8c1.<2469> by <2> dual
do_alschains - reducing r8c2.<12569> by <2> dual
do_alschains - reducing r7c1.<2479> by <4> dual
do_alschains - reducing r7c4.<24579> by <4> dual
do_alschains - reducing r8c1.<469> by <4> dual
do_alschains - reducing r7c2.<12579> by <5> dual
do_alschains - reducing r7c4.<2579> by <5> dual
do_alschains - reducing r8c2.<1569> by <5> dual
do_alschains - reducing r7c4.<279> by <9> dual
do_alschains - als+c[2x7/7] b7x378.<2457> +27+ r7c123689.<1234579>
[...]
ruud_top10000 #8192
[...]
do_alschains - graph contains 234 vertices and 1090 edges
do_alschains - reducing r1c8.<123489> by <2> dual
do_alschains - reducing r2c1.<2389> by <2> dual
do_alschains - reducing r2c7.<1239> by <2> dual
do_alschains - reducing r2c8.<12348> by <2> dual
do_alschains - reducing r1c8.<13489> by <3> dual
do_alschains - reducing r1c8.<1489> by <4> dual
do_alschains - reducing r2c8.<1348> by <4> dual
do_alschains - reducing r5c9.<2457> by <4> dual
do_alschains - reducing r2c1.<389> by <8> dual
do_alschains - reducing r1c8.<189> by <9> dual
do_alschains - als+c[2x7/7] b3x367.<2349> +39+ r2c246789.<1234689>
here PIsaacson wrote:Top50000 #35664 after elementary constraint processing
[...]
do_alschains - reducing r3c1.<4579> by <5> dual
do_alschains - reducing r2c2.<23789> by <7> dual
do_alschains - reducing r3c2.<23479> by <7> dual
do_alschains - reducing r5c1.<178> by <8> dual
do_alschains - reducing r1c2.<39> by <9> dual
do_alschains - reducing r2c1.<1789> by <9> dual
do_alschains - reducing r2c2.<2389> by <9> dual
do_alschains - reducing r3c1.<479> by <9> dual
do_alschains - reducing r3c2.<2349> by <9> dual
do_alschains - als+c[2x6/6] b1x169.<1579> +17+ r12368c1.<145789>
PIsaacson wrote:I use these beasts in nice-loops, but while I found it relatively easy to work out the rules for weak link propagation for an AHS in a nice-loop chain, I can't seem to get my head around how to directly combine:
AHS to ALS
ALS to AHS (probably a symmetrical set of rules to the above)
AHS to AHS
+---------------+-----------------------+--------------------+
| 1 2 38 | 4 5 6 | 37 78 9 |
| 4 358 6 | 1378 289-7 1379 | 125 125 1358 |
| 7 358 9 | 138 28 13 | 1245 12456 13568 |
+---------------+-----------------------+--------------------+
| 2 38 7 | 5 1 4 | 6 9 38 |
| 6 4 1 | 9 3 8 | 57 57 2 |
| 38 9 5 | 67 (67) 2 | 13 18 4 |
+---------------+-----------------------+--------------------+
| 39 6 34 | 2 (479) 1357-9 | 8 145 157 |
| 5 7 2 | (168) (489) (19) | 49-1 3 (16) |
| 389 1 348 | 367 (4679) 357-9 | 2459 2456 567 |
+---------------+-----------------------+--------------------+
7 Sets = {8N469 6789N5}
7 Links = {16r8 67c5 489b8}
+---------------+------------------------+--------------------+
| 1 2 38 | 4 5 6 | 37 78 9 |
| 4 358 6 | 1378 -7(289) 1379 | 125 125 1358 |
| 7 358 9 | 138 (28) 13 | 1245 12456 13568 |
+---------------+------------------------+--------------------+
| 2 38 7 | 5 1 4 | 6 9 38 |
| 6 4 1 | 9 3 8 | 57 57 2 |
| 38 9 5 | 67 67 2 | 13 18 4 |
+---------------+------------------------+--------------------+
| 39 6 34 | 2 47(9) 1357-9 | 8 145 157 |
| 5 7 2 | (168) 4(89) (19) | 49-1 3 (16) |
| 389 1 348 | 367 467(9) 357-9 | 2459 2456 567 |
+---------------+------------------------+--------------------+
6 Sets = {289C5 8N469}
6 Links = {16r8 23n5 89b8}
+---------------+----------------------+----------------------+
| 1 2 38 | 4 5 6 | 37 78 9 |
| 4 358 6 | 1378 289-7 1379 | 125 125 1358 |
| 7 358 9 | 138 28 13 | 1245 12456 13568 |
+---------------+----------------------+----------------------+
| 2 38 7 | 5 1 4 | 6 9 38 |
| 6 4 1 | 9 3 8 | 57 57 2 |
| 38 9 5 | 67 (67) 2 | 13 18 4 |
+---------------+----------------------+----------------------+
| 39 6 34 | 2 (479) 1357-9 | 8 145 157 |
| 5 7 2 | 168 8(49) 1(9) | -1(49) 3 16 |
| 389 1 348 | 367 (4679) 357-9 | 2459 2456 567 |
+---------------+----------------------+----------------------+
5 Sets = {49R8 679N5}
5 Links = {67c5 8n7 49b8}
+---------------+-----------------------+----------------------+
| 1 2 38 | 4 5 6 | 37 78 9 |
| 4 358 6 | 1378 -7(289) 1379 | 125 125 1358 |
| 7 358 9 | 138 (28) 13 | 1245 12456 13568 |
+---------------+-----------------------+----------------------+
| 2 38 7 | 5 1 4 | 6 9 38 |
| 6 4 1 | 9 3 8 | 57 57 2 |
| 38 9 5 | 67 67 2 | 13 18 4 |
+---------------+-----------------------+----------------------+
| 39 6 34 | 2 47(9) 1357-9 | 8 145 157 |
| 5 7 2 | 168 (489) 1(9) | -1(49) 3 16 |
| 389 1 348 | 367 467(9) 357-9 | 2459 2456 567 |
+---------------+-----------------------+----------------------+
5 Sets = {49R8 289C5}
5 Links = {238n5 8n7 9b8}
champagne wrote:And the Nice loop produced by the solver
- Code: Select all
[]6r9c78 - 6r9c23 = AC:r7c2r8c3(6r7c2r8c3 - 4r7c2r8c3) = 4r78c1 - 4r23c1
= AC:r2c3r3c2(4r2c3r3c2 - 2r2c3r3c2) = 2r1c23 - 2r1c78
= AC:r2c7r3c8(2r2c7r3c8.å - 6r2c7r3c8)
= 6r23c9 - 6r78c9
In such a case, Ronk would prefer the shorter form using exclusively "ALS" that I write in that way
- Code: Select all
[]6r9c78 - 6r9c23 = || = 4r78c1 - 4r23c1 = || = 2r1c23 - 2r1c78 = ||= 6r23c9 - 6r78c9
ALS r78c1r9c23 ALS r1c23r23c1 ALS r1c78r23c9