0

JGApjava遺伝的アルゴリズムライブラリを使用しました。染色体を評価したところ、母集団のサンプル実行で染色体が重複していました。

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 に答える