package algorithms.geneticAlgorithm.holegGA.Components; import java.util.ArrayList; public class HolegGeneration { public static int ORIGINAL_GEN = -1; ArrayList generation; int genCount; String name; String log; public HolegGeneration(int genCount){ this.genCount = genCount; generation = new ArrayList(); if(genCount >= 0){ name = "Generation " + genCount; }else{ name = "Original Network"; } } public void setGeneration(ArrayList generation){ this.generation = generation; } public ArrayList getGeneration(){ return generation; } public int getGenCount(){ return genCount; } @Override public String toString(){ return name; } public String getInformation(){ log = "Generation Log"; if(generation.size() > 0){ addLogEntry("Avg Fittness: " + getAvgFittness()); addLogEntry("Max Fittness: " + getMaxFittness()); addLogEntry("Min Fittness: " + getMinFittness()); } return log; } public double getAvgFittness(){ double fittness = 0; for(HolegIndividual i : generation){ fittness += i.getFittness(); } return (fittness/generation.size()); } public double getMinFittness(){ double fittness = generation.get(0).getFittness(); for(HolegIndividual i : generation){ if(i.getFittness() < fittness){ fittness = i.getFittness(); } } return fittness; } public double getMaxFittness(){ double fittness = generation.get(0).getFittness(); for(HolegIndividual i : generation){ if(i.getFittness() > fittness){ fittness = i.getFittness(); } } return fittness; } public void addLogEntry(String entry){ log += "\n" + entry; } }