@@ 40,6 40,7 @@ impl<TChromosome, TOut: Default + PartialOrd> ConstraintFunction for LowerThanCo
}
pub struct ConstrainedFitnessFunction<'a,
+ const CONSTRAINTS: usize,
TIn,
TOut,
TFitness: FitnessFunction<In = TIn, Out = TOut>,
@@ 58,11 59,12 @@ pub enum ConstrainedFitnessErr<T: Error, U: Error> {
}
impl <'a,
+ const CONSTRAINTS: usize,
TOut: std::ops::Mul<Output = TOut> + std::ops::AddAssign + Copy,
TIn,
TFitness: FitnessFunction<In = TIn, Out = TOut>,
TConstraint: ConstraintFunction<Chromosome = TIn, Out = TOut>>
- FitnessFunction for ConstrainedFitnessFunction<'a, TIn, TOut, TFitness, TConstraint> {
+ FitnessFunction for ConstrainedFitnessFunction<'a, CONSTRAINTS, TIn, TOut, TFitness, TConstraint> {
type In = TFitness::In;
type Out = TOut;
type Err = ConstrainedFitnessErr<TFitness::Err, TConstraint::Err>;
@@ 94,6 96,7 @@ impl <'a,
pub fn evolve_constraint_penalty_weight_k
<TChromosome: Clone,
+ const CONSTRAINTS: usize,
const DParents: usize,
TSelection: Selection<TChromosome, f64>,
TFitness: FitnessFunction<In = TChromosome, Out = f64>,
@@ 112,7 115,7 @@ pub fn evolve_constraint_penalty_weight_k
&EvolutionStats<TChromosome, f64>,
&EvaluatedPopulation<TChromosome, f64>,
- &mut ConstrainedFitnessFunction<TChromosome, f64, TFitness, TConstraint>,
+ &mut ConstrainedFitnessFunction<CONSTRAINTS, TChromosome, f64, TFitness, TConstraint>,
&mut TSelection,
&mut TPairing,
&mut TCrossover,
@@ 157,6 160,7 @@ pub fn evolve_constraint_penalty_weight_k
pub fn evolve_constraint_penalty_weight_tau_target
<TChromosome: Clone,
+ const CONSTRAINTS: usize,
const DParents: usize,
TSelection: Selection<TChromosome, f64>,
TFitness: FitnessFunction<In = TChromosome, Out = f64>,
@@ 174,7 178,7 @@ pub fn evolve_constraint_penalty_weight_tau_target
&EvolutionStats<TChromosome, f64>,
&EvaluatedPopulation<TChromosome, f64>,
- &mut ConstrainedFitnessFunction<TChromosome, f64, TFitness, TConstraint>,
+ &mut ConstrainedFitnessFunction<CONSTRAINTS, TChromosome, f64, TFitness, TConstraint>,
&mut TSelection,
&mut TPairing,
&mut TCrossover,