小编典典

使用JGAp(遗传算法库)和重复的染色体

java

我使用了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();

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


阅读 286

收藏
2020-11-30

共1个答案

小编典典

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

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

请注意,仅使用SwappingMutationOperator可能会饿死总体的创造力。一项修改了JGAP的MinimizingMakeChange示例但仅使用SwappingMutationOperator的测试表明,该群体迅速停止生产以前从未见过的个体。

2020-11-30