@@ 288,9 288,9 @@ pub fn plot_fitness_evolution(file: &str, stats: LocalSearchStats<SVector<f64, 2
#[cfg(test)]
pub mod tests {
- use nalgebra::{SVector, U10};
+ use nalgebra::{OVector, SVector, U10, U2};
- use crate::{binary_string::BinaryString, comparison::MinimizingOperator, evolutionary_strategy::{IdentityStrategy, OneToFiveStrategy}, fitness::{one_max::OneMax, real::Linear, rosenbrock::Rosenbrock, sphere::Sphere, BinaryFitnessWrapper}, local_search::{local_search_first_improving, local_search_first_improving_evolving, plot_fitness_evolution}, perturbation::{BinaryStringBitPerturbation, BoundedPerturbation, BoundedPerturbationStrategy, PatternPerturbation, RandomDistributionPerturbation}, terminating::{AndTerminatingConditions, CloserThanTerminatingCondition, EqualTerminatingCondition, NoBetterForCyclesTerminatingCondition}};
+ use crate::{binary_string::BinaryString, bounded::BoundedOVector, comparison::MinimizingOperator, evolutionary_strategy::{IdentityStrategy, OneToFiveStrategy}, fitness::{one_max::OneMax, real::Linear, rosenbrock::Rosenbrock, sphere::Sphere, BinaryFitnessWrapper}, initializer::{Initializer, RandomInitializer}, local_search::{local_search_first_improving, local_search_first_improving_evolving, plot_fitness_evolution}, perturbation::{BinaryStringBitPerturbation, BoundedPerturbation, BoundedPerturbationStrategy, PatternPerturbation, RandomDistributionPerturbation}, terminating::{AndTerminatingConditions, CloserThanTerminatingCondition, EqualTerminatingCondition, NoBetterForCyclesTerminatingCondition}};
#[test]
fn test_local_search_sphere_binary() {
@@ 472,6 472,9 @@ pub mod tests {
let max = SVector::<f64, 2>::from_vec(vec![10.0, 10.0]);
let min = -SVector::<f64, 2>::from_vec(vec![10.0, 10.0]);
+ let mut initializer =
+ RandomInitializer::<U2, OVector<f64, U2>>::new(Box::new(BoundedOVector::<U2>::new(min, max)));
+
let linear = Linear::new(7.0, SVector::<f64, 2>::from_vec(vec![0.2, -0.5]));
let result = local_search_first_improving(
@@ 489,7 492,7 @@ pub mod tests {
max,
BoundedPerturbationStrategy::Retry(10)),
&MinimizingOperator::new(),
- &SVector::<f64, 2>::zeros(),
+ &initializer.initialize_single(U2),
).unwrap();
println!("{:?}", result);