import java.util.Scanner; import java.util.Random; import java.util.ArrayList; public class Chromosome { private ArrayList genes; private double selection, fitness, p, c_p; private Random r = new Random(); public Chromosome() { genes = new ArrayList(); selection = 0; fitness = 0; p = 0; c_p = 0; } public void initialize() { for (int i = 0; i <4; i++) { int value = r.nextInt(24) + 1; genes.add(value); } } public void selectAndFitness() { for (int i = 0; i <4; i++) { selection += (i+1) * genes.get(i); } selection = Math.abs (selection - 30); fitness = 1/(selection + 1); } public void setGenes(ArrayList list) { for (int i : list) { genes.add(i); } } public ArrayList getGenes() { return genes; } public double getSelection() { return selection; } public double getFitness() { return fitness; } public void setSelection(double x) { selection = x; } public void setFitness(double x) { fitness = x; } public double getProbability() { return p; } public void setProbability(double x) { p = x; } public double getCumulativeProbability() { return c_p; } public void setCumulativeProbability(double x) { c_p = x; } public void printChromosome() { for (int i : genes) { System.out.print (i + " "); } } }