HolegGeneration.java 1.6 KB

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