Class PatientPhaseFairGreedyUpdate

java.lang.Object

public class PatientPhaseFairGreedyUpdate
extends PhaseFairGreedyUpdate
This class implements a patient phase-based greedy update strategy.

The active set is updated every phaseLen iterations. A patience factor is used to control how long the update strategy waits for the best solution to improve before updating the active set. The best top are included in the active set where top is a field for the number of heuristics to include in the active set.

The greediness selection is fair. Every heuristic will be part of the active set for a maximum number of times controlled by max. If a heuristic is chosen max times, it cannot be part of the active set until all other heuristics are selected max times. In this case, the frequency count for all heuristics is reset to 0. The selection is greedy considering the heuristics that are available (those that are not permanently removed or hits max.

  • Field Details

    • patience

      protected final double patience
      A patience factor controlling how long the update strategy waits for the best solution to improve before updating the active set.
  • Constructor Details

  • Method Details

    • canUpdate

      public boolean canUpdate()
      Description copied from class: Update
      Returns true if the active set is to be updated and false otherwise.

      In this method, you should use the RunStat field to access the run information that you may need to decides whether to update the active set.

      Overrides:
      canUpdate in class PhaseGreedyUpdate
      Returns:
      true if the active set is to be updated and false otherwise.