- based on elkai by fikisipi: with proven optimal solutions up to N=315 and more accurate results than Google's OR tools
- asymmetric and symmetric travelling salesman problems support
- clean and simple API: get results with one line calls
Installation
[]
= { = "https://github.com/HellOwhatAs/elkai-rs", = "v0.0.1" }
Example usage
use HashMap;
use Coordinates2D;
use DistanceMatrix;
License
The LKH native code by Helsgaun is released for non-commercial use only. Therefore the same restriction applies to elkai-rs, which is explained in the LICENSE file.
How it works internally
- We refactored LKH such that it doesn't have global state and you don't need to restart the program in order to run another input problem
- We added a hook in ReadProblem that allows reading problems from memory instead of files
- We read the solution from the
Tourvariable and put it in a PyObject (Python list). - ✓ Valgrind passed on
d3d8c12.
⚠️ elkai-rs takes a global mutex (just like what elkai did) during the solving phase which means two threads cannot solve problems at the same time. If you want to run other workloads at the same time, you have to run another process.