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

java.lang.Object
  extended by org.apache.commons.math3.optim.BaseOptimizer<PAIR>
      extended by org.apache.commons.math3.optim.BaseMultivariateOptimizer<PointValuePair>
          extended by org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer
              extended by org.apache.commons.math3.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 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
Version:
$Id: BOBYQAOptimizer.java 1413131 2012-11-24 04:44:02Z psteitz $

Field Summary
static double DEFAULT_INITIAL_RADIUS
          Default value for initialTrustRegionRadius: 10.0 .
static double DEFAULT_STOPPING_RADIUS
          Default value for stoppingTrustRegionRadius: 1.0E-8 .
static int MINIMUM_PROBLEM_DIMENSION
          Minimum dimension of the problem: 2
 
Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer
evaluations, iterations
 
Constructor Summary
BOBYQAOptimizer(int numberOfInterpolationPoints)
           
BOBYQAOptimizer(int numberOfInterpolationPoints, double initialTrustRegionRadius, double stoppingTrustRegionRadius)
           
 
Method Summary
protected  PointValuePair doOptimize()
          Performs the bulk of the optimization algorithm.
 
Methods inherited from class org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer
computeObjectiveValue, getGoalType, optimize
 
Methods inherited from class org.apache.commons.math3.optim.BaseMultivariateOptimizer
getLowerBound, getStartPoint, getUpperBound
 
Methods inherited from class org.apache.commons.math3.optim.BaseOptimizer
getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 for initialTrustRegionRadius: 10.0 .

See Also:
Constant Field Values

DEFAULT_STOPPING_RADIUS

public static final double DEFAULT_STOPPING_RADIUS
Default value for stoppingTrustRegionRadius: 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 dimension n, its value must be in the interval [n+2, (n+1)(n+2)/2]. Choices that exceed 2n+1 are not recommended.

BOBYQAOptimizer

public BOBYQAOptimizer(int numberOfInterpolationPoints,
                       double initialTrustRegionRadius,
                       double stoppingTrustRegionRadius)
Parameters:
numberOfInterpolationPoints - Number of interpolation conditions. For a problem of dimension n, its value must be in the interval [n+2, (n+1)(n+2)/2]. Choices that exceed 2n+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 class BaseOptimizer<PointValuePair>
Returns:
the point/value pair giving the optimal value of the objective function.


Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.