35
35
public Chromosome mutate(Chromosome original) {
36
36
if (!(original instanceof BinaryChromosome)) {
40
40
BinaryChromosome origChrom = (BinaryChromosome) original;
41
41
List<Integer> newRepr = new ArrayList<Integer>(origChrom.getRepresentation());
43
43
// randomly select a gene
44
44
int geneIndex = GeneticAlgorithm.getRandomGenerator().nextInt(origChrom.getLength());
46
46
newRepr.set(geneIndex, origChrom.getRepresentation().get(geneIndex) == 0 ? 1 : 0);
48
48
Chromosome newChrom = origChrom.newFixedLengthChromosome(newRepr);