public void Run() { for (int i = 0; i < IterationsCount; i++) { var adamChromosome = new Chromosome(this.JobShop); var population = new Population(this.MinPopulation, this.MaxPopulation, adamChromosome); var fitness = new Fitness(); var selection; var crossover = new Crossover(new CycleCrossover()); var mutation; var operatorStrategy = new OperatorsStrategy(); var geneticAlgorithm = new GeneticAlgorithm(population, fitness, selection, crossover, mutation) { Termination = new GenerationNumberTermination(), MutationProbability = this.MutationProbability, CrossoverProbability = this.CrossoverProbability, OperatorsStrategy = operatorStrategy, Reinsertion = new SurvivorSelection(new EliteSelection(), fitness) }; var stopwatch = new Stopwatch(); } }
/// <summary>Mutates the specified chromosomes.</summary> /// <param name="chromosomes">The chromosomes.</param> private void Mutate(IList <IChromosome> chromosomes) { OperatorsStrategy.Mutate(Mutation, MutationProbability, chromosomes); }
/// <summary>Crosses the specified parents.</summary> /// <param name="parents">The parents.</param> private IList <IChromosome> Cross(IList <IChromosome> parents) { return(OperatorsStrategy.Cross(Population, Crossover, CrossoverProbability, parents)); }