拉格朗日乘数法 和 KTT条件
预备知识
令 \(X\) 表示一个变量组(向量) \((x_1, x_2, \cdots, x_n)\)
考虑一个处处可导的函数 \(f(X)\), 为了方便描述, 这里以二元函数为例
对于微分, 考虑在初始点处固定x移动y产生的变化量, 是和先将x移动dx,然后固定x移动y产生的变化量是相等的
那么有全微分公式 \(df = \frac{\partial f}{\partial x}dx + \frac{\partial f}{\partial y}dy\)
定义 \(\nabla f(x, y)\) 为点 \((x, y)\) 上的梯度方向向量(平面上的这些向量构成一个向量场)
梯度方向向量指向让\(df\)最大的方向. 也即使 \((\frac{\partial f}{\partial x},\frac{\partial f}{\partial y})\cdot(dx, dy)\) 最大的 \((dx, dy)\)
要投影最长, 同向自然最优, 因此偏导组成的向量\((\frac{\partial f}{\partial x},\frac{\partial f}{\partial y})\)就是梯度方向向量
同理考虑 \(df=0\) 的方向(等高线), 投影为0, 这说明等高线的方向与梯度的方向垂直
高维的情况同理
拉格朗日乘数法
考虑这么一个问题:
\(~~\max f(X)\)
\(s.t.~~g_k(X) = 0, \forall k \in [1,m]\)
考虑 \(f(X)\) 在什么时候取得局部极大值:
考虑往某个方向微移, 若满足这样移动不影响任何一个 \(dg\), 那么必须要有 \(df=0\)
否则如果存在 \(df\neq 0\) , 必然 \(<0, >0\) 都会出现 (考虑反向微移), 就不是局部极值点了
考虑把 \(dx_1, dx_2,\cdots dx_n\) 这种东西看作变量
把 \(\nabla g_1, \nabla g_2, \cdots \nabla g_m\) 以及 \(\nabla f\) 都横着放在矩阵里看作若干个方程
之前的条件就等价于: 前 \(m\) 条方程蕴含了最后一条方程
也即 \(\nabla f\) 可以被 \(\nabla g_1\cdots \nabla g_m\) 线性表示
令\(L(X,\Lambda) = f(X) + \sum_{k=1}^m \lambda_k g_k(X)\)
我们只需求解 \(\nabla L(X,\Lambda) = 0\) 即可
这样我们对 \(n\) 个变量分别求偏导即可得到 \(n\) 个方程
加上 \(g\) 的 \(m\) 个方程 (恰好是对\(\lambda\)分别求偏导)
总共 \(n+m\) 个方程.
KKT条件
考虑这么一个问题:
\(~~\max f(X)\)
\(s.t.~~h_k(X)\ge 0, \forall k \in [1, m]\)
令 \(L(X, \Lambda) = f(x) + \sum_{k=1}^m \lambda_k h_k(X), \lambda_k \ge 0\)
因为\(\lambda\ge 0, h\ge 0\), 所以 \(f(X) = \min_{\Lambda\ge 0} L(X,\Lambda)\)
原问题等价于 \(\max_X \min_{\Lambda\ge 0} L(X,\Lambda)\)
考虑对偶问题 \(\min_{\Lambda\ge 0}\max_X L(X, \Lambda)\)
显然\(L(X, \Lambda)\ge f(X)\), 则有 \(\max_X L(X, \Lambda) \ge \max f(X)\)
对偶问题对所有的这些值取 \(\min\), 仍然是 \(\ge \max f(X)\)
设原问题极值点在 \(X^{*}\), 对偶问题极值点在 \(\Lambda^{*}\)
则有 \(\max_X L(X, \Lambda^{*}) \ge f(X^{*}) + \sum_{k=1}^m \lambda^{*}_k h_k(X) \ge f(X^{*})\)
假设强对偶性满足, 上面的不等号都要变成等号
限制了 : \(\lambda^{*}_k h_k(X) = 0\) 以及 \(\nabla L(X^{*}, \Lambda^{*})=0\)
结论好记: KTT条件只比拉格朗日乘数多了两个限制, \(\lambda_k h_k(X) = 0, \lambda_k\ge 0\)
在哪些问题上满足强对偶性, 详见wiki
自己姿势水平不够, 这个坑可能不那么快能填上了
另外, 考虑如果在原问题加上等式限制, 就再补上拉格朗日乘数即可, 不难发现, 不影响这里的证明
拉格朗日乘数法 和 KTT条件的更多相关文章
- [Math & Algorithm] 拉格朗日乘数法
拉格朗日乘数法(Lagrange Multiplier Method)之前听数学老师授课的时候就是一知半解,现在越发感觉拉格朗日乘数法应用的广泛性,所以特意抽时间学习了麻省理工学院的在线数学课程.新学 ...
- 《University Calculus》-chaper12-多元函数-拉格朗日乘数法
求解条件极值的方法:拉格朗日乘数法 基于对多元函数极值方法的了解,再具体的问题中我们发现这样一个问题,在求解f(x,y,z)的极值的时候,我们需要极值点落在g(x,y,z)上这种对极值点有约束条件,通 ...
- CodeForces - 813C The Tag Game(拉格朗日乘数法,限制条件求最值)
[传送门]http://codeforces.com/problemset/problem/813/C [题意]给定整数a,b,c,s,求使得 xa yb zc值最大的实数 x,y,z , 其中x ...
- bzoj2876 [NOI2012]骑行川藏(拉格朗日乘数法)
题目描述 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行 ...
- ML(附录4)——拉格朗日乘数法
基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数 f(x1,x2,...) 在 g(x1,x2,...)=C 的约束条件下的极值的方法.其主要思想是引入一个新的参数 λ (即拉格朗日乘子),将 ...
- CodeChef TWOROADS(计算几何+拉格朗日乘数法)
题面 传送门 简要题意:给出\(n\)个点,请求出两条直线,并最小化每个点到离它最近的那条直线的距离的平方和,\(n\leq 100\) orz Shinbokuow 前置芝士 给出\(n\)个点,请 ...
- BZOJ3775: 点和直线(计算几何+拉格朗日乘数法)
题面 传送门 题解 劲啊-- 没有和\(Claris\)一样推,用了类似于\(Shinbokuow\)推已知点求最短直线的方法,结果\(WA\)了好几个小时,拿\(Claris\)代码拍了几个小时都没 ...
- BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】
题目链接 BZOJ 题解 拉格朗日乘数法 拉格朗日乘数法用以求多元函数在约束下的极值 我们设多元函数\(f(x_1,x_2,x_3,\dots,x_n)\) 以及限制\(g(x_1,x_2,x_3,\ ...
- Wannafly模拟赛2 B river(拉格朗日乘数法)
题目 https://www.nowcoder.com/acm/contest/4/B题意 有n条南北流向的河并列排着,水流速度是v,现在你需要从西岸游到东岸,总共T个时间,你的游泳速度是u,问东岸的 ...
随机推荐
- C#中Equals和= =(等于号)的比较)(转载)
C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一. 值类型的比较 对于值类型来说 ...
- delphi 数据库中Connection与Query连接数量问题思考
今天闲着没事,测试了一下Connection连接MSSQL,可以承受多少连接. 1.看看ADOConnection的连接数:写了一个代码,动态创建,测试了10000个连接,花了大约5~10分钟创 ...
- git 本地分支与远程分支 新建/删除/合并
github上已经有master分支 和dev分支 在本地 git checkout -b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 在本地 ...
- 2007: [Noi2010]海拔
2007: [Noi2010]海拔 https://www.lydsy.com/JudgeOnline/problem.php?id=2007 分析: 平面图最小割. S在左下,T在右上,从S到T的一 ...
- HI2115软件开发板V150版本AT+NSOST指令
1. 在HI2115里面,由于内存空间比较大,所以支持UDP发送指令AT+NSOST的分包 ret = sendto(socket, seq_num, data_string, length, msg ...
- SXOI2018游记
day0 动身去太原.太原五中虽然挺小的但是很好看啊qwq(进门口一个"通天堂"(逃 试机.似乎看到了__stdcall!!然而没敢去认orz.linux选手似乎是9个.准考证(一 ...
- Entity Framework + WCF 远程调用出错
在使用Entity Framework中使用WCF,在程序中调用服务一直报错,我一直以为是WCF的哪个地方的配置有问题,找来找去,一直没有解决. 最后在网上找到一篇文章 ...
- PHP 头像上传
嘻嘻,自从圣诞节过后,就一直懒散,这几天也因为是太过于繁忙的原因,感觉好久都没有出来冒冒泡,诶... 为了生活一直在奋斗,作为一名前端开发工程师,我现在越来越迷茫了,都不知道现在自己到底算什么了? 会 ...
- MySQL☞where与like
1.无条件查询语句(查询表中所有数据) select * from 表名 2.查询某些列的数据(指定列) select 列名1,列名2,列名3 from 表名 3.条件查询语句 select 列名1, ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(三)
T1 取球游戏 问题描述 现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别.从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个 ...