Package pal.math
Class OrthogonalSearch
java.lang.Object
pal.math.MultivariateMinimum
pal.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 ClassesNested classes/interfaces inherited from class pal.math.MultivariateMinimum
MultivariateMinimum.Factory
-
Field Summary
Fields inherited from class pal.math.MultivariateMinimum
maxFun, numFun, numFuncStops
-
Constructor Summary
ConstructorsConstructorDescriptionInitializationOrthogonalSearch
(boolean shuffle) InitializationOrthogonalSearch
(OrderEnumerator.OEFactory orderingFactory) Initialization -
Method Summary
Modifier and TypeMethodDescriptionprotected void
static final MultivariateMinimum.Factory
generateFactory
(boolean shuffle) Generate a MultivariateMinimum.Factory for an OrthogonalSearchprotected OrthogonalSearch.RoundOptimiser
protected UnivariateMinimum
protected boolean
isDebug()
protected boolean
protected final boolean
Should we ignore new minisations that are not as minimal as the current one?protected final boolean
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 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)
-
generateFactory
Generate a MultivariateMinimum.Factory for an OrthogonalSearch- Parameters:
shuffle
- if true shuffles order for each round (see OrthogonalSearch constructors)
-
generateUnivariateMinimum
-
isFrequentMonitoring
protected boolean isFrequentMonitoring() -
generateOrthogonalRoundOptimiser
-
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
-
isDebug
protected boolean isDebug()
-