I used the JGAp java genetic algorithm library. and when I evaluated the chromosomes , I had duplication of chromosomes in the population sample run :
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
and the configurations I have used are:
conf.setKeepPopulationSizeConstant(true);
conf.setRandomGenerator(new StockRandomGenerator());
conf.verifyStateIsValid();
is there any configuration that I can used in order to get unique chromosomes?
You can make sure only to use NaturalSelectors that does not allow duplicates. Example code:
conf.getNaturalSelectors(false).clear();
BestChromosomesSelector bcs = new BestChromosomesSelector(conf, 1.0d);
bcs.setDoubletteChromosomesAllowed(false);
conf.addNaturalSelector(bcs, false);
Please note that only using SwappingMutationOperator will probably starve the ingenuity of the population. A test modifying the MinimizingMakeChange example from JGAP, but using only the SwappingMutationOperator, shows that the population quickly stops producing individuals that have not been seen before.
来源:https://stackoverflow.com/questions/10473397/using-jgap-genetic-algorithm-library-and-the-duplicated-chromosomes