Class BOBYQAOptimizer
java.lang.Object
org.hipparchus.optim.BaseOptimizer<P>
org.hipparchus.optim.BaseMultivariateOptimizer<PointValuePair>
org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer
org.hipparchus.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.-
Field Summary
Modifier and TypeFieldDescriptionstatic final double
Default value forinitialTrustRegionRadius
: 10.0 .static final double
Default value forstoppingTrustRegionRadius
: 1.0E-8 .static final int
Minimum dimension of the problem: 2Fields inherited from class org.hipparchus.optim.BaseOptimizer
evaluations, iterations
-
Constructor Summary
ConstructorDescriptionBOBYQAOptimizer
(int numberOfInterpolationPoints) Simple constructor.BOBYQAOptimizer
(int numberOfInterpolationPoints, double initialTrustRegionRadius, double stoppingTrustRegionRadius) Simple constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected PointValuePair
Performs the bulk of the optimization algorithm.Methods inherited from class org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer
computeObjectiveValue, getGoalType, optimize, parseOptimizationData
Methods inherited from class org.hipparchus.optim.BaseMultivariateOptimizer
getLowerBound, getStartPoint, getUpperBound
Methods inherited from class org.hipparchus.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) Simple constructor.- 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+1
are not recommended.
-
BOBYQAOptimizer
public BOBYQAOptimizer(int numberOfInterpolationPoints, double initialTrustRegionRadius, double stoppingTrustRegionRadius) Simple constructor.- 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+1
are not recommended.initialTrustRegionRadius
- Initial trust region radius.stoppingTrustRegionRadius
- Stopping trust region radius.
-
-
Method Details
-
doOptimize
Performs the bulk of the optimization algorithm.- Specified by:
doOptimize
in classBaseOptimizer<PointValuePair>
- Returns:
- the point/value pair giving the optimal value of the objective function.
-