package com.company.genetic_algorithm_find_sequence; import java.util.Random; // this is a chromosome public class Individual { // in this example the genes are not binary values private int[] genes; private int fitness; private Random random; public Individual() { this.genes = new int[Constants.CHROMOSOME_LENGTH]; this.random = new Random(); } public int getFitness() { if(fitness == 0) { for(int i=0;i<genes.length;++i) if(genes[i] == Constants.SOLUTION_SEQUENCE[i]) fitness++; } return fitness; } public void generateIndividual() { for(int i=0;i<genes.length;++i) { genes[i] = random.nextInt(Constants.CHROMOSOME_LENGTH); } } public void setGene(int index, int value) { genes[index] = value; fitness = 0; } public int getGene(int index) { return genes[index]; } @Override public String toString() { String s = ""; for(int i=0;i<genes.length;++i) s += genes[i] + "-"; return s; } }