Added
- Compute optimized "open" trips with user-defined start and/or end.
- Special extra handling for asymmetric problems in the local search
phase. - New local search operator to improve results in specific asymmetric
context (e.g. many locations in a dense urban area with lots of
one-way streets). - OSRM v4.9.* compatibility.
- Use rapidjson for json i/o (#19)
- Append the
tour
key to the solution in any case.
Changed
- U-turns enabled when retrieving detailed route geometry from OSRM
(#10). - Evolution of the local-search strategy providing lower dispersion in
solution quality and improving on worst-case solutions (overall
worst-case on TSPLIB went from +9.56% over the optimal in v0.2 to
+6.57% in this release). - Core refactor for undirected graph (#13), tsp structure and tsplib
loader (#24), heuristics, local search and 2-opt
implementation. Results in a less intensive memory usage and faster
computing times (on TSPLIB files, the computing times dropped by
more than a factor of 2 on average). - Cleanup verbose output, using Boost.Log for better display (#18).
- Switch to boost::regex for input parsing.
Fixed
- Wrong output tour size for problems with 2 locations (#16).
- Segfault with explicit matrix in TSPLIB format (#14).
- Invalid syntax for newline at the end of input file (#17).
- Trouble with the regexes used for TSPLIB parsing (#7).
- Incorrect DIMENSION key in TSPLIB format raising stoul exception.
- Segfault for DIMENSION: 1 problem in TSPLIB format (#25).