javagenetic-algorithmjgap

using JGAp (genetic algorithm library) and the duplicated chromosomes


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?


Solution

  • 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.