Class CMAESOptimizer.FitnessFunction

  • Enclosing class:
    CMAESOptimizer

    private class CMAESOptimizer.FitnessFunction
    extends java.lang.Object
    Normalizes fitness values to the range [0,1]. Adds a penalty to the fitness value if out of range. The penalty is adjusted by calling setValueRange().
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean isRepairMode
      Flag indicating whether the objective variables are forced into their bounds if defined
      private double valueRange
      Determines the penalty for boundary violations
    • Constructor Summary

      Constructors 
      Constructor Description
      FitnessFunction()
      Simple constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean isFeasible​(double[] x)  
      private double penalty​(double[] x, double[] repaired)  
      private double[] repair​(double[] x)  
      void setValueRange​(double valueRange)  
      double value​(double[] point)  
      • Methods inherited from class java.lang.Object

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

      • valueRange

        private double valueRange
        Determines the penalty for boundary violations
      • isRepairMode

        private final boolean isRepairMode
        Flag indicating whether the objective variables are forced into their bounds if defined
    • Constructor Detail

      • FitnessFunction

        FitnessFunction()
        Simple constructor.
    • Method Detail

      • value

        public double value​(double[] point)
        Parameters:
        point - Normalized objective variables.
        Returns:
        the objective value + penalty for violated bounds.
      • isFeasible

        public boolean isFeasible​(double[] x)
        Parameters:
        x - Normalized objective variables.
        Returns:
        true if in bounds.
      • setValueRange

        public void setValueRange​(double valueRange)
        Parameters:
        valueRange - Adjusts the penalty computation.
      • repair

        private double[] repair​(double[] x)
        Parameters:
        x - Normalized objective variables.
        Returns:
        the repaired (i.e. all in bounds) objective variables.
      • penalty

        private double penalty​(double[] x,
                               double[] repaired)
        Parameters:
        x - Normalized objective variables.
        repaired - Repaired objective variables.
        Returns:
        Penalty value according to the violation of the bounds.