Class NelderMeadSimplex

java.lang.Object
org.hipparchus.optim.nonlinear.scalar.noderiv.AbstractSimplex
org.hipparchus.optim.nonlinear.scalar.noderiv.NelderMeadSimplex
All Implemented Interfaces:
OptimizationData

public class NelderMeadSimplex extends AbstractSimplex
This class implements the Nelder-Mead simplex algorithm.
  • Constructor Details

    • NelderMeadSimplex

      public NelderMeadSimplex(int n)
      Build a Nelder-Mead simplex with default coefficients. The default coefficients are 1.0 for rho, 2.0 for khi and 0.5 for both gamma and sigma.
      Parameters:
      n - Dimension of the simplex.
    • NelderMeadSimplex

      public NelderMeadSimplex(int n, double sideLength)
      Build a Nelder-Mead simplex with default coefficients. The default coefficients are 1.0 for rho, 2.0 for khi and 0.5 for both gamma and sigma.
      Parameters:
      n - Dimension of the simplex.
      sideLength - Length of the sides of the default (hypercube) simplex. See AbstractSimplex(int,double).
    • NelderMeadSimplex

      public NelderMeadSimplex(int n, double sideLength, double rho, double khi, double gamma, double sigma)
      Build a Nelder-Mead simplex with specified coefficients.
      Parameters:
      n - Dimension of the simplex. See AbstractSimplex(int,double).
      sideLength - Length of the sides of the default (hypercube) simplex. See AbstractSimplex(int,double).
      rho - Reflection coefficient.
      khi - Expansion coefficient.
      gamma - Contraction coefficient.
      sigma - Shrinkage coefficient.
    • NelderMeadSimplex

      public NelderMeadSimplex(int n, double rho, double khi, double gamma, double sigma)
      Build a Nelder-Mead simplex with specified coefficients.
      Parameters:
      n - Dimension of the simplex. See AbstractSimplex(int).
      rho - Reflection coefficient.
      khi - Expansion coefficient.
      gamma - Contraction coefficient.
      sigma - Shrinkage coefficient.
    • NelderMeadSimplex

      public NelderMeadSimplex(double[] steps)
      Build a Nelder-Mead simplex with default coefficients. The default coefficients are 1.0 for rho, 2.0 for khi and 0.5 for both gamma and sigma.
      Parameters:
      steps - Steps along the canonical axes representing box edges. They may be negative but not zero. See
    • NelderMeadSimplex

      public NelderMeadSimplex(double[] steps, double rho, double khi, double gamma, double sigma)
      Build a Nelder-Mead simplex with specified coefficients.
      Parameters:
      steps - Steps along the canonical axes representing box edges. They may be negative but not zero. See AbstractSimplex(double[]).
      rho - Reflection coefficient.
      khi - Expansion coefficient.
      gamma - Contraction coefficient.
      sigma - Shrinkage coefficient.
      Throws:
      IllegalArgumentException - if one of the steps is zero.
    • NelderMeadSimplex

      public NelderMeadSimplex(double[][] referenceSimplex)
      Build a Nelder-Mead simplex with default coefficients. The default coefficients are 1.0 for rho, 2.0 for khi and 0.5 for both gamma and sigma.
      Parameters:
      referenceSimplex - Reference simplex. See AbstractSimplex(double[][]).
    • NelderMeadSimplex

      public NelderMeadSimplex(double[][] referenceSimplex, double rho, double khi, double gamma, double sigma)
      Build a Nelder-Mead simplex with specified coefficients.
      Parameters:
      referenceSimplex - Reference simplex. See AbstractSimplex(double[][]).
      rho - Reflection coefficient.
      khi - Expansion coefficient.
      gamma - Contraction coefficient.
      sigma - Shrinkage coefficient.
      Throws:
      MathIllegalArgumentException - if the reference simplex does not contain at least one point.
      MathIllegalArgumentException - if there is a dimension mismatch in the reference simplex.
  • Method Details

    • iterate

      public void iterate(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator)
      Compute the next simplex of the algorithm.
      Specified by:
      iterate in class AbstractSimplex
      Parameters:
      evaluationFunction - Evaluation function.
      comparator - Comparator to use to sort simplex vertices from best to worst.