Make literal picker break activity ties by picking smaller variable#14
Make literal picker break activity ties by picking smaller variable#14dewert99 wants to merge 13 commits intoc-cube:masterfrom
Conversation
|
I've tried several optimizations:
I'm still not sure if these improvement are sufficient to negate the cost of the change, and some of these improvements could have been done regardless of whether we break ties using variables, although this new ordering scheme does give users more control over the literal picker in case they have extra information about which literals would be better to pick. |
|
I also reversed the order that |
|
I also notice that in this and some other my other recent PRs I used the |
|
Somewhat stupid question there, but could we sort the conflict before inserting things into the heap? That would make the actual order more resilient, I think? |
I think that would help with my original problem, although that may have some cost as well. Breaking ties with variable order also has the advantage of allowing users some control over the initial order. I think the main reason the original picker was so cheap was that it broke ties in a way to do the least amount of heapifying which was helpful when most variables had the same activity level, so these changes would also be helpful when randomizing the initial activity levels/ |
This makes literal picking somewhat more predictable and robust to the order explanations are given by theories (see dewert99/plat-smt#14). Unfortunately it seems this also makes maintaining the order heap more expensive so I'm planning to try to optimize before opening this PR.