最优化问题一般选择某一组变量,然后在满足一定的限制条件下,求出使目标值达到最优(最大或最小)的变量值。大部分时候,最优化问题都采用迭代计算的方式来求解。而大多数迭代下降算法都具有的共同点是在得到某次迭代点
x
k
x^k
xk后,需要按照一定规则来确定一个方向
d
k
d^k
dk,沿着该方向在直线上求函数的极小点得到下一个迭代点
x
x
xk+1 。 这样不断在一维的目标函数上,求其在各迭代点的直线方向上的极小点,直到求出问题最优解的方式就被称为一维搜索,或者线搜索。其一般过程可用如下公式表示:
其中
d
k
d^k
dk 表示在这一步的搜索方向,步长因子
λ
λ
λ 决定了沿着该方向前进多远,这两者共同决定了该搜索算法的好坏。一维搜索的算法有好多种,以下介绍几种常见的。
2. 最速下降法
上文中的一维搜索(
x
x
xk+1 =
x
k
x^k
xk +
λ
d
k
λd^k
λdk)可归结为单变量函数的最优化问题,也是最速下降法的基础。其迭代过程中最重要的就是为下次迭代选择一个合适的方向
d
k
d^k
dk。 人们利用了梯度方向是函数值增长最快的方向的思想,来让迭代点沿着负梯度方向前进,保证函数的“最速”下降。 以下直接给出公式:
【例】利用最速下降法求
m
i
n
f
(
x
)
=
x
1
2
+
2
x
2
2
−
2
x
1
x
2
−
4
x
1
minf(x) = x_1^2 + 2x_2^2 - 2x_1x_2 - 4x_1
minf(x)=x12+2x22−2x1x2−4x1 ,取初始向量
x
0
=
(
1
,
1
)
T
x_0 = (1,1)^T
x0=(1,1)T。
对于二维情况
n
=
2
n=2
n=2,任任取初始点
x
0
x^0
x0 沿某个下降方向
d
0
d^0
d0 作精确一维搜索,得
x
1
=
x
0
+
l
a
m
d
a
0
d
0
x^1 = x^0 + lamda_0d^0
x1=x0+lamda0d0 。 由精确一维搜索的性质,可知: