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
-
public class BOBYQAOptimizer extends MultivariateOptimizer
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 thePowellOptimizer
significantly. Stochastic algorithms likeCMAESOptimizer
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
Fields Modifier and Type Field Description static double
DEFAULT_INITIAL_RADIUS
Default value forinitialTrustRegionRadius
: 10.0 .static double
DEFAULT_STOPPING_RADIUS
Default value forstoppingTrustRegionRadius
: 1.0E-8 .static int
MINIMUM_PROBLEM_DIMENSION
Minimum dimension of the problem: 2-
Fields inherited from class org.hipparchus.optim.BaseOptimizer
evaluations, iterations
-
-
Constructor Summary
Constructors Constructor Description BOBYQAOptimizer(int numberOfInterpolationPoints)
BOBYQAOptimizer(int numberOfInterpolationPoints, double initialTrustRegionRadius, double stoppingTrustRegionRadius)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected PointValuePair
doOptimize()
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 Detail
-
MINIMUM_PROBLEM_DIMENSION
public static final int MINIMUM_PROBLEM_DIMENSION
Minimum dimension of the problem: 2- See Also:
- Constant Field Values
-
DEFAULT_INITIAL_RADIUS
public static final double DEFAULT_INITIAL_RADIUS
Default value forinitialTrustRegionRadius
: 10.0 .- See Also:
- Constant Field Values
-
DEFAULT_STOPPING_RADIUS
public static final double DEFAULT_STOPPING_RADIUS
Default value forstoppingTrustRegionRadius
: 1.0E-8 .- See Also:
- Constant Field Values
-
-
Constructor Detail
-
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+1
are 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+1
are not recommended.initialTrustRegionRadius
- Initial trust region radius.stoppingTrustRegionRadius
- Stopping trust region radius.
-
-
Method Detail
-
doOptimize
protected PointValuePair 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.
-
-