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

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

public class MultiDirectionalSimplex
extends AbstractSimplex

This class implements the multi-directional direct search method.

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

Constructor Summary
MultiDirectionalSimplex(double[] steps)
          Build a multi-directional simplex with default coefficients.
MultiDirectionalSimplex(double[][] referenceSimplex)
          Build a multi-directional simplex with default coefficients.
MultiDirectionalSimplex(double[][] referenceSimplex, double khi, double gamma)
          Build a multi-directional simplex with specified coefficients.
MultiDirectionalSimplex(double[] steps, double khi, double gamma)
          Build a multi-directional simplex with specified coefficients.
MultiDirectionalSimplex(int n)
          Build a multi-directional simplex with default coefficients.
MultiDirectionalSimplex(int n, double sideLength)
          Build a multi-directional simplex with default coefficients.
MultiDirectionalSimplex(int n, double khi, double gamma)
          Build a multi-directional simplex with specified coefficients.
MultiDirectionalSimplex(int n, double sideLength, double khi, double gamma)
          Build a multi-directional 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

MultiDirectionalSimplex

public MultiDirectionalSimplex(int n)
Build a multi-directional simplex with default coefficients. The default values are 2.0 for khi and 0.5 for gamma.

Parameters:
n - Dimension of the simplex.

MultiDirectionalSimplex

public MultiDirectionalSimplex(int n,
                               double sideLength)
Build a multi-directional simplex with default coefficients. The default values are 2.0 for khi and 0.5 for gamma.

Parameters:
n - Dimension of the simplex.
sideLength - Length of the sides of the default (hypercube) simplex. See AbstractSimplex.AbstractSimplex(int,double).

MultiDirectionalSimplex

public MultiDirectionalSimplex(int n,
                               double khi,
                               double gamma)
Build a multi-directional simplex with specified coefficients.

Parameters:
n - Dimension of the simplex. See AbstractSimplex.AbstractSimplex(int,double).
khi - Expansion coefficient.
gamma - Contraction coefficient.

MultiDirectionalSimplex

public MultiDirectionalSimplex(int n,
                               double sideLength,
                               double khi,
                               double gamma)
Build a multi-directional 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).
khi - Expansion coefficient.
gamma - Contraction coefficient.

MultiDirectionalSimplex

public MultiDirectionalSimplex(double[] steps)
Build a multi-directional simplex with default coefficients. The default values are 2.0 for khi and 0.5 for gamma.

Parameters:
steps - Steps along the canonical axes representing box edges. They may be negative but not zero. See

MultiDirectionalSimplex

public MultiDirectionalSimplex(double[] steps,
                               double khi,
                               double gamma)
Build a multi-directional 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[]).
khi - Expansion coefficient.
gamma - Contraction coefficient.

MultiDirectionalSimplex

public MultiDirectionalSimplex(double[][] referenceSimplex)
Build a multi-directional simplex with default coefficients. The default values are 2.0 for khi and 0.5 for gamma.

Parameters:
referenceSimplex - Reference simplex. See AbstractSimplex.AbstractSimplex(double[][]).

MultiDirectionalSimplex

public MultiDirectionalSimplex(double[][] referenceSimplex,
                               double khi,
                               double gamma)
Build a multi-directional simplex with specified coefficients.

Parameters:
referenceSimplex - Reference simplex. See AbstractSimplex.AbstractSimplex(double[][]).
khi - Expansion coefficient.
gamma - Contraction 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.