Class NelderMeadSimplex

  • All Implemented Interfaces:
    OptimizationData

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

      • 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 Detail

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