# 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 MultivariateMinimum

`MultivariateMinimum.Factory`

## Field Summary

### Fields inherited from class MultivariateMinimum

`maxFun, numFun, numFuncStops`

## Constructor Summary

Constructors
Constructor
Description
`OrthogonalSearch()`
Initialization
`OrthogonalSearch(boolean shuffle)`
Initialization
`OrthogonalSearch(OrderEnumerator.OEFactory orderingFactory)`
Initialization

## Method Summary

Modifier and Type
Method
Description
`static final MultivariateMinimum.Factory`
`generateFactory(boolean shuffle)`
Generate a MultivariateMinimum.Factory for an OrthogonalSearch
`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 MultivariateMinimum

`copy, findMinimum, findMinimum, findMinimum, stopCondition`

### Methods inherited from class Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## 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

public OrthogonalSearch(OrderEnumerator.OEFactory orderingFactory)
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

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 class `MultivariateMinimum`
Parameters:
  `f` - multivariate function
  `xvec` - initial guesses for the minimum (contains the location of the minimum on return)
  `tolfx` - absolute tolerance of function value
  `tolx` - 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 class `MultivariateMinimum`
Parameters:
  `f` - multivariate function
  `xvec` - initial guesses for the minimum (contains the location of the minimum on return)
  `tolfx` - absolute tolerance of function value
  `tolx` - absolute tolerance of each parameter
  `monitor` - 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)