Re: Workflow of Stop Criterial with NMSearch or Brent

Home 21090308 Forums Re: Workflow of Stop Criterial with NMSearch or Brent



For Brent optimization algorithm, the iteration stops either the “tol” criteria are satisfied or max number of iterations is reached.
For the “tol” criteria, we have (as in the javadoc):

    * We stop the search when
    * 1. (xu – xl) < 2 * |x| * tol
    * 2. |xmin – mid| < |x| * tol
    * Hence,
    * (xu – xl)/2 + |xmin – mid| < 2 * |x| * tol ≈ tol2
    * @see “Chapter 10.3, Numerical Recipes.”

The code we use is:

For your question on Nelder-Mead, your way of counting the number of iterations is wrong. This line has problem:

Each Nelder-Mead iteration may consist of the reflection, expansion, contraction and reduction step. The objective function may be called multiple times during each iteration. For more information, please see: http://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method

In your example, the objective function is called 82 times in (possibly fewer than) 40 Nelder-Mead iterations.

As a side note: Nelder-Mead is notoriously known to perform poorly for univariate function optimisation.