コード例 #1
0
		/// <summary>
		/// Define the crossover operator for 2 GeneticNeuralNetwork
		/// </summary>
		/// <param name="i1">index of mother in population</param>
		/// <param name="i2">index of father in population</param>
		/// <returns>the child</returns>
		protected GeneticNeuralNetwork CrossOver(int i1, int i2) 
		{
			GeneticNeuralNetwork result = new GeneticNeuralNetwork(nn);
			GeneticNeuralNetwork ind1 = (GeneticNeuralNetwork)population[i1];
			GeneticNeuralNetwork ind2 = (GeneticNeuralNetwork)population[i2];
			int t = rand.Next(ind1.N_Genes);
			int index = 0;
			while (index<t) 
			{
				result[index] = ind1[index];
				if (Mute)
					result[index] += MutationValue;
				index++;
			}
			while (index<ind1.N_Genes) 
			{
				result[index] = ind2[index];
				if (Mute)
					result[index] += MutationValue;
				index++;
			}
			return result;
		}