0

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

有没有什么配置可以用来获得独特的染色体?

4

1 回答 1

1

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

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

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

于 2012-05-07T12:39:18.693 回答