Lagrange乘子法与KTT条件
Lagrange乘子法与KTT条件
Date: 2021.11.20.
参考文献:
https://blog.csdn.net/lijil168/article/details/69395023
文章目录
- Lagrange乘子法与KTT条件
- 引言
- 1.1 无约束优化问题
- 1.2 等式约束条件
- 1.3 不等式约束条件
引言
在求解最优化问题中,拉格朗日乘子法
和KTT(Karush Kuhn Tucker)条件
是两种常用的方法。在有等式约束的条件下使用前者,有不等式约束情况下使用后者。
1.1 无约束优化问题
这是最简单的情况,解决方法为对函数求导,令求导函数等于0的点可能是极值点,将结果代回原函数进行验证即可。
1.2 等式约束条件
设目标函数为f(x)f(x)f(x),约束条件为hk(x)h_k(x)hk(x),则问题:
minf(x)s.t.hk(x)=0k=1,2,⋯,l\min f(x)\\ s.t. \quad h_k(x)=0 \quad k=1,2,\cdots,l minf(x)s.t.hk(x)=0k=1,2,⋯,l
的解决方法为消元法
或者拉格朗日乘子法
。消元法较为简单,故不再赘述,此处主要引入拉格朗日乘子法。
首先定义拉格朗日函数F(x)F(x)F(x):
F(x,λ)=f(x)+∑k=1lλkhk(x)F(x,\lambda)=f(x)+\sum_{k=1}^l\lambda_kh_k(x) F(x,λ)=f(x)+k=1∑lλkhk(x)
其中λk\lambda_kλk是各个约束条件的待定系数。
然后求解偏导方程:
∂F∂x=0i=1,⋯,n∂F∂λk=0k=1,⋯,l\frac{\partial F}{\partial x}=0 \quad i=1,\cdots,n \\ \frac{\partial F}{\partial \lambda_k}=0 \quad k=1,\cdots,l ∂x∂F=0i=1,⋯,n∂λk∂F=0k=1,⋯,l
如果有lll个约束条件,就应该有l+1l+1l+1个方程,求出方程组的解得出可行解,代回原方程验证即得最优解。
1.3 不等式约束条件
设目标函数为f(x)f(x)f(x),不等式约束为g(x)g(x)g(x),有的书上还会加上等式约束h(x)h(x)h(x),则约束优化问题描述如下:
minf(x)s.t.hj(x)=0j=1,⋯,pgk(x)≤0k=1,⋯,q\min f(x)\\ s.t. \quad h_j(x)=0 \quad j=1,\cdots,p\\ g_k(x)\leq 0 \quad k=1,\cdots,q minf(x)s.t.hj(x)=0j=1,⋯,pgk(x)≤0k=1,⋯,q
则我们定义上述问题的拉格朗日函数:
L(x,λ,μ)=f(x)+∑j=1pλjhj(x)+∑k=1qμkgk(x)L(x,\lambda, \mu)=f(x)+\sum_{j=1}^p \lambda_jh_j(x)+\sum_{k=1}^q \mu_k g_k(x) L(x,λ,μ)=f(x)+j=1∑pλjhj(x)+k=1∑qμkgk(x)
常用的方法是KKT条件
,
以下是KTT条件的推导过程:
- 证明(KTT条件):
令:
L(x,μ)=f(x)+∑k=1qμkgk(x)L(x, \mu)=f(x)+\sum_{k=1}^q \mu_k g_k(x) L(x,μ)=f(x)+k=1∑qμkgk(x)
其中,μk≥0\mu_k \geq 0μk≥0,gk(x)≤0g_k(x)\leq 0gk(x)≤0.
由于
{μk≥0gk(x)≤0⇒μg(x)≤0(1)\begin{cases} &\mu_k \geq 0\\ &g_k(x)\leq0\\ \end{cases} \Rightarrow \mu g(x)\leq0 \tag{1} {μk≥0gk(x)≤0⇒μg(x)≤0(1)
故
maxμL(x,μ)=f(x)(2)\max_{\mu} L(x,\mu)=f(x) \tag{2} μmaxL(x,μ)=f(x)(2)
因此
minxf(x)=minxmaxμL(x,μ)(3)\min_x f(x)=\min_x \max_{\mu}L(x,\mu) \tag{3} xminf(x)=xminμmaxL(x,μ)(3)
又由(1)(1)(1)式,我们有:
minxμg(x)={0μ=0org(x)=0−∞μ>0andg(x)<0\min_x \mu g(x)= \begin{cases} &0& \mu=0&or&g(x)=0\\ &-\infin & \mu>0 & and & g(x) <0 \end{cases} xminμg(x)={0−∞μ=0μ>0orandg(x)=0g(x)<0
因此:
maxμminxμg(x)=0μ=0org(x)=0\max_{\mu}\min_{x} \mu g(x)=0\\ \mu=0 \quad or \quad g(x)=0 μmaxxminμg(x)=0μ=0org(x)=0
故:
maxμminxL(x,μ)=minxf(x)+maxμminxμg(x)=minxf(x)μ=0org(x)=0(4)\max_{\mu}\min_x L(x,\mu)=\min_x f(x)+\max_{\mu}\min_x \mu g(x) =\min_x f(x)\\ \mu=0 \quad or \quad g(x)=0 \tag{4} μmaxxminL(x,μ)=xminf(x)+μmaxxminμg(x)=xminf(x)μ=0org(x)=0(4)
联合(3),(4)(3),(4)(3),(4)式我们得到:
minxmaxμL(x,μ)=maxμminxL(x,μ)=minxf(x)\min_x \max_{\mu}L(x,\mu)=\max_{\mu}\min_x L(x,\mu)=\min_xf(x) xminμmaxL(x,μ)=μmaxxminL(x,μ)=xminf(x)
我们把minxmaxμL(x,μ)\min_x \max_{\mu}L(x,\mu)minxmaxμL(x,μ)称为原问题,maxμminxL(x,μ)\max_{\mu}\min_x L(x,\mu)maxμminxL(x,μ)称为对偶问题,上式表明当满足一定条件时,原问题、对偶问题的解,以及minxf(x)\min_xf(x)minxf(x)是相同的,且在最优解x∗x^*x∗处μ=0\mu=0μ=0 or g(x∗)=0g(x^*)=0g(x∗)=0,把x∗x^{*}x∗代入(2)(2)(2)得到maxμL(x∗,μ)=f(x∗)\max_{\mu}L(x^*,\mu)=f(x^*)maxμL(x∗,μ)=f(x∗),由(4)(4)(4)得到maxμminxL(x,μ)=minxf(x∗)\max_{\mu}\min_xL(x,\mu)=\min_xf(x^*)maxμminxL(x,μ)=minxf(x∗),所以L(x∗,μ)=minxL(x,μ)L(x^*,\mu)=\min_xL(x,\mu)L(x∗,μ)=minxL(x,μ),这说明x∗x^{*}x∗也是L(x,μ)L(x,\mu)L(x,μ)的极值点,即:
∂L(x,μ)∂x∣x=x∗=0\frac{\partial L(x,\mu)}{\partial x}|_{x=x^*}=0 ∂x∂L(x,μ)∣x=x∗=0
综上讨论,有:
{minxmaxμL(x,μ)=maxμminxL(x,μ)=minxf(x)=f(x∗)μkgk(x∗)≤0∂L(x,μ)∂x∣x=x∗=0\begin{cases} &\min_x \max_{\mu}L(x,\mu)=\max_{\mu}\min_x L(x,\mu)=\min_xf(x)=f(x^*)\\ & \mu_k g_k(x^*)\leq0\\ &\frac{\partial L(x,\mu)}{\partial x}|_{x=x^*}=0 \end{cases} ⎩⎪⎨⎪⎧minxmaxμL(x,μ)=maxμminxL(x,μ)=minxf(x)=f(x∗)μkgk(x∗)≤0∂x∂L(x,μ)∣x=x∗=0
如果我们考虑等式约束:
L(x,λ,μ)=f(x)+∑inλihi(x)+∑k=1qμkgk(x)L(x,\lambda,\mu)=f(x)+\sum_i^n \lambda_ih_i(x)+\sum_{k=1}^q\mu_k g_k(x) L(x,λ,μ)=f(x)+i∑nλihi(x)+k=1∑qμkgk(x)
则有:
{minxmaxμL(x,λ,μ)=maxμminxL(x,λ,μ)=minxf(x)=f(x∗)μkgk(x∗)≤0∂L(x,λ,μ)∂x∣x=x∗=0\begin{cases} &\min_x \max_{\mu}L(x,\lambda,\mu)=\max_{\mu}\min_x L(x,\lambda,\mu)=\min_xf(x)=f(x^*)\\ & \mu_k g_k(x^*)\leq0\\ &\frac{\partial L(x,\lambda,\mu)}{\partial x}|_{x=x^*}=0 \end{cases} ⎩⎪⎨⎪⎧minxmaxμL(x,λ,μ)=maxμminxL(x,λ,μ)=minxf(x)=f(x∗)μkgk(x∗)≤0∂x∂L(x,λ,μ)∣x=x∗=0
Q.E.D.
Lagrange乘子法与KTT条件相关推荐
- 最优化之凸集、凸函数、上确界、Jensen不等式、共轭函数、Fenchel不等式、拉格朗日乘子法、KKT条件
最优化之凸集.凸函数.上确界.Jensen不等式.共轭函数.Fenchel不等式.拉格朗日乘子法.KKT条件.拉格朗日对偶 1.直线的向量表达 1.1 共线定理 对于任意两个向量a⃗,b⃗\vec{a ...
- 拉格朗日乘子法、KKT条件、拉格朗日对偶性
拉格朗日乘子法.KKT条件.拉格朗日对偶性 转载于http://blog.csdn.net/sinat_17496535/article/details/52103852 笔记主要来源于维基百科和&l ...
- 转 机器学习系列 08:深入理解拉格朗日乘子法、KKT 条件和拉格朗日对偶性
深度理解拉格朗日乘子法.KKT条件与线性规划对偶理论的微妙关系 https://blog.csdn.net/benzhujie1245com/article/details/85270058?utm_ ...
- Lagrange乘子法
Lagrange乘子法,参考资料 https://blog.csdn.net/shenxiaolu1984/article/details/55812344 以及西瓜书附录B.1,讲的很详细.
- SVM中拉格朗日乘子法、KKT条件、对偶问题详解
SVM中拉格朗日乘子法.KKT条件.对偶问题详解 创作目的 1.SVM回顾 2.拉格朗日乘子法 3.KKT条件 4.对偶问题 强对偶性证明 总结 创作目的 我是机器学习初学者,目前正在上机器学习课,老 ...
- 一文看懂拉格朗日乘子法、KKT条件和对偶问题
因为想申请 CSDN 博客认证需要一定的粉丝量,而我写了五年博客才 700 多粉丝,本文开启关注才可阅读全文,很抱歉影响您的阅读体验 拉格朗日乘子法是解约束优化问题的常用方法,它和 KKT 条件.Sl ...
- 拉格朗日乘子法与KKT条件
欢迎转载,转载请注明出处:https://blog.csdn.net/qq_41709378/article/details/106599811 --------------------------- ...
- 约束优化方法之拉格朗日乘子法与KKT条件
来源:https://www.cnblogs.com/ooon/p/5721119.html 引言 本篇文章将详解带有约束条件的最优化问题,约束条件分为等式约束与不等式约束,对于等式约束的优化问题,可 ...
- 一文详解从拉格朗日乘子法、KKT条件、对偶上升法到罚函数与增广Lagrangian乘子法再到ADMM算法(交替方向乘子法)
最近看了ADMM算法,发现这个算法需要用到许多不少前备知识,在搜索补齐这些知识的过程中感觉网上的资料与总结在零散的同时又不够清晰,在此本文对这一块的内容进行汇总,同时表达自己的一些理解. 目录 拉格朗 ...
最新文章
- C++接口的定义用一个实例说明 [转]
- mybaits十四:使用if和where标签构建动态sql
- 面试官让我讲下线程的WAITING状态,我笑了
- no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]
- 挤拥城市游戏android,拥挤城市crowdcity
- spring容器_Spring容器文档阅读要点记录
- Python 标准库和第三方库的安装位置、Python 第三方库安装的各种问题及解决
- mariadb修改默认字符集
- GB28181移植总结
- 凸优化第五章对偶 5.3几何解释
- BigGAN、BiGAN、BigBiGAN简单介绍
- vue项目AES密码加密解密
- http协议与tcp协议区别
- 一文看懂推荐系统:排序11:Deep Cross Network(DCN)
- 7-14 然后是几点 (15 分)有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
- 大数据时代:数据收集比数据挖掘更有意义
- linux设置用户密码
- NC14709 奇♂妙拆分
- 关于Axure RP 的授权,我猜你还想知道......
- 想从事人工智能方面,需要自学什么?
热门文章
- CDH安装服务和下载parcels包
- idea中Entity实体中报错:cannot resolve column/table/...解决办法。
- 基于模型的新能源汽车整车热管理系统设计方案
- SX1278设计(硬件部分)
- 关于uIP的移植以及部分特性解析和勘误
- ESP8266使用MQTT接入阿里IoT
- len(lst[0])
- oracle erp fnd api,Sample of API FND_PROFILE (转)
- Android 5.0状态栏通知图标的实现
- 随机生成游戏用户昵称(nodejs版本)(含机器人头像,金币等)