Slater条件理解和证明
考虑凸优化问题:
minf0(x)s.t.fi(x)≤0,i=1,...,kgi(x)≤0,i=1,...,m\begin{aligned} &\quad \min f_0(x) &\,\\ &\quad s.t.\,\,\,\, f_i(x) \le 0,i=1,...,k\\ &\qquad \,\,\,\,\,\, g_i(x) \le 0,i=1,...,m \end{aligned}minf0(x)s.t.fi(x)≤0,i=1,...,kgi(x)≤0,i=1,...,m
其中fif_ifi是凸函数,ggg是仿射函数(等式仿射约束可以转化为两个仿射不等式约束)
Slater条件:如果存在一个x~∈relintD(定义域相对内部)\tilde{x} \in relint\, \mathcal{D}(定义域相对内部)x~∈relintD(定义域相对内部),使得
fi(x)<0,i=1,⋯k,gj(x)≤0,j=1,⋯,mf_i(x) <0,i=1,\cdots k,g_j(x)\le 0,j=1,\cdots,mfi(x)<0,i=1,⋯k,gj(x)≤0,j=1,⋯,m
则强对偶成立
先贴一个Stephen Boyd凸优化上的简化证明
这个证明做了如下的简化:第一,优化目标没有仿射不等式约束;第二,假设内部非空,而
Slater条件只假设点在相对内部中;第三,假设仿射等式约束中AAA行满秩
第三个简化是无关紧要的,只不过做了这个假设后证明简单
AAA行满秩的假设可以去掉,只需要证明如果不是行满秩(存在冗余等式),那么可以通过一个线性变换,使得约束行满秩,且经过变换之后Lagrange函数的最优值不变,即强对偶性不变
而第一和第二是属于条件的变化,放宽了条件,使得它适用范围更窄
如果不存在仿射约束,有一个简单的证明:见简化版Slater条件证明
如果不存在仿射不等式约束,相对内点这个条件可以去掉
相对内点这个假设的作用在于,仿射函数hhh如果在一个凸集上C的一个相对内点的值为0,那么它在这个凸集上的值要么为恒值0,要么有正也有负
证:设f(a)=0f(a)= 0f(a)=0,f(b)>0f(b) > 0f(b)>0,(<0同理)
则aaa存在一个邻域UUU,使得V=U∩CV=U\cap CV=U∩C是吸收的,
当r>0r>0r>0足够大的时候,a+b−ar∈Va+\frac{b-a}{r} \in Va+rb−a∈V,这时候a−b−ar∈Va-\frac{b-a}{r}\in Va−rb−a∈V,
f(a−b−ar)=−1rf(b)<0f(a-\frac{b-a}{r}) = -\frac{1}{r}f(b)<0f(a−rb−a)=−r1f(b)<0
证毕
要完整的证明,但靠书上的分离定理是不够的,需要一个加强版的分离定理
正常分离定理:设A,BA,BA,B为两个非空凸集,AAA为多面体(多个半平面的交),则存在一个超平面HHH分离A,BA,BA,B,且HHH不包含BBB的充分必要条件是A∩relintB=∅A \cap relint \,B=\varnothingA∩relintB=∅
利用这个定理可以证明
利用上面的定理就可以证明Slater条件
考虑最前面的优化问题,定义α\alphaα为其最优值,则由α\alphaα的定义,不等式组
f0(x)−α<0,fi(x)<0,gj(x)≤0f_0(x) - \alpha < 0,f_i(x)<0,g_j(x)\le0f0(x)−α<0,fi(x)<0,gj(x)≤0
无解
由上面定理知道,存在非负实数λ0,⋯,λk,ν1,⋯,νm\lambda_0,\cdots,\lambda_k,\nu_1,\cdots,\nu_mλ0,⋯,λk,ν1,⋯,νm且某个λi>0,\lambda_i>0,λi>0,使得
λ0(f0(x)−α)+⋯+λkfk(x)+ν1g1(x)+⋯νmgm(x)≥0,∀x∈D(∗)\lambda_0(f_0(x)-\alpha)+\cdots+\lambda_kf_k(x)+\nu_1 g_1(x) +\cdots \nu_mg_m(x) \ge 0,\forall x\in \mathcal{D} \quad (*)λ0(f0(x)−α)+⋯+λkfk(x)+ν1g1(x)+⋯νmgm(x)≥0,∀x∈D(∗)
首先λ0>0\lambda_0>0λ0>0,否则的话,设其为0,则某个λt>0,t>0\lambda_t >0,t>0λt>0,t>0,
由条件存在一个x~∈reintD\tilde{x} \in reint \, \mathcal{D}x~∈reintD(这里相对内部不是必要的,相对内部在上面的不等式的证明中才是必要的 )使得fi<0,gi≤0f_i<0,g_i\le0fi<0,gi≤0得到
λ1f1(x~)+⋯+λkfk(x~)+ν1g1(x~)+⋯νmgm(x~)=λ1f1(x~)+⋯+λkfk(x~)<0\lambda_1 f_1(\tilde{x} )+\cdots+\lambda_kf_k(\tilde{x} )+\nu_1 g_1(\tilde{x} ) +\cdots \nu_mg_m(\tilde{x} ) = \lambda_1 f_1(\tilde{x} )+\cdots+\lambda_kf_k(\tilde{x} ) < 0λ1f1(x~)+⋯+λkfk(x~)+ν1g1(x~)+⋯νmgm(x~)=λ1f1(x~)+⋯+λkfk(x~)<0
产生矛盾
所以λ0>0\lambda_0 > 0λ0>0,不妨设其为1,(两边除以λ0\lambda_0λ0),设
h(x)=f0(x)+⋯+λkfk(x)+ν1g1(x)+⋯νmgm(x)h(x)=f_0(x)+\cdots+\lambda_kf_k(x)+\nu_1 g_1(x) +\cdots \nu_mg_m(x) h(x)=f0(x)+⋯+λkfk(x)+ν1g1(x)+⋯νmgm(x)
由上知h(x)≥α,∀x∈Dh(x) \ge \alpha,\forall x\in \mathcal{D}h(x)≥α,∀x∈D,故
infx∈Dh(x)≥α\inf_{x\in \mathcal{D}} h(x)\ge \alphax∈Dinfh(x)≥α
而对于任意可行解,有h(x)≤f0(x)h(x) \le f_0(x)h(x)≤f0(x),因此
infx∈Dh(x)=α\inf_{x\in \mathcal{D}} h(x) = \alphax∈Dinfh(x)=α
即Lagrange 函数g(λ,ν)g(\lambda,\nu)g(λ,ν)在λ1,⋯λk,ν1,⋯,νm\lambda_1,\cdots \lambda_k,\nu_1,\cdots,\nu_mλ1,⋯λk,ν1,⋯,νm点取到最大值,且等于原问题最小值,也就是强对偶成立
证毕
参考:Convex Analysis
Slater条件理解和证明相关推荐
- Conditional Guassian Distribution 条件高斯分布及其证明
Conditional Guassian Distribution 条件高斯分布及其证明 1. 写在前面 2. 高斯分布 2.1 一元高斯分布 2.2 多元高斯分布 3. 条件高斯分布 3.1 准备工 ...
- lotus - 深入理解时空证明的 golang 实现部分(PoSt)
lotus - 深入理解时空证明的 golang 实现部分(PoSt) 参考文章:https://www.chainnews.com/articles/836343087401.htm lotus 的 ...
- paxos协议的理解及证明推导
文章目录 导读 历史 解决的问题 理论分析 只有一个Acceptor 两个Acceptor 结果到原因的推进 如何预测未来 理论到工程的缺陷 根本问题在哪里 算法提出 FAQ 导读 paxos算法为什 ...
- 【数学】拉格朗日乘子法(Lagrange Multiplier) 和KKT条件理解
转载 目录 动机 简介 一. 拉格朗日乘子法(Lagrange Multiplier) 和KKT条件 (a) 拉格朗日乘子法(Lagrange Multiplier) (b) KKT条件 二. 为什么 ...
- prim算法直观理解与证明
今天刚学完最小生成树,乘着知识还在脑袋里热乎着,便写下来记录下,也便日后复习回忆.prim算法是用来求解最小生成树的. 总的来说算法步骤就是: 1.将距离集合(即最小生成树)的距离最近的点加入到集合中 ...
- 从小故事带你理解零知识证明 | 区块链一千零一问
开胃小故事 阿里巴巴证明 阿里巴巴被强盗抓住,为了保命,他需要向强盗证明自己拥有打开石门的密码,同时又不能把密码告诉强盗.他想出一个解决办法,先让强盗离开自己一箭之地,距离足够远让强盗无法听到口令,足 ...
- Step1. 理解零知识证明算法之Zk-stark
Concept:zk-stark vs zk-snark 谈到ZKP算法,大伙可能听过一些,比如zk-snark,zk-stark, bulletproof, aztec, plonk等等.今天,咱就 ...
- 拉格朗日函数、拉格朗日对偶问题、KKT条件个人理解
最近学习SVM的相关内容时,接触到了拉格朗日函数及其对偶问题,于是就学习了一些相关内容,在此整理总结一下.文章内容为个人理解,如有错误,欢迎指正! 文章目录 1. 引言 1.1 在约束条件下求函数的极 ...
- 一文理解拉格朗日对偶和KKT条件
一. 最优化问题求解 1. 等式约束的极值求法 $$ \begin{gather*} \underset{t}{min} f(t) \; s.t.\; h_i(t)=0,i=1,\cdots,p \e ...
最新文章
- C++ queue 详细介绍
- flux读取不到数据_【Java】spring-webflux两种开发模式,获取不到使用ajax的post提交的数据?...
- 赵方庆 北京生科院Computational strategies in exploring circular RNAs 探索环状rna的计算策略
- python画图简单代码-简单画图 - python代码库 - 云代码
- Struts2的properties配置文件详解
- linux下 open() write() read() close函数
- php 比较数组中的元素,php – 比较多维数组中的元素
- monkey 运行时间怎么计算_基于STM32F103C8T6工控板利用定时器计算某段代码的运行时间...
- LQ训练营(C++)学习笔记_广度优先搜索
- 微服务跨数据库联合查询_MySQL数据库联合查询
- C++——面向对象设计原则
- Linux和window写python,搭建Python环境(window和linux)
- java通过密钥得到谷歌验证码
- Python巨型文字游戏开发(带源码(1))
- Android6.0之AMS启动App下篇
- ubuntu修改IP后无法正常上网的解决
- python node.js ruby_Python/Ruby/Node.js/Perl - 随笔分类 - bluefrog - 博客园
- Linux:安装ruby
- 基于Linux平台上的外文文献阅读软件—需求分析
- iperf测试工具使用方法
热门文章
- 【资料合集】2017云栖大会·苏州峰会回顾合集:PDF下载
- http端口映射(80 port mapping)
- html列表横向变纵向,word横向表格变竖向 word文档怎么把横向表格变成竖向
- matlab实验答案第三章,matlab第三章答案
- mysql 配置vip_数据库学习之十三:mysql高可用配置
- 8代cpu安装linux系统吗,8代cpu装win7系统及bios设置教程(支持usb驱动)
- 怎么让APP应用的用户体验更流畅
- C++学习(四四二)cmake ninja build.ninja rules.ninja
- c语言宏定义的连接符##和#转字符串
- diy金丝楠木嵌宝耳机