二次规划问题
- 格式:doc
- 大小:264.71 KB
- 文档页数:7
具有二次非线性约束的凸二次规划问题的算法研究一、引言在实际应用中,凸二次规划问题的求解是一类非常重要的问题。
经典的二次规划问题的目标函数是一个二次函数,并且约束条件是线性的,这类问题的求解已经得到了广泛的研究。
但是,在实际生产与维护中,往往还需要考虑更多因素的约束,例如涉及到非线性因素、离散因素等。
本文将着重探讨具有二次非线性约束的凸二次规划问题,并给出相应的算法。
二、凸二次规划问题凸二次规划问题被定义为:求解一个二次目标函数的最小值,其约束条件是一些线性不等式和线性等式。
这类问题是一个非常重要的建模工具,广泛应用于生产与维护等领域。
对于凸二次规划问题,在具有一定的限制条件下,可以通过各种方法来求解。
该问题最常见的求解方法是使用内点法,该方法具有渐进Theory收敛性,并且在理论上具有多项式时间复杂度。
其他常用方法还包括牛顿法、拆分算法等。
三、具有二次非线性约束的凸二次规划问题凸二次规划问题的约束条件通常是线性的,而在实践中还经常遇到需要考虑更多因素的情况。
其中最重要的因素之一就是具有二次非线性约束的问题。
这种类型的问题在实际应用中是非常常见的。
对于具有二次非线性约束的凸二次规划问题,数学模型表示可以被写成如下形式:$$ \begin{aligned} \min_{x\in \mathbb{R}^n}\qquad &\dfrac{1}{2}x^TQx + c^Tx\\ & \text{s.t. }\quad Ax = b\\ &\quad\quad\quad f_i(x) \geq 0\quad i\in I_1\\ & \quad\quad\quad f_j(x) = 0 \quad j\in I_2 \end{aligned} $$其中,$x$ 是优化变量, $Q$ 是一个半正定的 $n\times n$ 实矩阵, $A$ 和 $b$ 分别是 $m\times n$ 实矩阵和 $m$ 维向量,$f_i(x)$ 和 $f_j(x)$ 分别是凸可微非线性函数。
2、对于二次规划模型求解:问题1:先求出ij c ,结果如下表:330.7 320.3 300.2 258.6 198 180.5 163.1 181.2 224.2 252 256 266 281.2 288 302 370.7 360.3 345.2 326.6 266 250.5 241 226.2 269.2 297 301 311 326.2 333 347 385.7 375.3 355.2 336.6 276 260.5 251 241.2 203.2 237 241 251 266.2 273 287 420.7 410.3 395.2 376.6 316 300.5 291 276.2 244.2 222 211 221 236.2 243 257 410.7 400.3 380.2 361.6 301 285.5 276 266.2 234.2 212 188 206 226.2 228 242 415.7 405.3 385.2 366.6 306 290.5 281 271.2 234.2 212 201 195 176.2 161 178 435.7 425.3 405.2 386.6 326 310.5 301 291.2 259.2 237 226 216 198.2 185 162由于二次规划模型中约束条件151{0}[500,],1,2,7,ij i j X s i =∈=∑的存在,必须加以处理。
引进0-1变量15,...2,1,=i n i ,则151{0}[500,],1,2,7,ij i j Xs i =∈=∑可以等价转换为下面的三个约束条件:i j ij s X≤∑=151i j ij Mn X ≤∑=151i j ijn X*500151≥∑= 其中M 为一个很大数。
这样就可以得到下面的lingo 程序:sets :s/1..7/:sx;a/1..15/:z,y,n,t;links(s,a):c,x;endsetsdata:sx=800 800 1000 2000 2000 2000 3000;t=104 301 750 606 194 205 201 680 480 300 220 210 420 500 0;c=330.7 320.3 300.2 258.6 198 180.5 163.1 181.2 224.2 252 256 266 281.2 288 302370.7 360.3 345.2 326.6 266 250.5 241 226.2 269.2 297 301 311 326.2 333 347385.7 375.3 355.2 336.6 276 260.5 251 241.2 203.2 237 241 251 266.2 273 287420.7 410.3 395.2 376.6 316 300.5 291 276.2 244.2 222 211 221 236.2 243 257410.7 400.3 380.2 361.6 301 285.5 276 266.2 234.2 212 188 206 226.2 228 242415.7 405.3 385.2 366.6 306 290.5 281 271.2 234.2 212 201 195 176.2 161 178435.7 425.3 405.2 386.6 326 310.5 301 291.2 259.2 237 226 216 198.2 185 162;enddata!目标函数;min=@sum(links:c*x)+0.05*@sum(a(j):z(j)*(z(j)+1)+y(j)*(y(j)+1));!每个工厂产量的限制;@for(s(i):@sum(a(j):x(i,j))<=sx);@for(s(i):@sum(a(j):x(i,j))<=90000000*n(i));@for(s(i):@sum(a(j):x(i,j))>=500*n(i));!每个结点运量的限制;@for(a(j):@sum(s(i):x(i,j))=z(j)+y(j));!区间长度的限制;@for(a(j)|j#le#14:z(j+1)+y(j)=t(j));!初始条件;z(1)=0;y(15)=0;!设置0-1变量;@for(a(j):@bin(n(j)));Local optimal solution found at iteration: 5800Objective value: 1278632.问题3:sets:s/1..7/:sx;a/1..21/:z,y,n,t;links(s,a):c,x;endsetsdata:sx=800 800 1000 2000 2000 2000 3000;t=104 301 750 606 194 205 201 680 480 300 220 210 420 500 0 0 0 0 0 0 0;c=330.7 320.3 300.2 258.6 198 180.5 163.1 181.2 224.2 252 256 266 281.2 288 302220 255 260 265 275 285370.7 360.3 345.2 326.6 266 250.5 241 226.2 269.2 297 301 311 326.2 333 347265 300 305 310 320 330385.7 375.3 355.2 336.6 276 260.5 251 241.2 203.2 237 241 251 266.2 273 287199 240 245 250 260 270420.7 410.3 395.2 376.6 316 300.5 291 276.2 244.2 222 211 221 236.2 243 257240 210 215 220 230 240410.7 400.3 380.2 361.6 301 285.5 276 266.2 234.2 212 188 206 226.2 228 242230 187 205 205 220 230415.7 405.3 385.2 366.6 306 290.5 281 271.2 234.2 212 201 195 176.2 161 178230 200 183 186 160 150435.7 425.3 405.2 386.6 326 310.5 301 291.2 259.2 237 226 216 198.2 185 162245 225 210 215 192 189;enddata!目标函数;min=@sum(links:c*x)+0.05*@sum(a(j):z(j)*(z(j)+1)+ y(j)*(y(j)+1))+0.05*yd1*(yd1+1)+0.05*yd2*(yd2+1)+0.05*yd3*(yd3+1);!每个工厂产量的限制;@for(s(i):@sum(a(j):x(i,j))<=sx);@for(s(i):@sum(a(j):x(i,j))<=9000000*n(i));@for(s(i):@sum(a(j):x(i,j))>=500*n(i));!每个结点运量的限制;@for(a(j)|j#ne#9 #and# j#ne#11 #and#j#ne#17:@sum(s(i):x(i,j))=z(j)+y(j));@sum(s(i):x(i,9))=z(9)+y(9)+yd1;@sum(s(i):x(i,11))=z(11)+y(11)+yd2;@sum(s(i):x(i,17))=z(17)+y(17)+yd3;!区间长度的限制;@for(a(j)|j#le#14:z(j+1)+y(j)=t(j));y(16)+yd1=42;y(17)+yd2=10;z(17)+y(18)=130;yd3+y(19)=190;z(19)+y(20)=260;z(20)+y(21)=100;!初始条件;z(1)=0;y(15)=0;z(16)=0;z(18)=0;z(21)=0;!设置0-1变量;@for(a(j):@bin(n(j)));Local optimal solution found at iteration: 9263 Objective value: 1411287.。
解读支持向量机中的二次规划问题与求解方法支持向量机(Support Vector Machine,简称SVM)是一种常用的机器学习算法,广泛应用于分类和回归问题中。
在SVM的训练过程中,二次规划问题是关键步骤之一,它的解决方法对于SVM的性能和效率具有重要影响。
本文将解读支持向量机中的二次规划问题与求解方法。
一、SVM的基本原理SVM的目标是找到一个超平面,将不同类别的样本分开。
超平面的选择是基于最大间隔原则,即使得样本点到超平面的距离最大化。
为了实现这一目标,SVM将问题转化为一个二次规划问题。
二、二次规划问题的定义给定一组线性约束条件和一个二次目标函数,二次规划问题的目标是找到一组变量的取值,使得目标函数最小化或最大化,同时满足线性约束条件。
在SVM中,二次规划问题的目标是最小化一个二次函数,同时满足一组线性不等式约束。
三、二次规划问题的形式在SVM中,二次规划问题的形式如下:minimize 1/2 * x^T * Q * x + p^T * xsubject to G * x <= hA * x = b其中,x是待求解的变量,Q是一个正定矩阵,p是一个向量,G是一个矩阵,h是一个向量,A是一个矩阵,b是一个向量。
四、求解二次规划问题的方法针对SVM中的二次规划问题,有多种求解方法。
常用的方法包括序列最小最优化(Sequential Minimal Optimization,简称SMO)、内点法等。
1. 序列最小最优化(SMO)SMO是一种迭代的优化算法,通过每次选择两个变量进行优化,并固定其他变量,来求解二次规划问题。
SMO算法的核心思想是将原问题分解为一系列子问题,并通过求解子问题的最优解来逐步逼近原问题的最优解。
SMO算法具有较好的收敛性和高效性,因此在SVM中得到了广泛应用。
2. 内点法内点法是一种基于迭代的优化算法,通过在可行域内搜索最优解来求解二次规划问题。
内点法的核心思想是通过引入松弛变量,将不等式约束转化为等式约束,从而将原问题转化为一个无约束的优化问题。
9.2.4 二次规划问题9.2.4.1 基本数学原理如果某非线性规划的目标函数为自变量的二次函数,约束条件全是线性函数,就称这种规划为二次规划。
其数学模型为:其中,H, A,和Aeq为矩阵,f, b, beq, lb, ub,和x为向量。
9.2.4.2 相关函数介绍quadprog函数功能:求解二次规划问题。
语法:x = quadprog(H,f,A,b)x = quadprog(H,f,A,b,Aeq,beq,lb,ub)x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)[x,fval] = quadprog(...)[x,fval,exitflag] = quadprog(...)[x,fval,exitflag,output] = quadprog(...)[x,fval,exitflag,output,lambda] = quadprog(...)描述:x = quadprog(H,f,A,b) 返回向量x,最小化函数1/2*x'*H*x + f'*x ,其约束条件为A*x <= b。
x = quadprog(H,f,A,b,Aeq,beq)仍然求解上面的问题,但添加了等式约束条件Aeq*x = beq。
x = quadprog(H,f,A,b,lb,ub)定义设计变量的下界lb和上界ub,使得lb <= x <= ub。
x = quadprog(H,f,A,b,lb,ub,x0)同上,并设置初值x0。
x = quadprog(H,f,A,b,lb,ub,x0,options)根据options参数指定的优化参数进行最小化。
[x,fval] = quadprog(...)返回解x处的目标函数值fval = 0.5*x'*H*x + f'*x。
MATLABquadprog函数求解⼆次规划问题【例】求如下⼆次规划问题。
【分析】⾸先应该把⽬标函数表⽰成如下矩阵形式:这⾥要细说⼀下如何写成矩阵形式。
⾸先,向量x是很容易写出的,因为f(x)包含两个变量x1和x2,因此其次,向量f只与两个变量x1和x2的⼀次项有关,所以f T x=-2x1-6x2,因此最后,矩阵H只与两个变量x1和x2的⼆次项有关,所以,这⾥要注意的是不同于⼆次型,这⾥有个系数1/2,所以矩阵H的元素是⼆次型中的矩阵元素⼤⼩的两倍。
给出⼀个规律:设矩阵H第i⾏第j列的元素⼤⼩为H(i,j),⼆次项x i x j的系数为a(i,j),则本例中,,这是由于x1的平⽅项(即x1x1)系数为1/2,所以第1⾏第1列的元素为1=2*(1/2),x2的平⽅项(即x2x2)系数为1,所以第2⾏第2列的元素为2=2*1,x1x2项(即x2x1)的系数为-1,所以第1⾏第2列和第2⾏第1列的元素均为-1。
⽬标函数搞定之后,下⾯来看约束条件部分,约束条件应该写成如下形式:本例中约束条件只有不等式约束,因此A eq和b eq为空,对于A和b很容易就可以得出来:⽽约束条件中对变量x1和x2只给出下限,没有给上限,因此ub为空,得到了所有的参数,将参数输⼊MATLAB,编程如下:(代码是直接在Command Window中⼀⾏⼀⾏录⼊的,所以每⾏前⾯有符号“>>”)>> H = [1 -1; -12];>> f = [-2; -6];>> A = [11; -12; 21];>> b = [2; 2; 3];>> lb = [0; 0];>> [x,fval,exitflag,output,lambda] = quadprog(H,f,A,b,[],[],lb)输出以下结果:Warning: Large-scale algorithm does not currently solve this problem formulation,using medium-scale algorithm instead.> In quadprog at 291Optimization terminated.x =0.66671.3333fval =-8.2222exitflag =1output =iterations: 3constrviolation: 0algorithm: 'medium-scale: active-set'firstorderopt: []cgiterations: []message: 'Optimization terminated.'lambda =lower: [2x1 double]upper: [2x1 double]eqlin: [0x1double]ineqlin: [3x1 double]参考⽂献:【1】孙⽂瑜, 徐成贤,朱德通.最优化⽅法(第⼆版)[M]. 北京:⾼等教育出版社, 2010.【2】龚纯,王正林. 精通MATLAB最优化计算[M].北京: 电⼦⼯业出版社,2009.【3】lnsunqingshen, 464518439., 百度知道,2011-06-20.【4】李明强.⼏类特殊凸⼆次规划问题的求解算法研究[D].⼭东科技⼤学,2013 .【5】于绍慧.边界约束凸⼆次规划的求解[D].南京航空航天⼤学,2005.。
二次规划问题的一个解法及几点注记二次规划问题是指在线性规划模型中,目标函数和约束条件均为二次函数的问题。
常见的解法有坐标下降法和半正定性法。
下面是关于二次规划问题的一个解法(坐标下降法)及几点注记。
解法:坐标下降法是一种求解二次规划问题的迭代算法。
基本思路是不断地求解当前点的搜索方向,然后在这个方向上移动,直到找到最优解为止。
具体步骤如下:1.设定初始点 x0,并求出当前点的目标函数值 f(x0)。
2.求解当前点 x0 的搜索方向 d0。
3.设定步长 t,求出下一个点 x1 = x0 + t * d0。
4.求出下一个点 x1 的目标函数值 f(x1),并与当前点 x0的目标函数值 f(x0) 进行比较。
5.若 f(x1) < f(x0),则接下来以 x1 为当前点,重复步骤 2-5;若 f(x1) ≥ f(x0),则退出迭代。
注记:1.坐标下降法的关键在于如何求解当前点的搜索方向d0。
一般来说,当前点的搜索方向 d0应该是当前点的二次梯二次规划问题的一个解法及几点注记:继续上文:注记:1.坐标下降法的关键在于如何求解当前点的搜索方向d0。
一般来说,当前点的搜索方向 d0应该是当前点的二次梯度的负方向,即 d0 = -∇2f(x0)。
2.坐标下降法的收敛速度取决于步长 t的取值。
常用的方法有常数步长法和自适应步长法。
常数步长法是指固定步长t,而自适应步长法是指根据当前点的目标函数值变化情况来调整步长 t。
3.坐标下降法的收敛性是指随着迭代次数的增加,目标函数的值会逐渐降低。
但是,坐标下降法并不能保证收敛到全局最优解,只能保证收敛到局部最优解。
4.坐标下降法的迭代次数一般较多,但是每次迭代的计算量较小,因此坐标下降法适用于线性规划问题规模较大的情况。
希望这些内容能为你的学习提供帮助!。
关于无线通信中一类二次约束二次规划问题的混合算法在无线通信中,许多问题可以建模为优化问题的求解。
特别地,许多问题可以转化为一个形如式(1)的二次约束二次规划(Quadratic Constrained Quadratic Programming,QCQP)问题,或者是一系列的QCQP子问题[1-6]。
例如:多发多收干扰信道的波束成形问题等价为一个QCQP问题[2]。
在中继辅助的点对点通信模型中,考虑优化中继的波束成形系数,在满足一定信噪比的条件下极小化中继的发送功率,该问题可建模为一个非凸的QCQP问题[2,3]。
在中继辅助下的多发多收干扰信道中,运用带权重的均方差极小化模型来求解总传输速率极大化问题,相应的预编码子问题也是一个QCQP[4]。
高效求解这些QCQP问题是诸多通信问题的关键。
一些经典的方法可用于求解QCQP问题,比如:半定规划松弛算法、逐步二次规划算法等等。
半定规划松弛算法将二次约束二次规划问题松弛为一个半定规划。
当约束个数不超过3个时,可求得QCQP问题的最优解;但当约束多于3个时,需要用随机的技巧产生QCQP问题的可行解,得到的解没有理论保证[7]。
逐步二次规划算法在KKT 点的局部具有超线性收敛速度;但当初始点距离KKT点很远时,算法迭代较慢[8]。
该文针对一类特殊结构的QCQP问题,提出了可行压缩算法,迭代得到的点作为逐步二次规划算法的初始点,从而很快收敛到QCQP问题的KKT点。
该文的具体结构如下:第一节介绍要求解的一类QCQP问题的具体形式,第二节给出可行压缩算法的流程,第三节在数值实验中将本文提出的算法与其他方法做出比较。
1 二次约束二次规划该文考虑的二次约束二次规划问题如下所示:这里为不定矩阵,…为半正定矩阵。
当(1)中均为半正定矩阵;≤0,对…都成立,(1)可以等价地转化为(2),且,,,…。
问题(2)是一个非凸的二次约束二次规划问题。
在通信模型中,考虑功率约束时,常常会遇到此类问题[4,5]。
序列二次规划法求解一般线性优化问题:12min (x)h (x)0,i E {1,...,m }s.t.(x)0,i {1,...,m }i i f g I =∈=⎧⎨≥∈=⎩ (1.1) 基本思想:在每次迭代中通过求解一个二次规划子问题来确定一个下降方向,通过减少价值函数来获取当前迭代点的移动步长,重复这些步骤直到得到原问题的解。
1.1等式约束优化问题的Lagrange-Newton 法考虑等式约束优化问题min (x)s.t.h (x)0,E {1,...,m}j f j =∈=(1.2)其中:,n f R R →:()n i h R R i E →∈都为二阶连续可微的实函数. 记1()((),...,())T m h x h x h x =. 则(1.3)的Lagrange 函数为: 1(,)()*()()*()mT i i i L x u f x u h x f x u h x ==-=-∑(1.3)其中12(,,...,)T m u u u u =为拉格朗日乘子向量。
约束函数()h x 的Jacobi 矩阵为:1()()((),...,())T T m A x h x h x h x =∇=∇∇.对(1.3)求导数,可以得到下列方程组:(,)()A()*(,)0(,)()T x u L x u f x x u L x u L x u h x ∇⎡⎤⎡⎤∇-∇===⎢⎥⎢⎥∇-⎣⎦⎣⎦(1.4)现在考虑用牛顿法求解非线性方程(1.4).(,)L x u ∇的Jacobi 矩阵为:(,)()(,)()0T W x u A x N x u A x ⎛⎫-= ⎪-⎝⎭(1.5)其中221(,)L(,)()*()mxx iii W x u x u f x u h x ==∇=∇-∇∑是拉格朗日函数L(,)x u 关于x 的Hessen 矩阵.(,)N x u 也称为K-T 矩阵。
对于给定的点(,)k k k z x u =,牛顿法的迭代格式为:1k k k z z z +=+∆. 其中k k (d ,v )k z ∆=是线性方程组k k k k (,)()(x )A(x )u *()0(x )k k k k T T k k d W x u A x f A x v h ⎛⎫-⎛⎫-∇+⎛⎫= ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭(1.6)的解。
注意:只要k A(x )行满秩且(,)k k W x u 是正定的,那么(1.6)的系数矩阵非奇异,且方程组有唯一解。
引理1:已知矩阵,n nn m U RS R ⨯⨯∈∈,则对任意满足*0T S x =的非零向量x 都有0Tx Ux >的充要条件是存在常数*0σ>,使得对任意的*σσ≥都有*(U *S*S )0,0T T n x x x R σ+>∀≠∈.证明略。
鉴于方程组(1.6)的求解数值不稳定,故考虑将它转化成一个严格凸二次规划问题.转化的条件是(1.4)的解点*x 处的最优性二阶充分条件成立,即对满足*()*0TA x d =的任一向量0d ≠,成立***(,)*0Td W x u d >。
再由引理1知:当0τ>充分小时,1(*,*)(*)(*)2T W x u A x A x τ+正定。
考虑(1.6)中的(,)k k W x u 用一个正定矩阵来代替,记1(,)(,)()()2k T k k k k k B x u W x u A x A x τ=+则当**(,)(,)k k x u x u →时,矩阵**B(,)x u 正定。
(1.6)的第一个展开式为k (,)*d (x )*(x )(x )*T T k k k k k k k W x u A v f A u -=-∇+将上式变形为:k 11[(,)()()]*d (x )*[()](x )22k k T T k k k k k k k k W x u A x A x A v u A x d f ττ+-++=-∇ 令~1:()2k Tk k k k u v u A x d τ=++后得:~k (,)*d (x )*(x )T k k k k k B x u A u f -=-∇. 因此,(1.6)等价于k ~k (x )(,)()*()0(x )k k k k T k k d f B x u A x A x h u ⎛⎫⎛⎫∇-⎛⎫⎪=- ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭(1.7)进一步,可以把方程(1.7)转换成如下严格凸二次规划:k k k k k 1min (d)(x ,u )d f(x )2..(x )A(x )d 0TT k q d B ds t h =+∇+=(1.8)方程(1.7)和(1.8)具有同解的。
1.2一般形式的约束优化问题将1.1节中构造二次规划子问题求解等式约束优化问题的思想推广到一般形式的约束优化问题(1.5)。
在给定点k k (x ,u ,)k k z λ=后,将约束函数线性化,并对拉格朗日函数进行二次多项式近似,得到下列二次规划子问题:k k k k k k k 1min (x ,u )d f(x )2(x )(x )d 0,i E ..(x )(x )d 0,i T T Ti i Ti i d W dh h s t g g I+∇⎧+∇=∈⎪⎨+∇=∈⎪⎩ (1.9)其中212k k k k k k {1,...,m },I {1,...m },W W(x ,u ,)(x ,u ,)k xx E L λλ====∇,拉格朗日函数为1211(,)()*()*g ()m m i i i i i i L x u f x u h x x λ===--∑∑.于是,迭代点k x 的校正步k d 以及新的拉格朗日乘子估计量11,k k u λ++可以分别定义为问题的一个K-T 点*x 和相应的拉格朗日乘子向量*,*u λ。
定理1:给定约束优化问题(1.1)的最优解*d 和相应的拉格朗日乘子*,*0u λ≥.假定在*x 处,下面的条件成立:(1) 有效约束的Jacobi 矩阵(x*)S J 行满秩,其中(*)E(*)S x I x =;(2) 严格互补松弛条件成立,即******(x )0,0,(x )0,(x )0;i i i i i i g g g λλλ≥≥=+>(3) 二阶最优性充分条件成立,即对满足*()*0TA x d =的任一向量0d ≠,成立****(,,)*0T d W x u d λ>.那么若k k k (x ,u ,)λ充分靠近***(x ,u ,)λ,则二次规划问题(1.9)存在一个局部极小点*d ,使得其对应的有效约束指标集*()S d 与原问题在*x 处的有效指标集*()S x 是相同的。
注意:在构造二次规划子问题时,需要计算拉格朗日函数在迭代点k x 处的Hessen 矩阵,计算量过大。
为了克服这个缺陷,韩世平基于牛顿-拉格朗日法提出了一种利用对称正定矩阵k B 来代替拉格朗日矩阵k W 的序列二次规划法。
对于一般约束优化问题(1.1),在迭代点k k k k z (x ,u ,)λ=,构造下列形式的二次规划子问题:k k k k k k k 1min (x ,u )d f(x )2(x )(x )d 0,i E ..(x )(x )d 0,i T T Ti i Ti i d B dh h s t g g I+∇⎧+∇=∈⎪⎨+∇=∈⎪⎩ (1.10)并且用(1.10)的解k d 作为原问题变量x 在第k 次迭代过程中的搜索方向。
其中k d 有一个好的性质是它许多罚函数(价值函数)的下降方向。
例如,对于L1精确罚函数:1(x,)f(x)[|h (x)||[g (x)]_|]i i i Ei IP σσ∈∈=++∑∑其中0σ>为罚参数,g (x)]_max{0,g (x)}i i =-。
为了保证SQR 方法的全局收敛性,通常借助价值函数来确定搜索步长。
用来衡量一维搜索的好坏。
算法(一般约束优化问题的SQP 方法)Step 0: 给定初始点12000(,u ,)R R R ,mmn x λ∈⨯⨯对称正定矩阵0nB R ∈.计算0(x )ETA h =∇,00(x )I TA g =∇,000E I A A A ⎡⎤=⎢⎥⎢⎥⎣⎦.选择参数1(0,),(0,1),2ηρ∈∈容许误差120,1,εε令:0.k =Step 1: 求解子问题(1.10)得最优解k d .Step 2: 若k 11||d ||ε≤且k 1k 12||||||()_||h g ε+≤,stop,得到(1.1)的一个近似KT 点,,k k k x u λ().Step 3: 对于某种价值函数(,)x σΦ,选择罚参数k σ,使得k d 是该函数在k x 处的下降方向。
Step 4: Armijo 搜索. 令k m 是使下列不等式成立的最小非负整数m :m m 'k k k k k k k k (d ,)(,)(,;d ),x x x ρσσηρσΦ+-Φ≤Φ令km 1:,:.k k k k k a x x a d ρ+==+Step 5: 计算1111111(),(),E k ETI Tk k k k k I k A Ah x Ah x A A +++++++⎡⎤=∇=∇=⎢⎥⎢⎥⎣⎦以及最小二乘乘子1111111k T k k k k k u A A A f λ-++++++⎡⎤⎡⎤=∇⎢⎥⎣⎦⎣⎦Step 6: 校正矩阵k B 为1k B +.令11111,(,,)(,,)k k k k x k k k x k k k s a d y L x u L x u λλ+++++==∇-∇1T Tk k k k k kk k T T k k k k kB s s B z z B B s B s s z +=-+其中(1)B s k k k k k k z y θθ=+-参数k θ定义为k k k k ..........1...........,s y 0.2s 0.8s ,s y 0.2s s Tk k kT k T k k kk k k T T k k k k kB s B s B s B s s y θ⎧≥⎪=⎨<⎪-⎩ Step 7: 令:1,k k =+转1. 注意:(step 1)利用K-T 条件,问题(1.10)等价于1k 2k k k (,,)B (A )(A )()0,(,,)()A 0,0,g()A 0,[g()A ]0.E T I Tk k k E k I I k k H d u d u f x H d u h x d x d x d λλλλλ=--+∇==+=≥+≥+= (1.11)第三式是2m 维互补问题,定义光滑函数(,,)a b a b εΦ=+其中0ε>为光滑参数.令21(,,)((,,),...,(,,))T m a b a b a b εεεΦ=ΦΦ,其中k (,,)[g ()(A )]Ii i i k i a b x d ελΦ=++其中(A )I k i 表示A Ik 的第i 行.记12(,,,)R R R Rmm n z d u ελ+=∈⨯⨯⨯,那么(1.11)问题等价于12(,,)(z):(,,,)0(,,)(,,)H d u H H d u H d u d ελελλελ⎡⎤⎢⎥⎢⎥===⎢⎥⎢⎥Φ⎣⎦则(z)H 的Jacobi 矩阵为'2110000()()(z)000(z)0(z)E TI T kk k E k I kB A A H A v D A D ⎡⎤⎢⎥--⎢⎥=⎢⎥⎢⎥⎣⎦其中21(,,)(,...,)T m v d v v εελ=∇Φ=,i v 由下式确定:i v =而221121(z)diag((z),...,(z)),(z)diag((z),...,(z))m m D a a D b b ==,其中(z),(z)i i a b 由下式确定:11i I i a b ==给定参数(0,1)γ∈,定义非负函数(z)||(z)||min{1,||(z)||}.H H βγ=(step 3)中选择价值函数111(,)()[||()||||()_||]x f x h x g x σσΦ=++可令max{||u ||,||||}k k τλ=,g (x)_max{0,g (x)}i i =- 任意选择一个0δ>,定义罚参数的修正规则为111111,(2),k k k k σστδστδστδ------⎧≥+⎪=⎨+<+⎪⎩ (step 6)因为BFGS 修正公式需要满足曲率条件,即0Tk k s y >,而k y 可能不满足这一条件,为此有必要对k y 进行修正。