-
Notifications
You must be signed in to change notification settings - Fork 333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Experiments on huge instances #23
Comments
@frodrigo: Thanks for pointing this out. I've been paying closer attention to memory while solving big TSPLIB instances. On my laptop the load starts to be significant around 10000 locations. usa13509.tsp is still ok but all bigger instances fail... The heuristic phase gives a peek for memory usage due to this, a sub-matrix is actually copied from the existing matrix... |
So, maybe the first step is avoiding to instantiate submatrix by create a virtual matrix using index to access original matrix data. |
After copy, the sub_matrix is actually modified before being passed to This is not actually a problem with your approach as only a part of the locations vector would be copied. |
I removed the initial matrix implementation and replaced it by the one you suggested (this is the only one required in this branch anyway). I removed everything that stood in the way for compilation (e.g. other loaders, forced start and stop options). Still segfaults due to matrix copies, I hope to fix this by merging some commits from the |
Conflicts: src/heuristics/christo_heuristic.cpp src/loaders/osrm_wrapper.h src/loaders/tsplib_loader.h src/structures/matrix.h src/structures/tsp.cpp
@frodrigo Using current HEAD of the
|
Interesting ! Thank for looking at this. |
The solution for pla33810 costs 68133433, which is +3.16% from optimal. As the benchmark results points out so far, the size of the instances does not really impact on the current approach's performance in term of distance to optimal. Reducing the memory by not storing the edges (at least for the complete graph) would be the next step. This might be a little more tricky than with the matrix as the |
Discussion initiated from PR #22. Related commits to be found in branch
experimental_huge_instances
.The text was updated successfully, but these errors were encountered: