neldermead.startup function

Secondary functions for neldermead.search

Secondary functions for neldermead.search

Utility functions for neldermead.serch and dependent functions.

neldermead.startup(this = NULL) neldermead.log(this = NULL, msg = NULL) neldermead.scaletox0(this = NULL, simplex0 = NULL) neldermead.scaletocenter(this = NULL, simplex0 = NULL, x0 = NULL) neldermead.termstartup(this = NULL) neldermead.outputcmd(this = NULL, state = NULL, simplex = NULL, step = NULL) neldermead.autorestart(this = NULL) neldermead.istorestart(this = NULL) neldermead.isroneill(this = NULL) neldermead.isrkelley(this = this) neldermead.updatesimp(this = NULL) scaleinconstraints(this = NULL, x = NULL, xref = NULL) neldermead.costf(x = NULL, this = NULL)

Arguments

  • this: A neldermead object.
  • msg: A character string.
  • simplex0: The initial simplex object.
  • x0: A column matrix of initial parameters.
  • state: The state of the algorithm, either 'init', 'done' or 'iter'.
  • simplex: The current simplex object.
  • step: The type of step performed during the iteration: 'init', 'done', 'reflection', 'expansion', 'insidecontraction', 'outsidecontraction', 'reflectionnext' or 'shrink'.
  • x: The point estimate to scale.
  • xref: The reference point estimate.

Details

  • neldermead.startup: Startup the algorithm. Compute the initial simplex, depending on the content of the simplex0method

     element of the neldermead object ('given', 'axes', 'spendley', 'pfeffer' or 'randbounds').
    
  • neldermead.log: Print a message to the log file using optimbase.log.

  • neldermead.scaletox0: Scale the simplex into the nonlinear inequality constraints, if any. Scale toward x0, which is feasible.

  • neldermead.scaletocenter: Scale the simplex into the nonlinear inequality constraints, if any. Scale to the centroid of the points which satisfy the constraints. This is Box's method for scaling. It is unsure, since the centroid of the points which satisfy the constraints may not be feasible.

  • neldermead.termstartup: Initialize Kelley's stagnation detection system when normalization is required, by computing kelleyalpha. If the simplex gradient is zero, then use alpha0 as alpha.

  • neldermead.outputcmd: Call the array of user-defined output functions

  • neldermead.autorestart: Perform an optimization with automatic restart. The loop processes for i = 1 to restartmax + 1. This is because a RE-start is performed after one simulation has been performed, hence the 'RE'.

  • neldermead.istorestart: Determine if the optimization is to restart using neldermead.isroneill or neldermead.isrkelley

     depending on the content of the `restartdetection` element.
    
  • neldermead.isroneill: Determine if the optimization is to restart. Use O'Neill method as a criteria for restart. It is an axis-by-axis search for optimality.

  • neldermead.isrkelley: Determine if the optimization is to restart. Use kelleystagnation as a criteria for restart.

  • neldermead.updatesimp: Update the initial simplex simplex0 for a restart.

  • scaleinconstraints: Given a point reference to scale and a reference point which satisfies the constraints, scale the point towards the reference point estimate until it satisfies all the constraints.

  • neldermead.costf: Call the cost function and return the value. This function is given to the simplex function class as a callback. Input/Output arguments are swapped w.r.t. optimbase.function, so that it matches the requirements of simplex methods.

Returns

  • neldermead.startup: Return an updated neldermead object this.

  • neldermead.log: Return the neldermead object this.

  • neldermead.scaletox0: Return an updated simplex.

  • neldermead.scaletocenter: Return an updated simplex.

  • neldermead.termstartup: Return an updated neldermead object this.

  • neldermead.outputcmd: Do not return any data, but execute the output function(s).

  • neldermead.autorestart: Return an updated neldermead object this.

  • neldermead.istorestart: Return a list with the following elements:

     - **this**: The input neldermead object.
     - **istorestart**: Set to TRUE if the optimization is to restart, to FALSE otherwise.
    
  • neldermead.isroneill: Return a list with the following elements:

     - **this**: The input neldermead object.
     - **istorestart**: Set to TRUE if the optimization is to restart, to FALSE otherwise.
    
  • neldermead.isrkelley: Return a list with the following elements:

     - **this**: The input neldermead object.
     - **istorestart**: Set to TRUE if the optimization is to restart, to FALSE otherwise.
    
  • neldermead.updatesimp: Return an updated neldermead object this.

  • scaleinconstraints: Return a list with the following elements:

     - **this**: The updated neldermead object.
     - **isscaled**: TRUE if the procedure has succeeded before `boxnbnlloops`, FALSE if it has failed.
     - **p**: The scaled parameters.
    
  • neldermead.costf: Return a list with the following elements:

     - **f**: The value of the cost function.
     - **this**: The updated neldermead object.
    

Author(s)

Author of Scilab neldermead module: Michael Baudin (INRIA - Digiteo)

Author of R adaptation: Sebastien Bihorel (sb.pmlab@gmail.com )

  • Maintainer: Sebastien Bihorel
  • License: CeCILL-2
  • Last published: 2022-02-01

Useful links