org.apache.commons.math3.optim.nonlinear.scalar.noderiv

## Class CMAESOptimizer.FitnessFunction

- java.lang.Object
- - org.apache.commons.math3.optim.nonlinear.scalar.noderiv.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 and 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 and Description
    `CMAESOptimizer.FitnessFunction()` Simple constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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

    - #### CMAESOptimizer.FitnessFunction

          public CMAESOptimizer.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.

Copyright (c) 2003-2013 Apache Software Foundation