一、一维搜索算法
1、确定搜索方向
,即按照一定的规则,构造f在
点处的下降方向作为搜索方向
2、确定步长因子
,是目标函数值有某种意义下的下降
3、令
,若
满足某种终止条件则终止迭代,得到近似最优解
,否则,重复上述步骤
在上述迭代算法中,当方向确定后,涉及到求一个步长,使得目标函数值减小(极小值问题),这就是在一直线上求目标函数的极小点,即极小化
。则称为alpha对变量的一维搜索问题,或称为线搜索。
二、一个例子
设目标函数为fx,过点,沿
的点集可以表示为:
,
求fx在直线L上的极小点就转化为求:
设的极小点为
为沿方向
的步长因子,于是fx在直线L上的极小点为
三、几个一维搜索算法经典例子
进退法
step 1:初始化
,初始化步长
>0以及精度
>0,计算
,加倍系数
step 2:比较目标值函数,令
,计算
step 3:若
,搜索成功,反复循环
,
,
,
,
step 4:若搜索失败,可以反向搜索,若k=0则转换搜索方向,令
,
,转向step 2;否则停止。
缺点:效率低
黄金分割法:要求,黄金分割法是单峰函数极值的一种试探法
step 1:初始化区间
,精度
,
,并且计算两个试探点
step 2:如果
;则转step 3
否则
;则转 step 4
step 3:如果
,则停止计算,输出
;否则
,
,
,
,
计算
, 转step 5
step 4:如果
,则停止计算,输出
;否则
,
,
,
,
计算
, 转step 5
step 5:
,转step 2
缺点:收敛速度慢
二分法:
基本上 和黄金分割法差不多
牛顿法法:
介绍:如果函数二阶可微,可用牛顿法求解极小值。核心思想就是在当前点构造一个二次函数,通过求解这个二次函数的极小值点,间接求得原始函数的极小值点。构造函数为:
;
求以上式子的极小值:则一阶求导
;
解得
1、初始化 x1,
,
2、如果
,则解出
3、如果
,做4
4、如果二次导数小于0,则不能用这种方法,如果可以二次导数,则
,判断
,是则解出
,否则k=k+1
缺点:必须计算二次导数,对初始点要求较高、局部收敛
优点:收敛速度快
重新的复习————————————————————————————————————————————————
在多变量函数最优化问题中,迭代格式为
,其关键就在于构造搜索方向
和步长因子
,设
;这样从
出发,沿搜索方向
,确定步长因子
,使
的问题就是关于
的一维搜索问题。