Choosing the initial simplex in the Nelder-Mead optimization algorithm

前端 未结 2 1644
北荒
北荒 2021-02-06 00:54

What\'s the best way to initialize a simplex for use in a Nelder-Mead simplex search from a user\'s \'guess\' vertex?

2条回答
  •  花落未央
    2021-02-06 01:26

    I'm not sure if there is a best way to choose the initial simplex in the Nelder-Mead method, but the following is what is done in common practice.

    The construction of the initial simplex S is obtained from generating n+1 vertices x0,..,xn around what you call a user's "guess" vertex xin in a N dimensional space. The most frequent choice is

    x0=xin 
    

    and the remaining n vertices are then generated so that

    xj=x0+hj*ej 
    

    where ej is the unit vector of the j-th coordinate axis in R^n and hj is a step-size in the direction of ej.

    hj = 0.05    if (x0)j is non-zero
    hj = 0.00025 if (x0)j=0
    

    with (x0)j the j-th component of x0. Note that this is the choice in Matlab's fminsearch routine, which is based on the Nelder-Mead scheme.

    You can find some more information in

    F. Gao, L. Han, "Implementing the Nelder-Mead simplex algorithm with adaptive parameters", Comput. Optim. Appl., DOI 10.1007/s10589-010-9329-3

提交回复
热议问题