Struct genetic_algorithm_tsp::distance_mat::DistanceMat
source · [−]pub struct DistanceMat { /* private fields */ }
Expand description
A representation of a f64 based distance matrix.
Implementations
sourceimpl DistanceMat
impl DistanceMat
sourcepub fn new(distances: Vec<Vec<f64>>) -> Self
pub fn new(distances: Vec<Vec<f64>>) -> Self
Create a new distance mat based on exising distances.
Arguments
distances
- The distances between all indexes 0..n. The matrix is assumed to be symmetrical and the distance between an object and itself (the diagonal) should be only 0.
Examples
use genetic_algorithm_tsp::distance_mat::DistanceMat;
let distance_matrix = DistanceMat::new(vec![vec![0.0,1.0,2.0], vec![1.0,0.0,3.0], vec![2.0,3.0,0.0]]);
sourcepub fn n_units(&self) -> usize
pub fn n_units(&self) -> usize
Get the number of nodes in the distance matrix, e.g. one of its dimensions.
Examples
use genetic_algorithm_tsp::distance_mat::DistanceMat;
let distance_matrix = DistanceMat::new(vec![vec![0.0,1.0,2.0], vec![1.0,0.0,3.0], vec![2.0,3.0,0.0]]);
println!("{}", distance_matrix.n_units());
sourcepub fn get_distance(&self, route: &[usize]) -> f64
pub fn get_distance(&self, route: &[usize]) -> f64
Given a sequence of nodes (in a Route
-object) compute the distance for the round-
trip between node 0..0
Arguments
route
- The sequence of nodes that is visited and for which the round-trip-lenght should be computed.
Examples
use genetic_algorithm_tsp::distance_mat::DistanceMat;
use genetic_algorithm_tsp::route::Route;
let distance_matrix = DistanceMat::new(vec![vec![0.0,1.0,2.0], vec![1.0,0.0,3.0], vec![2.0,3.0,0.0]]);
println!("{}", distance_matrix.get_distance(&vec![1,0,2]));
sourcepub fn get_random_population(&self, n_routes: usize) -> Routes
pub fn get_random_population(&self, n_routes: usize) -> Routes
Generate a random population suiting your distance mat.
Arguments
n_routes
- How many routes should be generated?
Examples
use genetic_algorithm_tsp::distance_mat::DistanceMat;
let distance_matrix = DistanceMat::new(vec![vec![0.0,1.0,2.0], vec![1.0,0.0,3.0], vec![2.0,3.0,0.0]]);
println!("{}", distance_matrix.get_random_population(5));
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for DistanceMat
impl Send for DistanceMat
impl Sync for DistanceMat
impl Unpin for DistanceMat
impl UnwindSafe for DistanceMat
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more