@@ 33,7 33,7 @@ pub fn evolution_algorithm<TChromosome: Clone, TResult: Clone, const DParents: u
parents_count: usize,
fitness: &impl FitnessFunction<In = TChromosome, Out = TResult>,
selection: &impl Selection<TChromosome, TResult>,
- pairing: &mut impl Pairing<DParents, Chromosome = TChromosome, Out = TResult>,
+ pairing: &impl Pairing<DParents, Chromosome = TChromosome, Out = TResult>,
crossover: &impl Crossover<DParents, Chromosome = TChromosome, Out = TResult>,
perturbation: &impl PerturbationOperator<Chromosome = TChromosome>,
replacement: &impl Replacement<TChromosome, TResult>,
@@ 125,7 125,7 @@ pub mod tests {
50,
&one_max,
&TournamentSelection::new(5, 0.8),
- &mut AdjacentPairing::new(),
+ &AdjacentPairing::new(),
&BinaryOnePointCrossover::new(),
&CombinedPerturbation::new(
vec![
@@ 11,7 11,7 @@ pub trait Pairing<const D: usize> {
type Out;
fn pair<T: Iterator<Item = usize>>(
- &mut self,
+ &self,
population: &EvaluatedPopulation<Self::Chromosome, Self::Out>,
parents: T
) -> impl Iterator<Item = ParentPairing<D>>;
@@ 36,7 36,7 @@ impl<TChromosome, TOutput> Pairing<2> for AdjacentPairing<TChromosome, TOutput>
type Out = TOutput;
fn pair<T: Iterator<Item = usize>>(
- &mut self,
+ &self,
_: &EvaluatedPopulation<Self::Chromosome, Self::Out>,
parents: T
) -> impl Iterator<Item = ParentPairing<2>> {