Class PhaseFairGreedyUpdate

java.lang.Object
dynheurset.update.Update
dynheurset.update.PhaseGreedyUpdate
dynheurset.update.PhaseFairGreedyUpdate
Direct Known Subclasses:
PatientPhaseFairGreedyUpdate

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

The active set is updated every phaseLen iterations. 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

    • max

      protected final int max
      The maximum number of consecutive iterations a heuristic can be in the active set.
    • freq

      protected java.util.List<java.lang.Integer> freq
      The frequencies of being in the active set.
  • Constructor Details

  • Method Details

    • performUpdate

      public void performUpdate()
      Description copied from class: Update
      Determines which heuristics to include in the active set.

      This method should contain your logic for updating the active set. You can access the runStat and measure fields in your implementation to get the search-status information and measure the performance of heuristics. regarding the search

      Overrides:
      performUpdate in class PhaseGreedyUpdate