最优化方法—一维搜索

华电北风吹
天津大学认知科学与计算重点实验室
日期 2015/11/7

本文主要从试探法、插值法、微积分中的求根法讲解怎么求解一维函数极值问题。
一、试探法
1、斐波那契法(分数法)
适用条件:存在极值点的一维凸函数,或者在指定求解区间上的凸函数,本文举例以标准凸函数为例(下凸)。
y=f(t) 是区间[a,b]上的凸函数,在此区间内存在极小值点 t 。若在区间内任意取两相异点 a1,b1a1<b1 ,计算函数值 f(a1),f(b1) ,则必有如下三种情况,
1) f(a1)<f(b1) ,这是极小值点必在 [a,a1] 之间(图1)
2) f(a1)>f(b1) ,这是极小值点必在 [a1,b] 之间(图2)
3) f(a1)=f(b1) ,虽然概率几乎为0,但是还是说一下吧,这个时候可以归结为情况1或者情况2解决。
最优化方法—一维搜索_第1张图片
注意到斐波那契数列的性质
F(n)=F(n1)+F(n2)
先把区间分为 F(n) 份,分别计算 F(n1) F(n2) 处的函数值即可判断出极值点是位于前 F(n1) 个区间还是后 F(n1) 个区间。这样就可以把区间长度缩短为 F(n1) 了。然后依次递归压缩区间长度直到确定所在的区间长度为 F(1)=1 。而且,在对长度为 F(n1) 的区间递归的过程中,发现 F(n2) 处的值在上一次递归的时候已经计算好,这一次只需要计算 F(n1)F(n2) 处的值即可,即每次迭代只需要计算一次函数值。

2、黄金分割法(0.618法)。
求解的问题类型类似于斐波那契法,求解方法也类似。每次试点取在区间长度的0.618倍处和0.382倍处。这样每次可缩短区间长度为原来的0.618倍。依次递归。直到达到最大迭代次数或者满足收敛判定条件。

二、插值法
1、抛物线法
对极值点周围的点采样,然后抛物线拟合,把抛物线的极值点作为真实极值点的近似。
2、三次插值法
同抛物线法。

三、微积分中的求根法
转化为求解导数为0的解方程问题。
1、切线法
牛顿法
2、二分法
依次二分分割区间。

你可能感兴趣的:(#,凸优化)