Package jebl.math
Class OrthogonalSearch
java.lang.Object
jebl.math.MultivariateMinimum
jebl.math.OrthogonalSearch
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
ConstructorsConstructorDescriptionInitializationOrthogonalSearch
(boolean shuffle) InitializationOrthogonalSearch
(OrderEnumerator.OEFactory orderingFactory) Initialization -
Method Summary
Modifier and TypeMethodDescriptionstatic final 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 Details
-
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
Initialization
-
-
Method Details
-
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
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
Generate a MultivariateMinimum.Factory for an OrthogonalSearch- Parameters:
shuffle
- if true shuffles order for each round (see OrthogonalSearch constructors)
-