You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Back in #750 I introduced a mechanism to deduplicate solutions after the heuristic phase. The rationale was to avoid performing the exact same local search on identical solutions across different threads. While this is interesting in theory, there are drawbacks:
the code is much more complex with two multi-threading phases and a deduplication phase;
it requires a synchronization point across heuristic threads, which means "fast" heuristic searches are idle before all have completed.
This mechanism may reduce overall computations, but will in most situation not improve completion time, and could even harm it. Another consideration is that identical heuristic solutions happen quite a lot in small/simple benchmark instances (e.g. Solomon C class) due to the nature of the instances and the costs (rounded euclidean distances), but are pretty rare in a real-life setup with a significant number of locations and travel times to the second.
All this to say I think this is not worth the trouble and we should refactor that bit.
The text was updated successfully, but these errors were encountered:
Back in #750 I introduced a mechanism to deduplicate solutions after the heuristic phase. The rationale was to avoid performing the exact same local search on identical solutions across different threads. While this is interesting in theory, there are drawbacks:
This mechanism may reduce overall computations, but will in most situation not improve completion time, and could even harm it. Another consideration is that identical heuristic solutions happen quite a lot in small/simple benchmark instances (e.g. Solomon C class) due to the nature of the instances and the costs (rounded euclidean distances), but are pretty rare in a real-life setup with a significant number of locations and travel times to the second.
All this to say I think this is not worth the trouble and we should refactor that bit.
The text was updated successfully, but these errors were encountered: