Package pal.math
Class OrthogonalSearch
- java.lang.Object
-
- pal.math.MultivariateMinimum
-
- pal.math.OrthogonalSearch
-
public class OrthogonalSearch extends MultivariateMinimum
minimization of a real-valued function of several variables without using derivatives, using the simple strategy of optimizing variables one by one.- Author:
- Korbinian Strimmer, Matthew Goode
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interface
OrthogonalSearch.RoundOptimiser
-
Nested classes/interfaces inherited from class pal.math.MultivariateMinimum
MultivariateMinimum.Factory
-
-
Field Summary
-
Fields inherited from class pal.math.MultivariateMinimum
maxFun, numFun, numFuncStops
-
-
Constructor Summary
Constructors Constructor Description OrthogonalSearch()
InitializationOrthogonalSearch(boolean shuffle)
InitializationOrthogonalSearch(OrderEnumerator.OEFactory orderingFactory)
Initialization
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
debug(java.lang.Object output)
static MultivariateMinimum.Factory
generateFactory(boolean shuffle)
Generate a MultivariateMinimum.Factory for an OrthogonalSearchprotected 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)
-
Methods inherited from class pal.math.MultivariateMinimum
copy, findMinimum, findMinimum, findMinimum, stopCondition
-
-
-
-
Constructor Detail
-
OrthogonalSearch
public OrthogonalSearch()
Initialization
-
OrthogonalSearch
public OrthogonalSearch(boolean shuffle)
Initialization- Parameters:
shuffle
- If true uses shuffling, else uses ascending order, when choosing next parameter to optimse (true means equivalent to old StochasticOSearch)
-
OrthogonalSearch
public OrthogonalSearch(OrderEnumerator.OEFactory orderingFactory)
Initialization
-
-
Method Detail
-
setUseCurrentInUnivariateMinimisation
public void setUseCurrentInUnivariateMinimisation(boolean value)
-
setIgnoreNonMinimalUnivariateMinimisations
public void setIgnoreNonMinimalUnivariateMinimisations(boolean value)
Should we ignore new minisations that are not as minimal as the current one?
-
optimize
public void optimize(MultivariateFunction f, double[] xvec, double tolfx, double tolx)
Description copied from class:MultivariateMinimum
The actual optimization routine (needs to be implemented in a subclass of MultivariateMinimum). It finds a minimum close to vector x when the absolute tolerance for each parameter is specified.- Specified by:
optimize
in classMultivariateMinimum
- Parameters:
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 parameter
-
optimize
public void optimize(MultivariateFunction f, double[] xvec, double tolfx, double tolx, MinimiserMonitor monitor)
Description copied from class:MultivariateMinimum
The actual optimization routine It finds a minimum close to vector x when the absolute tolerance for each parameter is specified.- Overrides:
optimize
in classMultivariateMinimum
- Parameters:
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)
-
generateFactory
public static final MultivariateMinimum.Factory generateFactory(boolean shuffle)
Generate a MultivariateMinimum.Factory for an OrthogonalSearch- Parameters:
shuffle
- if true shuffles order for each round (see OrthogonalSearch constructors)
-
generateUnivariateMinimum
protected UnivariateMinimum generateUnivariateMinimum()
-
isFrequentMonitoring
protected boolean isFrequentMonitoring()
-
generateOrthogonalRoundOptimiser
protected OrthogonalSearch.RoundOptimiser generateOrthogonalRoundOptimiser(MultivariateFunction mf)
-
isUseCurrentInUnivariateMinimisation
protected final boolean isUseCurrentInUnivariateMinimisation()
-
isIgnoreNonMinimalUnivariateMinimisations
protected final boolean isIgnoreNonMinimalUnivariateMinimisations()
Should we ignore new minisations that are not as minimal as the current one?
-
debug
protected void debug(java.lang.Object output)
-
isDebug
protected boolean isDebug()
-
-