拉格朗日乘子法是一种寻找非线性多元函数在一组等式约束下的极值的方案,在引入了 KKT 条件后,拉格朗日乘子法被泛化到了有不等式约束的一般形式。拉格朗日乘子法可以将多个等式约束的优化问题转化为无约束的拉格朗日函数优化问题,也可以将多个不等式约束的优化问题转化为 KKT 条件下拉格朗日函数的优化问题。
等式约束的优化问题
对于如上的单个约束的优化问题,可以将
- 对于约束曲面
上的任意点 ,该店的梯度 正交于约束曲面。这是因为, 可以看做函数 的一个等值面,而一个等值面上的任意一点梯度都与等值面垂直。 - 在最优点
,目标函数在该店的梯度 正交于约束曲面,这是因为,此时使 增大的方向与约束曲面垂直,假如不垂直,则可以沿着约束曲面与向梯度的反方向移动,从而让 的值变小。
由此可知,在最优点
此时分别求拉格朗日函数对
对于多个等式约束的情况,梯度
不等式约束的优化问题
现将最初的优化问题改为一个不等式约束。仍然可以写出相应的拉格朗日函数,现在对该优化问题的最优解
- 当
时,说明 是 的一个极值点,满足 ,那么将拉格朗日函数中的 置零, 必然满足 。 - 当
时,与等式约束的情况类似,不同的是, 和 的方向必须相反,因为如果它们方向相同,沿梯度的反方向移动,则 和 都变小,与“在 边界上取最优解的讨论情况矛盾”,也即存在常数 使得 。
整合这两种情况,必须满足
因此,在约束
如上可以将该思路推广到
引入拉格朗日乘子
由不等式引入的 KKT 条件 如下。
对偶问题
“对偶问题”一般而言是指“拉格朗日对偶问题”(Lagrangian dual problem)。最优化问题可以用两种观点来看待的理论,两种观点分别是“原始问题”(primal problem)及“对偶问题”(dual problem)。对偶问题的解提供了原始问题(假设是最小化问题)的下限。
拉格朗日函数
任何一个优化问题都存在相应的拉格朗日函数。
拉格朗日对偶函数
定义拉格朗日对偶函数如上,对于任何一组给定的拉格朗日乘子,输出在可行域内拉格朗日函数值的下确界。
拉格朗日对偶问题
令原问题中最优解
- 弱对偶性(Weak Duality):
- 强对偶性(Strong Duality):
任何优化问题的原始问题和其对偶问题都满足弱对偶性。
强对偶性满足的一个充分条件是:原优化问题是一个凸优化问题,且原优化问题满足 Slater 条件。
拉格朗日对偶问题一定是凸优化问题。
对偶问题将原来的
概念
凸集
凸集(Convex set)是一个点集合,其中每两点之间的线段点都落在该点集合中。
凸函数
凸优化
凸优化可以表示为如上的标准型。
令
如果存在等式约束,可以表示为两个符号相反的不等式约束,这两个凸的不等式约束,可以表示一个仿射函数的等式约束。
KKT 条件
KKT 条件(Karush–Kuhn–Tucker conditions)是最优化(特别是非线性规划)领域最重要的成果之一,是判断某点是极值点的必要条件。
对于以上优化问题,存在相应的拉格朗日函数。
则其对应的 KKT 条件如下。
Slater 条件
若对凸优化问题
存在
则称对此问题满足 Slater 条件。