pal.math
public class OrthogonalSearch extends MultivariateMinimum
Modifier and Type | Class and Description |
---|---|
protected static interface |
OrthogonalSearch.RoundOptimiser |
MultivariateMinimum.Factory
maxFun, numFun, numFuncStops
Constructor and Description |
---|
OrthogonalSearch()
Initialization
|
OrthogonalSearch(boolean shuffle)
Initialization
|
OrthogonalSearch(OrderEnumerator.OEFactory orderingFactory)
Initialization
|
Modifier and Type | Method and Description |
---|---|
protected void |
debug(java.lang.Object output) |
static MultivariateMinimum.Factory |
generateFactory(boolean shuffle)
Generate a MultivariateMinimum.Factory for an OrthogonalSearch
|
protected OrthogonalSearch.RoundOptimiser |
generateOrthogonalRoundOptimiser(MultivariateFunction mf) |
protected UnivariateMinimum |
generateUnivariateMinimum() |
protected boolean |
isDebug() |
protected boolean |
isFrequentMonitoring() |
protected boolean |
isIgnoreNonMinimalUnivariateMinimisations()
Should we ignore new minisations that are not as minimal as the current one?
|
protected boolean |
isUseCurrentInUnivariateMinimisation() |
void |
optimize(MultivariateFunction f,
double[] xvec,
double tolfx,
double tolx)
The actual optimization routine
(needs to be implemented in a subclass of MultivariateMinimum).
|
void |
optimize(MultivariateFunction f,
double[] xvec,
double tolfx,
double tolx,
MinimiserMonitor monitor)
The actual optimization routine
It finds a minimum close to vector x when the
absolute tolerance for each parameter is specified.
|
void |
setIgnoreNonMinimalUnivariateMinimisations(boolean value)
Should we ignore new minisations that are not as minimal as the current one?
|
void |
setUseCurrentInUnivariateMinimisation(boolean value) |
copy, findMinimum, findMinimum, findMinimum, stopCondition
public OrthogonalSearch()
public OrthogonalSearch(boolean shuffle)
shuffle
- If true uses shuffling, else uses ascending order, when choosing next parameter to optimse
(true means equivalent to old StochasticOSearch)public OrthogonalSearch(OrderEnumerator.OEFactory orderingFactory)
public void setUseCurrentInUnivariateMinimisation(boolean value)
public void setIgnoreNonMinimalUnivariateMinimisations(boolean value)
public void optimize(MultivariateFunction f, double[] xvec, double tolfx, double tolx)
MultivariateMinimum
optimize
in class MultivariateMinimum
f
- multivariate functionxvec
- initial guesses for the minimum
(contains the location of the minimum on return)tolfx
- absolute tolerance of function valuetolx
- absolute tolerance of each parameterpublic void optimize(MultivariateFunction f, double[] xvec, double tolfx, double tolx, MinimiserMonitor monitor)
MultivariateMinimum
optimize
in class MultivariateMinimum
f
- multivariate functionxvec
- initial guesses for the minimum
(contains the location of the minimum on return)tolfx
- absolute tolerance of function valuetolx
- absolute tolerance of each parametermonitor
- A monitor object that receives information about the minimising process (for display purposes)public static final MultivariateMinimum.Factory generateFactory(boolean shuffle)
shuffle
- if true shuffles order for each round (see OrthogonalSearch constructors)protected UnivariateMinimum generateUnivariateMinimum()
protected boolean isFrequentMonitoring()
protected OrthogonalSearch.RoundOptimiser generateOrthogonalRoundOptimiser(MultivariateFunction mf)
protected final boolean isUseCurrentInUnivariateMinimisation()
protected final boolean isIgnoreNonMinimalUnivariateMinimisations()
protected void debug(java.lang.Object output)
protected boolean isDebug()