HolegGeneration.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package algorithms.geneticAlgorithm.holegGA.Components;
  2. import java.util.ArrayList;
  3. public class HolegGeneration {
  4. public static int ORIGINAL_GEN = -1;
  5. ArrayList<HolegIndividual> generation;
  6. int genCount;
  7. String name;
  8. String log;
  9. public HolegGeneration(int genCount){
  10. this.genCount = genCount;
  11. generation = new ArrayList<HolegIndividual>();
  12. if(genCount >= 0){
  13. name = "Generation " + genCount;
  14. }else{
  15. name = "Original Network";
  16. }
  17. }
  18. public void setGeneration(ArrayList<HolegIndividual> generation){
  19. this.generation = generation;
  20. }
  21. public ArrayList<HolegIndividual> getGeneration(){
  22. return generation;
  23. }
  24. public int getGenCount(){
  25. return genCount;
  26. }
  27. @Override
  28. public String toString(){
  29. return name;
  30. }
  31. public String getInformation(){
  32. log = "Generation Log";
  33. if(generation.size() > 0){
  34. addLogEntry("Avg Fittness: " + getAvgFittness());
  35. addLogEntry("Max Fittness: " + getMaxFittness());
  36. addLogEntry("Min Fittness: " + getMinFittness());
  37. }
  38. return log;
  39. }
  40. public double getAvgFittness(){
  41. double fittness = 0;
  42. for(HolegIndividual i : generation){
  43. fittness += i.getFittness();
  44. }
  45. return (fittness/generation.size());
  46. }
  47. public double getMinFittness(){
  48. double fittness = generation.get(0).getFittness();
  49. for(HolegIndividual i : generation){
  50. if(i.getFittness() < fittness){
  51. fittness = i.getFittness();
  52. }
  53. }
  54. return fittness;
  55. }
  56. public double getMaxFittness(){
  57. double fittness = generation.get(0).getFittness();
  58. for(HolegIndividual i : generation){
  59. if(i.getFittness() > fittness){
  60. fittness = i.getFittness();
  61. }
  62. }
  63. return fittness;
  64. }
  65. public void addLogEntry(String entry){
  66. log += "\n" + entry;
  67. }
  68. }