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 voidstatic final MultivariateMinimum.FactorygenerateFactory(boolean shuffle) Generate a MultivariateMinimum.Factory for an OrthogonalSearchprotected OrthogonalSearch.RoundOptimiserprotected UnivariateMinimumprotected booleanisDebug()protected booleanprotected final booleanShould we ignore new minisations that are not as minimal as the current one?protected final booleanvoidoptimize(MultivariateFunction f, double[] xvec, double tolfx, double tolx) The actual optimization routine (needs to be implemented in a subclass of MultivariateMinimum).voidoptimize(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.voidsetIgnoreNonMinimalUnivariateMinimisations(boolean value) Should we ignore new minisations that are not as minimal as the current one?voidsetUseCurrentInUnivariateMinimisation(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:MultivariateMinimumThe 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:
optimizein 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:MultivariateMinimumThe actual optimization routine It finds a minimum close to vector x when the absolute tolerance for each parameter is specified.- Overrides:
optimizein 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()
-