/// <summary> /// Adds new crossover operators to the metadata. /// </summary> /// <param name="crossoverOptions">The crossover options.</param> /// <param name="weight">The operator weight.</param> internal override void AddCrossoverOperators(NeuralCrossover crossoverOptions, double weight = 1) { var crossovers = GeneticFactory.ConstructNeuralCrossoverOperators(crossoverOptions, weight); if (_crossovers == null) { _crossovers = crossovers; } else { _crossovers.AddRange(crossovers); } _crossoverF += ComputeWeightedSum(crossovers); }
/// <summary> /// Gets the default crossover operators. /// </summary> /// <returns>The default crossover operators.</returns> protected override List <ICrossover> GetDefaultCrossovers() { return(GeneticFactory.ConstructNeuralCrossoverOperators(DEFAULT_CROSSOVER_OPTIONS)); }
private NeuralChromosome GetCrossover(NeuralChromosome x, NeuralChromosome y, NeuralCrossover crossover) { var rator = GeneticFactory.ConstructNeuralCrossoverOperators(crossover).First(); return(rator.Invoke(x, y) as NeuralChromosome); }