private void copyElements(int index1, int index2, int cutPoint) { // to modify the first chromosome between the index1 to index2, which genes // is from chromosome 2. int counter = 0; for (int i = 0; i < chromosomeLength; i++) { if (i < cutPoint) { // System.out.print(i+": // "+originalPop.getSingleChromosome(index1).genes[i]+"->"+originalPop.getSingleChromosome(index2).genes[i]+"\t"); newPop.setGene(index1, i, originalPop.getSingleChromosome(index2).genes[i]); } } // System.out.println(); }
public void setData(double crossoverRate, populationI originalPop) { this.originalPop = originalPop; popSize = originalPop.getPopulationSize(); // System.out.println("originalPop.getLengthOfChromosome() // "+originalPop.getLengthOfChromosome()); newPop = new population(); newPop.setGenotypeSizeAndLength( originalPop.getEncodedType(), popSize, originalPop.getLengthOfChromosome(), originalPop.getNumberOfObjectives()); newPop.initNewPop(); for (int i = 0; i < popSize; i++) { newPop.setSingleChromosome(i, originalPop.getSingleChromosome(i)); } this.crossoverRate = crossoverRate; chromosomeLength = originalPop.getSingleChromosome(0).genes.length; }