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 interfaceOrthogonalSearch.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 voiddebug(java.lang.Object output)static MultivariateMinimum.FactorygenerateFactory(boolean shuffle)Generate a MultivariateMinimum.Factory for an OrthogonalSearchprotected OrthogonalSearch.RoundOptimisergenerateOrthogonalRoundOptimiser(MultivariateFunction mf)protected UnivariateMinimumgenerateUnivariateMinimum()protected booleanisDebug()protected booleanisFrequentMonitoring()protected booleanisIgnoreNonMinimalUnivariateMinimisations()Should we ignore new minisations that are not as minimal as the current one?protected booleanisUseCurrentInUnivariateMinimisation()voidoptimize(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 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: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
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()
-
-