Class CMAESOptimizer.FitnessFunction

java.lang.Object
org.apache.commons.math3.optimization.direct.CMAESOptimizer.FitnessFunction
Enclosing class:
CMAESOptimizer

private class CMAESOptimizer.FitnessFunction extends 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 final boolean
    Flag indicating whether the objective variables are forced into their bounds if defined
    private double
    Determines the penalty for boundary violations
  • Constructor Summary

    Constructors
    Constructor
    Description
    Simple constructor.
  • Method Summary

    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 Details

    • 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 Details

    • FitnessFunction

      FitnessFunction()
      Simple constructor.
  • Method Details

    • 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.