【问题标题】:using JGAp (genetic algorithm library) and the duplicated chromosomes使用 JGAp(遗传算法库)和重复的染色体
【发布时间】:2012-05-15 10:45:33
【问题描述】:

我使用了 JGAp java 遗传算法库。 当我评估染色体时,我发现种群中有重复的染色体 示例运行:

evaluation 0
A B C
A D F
S F W
evaluation 1:
A B C
A D F
A D F
evaluation 2:
A D F
A D F
A D F

我使用的配置是:

conf.setKeepPopulationSizeConstant(true);
 conf.setRandomGenerator(new StockRandomGenerator());
conf.verifyStateIsValid();

我可以使用任何配置来获得独特的染色体吗?

【问题讨论】:

  • 你使用什么遗传算子?会不会是种群规模太小了,再加上保守的遗传算子和适应度函数,可以快速识别出最适合的个体并复制那个个体(没有突变或组合)?
  • 我使用交换操作符使用这个配置 conf.getGeneticOperators().clear(); MutationOperator 交换器 = 新的 SwappingMutationOperator(conf); conf.addGeneticOperator(交换器);我试着让人口规模 500 也有同样的问题!请有任何想法

标签: java genetic-algorithm jgap


【解决方案1】:

您可以确保只使用不允许重复的NaturalSelectors。示例代码:

conf.getNaturalSelectors(false).clear();
BestChromosomesSelector bcs = new BestChromosomesSelector(conf, 1.0d);
bcs.setDoubletteChromosomesAllowed(false);
conf.addNaturalSelector(bcs, false);

请注意,仅使用 SwappingMutationOperator 可能会使人们的独创性挨饿。修改 JGAP 中的 MinimizingMakeChange 示例但仅使用 SwappingMutationOperator 的测试表明,种群迅速停止产生以前从未见过的个体。

【讨论】:

  • 是的,它有效 :) 非常感谢您的重播。我使用了您的配置并删除了交换运算符,它的工作方式与我想要的完全一样。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 2016-08-05
  • 2018-12-10
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多