应用进退法确定一维搜索区间_最优化理论——一维搜索法

假设

,从迭代点
出发,按照迭代公式
来求得点
,使得

假设

已确定,如何求最好的步长
呢?

假设无约束最优化问题:

我们已经设定好了初始点

和搜索方向
,那么我们该找到一个步长
,使得
。那也就是说,把
看作参数,引入辅助函数
,要在区间
上选取
,使得

定理:若从

出发,沿
方向进行一维搜索得极小点
,则

即该点的梯度方向与搜索方向正交。

1.搜索区间

设一维最优化问题为

我们定义搜索区间为:设

,并且:

若存在闭区间

,使得
,则称
的一个搜索区间。

我们设初始点

,初始步长
,则我们要探测:

之间的大小关系,并不断迭代,直到函数值不再下降。

若函数值一开始就下降,就反向搜索。

加步探索法的算法流程图如下:

992431b58f5abbfc038d5b75ee4e00a7.png
加步探索法的算法流程图,图自《最优化方法及其应用》P70

加步探索法的C++代码:

// 程序名称:加步探索法搜索代码

2.单谷区间与单谷函数

我们希望最优解既落在某一个区间,该区间又没有别的局部最小点。我们定义这样的区间为单谷区间,即:

定义:设

,闭区间
,若存在点
,使得
上严格递减,
上严格递增,则称
是函数
的单谷区间,
上是单谷函数。

3.对分法

在搜索区间
内具有连续的一阶导数,因为
上可微,故
上连续,由此知
上有最小值。

那么,我们只需要解方程

,就可以求出最小值。

对分法就是观察

的符号,并且计算
,根据其符号缩小搜索区间,直到逼近
的零点。

796066dcfcf2379024c07a0f0aae3ce4.png
对分法的算法流程图,图自《最优化方法及其应用》P76

对分法的代码略。

4.Newton切线法

该法要求

具有连续的二阶导数

假设在区间

中经过
次迭代已求得方程
的一个近似根
。可由直线切线拟合得下一个近似根
。直线的方程为:

令直线与x轴相交,即

,则:

但这种方法只适用于Hesse矩阵较容易求的情况(多元函数求最优化),并且对初始点的选取要求非常高。

273182e5fbba0f9841864d2171d9c5aa.png
Newton切线法的算法流程图,图自《最优化方法及其应用》P77

5.黄金分割法

对于

来说,怎么在搜索区间
上选取两点
使得迭代次数最小而区间搜索最快?这个问题有一个比较好的解,即将
进行黄金分割,得点
满足:

25534325dc977f96b44bef6746161161.png
黄金分割法图例,图自《最优化方法及其应用》P79

计算

,有三种可能:

(1)若

,置新区间为
,此时新区间内有保留点

(2)若

,置新区间为
,此时新区间内有保留点

(3)若

,一般可置新区间为

60f2d97ff9ae9e8df348bf53655b1f81.png
黄金分割法的算法流程图,图自《最优化方法及其应用》P80
// 程序名称:黄金分割法搜索代码

6.抛物线插值法

此法繁琐且复杂,说了原理基本也没人会去记,给出流程图,可以供大家需要时编码:

28cbee3d1ed3f0bdc4e4859053fc5eb3.png
抛物线插值法的算法流程图,图自《最优化方法及其应用》P84
// 程序名称:抛物线插值法搜索代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值