Example #1
0
        public void Crossover(Genome genome2, out Genome child1, out Genome child2)
        {
            var pos = (int)(_random.NextDouble() * Length);
            child1 = new Genome(Length, false);
            child2 = new Genome(Length, false);

            for(var i = 0 ; i < Length ; i++)
            {
                if (i < pos)
                {
                    child1.Genes[i] = Genes[i];
                    child2.Genes[i] = genome2.Genes[i];
                }
                else
                {
                    child1.Genes[i] = genome2.Genes[i];
                    child2.Genes[i] = Genes[i];
                }
            }
        }
 /// <summary>
 /// Create the *initial* genomes by repeated calling the supplied fitness function
 /// </summary>
 private void CreateGenomes()
 {
     for (var i = 0; i < PopulationSize; i++)
     {
         var genome = new Genome(GenomeSize);
         _thisGeneration.Add(genome);
     }
 }