Package jebl.math
Class OrthogonalSearch
- java.lang.Object
-
- jebl.math.MultivariateMinimum
-
- jebl.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/interfaces inherited from class jebl.math.MultivariateMinimum
MultivariateMinimum.Factory
-
-
Field Summary
-
Fields inherited from class jebl.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 static MultivariateMinimum.Factory
generateFactory(boolean shuffle)
Generate a MultivariateMinimum.Factory for an OrthogonalSearchvoid
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 jebl.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) note: The default implementation just calls the optimize function with out the Monitor!
-
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)
-
-