public override void Execute(PopulationBase population, out IndividualBase chosenIndividual1, out IndividualBase chosenIndividual2) { IndividualBase[] selectedParents = new IndividualBase[2]; for (int individualIdx = 0; individualIdx < 2; ++individualIdx) { selectedParents[individualIdx] = population.GetRandomIndividual(); for (int selectionIdx = 1; selectionIdx < tourSize; ++selectionIdx) { IndividualBase randomIndividual = population.GetRandomIndividual(); if (randomIndividual.GetFitnessForObjective(Problem.MonoObjectiveGoal) > selectedParents[individualIdx].GetFitnessForObjective(Problem.MonoObjectiveGoal)) { selectedParents[individualIdx] = randomIndividual; } } } chosenIndividual1 = selectedParents[0]; chosenIndividual2 = selectedParents[1]; }
public GAEvolveSum( Random rand, double partToReinsert, int targetSum, int poplLen, int genomeNumbers, int nbInterval, double geneMutChance, int geneMutRange) { ES_RandGenomeGenerator randGenomeGenerator; GenerationGeneratorBase <int> generationGenerator; IReinsertion <int> reinsertion; IBreeding <int> breeding; RandomInst = rand; TargetSum = targetSum; FitnessEval = new ES_FitnessEval(targetSum); randGenomeGenerator = new ES_RandGenomeGenerator(genomeNumbers, nbInterval, rand); reinsertion = new ReinsertBest <int>( (int)(poplLen * partToReinsert)); breeding = NewBreeding( poplLen, partToReinsert, geneMutChance, geneMutRange); generationGenerator = new GenerationGeneratorBase <int>( poplLen, reinsertion, breeding); Population = new PopulationBase <int>( poplLen, randGenomeGenerator, generationGenerator); }
public ShakespeareSolver( string targetStr, Random rand, double partToReinsert, int popLen, double geneMutChance, int geneMutRange) { TargetStr = targetStr; FitnessEval = new Sh_FitnessEval(TargetStr, chars); var randGenomeGenerator = new Sh_RandGenomeGenerator( rand, targetStr.Length, geneMutRange, chars); var reinsertion = new ReinsertBest <char>( (int)(popLen * partToReinsert)); var breeding = NewBreeding( rand, popLen, partToReinsert, geneMutChance, geneMutRange); var generationGenerator = new GenerationGeneratorBase <char>( popLen, reinsertion, breeding); Population = new PopulationBase <char>( popLen, randGenomeGenerator, generationGenerator); }
public abstract void Execute(PopulationBase population, out IndividualBase chosenIndividual1, out IndividualBase chosenIndividual2);
public override void Execute(PopulationBase population, out IndividualBase chosenIndividual1, out IndividualBase chosenIndividual2) { throw new NotImplementedException(); }