AlgoRunnable.java 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package algorithms.geneticAlgorithm.holegGA.Components;
  2. import java.util.ArrayList;
  3. import algorithms.geneticAlgorithm.Components.GACrossoverStrategy;
  4. import algorithms.geneticAlgorithm.Components.GAFittnessFunctionStrategy;
  5. import algorithms.geneticAlgorithm.Components.GAIndividual;
  6. import algorithms.geneticAlgorithm.Components.GAMutationStrategy;
  7. import algorithms.geneticAlgorithm.Components.GASelectionStrategy;
  8. public class AlgoRunnable implements Runnable {
  9. GASelectionStrategy selection;
  10. GACrossoverStrategy crossover;
  11. GAMutationStrategy mutation;
  12. GAFittnessFunctionStrategy fittness;
  13. ArrayList<GAIndividual> individuals;
  14. ArrayList<GAIndividual> nextGen;
  15. public AlgoRunnable(GASelectionStrategy selection, GACrossoverStrategy crossover,
  16. GAMutationStrategy mutation, GAFittnessFunctionStrategy fittness, ArrayList<GAIndividual> individuals, ArrayList<GAIndividual> nextGen){
  17. this.selection = selection;
  18. this.crossover = crossover;
  19. this.mutation = mutation;
  20. this.fittness = fittness;
  21. this.individuals = individuals;
  22. this.nextGen = nextGen;
  23. }
  24. @Override
  25. public void run() {
  26. individuals = crossover.crossOver(individuals);
  27. for(GAIndividual individual : individuals){
  28. individual = mutation.mutateIndividual(individual);
  29. fittness.calculateFittness(individual);
  30. }
  31. nextGen.addAll(individuals);
  32. }
  33. }