public Population(int size, IFitnessFunction fitnessFunction, IReproduction reproductionFunction, INodeMutator mutator, ISelection selection) { this.populationSize = size; this.fitnessFunction = fitnessFunction; this.reproductionFunction = reproductionFunction; this.mutator = mutator; this.selector = selection; this.fitnessFunction.Initialise(); // Create the initial population for (int i = 0; i < size; i++) { try { NodeContext zeroContext = new NodeContext(); zeroContext.AvailableCollections = fitnessFunction.GetCollections(); zeroContext.AvailableInputs = fitnessFunction.GetInputs(); INode candidateNode = NodeFactory.GenerateNode(zeroContext); // Make sure we have a decent candidate (i.e. not too large) double fitness = this.fitnessFunction.CalculateFitness(candidateNode); if (fitness == Double.MaxValue) continue; this.population.Add(NodeFactory.GenerateNode(zeroContext)); } catch (StackOverflowException) { } } }
public NSGA2(IReproduction <TChromosome> crossover, IEvaluator <TChromosome> evaluator, IReinsertion <TChromosome> reinsertion) { _crossover = crossover; _evaluator = evaluator; _reinsertion = reinsertion; }
public NSGA2(IReproduction <TChromosome> crossover, IReproduction <TChromosome> mutation, IEvaluator <TChromosome> evaluator, IReinsertion <TChromosome> reinsertion) : this(crossover, evaluator, reinsertion) { _mutation = mutation; }
public RabbitFactory(IReproduction reproduction, Fitness.Fitness fitness, int dnaElementsCount) { if (dnaElementsCount <= 0) { throw new ArgumentException("value of dnaElementsCount is wrong. must be positive value."); } _reproduction = reproduction; _dnaElementsCount = dnaElementsCount; _fitness = fitness; }
//--------------------------------------------------------------------- /// <summary> /// Initializes the instance and its associated site variables. /// </summary> protected void Initialize(int timestep, double[,] establishProbabilities) { this.timestep = timestep; this.nextTimeToRun = timestep; SiteVars.Initialize(); defaultReproduction = new Seeding(WardSeedDispersal.Algorithm); SiteVars.Reproduction.ActiveSiteValues = defaultReproduction; Reproduction.SetEstablishProbabilities(establishProbabilities); }
public TwoIslandsPopulation(int size, IFitnessFunction fitnessFunction, IReproduction reproductionFunction, INodeMutator mutator, ISelection selection) { this.populationSize = size; this.fitnessFunction = fitnessFunction; this.reproductionFunction = reproductionFunction; this.mutator = mutator; this.selector = selection; this.fitnessFunction.Initialise(); // The main population needs initializing this.IntialisePopulation(this.mainPopulation); this.IntialisePopulation(this.secondaryPopulation); }