7.1 引言
本章讨论的是一维问题的迭代求解方法,这些方法统称为一维搜索法。
7.2 黄金分割法
黄金分割法要求某单值一元函数在闭区间上是单峰的,即存在唯一的局部最小点。
该方法的思路为挑选中的点,计算对应的函数值,通过不断缩小极小点所在的求见,大刀片足够的精度。
很显然每次都要计算两个目标函数值,以保证目标区间的压缩。
和应满足:
计算中我们希望计算次数最少,则需要确定一个合适的参数。
实际运行中,计算和,如果,那么极小点就在之间,否则,极小点就位于。
当我们完成第一次迭代,压缩空间到之间,我们发现此次在当前空间中,而我们已经计算过了,则可以将加入第二次迭代,作为,此时我们只需要计算一个即可完成一次迭代。因此,我们需要设定一个合适的,让每次迭代后剩余的那个参数可以在下一次迭代中满足。
我们可以认为最初的长度为1,则有:
即以的比例划分区间,能够使上述说法成立。这意味着这种划分方式符合古希腊几何学家提出的黄金分割法则。
经过N次压缩之后,区间可压缩到,这称为总压缩比。
7.3 斐波那契数列法
在黄金分割法中,始终不变,如果允许参数中途改变,则产生斐波那契数列法。该方法选择中间点的的原则如下:
则有:
存在很多种序列满足这个公式,比如7.2中提出的黄金分割序列。
这种方法的N次压缩比为:。显然我们希望更小的压缩比,则我们获得了一个有约束优化问题:
该方法的总压缩比为:
7.4 二分法
高中学过的一阶导求法,一阶导大于0在左边,一阶导小于0在右边。
压缩比为
7.5 牛顿法
牛顿法假定函数连续二阶可微,这样可构建一个经过点的二次函数,该函数在的一阶和二阶导数分别为和:
可以认为是的近似,因此求函数的极小点近似于求的极小点。其极小点应满足一阶不要条件:
本质上,牛顿法是不断迫使一阶导数趋近于0。
7.6 割线法
从迭代公式看出,牛顿法需要的是目标函数的二阶导数:
如果二阶导数不存在,可以通过采用不同点的一阶导数对其近似,比如:
将这一公式带入牛顿法:
该公式对应的方法为割线法,该方法需要两个初始点。整理该式,可以获得另一个迭代公式:
二者等价。
牛顿法是采用斜率使整个一阶导数趋近于0,而割线法采用和第个迭代点求第个迭代点。
7.7 划界法
上述方法均需要提供目标函数极小点所在的初始区间。而这一初始区间的寻找需要划界法确定。
本质就是不断搜索,找三个点比一比,然后迭代。因为假定函数是单峰的,不需要考虑全局问题。
7.8 多维优化问题中的一维搜索
多维优化问题的迭代球阀,通常每次迭代都包括一维搜索。