public ParallelGA(int GeneSize, int GenerationSize, int GenerationCarryover, int NumThreads, FittnessDelegate fittness) { this.generationSize = GenerationSize; this._fittness = fittness; this.generationCarryover = GenerationCarryover; this._numThreads = NumThreads; this.CompletedTesting = new List <chromosome>(); this.NextGeneration = new List <chromosome>(); //genrate rangom 0th generation Random rand = new Random(); for (int i = 0; i < generationSize; i++) { chromosome c = new chromosome(); c.gene = Enumerable.Range(0, GeneSize) .Select(j => new Tuple <int, int>(rand.Next(GeneSize), j)) .OrderBy(k => k.Item1) .Select(l => l.Item2).ToList(); this.CurrentGeneration.Add(c); } this.generation = 0; this.HighScore = Int64.MaxValue; this.HighScoreGeneration = -1; }
public StandardGA(int GeneSize, int GenerationSize, int GenerationCarryover, FittnessDelegate fittness) { this.generationSize = GenerationSize; this.generationCarryover = GenerationCarryover; this._fittness = fittness; //create random generation 0 Random rand = new Random(); for (int i = 0; i < generationSize; i++) { chromosome c = new chromosome(); c.gene = Enumerable.Range(0, GeneSize) .Select(j => new Tuple <int, int>(rand.Next(GeneSize), j)) .OrderBy(k => k.Item1) .Select(l => l.Item2).ToList(); this.CurrentGeneration.Add(c); } this.generation = 0; this.HighScore = Int64.MaxValue; this.HighScoreGeneration = -1; }