数值优化(Numerical Optimization)学习系列-带约束最优化(Constrained Optimization)
2015-12-27 18:53
706 查看
概述
带约束的最优化问题是区别于无约束最优化问题的,另外一大类最优化问题。在实际中也经常遇到,本节主要介绍了带约束最优化问题的相关理论以及最优解满足的必要条件。1. 带约束最优化问题概述
2. 带约束最优化问题解的必要条件示例
3. 最优解满足的一阶和二阶必要条件
4. 对偶
5. 总结
带约束最优化问题
数学形式为min f(x)st. ci(x)=0,i∈Eci(x)≥0,i∈Imin \ f(x) \\ st. \ c_i(x)=0,\; i \in \mathcal E \\ c_i(x) \ge 0, \; i \in \mathcal I其中I和E\mathcal I 和 \mathcal E都是指示集合分别表示不等式约束和等式约束。0.不同书籍上对于不等式约束可能会表示为小于等于号,其实原理都一致。
1.可行解集合定义为Ω=(x|ci(x)=0,i∈E;ci(x)≥0,i∈I)\Omega=(x| c_i(x)=0,i \in \mathcal E ;c_i(x) \ge 0, i \in \mathcal I)
2.几个概念,局部解、严格局部解和独立局部解。
3.平滑的约束不代表解的可行域是平滑的;另外很多不平滑的无约束问题可以转换为哎约束的问题。
4. 激活集合A(x)的定义A(x)=E∪(i∈I|ci(x)=0)\mathcal A(x)=\mathcal E \cup (i \in \mathcal I | c_i(x)=0),激活集合是指满足等式约束和不等式约束中等号的解。
带约束问题解性质示例
等式约束
例子:minx1+x2st.x21+x22−2=0min \; x_1+x_2 \; \; st. \; x_1^2+x_2^2-2=0可行解集合如下图所示,即在圆边上的点。从图中可以看出,最优解的∇c1(x∗)\nabla c_1(x^*)和∇f(x∗)\nabla f(x^*)是平行的,即∇f(x∗)=λ∗∇c1(x∗)\nabla f(x^*)=\lambda^* \nabla c_1(x^*)。
下面简单证明该条件是必要的,主要思路采用反证法。
分别对约束和目标函数在某可行点x出进行一阶近似泰勒展开,结果如下
约束展开形式,c1(x+s)=c1(x)+∇c1(x)Ts=0c_1(x+s)=c_1(x)+\nabla c_1(x)^T s=0,由于需要满足等式约束,所以下一步搜索步长需要满足:∇c1(x)Ts=0\nabla c_1(x)^T s=0
目标函数展开形式,f(x+s)=f(x)+∇f(x)Tsf(x+s)=f(x)+\nabla f(x)^Ts,由于下一搜索方向需要满足函数值递减,所以下一步搜索步长需要满足:∇f(x)Ts<0\nabla f(x)^Ts < 0
现在假设搜索方向归一化后表示为d=s/||s||d=s/||s||,则d应该满足∇c1(x)Td=0和∇f(x)Td<0\nabla c_1(x)^T d=0和\nabla f(x)^T d < 0
采用反正法,如果∇c1(x)和∇f(x)\nabla c_1(x)和\nabla f(x)不平行,则总是可以找到某个搜索步长d=(∇c1(x)∇c1(x)T||c1(x)||2−I)∇f(x)d=(\frac{\nabla c_1(x)\nabla c_1(x)^T}{||c_1(x)||^2}- \mathcal I)\nabla f(x)满足需求,很容易验证d满足该约束。
因此结论得证。
下面看一下,通过引入拉格朗日函数如何表示该结论。
该问题的拉格朗日函数为L(x,λ1)=f(x)−λ1c1(x)\mathcal L(x, \lambda_1)=f(x)-\lambda_1c_1(x)
对该问题求最优解有∇xL=∇f(x)−λ1∇c1(x)=0\nabla_x\mathcal L=\nabla f(x)-\lambda_1\nabla c_1(x)=0
拉格朗日因子λ\lambda不能保证该问题是最优解时的唯一性。
不等式约束
示例minx1+x2;st.2−x21−x22≥0min \; x_1+x_2 ;\; \; st. \; 2-x_1^2-x_2^2\ge 0最优解图示如下,可行区域在圆内包括边缘
该问题的最优解性质和拉格朗日因子有很大关系,下面也是通过反正法指明需要满足的一些约束条件。
根据泰勒展开公式可以知道,搜索方向需要满足一下条件:
c1(x+s)=c1(x)+∇c1(x)Ts≥0c_1(x+s)=c_1(x)+\nabla c_1(x)^T s \ge 0
∇f(x)Ts<0\nabla f(x)^Ts < 0
针对第一个不等式需要分情况讨论
第一种情况,当前可行解严格满足不等式约束,即c1(x)>0c_1(x) > 0,则有
下一个搜索步长只要尽可能短就能满足c1(x+s)≥0c_1(x+s) \ge 0,因此只要s满足第二个约束条件就行,即选择s=−α∇f(x)s=-\alpha \nabla f(x)
只要沿着负梯度方向总是可以找到某个下降方向,如果当前点是最优解除非∇f(x)=0\nabla f(x)=0
第二种情况,当前可行解满足等式约束,即c1(x)=0c_1(x) = 0,则有
搜索步长应该满足∇f(x)Ts<0和∇c1(x)Ts≥0\nabla f(x)^Ts < 0 和\nabla c_1(x)^T s \ge 0
根据不等式可以看到s应该和∇f(x)\nabla f(x)夹角大于180度,同时和∇c1(x)夹角小于等180度\nabla c_1(x)夹角小于等180度。第一个定义了一个半开区间,第二个定义了半闭区间,可行步长是他们的交集,图示如下
如果∇f(x)=λ∇c1(x), λ≥0\nabla f(x)=\lambda \nabla c_1(x),\ \lambda \ge 0,此时当前点是最优解。
通过引入拉格朗日函数,综合表示上述两种情况
拉格朗日函数表示为:L(x,λ1)=f(x)−λ1c1(x)\mathcal L(x, \lambda_1)=f(x)-\lambda_1c_1(x)
最优解形式 ∇xL(x∗,λ∗)=0,andlambda≥0\nabla_x \mathcal L(x^*, \lambda^*)=0, and \\lambda \ge 0
除此之外需要满足一个补充条件,即λ∗c1(x∗)=0\lambda^* c_1(x^*)=0
补充条件解释如下,由于要满足∇f(x)−λ∇c1(x)=0\nabla f(x)-\lambda \nabla c_1(x)=0.当λ=0\lambda=0时,此时有∇f(x)=0\nabla f(x)=0对应于第一种情况。当λ≠0\lambda\ne 0时,此时有∇f(x)=λ∇c1(x)\nabla f(x)=\lambda \nabla c_1(x)对应于第二种情况
其他
前面两个例子只是以一个约束进行了举例,当有多个约束时上述必要条件同样满足。一阶和二阶必要条件
概念
1.在上面的例子中,仅仅对目标函数和约束函数进行泰勒一阶展开,即对进行了线性近似,在此条件下2. 约束规格(Constraint qualification)保证在最优解x∗x^*附近约束集合和线性近似集合是类似的。
3.LICQ(Linear independence CQ)表达如下{∇ci(x) ,i∈A(x)}\{\nabla c_i(x)\ ,i \in \mathcal A(x) \}是线性独立的。即激活集合的一阶梯度是线性独立的。
一阶条件
对于原始问题min f(x)st. ci(x)=0,i∈Eci(x)≥0,i∈Imin \ f(x) \\ st. \ c_i(x)=0,\; i \in \mathcal E \\ c_i(x) \ge 0, \; i \in \mathcal I对应的拉格朗日函数为L(x,λ)=f(x)−∑i∈I∪E(λici(x))\mathcal L(x, \lambda)=f(x)-\sum_{i \in \mathcal I \cup \mathcal E}(\lambda_i c_i(x))一阶条件表示如下
前提假设目标函数f和约束函数都是连续可导的,并且LICQ在局部最优解x∗x^*满足,则x∗x^*需要满足如下条件,其中λ∗\lambda^*是最优的拉格朗日因子。
1. ∇xL(x∗,λ∗)=0\nabla_x \mathcal L(x^*, \lambda^*) = 0
2. ci(x∗)=0, i∈Ec_i(x^*) = 0, \ \ \ i \in \mathcal E
3. ci(x∗)≥0, i∈Ic_i(x^*) \ge 0, \ \ \ i \in \mathcal I
4. λi≥0, i∈I\lambda_i \ge 0, \ \ \ i \in \mathcal I
5. λici(x∗)=0, i∈I∪E\lambda_i c_i(x^*) = 0, \ \ \ i \in \mathcal I \cup \mathcal E
以上条件也称之为KKT条件,其中最后一条也称之为补充条件。
二阶必要条件
前提假设目标函数f和约束函数都是连续可导的,并且LICQ在局部最优解x∗x^*满足,则x∗x^*需要满足如下条件,其中λ∗\lambda^*是最优的拉格朗日因子1. wT∇2xxL(x∗,λ∗)w≥0,w∈C(x∗,λ∗)w^T \nabla_{xx}^2 \mathcal L(x^*,\lambda^*)w \ge 0, w \in \mathcal C(x^*, \lambda^*)
即需要在一定范围内保证正定,和无约束问题类似。
证明
略。对偶(Duality)
原始问题的对偶问题有很多很好的性质,很多问题都会转换为分析其对偶问题。同时对偶问题的解释原始解的下界。拉格朗日函数
本节主要针对不等式约束的最优问题进行讨论,数学形式表达为minf(x) s.t.ci(x)≥0, i=1...mminf(x) \ \ s.t. c_i(x) \ge 0, \ i=1...m对应的拉格朗日函数为L(x,λ)=f(x)−λTc(x), λi≥0\mathcal L(x,\lambda)=f(x)-\lambda^T c(x),\ \ \lambda_i \ge 0
本节主要针对该拉格朗日函数和因子进行相关讨论。
原始问题和对偶问题
原始问题:1.原始问题可以表达为minx maxλL(x,λ) \min \limits_{x} \ \max \limits_{\lambda} \mathcal L(x,\lambda),由于先对λ\lambda求最大值结果肯定为f(x),在求最小值就是目标问题。
对偶问题
对偶函数 q(λ)=infxL(x,λ)q(\lambda) = \inf_x \mathcal L(x,\lambda),即对拉格朗日函数求下界,很多情况下对偶函数都是无下界的,因此定义对偶函数的定义域为D={λ|q≥−∞}\mathcal D=\{ \lambda | q \ge -\infty \}
求解对偶函数的下界,相当于求解拉格朗日函数的最优解,是一个无约束的最优化问题,如果目标函数和约束都是凸函数则L(x,λ)\mathcal L(x, \lambda)也是凸函数,此时局部最优也是全局最优解。
对偶问题定义为maxλq(λ),s.t. λ≥0\max \limits_{\lambda} q(\lambda), s.t. \ \ \lambda \ge 0,对偶问题也是一个约束最优化问题。
对偶问题是求解拉格朗日因子的最优化问题,而原始问题的解x是关于λ\lambda的某个表达式。
性质
性质1 :对偶函数是凹函数病症定义域是凸集。证明思路就是定义。
性质2:弱对偶性,对于任意可行解 x¯\bar x和任意λ¯≥0,有q(λ¯)≤f(x¯)\bar \lambda \ge 0,有q(\bar \lambda) \le f(\bar x)
证明很简单,q(λ¯)=inff(x)−λ¯c(x)≤f(x¯)−λ¯c(x¯)≥f(x¯)q(\bar \lambda)=\inf f(x)-\bar \lambda c_(x)\le f(\bar x)-\bar \lambda c_(\bar x) \ge f(\bar x)
即对偶问题是原始问题的下界,最大化对偶问题就会解决原始问题的最优解。其实这是一个普遍成立的条件minxmaxyθ(x)≥maxyminxθ(x)\min \limits_{x} \max \limits_{y} \theta(x) \ge \max \limits_{y} \min \limits_{x}
\theta(x)即最大值中的最小值也会大于等于最小值中的最大值。
性质3:强对偶性
1. 原始问题和对偶问题的差值也称之为对偶间隙。
2. 鞍点定义为L(x∗,λ)≤L(x∗,λ∗)≤L(x,λ∗)\mathcal L(x^*, \lambda) \le \mathcal L(x^*, \lambda^*) \le \mathcal L(x, \lambda^*)
3. 如果鞍点分别是原始问题的最优解并且对偶间隙问题0,则强对偶
4. 线性规划问题和线性约束的凸规划问题都满足强对偶,有些非凸优化问题也会满足强对偶。
性质4:根据KKT条件,该问题的KKT条件为
1. ∇f(x¯)−∇c(x¯)λ¯=0\nabla f(\bar x) -\nabla c(\bar x) \bar \lambda = 0
2. c(x¯)≥0c(\bar x) \ge 0
3. λ¯≥0\bar \lambda \ge 0
4. λ¯c(x¯)=0, i=1...m\bar \lambda c(\bar x) = 0, \ \ i=1...m
性质5:假设目标函数和约束函数都是可约的,则有任意满足KKT条件的(x¯,λ¯)(\bar x, \bar \lambda)也是对偶问题的解。
证明
由于(x¯,λ¯)(\bar x, \bar \lambda)满足KKT条件,则有
L(x,λ¯)≥L(x¯,λ¯)+∇xL(x¯,λ¯)T(x−x¯)=L(x¯,λ¯)\mathcal L(x, \bar \lambda) \ge \mathcal L(\bar x, \bar \lambda) +\nabla_x \mathcal L(\bar x, \bar \lambda)^T(x-\bar x) =\mathcal L(\bar x, \bar \lambda)
由于L是凸函数,根据泰勒公司展开会满足上述不等式,根据KKT的第一个条件得到上述等式。
q(λ¯)=infxL(x,λ¯)=L(x¯,λ¯)=f(x¯)−λ¯Tc(x¯)=f(x¯)q(\bar \lambda)=\inf \limits_x \mathcal L(x, \bar \lambda)=\mathcal L(\bar x, \bar \lambda)=f(\bar x)-\bar \lambda ^Tc(\bar x)=f(\bar x)
infxL(x,λ¯)=L(x¯,λ¯)\inf \limits_x \mathcal L(x, \bar \lambda)=\mathcal L(\bar x, \bar \lambda)即在已知λ=λ¯\lambda=\bar \lambda的情况下求解最优解
f(x¯)−λ¯Tc(x¯)=f(x¯)f(\bar x)-\bar \lambda ^Tc(\bar x)=f(\bar x)根据KKT的补充条件得到。
由于q(λ)≤f(x¯)又q(λ¯)=f(x¯)q(\lambda) \le f(\bar x)又q(\bar \lambda) = f(\bar x),因此λ¯\bar \lambda是对偶问题的解。
性质6:如果目标函数和约束函数都是凸函数并且可导,假设x¯\bar x是原始问题的最优解并且LICQ满足。假设λ^\hat \lambda是对偶问题的最优解并且最优λ\lambda对应的x为x^\hat x,即infxL(x,λ^),的最优解为x^,并且L(x,λ^)是一个严格凸函数inf_x \mathcal L(x, \hat \lambda),的最优解为 \hat x,并且\mathcal L(x, \hat \lambda)是一个严格凸函数,则有x¯=x^\bar x=\hat x
即原始问题和对偶问题最优解相同。对应于强对偶条件。
证明略。
性质7:Wolfe 对偶 maxx,λL(x,λ)s.t.∇xL(x,λ)=0,λ≥0\max \limits_{x, \lambda} \mathcal L(x, \lambda) \\ s.t. \nabla_x \mathcal L(x,\lambda)=0, \lambda \ge 0
又转换为了带有等式和不等式约束的最优化问题。
其实就是将求解infxL(x,λ)inf_x \mathcal L(x, \lambda)的步骤放入约束中,即∇xL(x,λ)=0\nabla_x L(x, \lambda)=0
总结
该小结需要了解一下知识点:1. 带约束问题的一般形式
2. 带约束最优化问题解的一阶和二阶必要条件,并且能够通过简单例子进行解释。
3. 对偶问题和原始问题关系以及相关性质
相关文章推荐
- 数值优化(Numerical Optimization)学习系列-大规模无约束最优化(Large-Scale Unconstrained Optimization)
- 浅析pthread_cond_wait
- pthread_cond_signal和pthread_cond_wait简介
- AIDL服务(跨进程访问)
- OC下retain copy nomatic等属性的解析
- 23种设计模式(22)_行为型_责任链模式(Chain of Responsibility Pattern)
- CommunicationsException: Communications link failure
- 【leetcode】217. Contains Duplicate
- vim-airline的theme
- 3+1个大公司开源的人工智能合集
- codeforces C. Sorting Railway Cars 贪心
- 自动化管理工具Saltstack之Grains篇(4)
- 本地socket unix domain socket
- LeetCode --- 70. Climbing Stairs
- 【杭电】[2674]N!Again
- 通过aidl实现传送远程服务中的对象
- adb install INSTALL_FAILED_ALREADY_EXISTS
- CMake入门教程 http://blog.csdn.net/fan_hai_ping/article/details/42524205
- cmake 学习笔记(一)http://blog.csdn.net/dbzhang800/article/details/6314073
- [转]go中的main函数和init函数