约束规划问题与凸二次规划
让我首先讨论一下形式的约束规划问题:
\begin{split}&\min f(x),&\quad x\in \mathbb{R}^{n} \\ &\text{s. t. }&c_{i}(x)=0,\quad i\in E=\{1,2,\dots, l\}\\ & &c_{i}(x)\leq 0, \quad i\in I=\{l+1,l+2,\dots, l+m\} \end{split}
本文中我们不深究一般约束规划问题的最优性性条件的证明,仅给出部分常用定理。 后续我们也仅针对凸优化问题做详细讨论。
- 基本概念
- 局部解的必要条件
- 一阶必要条件
- 约束限制条件成立的充分条件
- 二阶充分条件
- 凸优化问题
- 二次规划问题
- 求解二次规划问题
- 等式约束二次规划问题的条件
- 有效集法
基本概念
无约束规划问题的讨论详见此文,这里介绍了局部解与全局解得概念。约束规划问题解得概念与之类似,此处省略。但要注意这里存在可行域的问题。记上述约束规划问题的可行域为:
D=\{x | c_{i}(x)=0, i\in E, c_{i}(x)\leq 0, i\in I \}
设 x^\hat{x} 是一般约束问题的可行点,当 i∈Ii\in I 时,对某个约束,若 ci(x^)=0c_{i}(\hat{x})=0,则称 ci(x^)≤0c_{i}(\hat{x})\leq 0 为 x^\hat{x} 处的有效约束(active constraint);若 ci(x^)<0c_{i}(\hat{x}) ,则称 ci(x^)≤0c_{i}(\hat{x})\leq 0 为 x^\hat{x} 处的非有效约束。定义
I(\hat{x})=\{i | c_{i}(\hat{x})=0, i\in I\}为 x^\hat{x} 处的 有效集(active set)。
局部解的必要条件
一阶必要条件
考虑上述约束规划问题,这里我们假设 f(x),ci(x),(i=1,2,…,l+m)f(x), c_{i}(x), (i=1,2,\dots,l+m) 是连续可微函数。由于时间有限,这里对可行点(feasible point)、可行方向(feasible direction)、线性化锥、约束限制条件(constraint qualification)、Farkas引理 等概念、定理不作介绍。我们引进Lagrange函数:
L(x,\lambda)=f(x)+\sum_{i=1}^{l+m}\lambda_{i}c_{i}(x) 定理 1(约束问题局部解的一阶必要条件):
设约束问题中 f(x),ci(x),(i=1,2,…,l+m)f(x), c_{i}(x), (i=1,2,\dots,l+m) 具有连续可微的一阶偏导数,若 x∗x^{*} 是该约束问题的局部解,并且在 x∗x^{*} 处约束限制条件成立 1,则存在 λ∗=(λ∗1,λ∗2,…,λ∗l+m)T\lambda^{*}=(\lambda_{1}^{*}, \lambda_{2}^{*},\dots, \lambda_{l+m}^{*})^{T} 使得:
\nabla_{x}L(x^{*}, \lambda^{*})=\nabla f(x^{*})+\sum_{i=1}^{l+m}\lambda_{i}^{*}\nabla c_{i}(x^{*})=0 其中
\begin{gather} c_{i}(x^{*})=0, i\in E=\{1,2,\dots,l\} \\ c_{i}(x^{*})\leq 0, i\in I=\{l+1,l+2,\dots,l+m\} \\ \lambda_{i}^{*}\geq 0, i\in I=\{l+1,l+2,\dots,l+m\} \\ \lambda_{i}^{*}c_{i}(x^{*})=0, i\in I=\{l+1,l+2,\dots,l+m\} \end{gather} 上述一阶必要条件被称为 Kuhn-Tucker条件,或简称K-T条件;满足上式的点为 K-T点;称 λ∗\lambda^{*} 为 x∗x^{*} 处的 Lagrange乘子(Lagrange Multiplier)。
约束限制条件成立的充分条件
定理 2:
若在前述约束优化问题的局部解 x∗x^{*} 处下述两条件之一成立:
- ci(x),i∈E∪I(x∗)c_{i}(x), i\in E\cup I(x^{*}) 是线性函数;
- ∇ci(x∗),i∈E∪I(x∗)\nabla c_{i}(x^{*}), i\in E\cup I(x^{*}) 线性无关;
则在 x∗x^{*} 处约束限制条件成立。此时必存在 λ∗\lambda^{*} 使得 K-T 条件成立。
二阶充分条件
这里给出一般约束问题的二阶充分条件,不作证明。
定理 3:(约束问题的二阶充分条件)
考虑上述约束问题,设 f(x),ci(x),(i∈E∪I)f(x), c_{i}(x), (i\in E\cup I) 具有连续的二阶偏导数,若存在 x∗x^{*} 满足下列条件:
- K-T条件成立 (参考定理 1),且 λ∗i\lambda_{i}^{*} 和 ci(x∗)(i∈I)c_{i}(x^{*}) (i\in I) 不同时为0 (严格松弛互补条件);
- 对于任意的 d∈Md\in M 有
dT∇2xL(x∗,λ∗)d>0
d^{T}\nabla_{x}^{2}L(x^{*}, \lambda^{*})d>0 其中 M={d∈Rn|d≠0,∇ci(x∗)Td=0,i∈E∪I(x∗)}M=\{d\in \mathbb{R}^{n} | d\neq 0, \nabla c_{i}(x^{*})^{T}d=0, i\in E\cup I(x^{*})\}.
则 x∗x^{*} 是约束问题的严格局部解。
凸优化问题
对于一般的非线性规划,若目标函数是凸函数,约束集合 DD 是凸集,则称改非线性规划是凸规划。显然,若上述约束规划中只含有不等式约束,又 ci(x)(i∈I)c_{i}(x) (i\in I) 是凸函数,则约束集 DD 是凸集。对于混合约束问题,若 ci(x)(i∈E)c_{i}(x) (i\in E) 是线性函数, ci(x)(i∈I)c_{i}(x) (i\in I) 是凸函数,则 DD 是凸集。
定理 4: 凸规划的局部解必是全局解。
定理 5 : 设目标函数 f(x)f(x) 和约束函数 ci(x)c_{i}(x) 一阶连续可微,并且 ci(x)(i∈E)c_{i}(x) (i\in E) 是线性函数, ci(x)(i∈I)c_{i}(x) (i\in I) 是凸函数。若凸规划的可行点 x∗x^{*} 是K-T点,则 x∗x^{*} 必是全局解。
二次规划问题
一般的约束规划问题求解非常困难,从下面开始我们将仅讨论凸二次规划问题的求解方法。考虑如下约束优化问题:
\begin{split} &\min &\left\{f(x)=\frac{1}{2}x^{T}Gx+r^{T}x\right\}, x\in\mathbb{R}^{n}\\ &\text{s. t. }&c_{i}(x)=\alpha_{i}^{T}x-b_{i}=0, i\in E=\{1,2,\dots, l\}\\ & &c_{i}(x)=\alpha_{i}^{T}x-b_{i}\leq 0, i\in I=\{l+1,l+2,\dots, l+m\} \end{split} 其中 GG 为 n×nn\times n 对称矩阵, r,αi(i∈E∪I)r, \alpha_{i} (i\in E\cup I) 为 nn 维实向量, bi(i∈E∪I)b_{i} (i\in E \cup I) 为实数,称上述问题为 二次规划(quadratic programming)问题,过 GG 为(正定)半正定矩阵,则称上述问题为(严格)凸二次规划(convex quadratic programming)。
下面讨论凸二次规划问题解得条件:
定理 6: x∗x^{*} 是上述凸二次规划问题的全局最优解得充分必要条件是: x∗x^{*}是K-T点,即存在 λ∗=(λ∗1,λ∗2,…,λ∗l+m)\lambda^{*}= (\lambda_{1}^{*}, \lambda_{2}^{*},\dots,\lambda_{l+m}^{*}) 使得:
\begin{gather} Gx^{*}+r+\sum_{i=1}^{l+m}\lambda_{i}^{*}\alpha_{i}=0 \\ \alpha_{i}^{T}x^{*}-b_{i}=0, i\in E\\ \alpha_{i}^{T}x^{*}-b_{i}\leq 0, i\in I\\ \lambda_{i}^{*}\geq 0, i\in I\\ \lambda_{i}^{*}(\alpha_{i}^{T}x^{*}-b_{i})=0, i\in I \end{gather} (严格)凸二次规划问题的局部解均是全局最优解。
定理 7: 若 x∗x^{*} 是上述凸二次规划的全局最优解,则 x∗x^{*} 是如下等式约束二次规划问题
\begin{split} &\min\left\{f(x)=\frac{1}{2}x^{T}Gx+r^{T}x\right\}, x\in\mathbb{R}^{n} \\ &\text{s. t. }c_{i}(x)=\alpha_{i}^{T}x-b_{i}=0, i\in E\cup I(x^{*}) \end{split} 的全局最优解。
求解二次规划问题
等式约束二次规划问题的条件
本节讨论如下只有等式约束的二次规划问题:
\begin{split} &\min\left\{f(x)=\frac{1}{2}x^{T}Gx+r^{T}x\right\} \\ &\text{s. t. } Ax=b \end{split} 的求解方法, 其中 A=(α1,α2,…,αn)A=(\alpha_{1}, \alpha_{2}, \dots, \alpha_{n}), αi,b=(b1,b2,…,bm)T\alpha_{i}, b=(b_{1}, b_{2}, \dots, b_{m})^{T}是 mm 维列向量且 rank(A)=m\mathrm{rank}(A)=m ,即矩阵是行满秩的。当上述问题中矩阵 GG 为正定或半正定矩阵时,此极值问题可以转换成解线性方程组的问题。
定理 8:
当上述问题中的矩阵 GG 是半正定(正定)矩阵时,局部解 x∗x^{*}是全局最优解,这是 λ∗\lambda^{*} 为相应的乘子的充分必要条件是: x∗,λ∗x^{*},\lambda^{*} 是线性方程组
\begin{pmatrix}G & A^{T} \\ A & O \end{pmatrix} \begin{pmatrix}x \\ \lambda \end{pmatrix} = \begin{pmatrix} -r \\ b \end{pmatrix} 该定理的证明只需要考虑Lagrange函数: L(x,λ)=12xTGx+rTx+λT(Ax−b)L(x,\lambda)=\frac{1}{2}x^{T}Gx+r^{T}x+\lambda^{T}(Ax-b) 。
有效集法
有效集法,顾名思义,就是通过求解有限个等式约束二次规划问题来得到一般约束二次规划问题的解。时间问题,这里我们不对有效集算法的一般原理进行阐述,仅介绍其算法步骤。
对于上述一般凸二级规划问题:
- 取初始可行点 x1x^{1},即 x1x^{1} 满足:
αTix1−bi=0,i∈E,αTix1−bi≤0,i∈I
\alpha_{i}^{T}x^{1}-b_{i}=0, i\in E,\quad \alpha_{i}^{T}x^{1}-b_{i}\leq 0, i\in I 确定 x1x^{1} 处的有效约束指标集
I(x1)={i|αTix1−bi=0,i∈I}I(x^{1})=\{i | \alpha_{i}^{T}x^{1}-b_{i}=0, i\in I \} 置 k=1k=1。
- 求解等式二次规划问题
min12dTGd+∇f(xk)Tds. t. αTid=0,i∈E∪I(xk)
\begin{split} &\min \frac{1}{2}d^{T}Gd+\nabla f(x^{k})^{T}d \\ & \text{s. t. } \alpha_{i}^{T}d=0, i\in E\cup I(x^{k}) \end{split} 得到 dkd^{k} 。
- 若 dk=0d^{k}=0, 则计算相应的乘子 λk\lambda^{k}。 若 λki≥0,∀i∈I(xk)\lambda_{i}^{k}\geq 0, \forall i\in I(x^{k}) 则停止计算(xkx^{k} 为一般二次规划的解, λk\lambda^{k} 为相应的乘子);否则求:
λkq=min{λki|i∈I(xk)}
\lambda_{q}^{k}=\min\{\lambda_{i}^{k} | i\in I(x^{k})\} 并置 xk+1=xkx^{k+1}=x^{k}, I(xk+1)=I(xk)−{q}I(x^{k+1})=I(x^{k})-\{q\}, k:=k+1k:=k+1,转至步骤2。
- 若 dk≠0d^{k}\neq 0 则计算
α^k=min{bi−αTixkαTidk∣∣∣αTidk>0,i∉I(xk)}=bp−αTpxkαTpdk
\hat{\alpha}_{k}= \min\left\{\left.\frac{b_{i}-\alpha_{i}^{T}x^{k}}{\alpha_{i}^{T}d^{k}} \right| \alpha_{i}^{T}d^{k}>0, i\notin I(x^{k}) \right\} = \frac{b_{p}-\alpha_{p}^{T}x^{k}}{\alpha_{p}^{T}d^{k}} 取 αk=min{α^k,1}\alpha_{k}=\min\{\hat{\alpha}_{k}, 1\},置 xk+1=xk+αkdkx^{k+1}=x^{k}+\alpha_{k}d^{k}。如果 αk=α^k\alpha_{k}=\hat{\alpha}_{k},则置 I(xk+1)=I(xk)+{p}I(x^{k+1})=I(x^{k})+\{p\};否则置 I(xk+1)=I(xk)I(x^{k+1})=I(x^{k}), 置k:=k+1k:=k+1,转至步骤2。
- 通常称任何一个保证 LD∗=FD∗LD^{*}=FD^{*} 成立的条件为约束限制条件。其中 LD∗∪{0}LD^{*}\cup\{0\} 为线性化锥, FD∗FD^{*}为 x∗x^{*} 处的全体可行方向的集合。 ↩
约束规划问题与凸二次规划相关推荐
- 《ERP高级计划》书的解读- APS算法分析之四约束规划CP(蔡颖)(转)
<ERP高级计划>书的解读- APS算法分析之四约束规划CP(蔡颖) http://www.amteam.org/static/51/51380.html http://www.amtea ...
- 利用scikit中的遗传算法求解(整数01)约束规划实例详解教程+利用scipy.optimize求解约束规划问题
注意标准形式 下面两个方法约束规划的一般标准形式为: 利用scikit-opt的遗传算法求解约束规划问题 先放上链接:scikit-opt网址 主要四个步骤: 下面依照此题多约束为例 可知该题有5个不 ...
- Matlab 非线性有约束规划的粒子群算法
Matlab 非线性有约束规划的粒子群算法 粒子群算法的基本认识 简单介绍:通过群体中个体之间的协作和信息共享来寻找最优解. 适用于连续函数极值问题,对于非线性,多峰问题均有较强的全局搜索能力. 主要 ...
- Discrete Optimization课程笔记(2)—约束规划
目录 1.约束规划(Constraint Programming) 2.约束传播(constraint propagation) Case1: Send More Money 3.元素约束(Eleme ...
- 约束规划——拉格朗日乘数法
拉格朗日乘数法 拉格朗日乘数法的基本思想 拉格朗日乘数法(Lagrange Multiplier Method)是一种优化算法,拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日 ...
- 无约束最优化问题的一般结构与规划方法
无约束问题与最优解 最优性条件 一维线性搜索 精确线性搜索 直接搜索法 非精确一维搜索法 下降算法的收敛性与收敛速度 无约束规划 最速下降法 Newton法 Newton-最速下降混合算法 阻尼New ...
- AI也用思维导图:教它像人类一样高效规划
来源:AI科技评论 本文约6700字,建议阅读10+分钟 假如AI能帮我策划一场说走就走的旅行. 我们往往是根据事件的内容进行分层规划.无论是规划简单的事情(比如做晚餐)或复杂的事情(比如出国旅行), ...
- 《中国人工智能学会通讯》——9.21 基于任务规划的资源卫星智能管控模式
9.21 基于任务规划的资源卫星智能管控模式 我国目前已建成包括高分.遥感.环境减灾.测绘和试验等多系列资源卫星系统,在轨运行的卫星 20 多颗.随着成像卫星的发展,成像卫星任务规划问题也逐渐引起重视 ...
- python 非线性规划_自动驾驶运动规划-Hybird A*算法(续)
Hybird A*算法保证生成的路径是车辆可实际行驶的,但它仍然包含很多不必要的车辆转向操作,我们可以对其进行进一步的平滑和优化. Objective Function 对于Hybird A*生成的车 ...
- Optaplanner规划引擎的工作原理及简单示例(1)
在之前的文章中,老猿已介绍过APS及规划的相关内容,也对Optaplanner相关的概念和一些使用示例进行过介绍,接下来的文章中,我会自己做一个规划小程序 - 一个关于把任务分配到不同的机台上进行作来 ...
最新文章
- 区块链BaaS云服务(20)百度可信跨链BCP
- 探析“Java序列化”之serialVersionUID
- 适合小白了解学习的DevOps实践
- 明明可以靠技术吃饭,现在却非要出来当编剧!
- Java实例化后自动执行_Java的实例化顺序(程序执行顺序)
- Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(远程)
- ICCV 2021 揭榜!十大方向抢先看!(Transformer/分割/Action/插帧/超分等)
- BZOJ 1019: [SHOI2008]汉诺塔( dp )
- Qt4 QRadioButton和QCheckBox用法示例
- 第二阶段冲刺报告(三)
- 如何从Linux里面下载软件
- MTSP问题遗传算法解决代码及其案例
- 工地人脸识别门禁考的出现对智慧工地提出解决方案
- 终端操作GitHub代码以及代码的版本控制(develop/master)多图
- Linux中压缩解压工具使用
- 宁波银行金融科技面试
- ​​氨基羧基化二氧化硅包覆核壳结构上转换纳米粒(808激发,蓝光,980激发,绿光)
- Excel电子表格排序的三种方法
- 用python绘图竹子turtle_Python——蟒蛇图形绘制(turtle绘图体系)
- linux和mac下的电骡 amule 2.2.6下载,aMule Mac版下载_aMule Mac版官方下载-太平洋下载中心...
热门文章
- python黑客编程-[分享]Python黑帽子 黑客与渗透测试编程之道PDF和文章内代码【全】...
- 起底“XX神器”:超级手机病毒的因果
- 同网段的VLAN隔离
- 2022电工杯:5G 网络环境下应急物资配送问题(优化)
- 2021年安徽全椒中学高考成绩查询,全椒中学2020届高考记录是这样的!
- wxPython 记事本
- java搭建后台步骤_Java后台开发环境搭建 – 黄毅超的博客
- CeBIT亮点:IBM“绿色地平线” 战斗在雾霾治理的科技前线
- 电脑虎牙,虎牙助手主播版电脑版
- Android Behavior详解