aboutsummaryrefslogtreecommitdiff
path: root/src/tsp_approx.rs
diff options
context:
space:
mode:
authorLia Lenckowski <lialenck@protonmail.com>2024-11-28 16:16:23 +0100
committerLia Lenckowski <lialenck@protonmail.com>2024-11-28 16:16:23 +0100
commite71c5d901beec2b15052785893f7250f958f7719 (patch)
tree832661f0b122f036adc8d85ebaa05ea062527b2a /src/tsp_approx.rs
parent552bc452de76fd6760c9946c641a2de8217ff1d2 (diff)
downloadembeddings-sort-e71c5d901beec2b15052785893f7250f958f7719.tar
embeddings-sort-e71c5d901beec2b15052785893f7250f958f7719.tar.bz2
embeddings-sort-e71c5d901beec2b15052785893f7250f958f7719.tar.zst
wrap help, add flag for path rotation, change default 2-opt iteration count
Diffstat (limited to 'src/tsp_approx.rs')
-rw-r--r--src/tsp_approx.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/tsp_approx.rs b/src/tsp_approx.rs
index a23a726..3ce2bd5 100644
--- a/src/tsp_approx.rs
+++ b/src/tsp_approx.rs
@@ -413,6 +413,7 @@ pub(crate) fn tsp<M>(
embeds: &[M],
alg: &TspBaseAlg,
refinements: usize,
+ rotate: bool,
hash_seed: &Option<u64>,
) -> (Vec<usize>, f64)
where
@@ -441,7 +442,9 @@ where
};
for _ in 0..refinements {
- rotate_towards_optimum(&dc, &mut tour);
+ if rotate {
+ rotate_towards_optimum(&dc, &mut tour);
+ }
let res = refine_2_opt(&dc, tour);
tour = res.1;
if !res.0 {
@@ -449,7 +452,9 @@ where
}
}
- rotate_towards_optimum(&dc, &mut tour);
+ if rotate {
+ rotate_towards_optimum(&dc, &mut tour);
+ }
let mut total_dist = 0.;
for i in 0..tour.len() - 1 {