优化算法入门与实践
1. 优化问题概述
在优化问题中,我们常常需要在满足一定约束条件下,找到目标函数的最小值。对于有等式约束 $g_i(x) = 0$($i = 1, 2, \cdots, m$)的目标函数 $F(x)$ 求最小值的直接方法是构造拉格朗日函数:
$F^ (x, \lambda) = F(x) + \sum_{i = 1}^{m} \lambda_i g_i(x)$
然后求解以下方程组:
$\nabla F^ (x) = 0$
$g_i(x) = 0$,$i = 1, 2, \cdots, m$
其中,参数 $\lambda_i$ 被称为拉格朗日乘子。这种直接方法也可以扩展到不等式约束问题,但由于解的不唯一性,求解相应的方程组并不容易。
不过,当目标函数和约束条件都是 $x$ 的线性函数时,这类问题被归类为线性规划问题,可以使用专门的方法(如单纯形法)轻松解决。线性规划主要用于运筹学和成本分析,在工程应用中相对较少。但这并不意味着线性规划在非线性优化中没有作用,一些有效的方法部分依赖于单纯形法,例如,具有非线性约束的问题通常可以通过分段应用线性规划来解决,单纯形法还用于可行方向法中计算搜索方向。
2. 一维函数的极小化
2.1 局部和全局极小值
考虑单变量函数 $f(x)$ 在约束条件 $c \leq x \leq d$ 下的极小化问题。函数可能存在局部极小值和全局极小值,局部极小值是满足 $f’(x) = 0$ 的驻点,全局极小值可能是驻点,也可能在约束边界上。找到全局极小值的简单方法是通过求解 $\frac{df}{dx} = 0$ 找到所有驻