Class 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
    • 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.