二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题

二次规划(QP)是求解一种特殊的数学优化问题的过程——具体地说,是一个(线性约束)二次优化问题,即优化(最小化或最大化)多个变量的二次函数,并服从于这些变量的线性约束。二次规划是一种特殊的非线性规划。       

序列二次规划(SQP,Sequental Quadratic Programming)算法是将复杂的非线性优化问题转换为较简单的二次规划问题来求解的算法。而二次规划问题则是指目标函数为二次函数,约束函数为线性函数的的最优化问题。二次规划问题是最简单的非线性优化问题,有很多成熟的快速求解的方法。

一、首先介绍二次规划问题:

给定一个目标函数 \small f(x), 求这哥目标函数的最小值,并且满足约束条件 \small g(x) = 0 (约束只能是线性的,非线性的要用序列二次规划,如下第二节):

\ \ min \ \ f(x) \\ s.t. \ \ g(x) = 0

 由于要求目标函数最小,而且还要满足约束,由于是二次规划(元素的平方)\small f(x)至少是大于等于0的,那么把约束和目标函数放在一个函数下求最小值不就可以既满足约束,又可以求目标函数最小值, 即拉格朗日函数:

L(x,\lambda ) = f(x) + \lambda g(x)

其中,\lambda是拉格朗日乘数,只要拉格朗日函数对x\lambda

\begin{aligned} &\nabla_{\mathbf{x}} L=\frac{\partial L}{\partial \mathbf{x}}=\nabla f+\lambda \nabla g=\mathbf{0} \\ &\nabla_{\lambda} L=\frac{\partial L}{\partial \lambda}=g(\mathbf{x})=0 \end{aligned}

其中第一式为定常方程式(stationary equation),第二式为约束条件。解开上面 n+1个方程式可得\small L(x,\lambda ) 的\small x最优解以及\small \lambda的值(正负数皆可能)。

举个例子1:

min \ \ x_1^2+x_2^2 \\ s.t. \ x_1+x_2 = 1

构造 Lagrange 函数:\small L = x_1^2+x_2^2+\lambda(1-x_1 - x_2)

其KKT(对拉个朗日求导)条件:

2x_1-\lambda=0

2x_2-\lambda=0

1-x_1 - x_2=0

求解可得:\lambda ^* = 1,x_1=0.5,x_2=0.5

举个例子2:

min \ \ x_1^2+x_2^2 \\ s.t. \ x_1+x_2 = 1 ; \ \ x_2<3

 构造 Lagrange 函数:

L\left(x_{1}, x_{2}, \lambda, \mu\right)=x_{1}^{2}+x_{2}^{2}+\lambda\left(1-x_{1}-x_{2}\right)+\mu\left(x_{2}-3\right)

其KKT(对拉个朗日求导)条件:

\begin{aligned} \frac{\partial L}{\partial x_{i}} &=0, i=1,2, \\ x_{1}+x_{2} &=1 \\ x_{2}-3 & \leq 0 \\ \mu & \geq 0 \\ \mu\left(x_{2}-3\right) &=0 . \end{aligned}

求偏导可得:\frac{\partial L}{\partial x_{1}}=2 x_{1}-\lambda=0   ,   \frac{\partial L}{\partial x_{2}}=2 x_{2}-\lambda+\mu=0 , 分别求解得出x_{1}=\frac{\lambda}{2} \ ,\ \ x_{2}=\frac{\lambda}{2}-\frac{\mu}{2},    带入x_{1}+x_{2}=\lambda-\frac{\mu}{2}=1,合并可得:x_{1}=\frac{\mu}{4}+\frac{1}{2}

\quad x_{2}=-\frac{\mu}{4}+\frac{1}{2}  ,由于x_2<3 得 \mu>-10(由于已经有\mu>=0 的约束,约束无效), 由于最后一个约束,得要么x_{2}-3 =0,要么\mu=0。结果的出\mu=0函数更小,所以x^*_1 = x^*_2 = 0.5

二、序列二次规划问题:

给定一个非线性约束的最优问题:

\ \ min \ \ f(x)

s.t. \ \ g_{u}(x) \leqslant 0 \ (u = 1,2,..,p)

       h_{v}(x) \leqslant 0 \ (v = 1,2,..,m)

利用泰勒展开把上式子的非线性约束问题的目标函数在迭代点x^k简化成二次函数,把非线性约束函数简化成线性函数后得到如下二次规划问题:

\begin{aligned} \min f(X)=& \frac{1}{2}\left[X-X^{k}\right]^{T} \nabla^{2} f\left(X^{k}\right)\left[X-X^{k}\right]+\nabla f\left(X^{k}\right)^{T}\left[X-X^{k}\right] \\ \text { s.t. } \quad &\nabla g_{u}\left(X^{k}\right)^{T}\left[X-X^{k}\right]+g_{u}\left(X^{k}\right) \leq 0 \quad(u=1,2, \ldots, p) \\ & \nabla h_{v}\left(X^{k}\right)^{T}\left[X-X^{k}\right]+h_{v}\left(X^{k}\right)=0(v=1,2, \ldots, m) \end{aligned}

此问题为原来约束最优问题的近似问题,令:

S=X-X^{k}

将上述二次规划问题变成关于变量 S 的问题,即:

\begin{aligned} \min f(X)=\frac{1}{2} S^{T} \nabla^{2} f\left(X^{k}\right) S+\nabla f\left(X^{k}\right)^{T} S \\ \text { s.t. } \quad \nabla g_{u}\left(X^{k}\right)^{T} S+g_{u}\left(X^{k}\right)<=0(u=1,2, \ldots, p) \\ \nabla h_{v}\left(X^{k}\right)^{T} S+h_{v}\left(X^{k}\right)=0(v=1,2, \ldots, m) \end{aligned}

令:

\begin{aligned} &H=\nabla^{2} f\left(X^{k}\right) \\ &C=\nabla f\left(X^{k}\right) \\ &A_{e q}=\left[\nabla h_{1}\left(X^{k}\right), \nabla h_{2}\left(X^{k}\right), \ldots, \nabla h_{m}\left(X^{k}\right)\right]^{T} \\ &A=\left[\nabla g_{1}\left(X^{k}\right), \nabla g_{2}\left(X^{k}\right), \ldots, \nabla g_{p}\left(X^{k}\right)\right]^{T} \\ &B_{e q}=\left[h_{1}\left(X^{k}\right), h_{2}\left(X^{k}\right), \ldots, h_{m}\left(X^{k}\right)\right]^{T} \\ &B=\left[g_{1}\left(X^{k}\right), g_{2}\left(X^{k}\right), \ldots, g_{p}\left(X^{k}\right)\right]^{T} \end{aligned}

写成一般形式为:

\begin{array}{ll} \min & \frac{1}{2} S^{T} H S+C^{T} S \\ \text { s.t. } & A S=-B \\ & A_{e q} S=-B_{e q} \end{array}

求解此二次规划问题,将其最优解 S^* 作为原问题的下一个搜索方向 S^k,并在该方向上进行原约束问题目标函数的约束一维搜索,这样就可以得到原约束问题的一个近似解X^{k+1}。反复这一过程,就可以得到原问题的最优解。

版权声明:本文为博主作者:屿风。原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_47932058/article/details/124429510

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2024年1月16日
下一篇 2024年1月16日

相关推荐