Example #1
0
  @Override
  protected void iterate() {
    Population offspring = new Population();
    int populationSize = population.size();

    while (offspring.size() < populationSize) {
      Solution[] parents = selection.select(variation.getArity(), population);
      Solution[] children = variation.evolve(parents);

      offspring.addAll(children);
    }

    evaluateAll(offspring);
    population.addAll(offspring);
    fitnessEvaluator.evaluate(population);

    while (population.size() > populationSize) {
      int worstIndex = findWorstIndex();
      fitnessEvaluator.removeAndUpdate(population, worstIndex);
    }
  }
Example #2
0
  /**
   * Constructs a new IBEA instance.
   *
   * @param problem the problem
   * @param archive the external archive; or {@code null} if no external archive is used
   * @param initialization the initialization operator
   * @param variation the variation operator
   * @param fitnessEvaluator the indicator fitness evaluator to use (e.g., hypervolume
   *     additive-epsilon indicator)
   */
  public IBEA(
      Problem problem,
      NondominatedPopulation archive,
      Initialization initialization,
      Variation variation,
      IndicatorFitnessEvaluator fitnessEvaluator) {
    super(problem, new Population(), archive, initialization);
    this.variation = variation;
    this.fitnessEvaluator = fitnessEvaluator;

    fitnessComparator = new FitnessComparator(fitnessEvaluator.areLargerValuesPreferred());
    selection = new TournamentSelection(fitnessComparator);
  }
Example #3
0
  @Override
  protected void initialize() {
    super.initialize();

    fitnessEvaluator.evaluate(population);
  }