Crates.io | elkai-rs |
lib.rs | elkai-rs |
version | 0.1.7 |
source | src |
created_at | 2024-02-13 01:37:21.665555 |
updated_at | 2024-07-31 05:37:02.798315 |
description | elkai-rs is a rust library for solving travelling salesman problems (TSP) based on elkai (LKH 3) |
homepage | |
repository | https://github.com/HellOwhatAs/elkai-rs |
max_upload_size | |
id | 1137614 |
size | 1,098,064 |
elkai-rs - a Rust library for solving TSP problems
[dependencies]
elkai-rs = "0.1.7"
use std::collections::HashMap;
use elkai_rs::Coordinates2D;
fn main() {
let cities = Coordinates2D::new(HashMap::from_iter([
("city1", (0.0, 0.0)),
("city2", (0.0, 4.0)),
("city3", (5.0, 0.0))
]));
println!("{:?}", cities.solve(10));
}
use elkai_rs::DistanceMatrix;
fn main() {
let cities = DistanceMatrix::new(vec![
vec![0, 4, 0],
vec![0, 0, 5],
vec![0, 0, 0]
]);
println!("{:?}", cities.solve(10));
}
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.
⚠️ 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.