public void FitnessSharingChromosomeEvaluator_IgnoreFarChromosomes(int chromosomesToIgnore) { var evaluator = new FitnessSharingChromosomeEvaluator(0.8, 1, (c1, c2) => c2.Evaluate() <= chromosomesToIgnore ? 0.9 : 0.5); evaluator.SetEnvierment(GetEnvironmentWith10Chromosomes()); var evaluation = evaluator.Evaluate(1.0.CreateChromosome("")); Assert.AreEqual(1.0 / (0.5 * (10 - chromosomesToIgnore)), evaluation); }
public void FitnessSharingChromosomeEvaluator_RightFitnessWeight(double distanceScale) { var evaluator = new FitnessSharingChromosomeEvaluator(0.8, distanceScale, (c1, c2) => 0.5); evaluator.SetEnvierment(GetEnvironmentWith10Chromosomes()); var evaluation = evaluator.Evaluate(1.0.CreateChromosome("")); Assert.AreEqual(1.0 / (10 * (1 - 0.5 / distanceScale)), evaluation); }