【问题标题】:Using the Jenetics Library使用 Jenetics 库
【发布时间】:2019-11-01 21:54:54
【问题描述】:

假设我想使用 Jenetics 库来解决问题,并且我打算说 20 代。但是,我想为前 10 代应用 Elitism 并为其余代禁用它。我该怎么办?

【问题讨论】:

    标签: genetic-algorithm jenetics


    【解决方案1】:

    您可以使用ConcatEngine 来完成此操作,该模块位于io.jenetics.ext 模块中。

    import io.jenetics.DoubleGene;
    import io.jenetics.EliteSelector;
    import io.jenetics.MeanAlterer;
    import io.jenetics.Mutator;
    import io.jenetics.RouletteWheelSelector;
    import io.jenetics.engine.Engine;
    import io.jenetics.engine.EvolutionResult;
    import io.jenetics.engine.EvolutionStreamable;
    import io.jenetics.engine.Limits;
    import io.jenetics.engine.Problem;
    
    import io.jenetics.ext.engine.ConcatEngine;
    
    public class Elite {
        public static void main(final String[] args) {
            // Your problem definition.
            final Problem<double[], DoubleGene, Double> problem = null;
    
            // Evolution Engine with elitism selector.
            final Engine<DoubleGene, Double> eliteEngine = Engine.builder(problem)
                .minimizing()
                .selector(new EliteSelector<>())
                .build();
    
            // Evolution Engine with RouletteWheelSelector.
            final Engine<DoubleGene, Double> remainingEngine = Engine.builder(problem)
                .minimizing()
                .selector(new RouletteWheelSelector<>())
                .build();
    
            // Concatenation of the two engine.
            final EvolutionStreamable<DoubleGene, Double> engine = ConcatEngine.of(
                eliteEngine.limit(10),
                remainingEngine.limit(() -> Limits.bySteadyFitness(30))
            );
    
            final EvolutionResult<DoubleGene, Double> result = engine.stream()
                .collect(EvolutionResult.toBestEvolutionResult());
    
            System.out.println(result);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 2017-08-29
      • 2019-04-24
      • 1970-01-01
      • 2016-11-06
      • 2018-06-04
      • 2018-08-31
      相关资源
      最近更新 更多