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

java.lang.Object
  extended by org.apache.commons.math3.optim.nonlinear.scalar.noderiv.AbstractSimplex
      extended by org.apache.commons.math3.optim.nonlinear.scalar.noderiv.NelderMeadSimplex
All Implemented Interfaces:
OptimizationData

public class NelderMeadSimplex
extends AbstractSimplex

This class implements the Nelder-Mead simplex algorithm.

Since:
3.0
Version:
$Id: NelderMeadSimplex.java 1435539 2013-01-19 13:27:24Z tn $

Constructor Summary
NelderMeadSimplex(double[] steps)
          Build a Nelder-Mead simplex with default coefficients.
NelderMeadSimplex(double[][] referenceSimplex)
          Build a Nelder-Mead simplex with default coefficients.
NelderMeadSimplex(double[][] referenceSimplex, double rho, double khi, double gamma, double sigma)
          Build a Nelder-Mead simplex with specified coefficients.
NelderMeadSimplex(double[] steps, double rho, double khi, double gamma, double sigma)
          Build a Nelder-Mead simplex with specified coefficients.
NelderMeadSimplex(int n)
          Build a Nelder-Mead simplex with default coefficients.
NelderMeadSimplex(int n, double sideLength)
          Build a Nelder-Mead simplex with default coefficients.
NelderMeadSimplex(int n, double rho, double khi, double gamma, double sigma)
          Build a Nelder-Mead simplex with specified coefficients.
NelderMeadSimplex(int n, double sideLength, double rho, double khi, double gamma, double sigma)
          Build a Nelder-Mead simplex with specified coefficients.
 
Method Summary
 void iterate(MultivariateFunction evaluationFunction, Comparator<PointValuePair> comparator)
          Compute the next simplex of the algorithm.
 
Methods inherited from class org.apache.commons.math3.optim.nonlinear.scalar.noderiv.AbstractSimplex
build, evaluate, getDimension, getPoint, getPoints, getSize, replaceWorstPoint, setPoint, setPoints
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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.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.AbstractSimplex(int,double).
sideLength - Length of the sides of the default (hypercube) simplex. See AbstractSimplex.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.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.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.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.AbstractSimplex(double[][]).
rho - Reflection coefficient.
khi - Expansion coefficient.
gamma - Contraction coefficient.
sigma - Shrinkage coefficient.
Throws:
NotStrictlyPositiveException - if the reference simplex does not contain at least one point.
DimensionMismatchException - 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.


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