The Nelder–Mead simplex search method

简介

一种不使用梯度信息的无约束优化的局部下降算法。

单纯形是由D + 1个点(或顶点)在D维空间中构成的几何图形,什么意思呢?在二维空间中,是个三角形,三维空间中,是个四面体,不一定是正的。

如果以一个非退化的单纯形的任意点为原点,那么其他D点则定义了跨越D维向量空间的向量方向。这种方法的操作是通过reflection, expansion, contraction and shrinkage这四个基本过程,根据函数的局部行为对单纯形进行重新划分。通过这些步骤,单纯形可以成功地自我改进,接近最优。

Q1:如何理解contraction与shrinkage?

原始的NMSS过程概述如下:

1. 初始化

参数 符号
the reflection coefficient α \alpha α
the expansion coefficient γ \gamma γ
the contraction coefficient β \beta β
the shrinkage coefficient δ \delta δ

NM假设 α = 1 , γ = 2 , β = δ = 0.5 \alpha = 1,\gamma= 2,\beta=\delta=0.5 α=1,γ=2,β=δ=0.5。通过在搜索范围内随机生成D + 1个顶点来初始化单纯形,并评估目标函数在每个顶点上的适应度。

2.确定顶点

确定 x h , x s , x l x_h,x_s,x_l xh,xs,xl分别代表最高、第二高、最低函数值的顶点。

f h , f s , f l f_h,f_s,f_l fh,fs,fl分别为对应的函数值,在极小化情况下计算除 x h x_h xh外的单纯形的质心 x ‾ \overline x x

3. reflection

通过反射最坏的点生成一个新的顶点 x r x_r xr,计算公式:
x r = x ‾ + α ( x ‾ − x h ) α > 0 (1) x_r = \overline x + \alpha (\overline x - x_h) \qquad \alpha >0 \tag{1} xr=x+α(xxh)α>0(1)
计算对应的适应度值 f r f_r fr,对比相应的值进行不同的操作:
{ g o   t o   4 i f   f r < f l x r 代替 x h  并且 g o   t o   7 i f   f l ≤ f r ≤ f s g o   t o   5 i f   f r > f s (2) \begin {cases} go\ to\ 4 &if \ f_r<f_l\\ x_r代替x_h\ 并且go \ to \ 7 & if \ f_l \leq f_r \leq f_s \\ go \ to\ 5 & if \ f_r>f_s \end {cases} \tag{2} go to 4xr代替xh 并且go to 7go to 5if fr<flif flfrfsif fr>fs(2)

在这里插入图片描述

4. expansion

对反射进行扩展,使搜索空间向同一方向扩展,扩展点按下式计算:
x e = x ‾ + γ ( x r − x ‾ ) γ > 1 (3) x_e = \overline x + \gamma (x_r - \overline x) \qquad \gamma > 1 \tag{3} xe=x+γ(xrx)γ>1(3)
同样计算对应的适应度值 f e f_e fe,判断依据:
{ 接受扩展,并用 x e 代替 x h i f   f e < f r x r 代替 x h , g o   t o   7 o t h e r w i s e (4) \begin {cases} 接受扩展,并用x_e代替x_h & if \ f_e<f_r \\ x_r 代替x_h ,go \ to \ 7 & otherwise \end {cases} \tag{4} {接受扩展,并用xe代替xhxr代替xh,go to 7if fe<frotherwise(4)

在这里插入图片描述

5. contraction

f r > f s   a n d   f r ≤ f h f_r>f_s \ and \ f_r \leq f_h fr>fs and frfh,用 x r x_r xr代替 x h x_h xh并尝试收缩。当 f r > f h f_r > f_h fr>fh,不直接用 x r x_r xr代替 x h x_h xh收缩,收缩顶点按下式计算:
x c = x ‾ + β ( x h − x ‾ ) 0 < β < 1 (5) x_c = \overline x + \beta (x_h - \overline x) \qquad 0 < \beta < 1 \tag{5} xc=x+β(xhx)0<β<1(5)
判断:
{ 接受收缩,并用 x c 代替 x h ,   g o   t o   7 i f   f c ≤ f h g o   t o   6 o t h e r w i s e (6) \begin {cases} 接受收缩,并用x_c代替x_h ,\ go \ to \ 7 & if \ f_c \leq f_h \\ go \ to \ 6 & otherwise \end {cases} \tag{6} {接受收缩,并用xc代替xh, go to 7go to 6if fcfhotherwise(6)

在这里插入图片描述

6. shrinkage

若第5步失败,将继续尝试收缩。通过收缩单纯形除 x l x_l xl的所有点完成,然后进行第7步。收缩公式如下:
x i = δ x i + ( 1 − δ ) x l i = 1 , 2 , . . . . , D + 1   a n d   i ≠ l 0 < δ < 1 (7) x_i = \delta x_i + (1 - \delta) x_l \qquad i=1,2,....,D+1 \ and \ i \neq l \qquad 0 < \delta < 1 \tag{7} xi=δxi+(1δ)xli=1,2,....,D+1 and i=l0<δ<1(7)

在这里插入图片描述

7. 终止

如果满足终止条件,则停止计算;否则,新的迭代将从步骤2开始

参考文献

Kang, F., Li, J. & Xu, Q. Structural inverse analysis by hybrid simplex artificial bee colony algorithms. Comput. Struct. 87, 861–870 (2009).

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐