code: public boolean shouldTerminate(PopulationData<?> populationData)
      {
          double fitness = getFitness(populationData);
          if (populationData.getGenerationNumber() == 0 || hasFitnessImproved(fitness))
          {
              bestFitness = fitness;
              fittestGeneration = populationData.getGenerationNumber();
          }
  
          return populationData.getGenerationNumber() - fittestGeneration >= generationLimit;
      }
docs: {@inheritDoc}