Class BOBYQAOptimizer
java.lang.Object
org.apache.commons.math3.optim.BaseOptimizer<PointValuePair>
org.apache.commons.math3.optim.BaseMultivariateOptimizer<PointValuePair>
org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer
org.apache.commons.math3.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer
Powell's BOBYQA algorithm. This implementation is translated and
adapted from the Fortran version available
here.
See
this paper for an introduction.
BOBYQA is particularly well suited for high dimensional problems where derivatives are not available. In most cases it outperforms the
BOBYQA is particularly well suited for high dimensional problems where derivatives are not available. In most cases it outperforms the
PowellOptimizer significantly. Stochastic algorithms like
CMAESOptimizer succeed more often than BOBYQA, but are more
expensive. BOBYQA could also be considered as a replacement of any
derivative-based optimizer when the derivatives are approximated by
finite differences.- Since:
- 3.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doubleDefault value forinitialTrustRegionRadius: 10.0 .static final doubleDefault value forstoppingTrustRegionRadius: 1.0E-8 .static final intMinimum dimension of the problem: 2Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer
evaluations, iterations -
Constructor Summary
ConstructorsConstructorDescriptionBOBYQAOptimizer(int numberOfInterpolationPoints) BOBYQAOptimizer(int numberOfInterpolationPoints, double initialTrustRegionRadius, double stoppingTrustRegionRadius) -
Method Summary
Modifier and TypeMethodDescriptionprotected PointValuePairPerforms the bulk of the optimization algorithm.Methods inherited from class org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer
computeObjectiveValue, getGoalType, optimize, parseOptimizationDataMethods inherited from class org.apache.commons.math3.optim.BaseMultivariateOptimizer
getLowerBound, getStartPoint, getUpperBoundMethods inherited from class org.apache.commons.math3.optim.BaseOptimizer
getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount, optimize
-
Field Details
-
MINIMUM_PROBLEM_DIMENSION
public static final int MINIMUM_PROBLEM_DIMENSIONMinimum dimension of the problem: 2- See Also:
-
DEFAULT_INITIAL_RADIUS
public static final double DEFAULT_INITIAL_RADIUSDefault value forinitialTrustRegionRadius: 10.0 .- See Also:
-
DEFAULT_STOPPING_RADIUS
public static final double DEFAULT_STOPPING_RADIUSDefault value forstoppingTrustRegionRadius: 1.0E-8 .- See Also:
-
-
Constructor Details
-
BOBYQAOptimizer
public BOBYQAOptimizer(int numberOfInterpolationPoints) - Parameters:
numberOfInterpolationPoints- Number of interpolation conditions. For a problem of dimensionn, its value must be in the interval[n+2, (n+1)(n+2)/2]. Choices that exceed2n+1are not recommended.
-
BOBYQAOptimizer
public BOBYQAOptimizer(int numberOfInterpolationPoints, double initialTrustRegionRadius, double stoppingTrustRegionRadius) - Parameters:
numberOfInterpolationPoints- Number of interpolation conditions. For a problem of dimensionn, its value must be in the interval[n+2, (n+1)(n+2)/2]. Choices that exceed2n+1are not recommended.initialTrustRegionRadius- Initial trust region radius.stoppingTrustRegionRadius- Stopping trust region radius.
-
-
Method Details
-
doOptimize
Performs the bulk of the optimization algorithm.- Specified by:
doOptimizein classBaseOptimizer<PointValuePair>- Returns:
- the point/value pair giving the optimal value of the objective function.
-