拉格朗日法、KKT条件
拉格朗日对偶性(Lagrange duality)将原始问题转换为对偶问题。例如:最大熵模型、支持向量机。
一、原始问题
假设目标函数f(x)、不等式约束 ci(x)、等式约束 hj(x) 是定义在 RRn(n 维)上的连续可微函数。约束最优化问题描述如下:
minx∈Rn f(x)s.t. ci(x)≤0, i=1,2,...,khj(x)=0, j=1,2,...,l(1)(2)(3)
称此问题为原始最优化问题或原始问题。
首先,引入广义拉格朗日函数(generalized Lagrange function)
L(x,α,β)=f(x)+k∑i=1αici(x)+l∑j=1βjhj(x)(4)
这里,x=(x(1),x(2),...,x(n))T∈RRn,αi, βj 是拉格朗日乘子,αi≥0。考虑 x 的函数:
θP(x)=maxα,β:αi≥0L(x,α,β)(5)
下标 P 表示原始问题,但 θP(x) 与 (1)∼(3) 不等价。
如果 x 违反约束条件,即存在某个 i 使得 ci(x)>0 或存在某个 j 使得 hj(x)≠0,
那么就有
θP(x)=maxα,β:αi≥0[f(x)+∑ki=1αici(x)+∑lj=1βjhj(x)]=+∞(6)
因为若某个 i 使约束 ci(x)>0,则可令 αi→+∞,
若某个 j 使得 hj(x)≠0,则可令 βjhj(x)→+∞,
而将剩余 αi, βj 均取为 0。
如果 x 满足约束条件,由式 (5)、(4) 可知,θP(x)=f(x)。
因此,
θP(x)={f(x),x 满足原始问题约束+∞,其他(7)
所以考虑极小化问题
minxθP(x)=minx maxα,β:αi≥0 L(x,α,θ)(8)
在对 θp(x) 求极小值,会自动舍弃掉不满足约束条件的值,所以它是与原始最优化问题(1)∼(3) 等价的,即有相同的解。问题 minxθP(x)=minxmaxα,β:αi≥0 L(x,α,θ) 称为广义拉格朗日函数的极小极大问题。这样就把原始最优化问题表示为广义拉格朗日函数的极小极大问题。为了方便,定义原始问题的最优值
p∗=minxθP(x)(9)
称为原始问题的值。
二、对偶问题
定义
θD(α,β)=minxL(x,α,β)(10)
极大化式 (10),即
maxα,β:αi≥0 θD(α,β)=maxα,β:αi≥0 minxL(x,α,β)(11)
问题 maxα,β:αi≥0 minxL(x,α,β) 称为广义拉格朗日函数的极大极小问题。
将广义拉格朗日函数的极大极小问题表示为约束最优化问题:
maxα,β θD(α,β)=maxα,β minxL(x,α,β)(12)
s.t. αi≥0, i=1,2,...,k(13)
称为原始问题的对偶问题。定义对偶问题的最优值
d∗=maxα,β:αi≥0 θD(α,β)(14)
称为对偶问题的值。
三、原始问题与对偶问题的关系
定理 1:若原始问题和对偶问题都有最优解,则对偶问题的值小于等于原始问题的值。即
d∗=maxα,β:αi≥0 minx L(x,α,β)≤minxmaxα,β:αi≥0 L(x,α,θ)=p∗
证明:对任意 α,β,x 有
θD(α,β)=minxL(x,α,β)≤L(x,α,β)≤maxα,β:αi≥0L(x,α,β)=θp(x)
即下面不等式恒成立
θD(α,β)≤θp(x)
因为对偶问题、原始问题都有最优值,所以
maxα,β:αi≥0 θD(α,β)≤minx θp(x)
即
d∗=maxα,β:αi≥0 minx L(x,α,β)≤minxmaxα,β:αi≥0 L(x,α,θ)=p∗
推论1:设 x∗、α∗、β∗ 分别是原始问题(1)∼(3)和对偶问题(12)∼(13)的可行解,并且 d∗=p∗,则 x∗、α∗、β∗ 分别是原始问题和对偶问题的最优解。
定理 2:假设函数 f(x)、ci(x) 是凸函数,hj(x) 是仿射函数,
并且假设不等式约束 ci(x) 是严格可行的,即存在 x,对所有 i 有 ci(x)<0,
则存在 x∗、α∗、β∗,使 x∗ 是原始问题的解,α∗、β∗ 是对偶问题的解,
并且
p∗=d∗=L(x∗,α∗,β∗)(15)
定理 3:假设函数 f(x)、ci(x) 是凸函数,hj(x) 是仿射函数,
并且假设不等式约束 ci(x) 是严格可行的,
则 x∗、α∗、β∗ 分别是原始问题和对偶问题的解的充分必要条件是 x∗、α∗、β∗ 满足下面条件:
▽xL(x∗,α∗,β∗)=0(16)
α∗ici(x∗)=0, i=1,2,...,k(17)
ci(x∗)≤0, i=1,2,...,k(18)
a∗i≥0, i=1,2,...,k(19)
hj(x∗)=0, i=1,2,...,k(20)
式 (16) 表示可微;特别指出,式 (17) 称为 KKT 的对偶互补条件。由此条件可知:若 α∗i>0,则 ci(x∗)=0。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)