Apply heuristics for partial solutions#1177
Conversation
|
I've tested things related to #977 as follows:
Compared to Also I've generated specific instances to reproduce the embarrassing situations mentioned here in order to confirm that this PR does fix it. |
|
Now for the refactoring part from #1181, this PR significantly reduces the number of lines and heuristic stuff is now much more readable. I've confirmed that we still get the exact same executions and searches on the usual benchmarks. The caveat being that I've notice a slight slowdown for the heuristics computing. I've done some profiling but I have no explanation other than the fact that the core heuristic parts are now factored in helper functions. Those seem to be inlined by the compiler but probably the added boilerplate prevent some further optimization that was happening before. |
|
Turns out the computing times differences I reported above are similar to the differences that can be observed by just switching compiler, so I don't thing there is a specific flaw in the refactoring. |
Issue
Fixes #977, fixes #1181.
Tasks
basicheuristic to account for non-empty routes in inputdynamicheuristic to account for non-empty routes in inputbasicanddynamicheuristics into a single helper functionbasicanddynamicheuristics into a single helper functionCHANGELOG.md