override public Algorithm configure() { Algorithm algorithm; Crossover crossover; Mutation mutation; Selection selection; Dictionary<string, object> parameters; algorithm = new NSGAII(problem_); // Algorithm parameters algorithm.inputParameters_.Add("populationSize", populationSize_); algorithm.inputParameters_.Add("maxEvaluations", maxEvaluations_); // Crossover parameters = new Dictionary<string, object>(); parameters.Add("probability", 0.9); parameters.Add("distributionIndex", 20.0); crossover = CrossoverFactory.getCrossoverOperator("SBXCrossover", parameters); // Mutation parameters = new Dictionary<string, object>(); parameters.Add("probability", 0.01); parameters.Add("distributionIndex", 20.0); mutation = MutationFactory.getMutationOperator("PolynomialMutation", parameters); // Selection parameters = null; selection = SelectionFactory.getSelectionOperator("BinaryTournament", parameters); selection.comparator_ = new DominanceAndCrowdingDistanceComparator(); // Add the operators to the algorithm algorithm.operators.Add("crossover", crossover); algorithm.operators.Add("mutation", mutation); algorithm.operators.Add("selection", selection); return algorithm; }
override public Algorithm configure() { Algorithm algorithm; Crossover crossover; Mutation mutation; Selection selection; Dictionary <string, object> parameters; algorithm = new NSGAII(problem_); // Algorithm parameters algorithm.inputParameters_.Add("populationSize", populationSize_); algorithm.inputParameters_.Add("maxEvaluations", maxEvaluations_); // Crossover parameters = new Dictionary <string, object>(); parameters.Add("probability", 0.9); parameters.Add("distributionIndex", 20.0); crossover = CrossoverFactory.getCrossoverOperator("SBXCrossover", parameters); // Mutation parameters = new Dictionary <string, object>(); parameters.Add("probability", 0.01); parameters.Add("distributionIndex", 20.0); mutation = MutationFactory.getMutationOperator("PolynomialMutation", parameters); // Selection parameters = null; selection = SelectionFactory.getSelectionOperator("BinaryTournament", parameters); selection.comparator_ = new DominanceAndCrowdingDistanceComparator(); // Add the operators to the algorithm algorithm.operators.Add("crossover", crossover); algorithm.operators.Add("mutation", mutation); algorithm.operators.Add("selection", selection); return(algorithm); }