Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
        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);
        }