Class PhaseQualityIndexUpdate

java.lang.Object
dynheurset.update.Update
dynheurset.update.PhaseQualityIndexUpdate
Direct Known Subclasses:
PatientPhaseQualityIndexUpdate

public class PhaseQualityIndexUpdate
extends Update
This class implements a phase-based quality index update strategy.

The active set is updated every phaseLen iterations and the performance value of each heuristic is converted to indexes (ranks). Every heuristic that has its ranks below the average value multiplied by aspiration factor is not included in the active set.

  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected double aspiration
    Aspiration factor to permit the heuristics that perform slightly below the average to be included in the active set
    protected int phaseLen
    The phase length which is the maximum number of iterations that can elapse before updating the active set
    protected Utility util
    A utility object containing several helper methods

    Fields inherited from class dynheurset.update.Update

    activeList, heurList, measure, numRemove, numReset, numUpdates, remove, reset, runStat
  • Constructor Summary

    Constructors 
    Constructor Description
    PhaseQualityIndexUpdate​(int phaseLen, double aspiration)  
  • Method Summary

    Modifier and Type Method Description
    boolean canUpdate()
    Returns true if the active set is to be updated and false otherwise.
    protected void performUpdate()
    Determines which heuristics to include in the active set.
    protected double[] rank​(java.util.List<java.lang.Double> heurValues)
    Converts the heuristic performance into ranks.

    Methods inherited from class dynheurset.update.Update

    getActiveList, setHeurList, setMeasure, setRemove, setReset, setRunStat, updateActiveList

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • phaseLen

      protected final int phaseLen
      The phase length which is the maximum number of iterations that can elapse before updating the active set
    • aspiration

      protected double aspiration
      Aspiration factor to permit the heuristics that perform slightly below the average to be included in the active set
    • util

      protected Utility util
      A utility object containing several helper methods
  • 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.

      Specified by:
      canUpdate in class Update
      Returns:
      true if the active set is to be updated and false otherwise.
    • performUpdate

      protected 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

      Specified by:
      performUpdate in class Update
    • rank

      protected double[] rank​(java.util.List<java.lang.Double> heurValues)
      Converts the heuristic performance into ranks.

      The best heuristic will have the highest and the worst heuristic will have a rank of 1.

      This method is typically needed by quality index update strategies.

      Parameters:
      heurValues - the heuristic values
      Returns:
      the ranks of heuristics