Class CMAESOptimizer.FitnessFunction
java.lang.Object
org.apache.commons.math3.optimization.direct.CMAESOptimizer.FitnessFunction
- Enclosing class:
CMAESOptimizer
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
FieldsModifier and TypeFieldDescriptionprivate final boolean
Flag indicating whether the objective variables are forced into their bounds if definedprivate double
Determines the penalty for boundary violations -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
isFeasible
(double[] x) private double
penalty
(double[] x, double[] repaired) private double[]
repair
(double[] x) void
setValueRange
(double valueRange) double
value
(double[] point)
-
Field Details
-
valueRange
private double valueRangeDetermines the penalty for boundary violations -
isRepairMode
private final boolean isRepairModeFlag 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.
-