org.apache.commons.math3.optimization.direct

## Class BOBYQAOptimizer

- java.lang.Object
- - org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer<FUNC>
  - - org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateSimpleBoundsOptimizer<MultivariateFunction>
    - - org.apache.commons.math3.optimization.direct.BOBYQAOptimizer

- All Implemented Interfaces:
    BaseMultivariateOptimizer<MultivariateFunction>, BaseMultivariateSimpleBoundsOptimizer<MultivariateFunction>, BaseOptimizer<PointValuePair>, MultivariateOptimizer

      public class BOBYQAOptimizer
      extends BaseAbstractMultivariateSimpleBoundsOptimizer<MultivariateFunction>
      implements 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$

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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.optimization.direct.BaseAbstractMultivariateOptimizer

      `evaluations`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BOBYQAOptimizer(int numberOfInterpolationPoints)`
    `BOBYQAOptimizer(int numberOfInterpolationPoints, double initialTrustRegionRadius, double stoppingTrustRegionRadius)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected PointValuePair` | `doOptimize()` Perform the bulk of the optimization algorithm.

    - ### Methods inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateSimpleBoundsOptimizer

      `getLowerBound, getUpperBound, optimize, optimize`

    - ### Methods inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer

      `computeObjectiveValue, getConvergenceChecker, getEvaluations, getGoalType, getMaxEvaluations, getStartPoint`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.commons.math3.optimization.BaseMultivariateOptimizer

      `optimize`

    - ### Methods inherited from interface org.apache.commons.math3.optimization.BaseOptimizer

      `getConvergenceChecker, getEvaluations, getMaxEvaluations`

- - ### 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()

      Perform the bulk of the optimization algorithm.
      Specified by:
        `doOptimize` in class `BaseAbstractMultivariateOptimizer<MultivariateFunction>`
      Returns:
        the point/value pair giving the optimal value for the objective function.

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