You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 19, 2020. It is now read-only.
In DoubleArrayChromosome.cs, the CreateNew function is used when initializing a genetic algorithm Population object, or when performing selection on an existing Population. The CreateNew function just creates a new instance of a DoubleArrayChromosome using the founding chromosome generator settings. Unfortunately it ignores the founding chromosome's CrossoverBalancer and MutationBalancer settings, so the entire population (and newly selected members of the population) will have the wrong Crossover and Mutation balancer settings.
The fix is easy (just update the CreateNew function), but I'm new to this project and keep getting an authorization error when trying to create a new branch for the change, so I thought I'd post about it here instead.
The CreateNew function should look like:
public override IChromosome CreateNew( )
{
var chromosome = new DoubleArrayChromosome( chromosomeGenerator, mutationMultiplierGenerator, mutationAdditionGenerator, length );
chromosome.CrossoverBalancer = this.CrossoverBalancer;
chromosome.MutationBalancer = this.MutationBalancer;
return chromosome;
}