一、引言
前边的博文我们讨论过一些迭代算法,包括梯度方法、牛顿法、共轭梯度法和拟牛顿法,能够从初始点出发,产生一个迭代序列,但是往往这些迭代序列只能收敛到局部极小点,而且这些迭代方法需要计算目标函数的一阶导数(牛顿法还需计算二阶导数)。从本节开始,讨论一些全局搜索算法,这些方法只需要计算目标函数值,而不需要对目标函数求导。
二、Nelder-Mead 单纯形法(一)
Nelder-Mead 单纯形法引入了单纯形的概念,不需要计算目标函数的梯度。所谓单纯形,指的是由
n
维空间中的n+1个点
det[p01p11……pn1]≠0
这一条件的含义为 R 中的两个点不重合, R2 中的三个点不共线, R3 中的四个点不共面, 以此类推。这说明,单纯形包围的 n 维空间具有有限的体积。
针对函数
pi=p0+λiei,i=1,2,…,n
其中, ei,i=1,2,…,n 表示一组单位向量, 是空间 Rn 的标准基,系数 λi 为正数, 可以按照优化问题的规模确定其大小。 按照这种方式产生的 n+1 个点,正好能构成一个单纯形。初始单纯形确定之后,接下来就一步步对其进行修改,使得产生的单纯形能够朝着函数的极小点进行收敛。在每次迭代中,都针对单纯形的每个点计算目标函数值。对于函数 f <script type="math/tex" id="MathJax-Element-1764">f</script>最小化的优化问题而言,目标函数最大的点将被另外的点代替,持续开展这一迭代过程,直到单纯形收敛到目标函数极小点。
下节将给出单纯形的更新规则。