Package pal.math

Class 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
  • 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)
    • 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(Object output)
    • isDebug

      protected boolean isDebug()