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
