java.lang.Object
se.liu.ida.hefquin.engine.queryproc.impl.poptimizer.evolutionaryAlgorithm.TerminationCriterionBase
se.liu.ida.hefquin.engine.queryproc.impl.poptimizer.evolutionaryAlgorithm.TerminateByDiversityDistBest
All Implemented Interfaces:
TerminationCriterion

public class TerminateByDiversityDistBest extends TerminationCriterionBase
Diversity-based termination criterion: Similar to TerminateByDiversityDistMax, but only the top-k plans with lowest cost within each generation are considered. Termination is triggered when the relative difference between the cost of the best plan and the top-k best plan within each generation has not exceeded a specified distance threshold for a number of generations.
  • Field Details

    • distBestThreshold

      protected final double distBestThreshold
    • topK

      protected final double topK
  • Constructor Details

    • TerminateByDiversityDistBest

      public TerminateByDiversityDistBest(double distBestThreshold, double topK, LogicalPlan plan)
  • Method Details

    • getFactory

      public static TerminationCriterionFactory getFactory(double distBestThreshold, double topK)
    • readyToTerminate

      public boolean readyToTerminate(Generation currentGeneration, List<Generation> allPreviousGenerations)
      Description copied from interface: TerminationCriterion
      Returns true if this termination criterion has been reached with the current generation.
      Parameters:
      currentGeneration - the current generation for which the termination criterion is test
      allPreviousGenerations - a list of all previous generations, in the order in which they have been created