【计算机数学】二次规划(QP)问题

非线性最优化

最优化的问题的一般形式是:
Min ⁡ f ( x )   s.t.  x ∈ X \operatorname{Min} f(\mathbf{x}) \ \text { s.t. }\mathbf{x} \in X Minf(x)  s.t. xX
f ( x ) f(\mathbf{x}) f(x)为目标函数, x ∈ E n \mathbf{x}\in E^n xEn为可行域。如果 x = E n \mathbf{x}=E^n x=En,则以上最优化问题为无约束最优化问题

约束最优化问题通常写为:
Min ⁡ f ( x )  s.t.  c i ( x ) = 0 , i ∈ E c i ( x ) ≥ 0 , i ∈ I \begin{array}{l} \operatorname{Min} f(\mathbf{x}) \\\\ \text { s.t. } \mathrm{c}_{i}(\mathbf{x})=0, i \in E \\\\ \quad \mathrm{c}_{i}(\mathbf{x}) \geq 0, i \in I \end{array} Minf(x) s.t. ci(x)=0,iEci(x)0,iI
其中 E , I E,I E,I分别为等式约束的指标集和不等式约束的指标集 c i ( x ) c_i(\mathbf{x}) ci(x)约束函数

无约束二次最优化

min ⁡ f ( x ) = 1 / 2 x T H x + c T x , x ∈ R n \min f(\mathbf{x})=1 / 2 \mathbf{x}^{\mathrm{T}} H \mathbf{x}+\mathbf{c}^{\mathrm{T}} \mathbf{x}, \mathbf{x} \in R^{n} minf(x)=1/2xTHx+cTx,xRn
H H H是对称矩阵。
基本解法:求导然后找局部极值。

二次规划的一般形式

min ⁡ f ( x ) = 1 / 2 x T H x + c T x , x ∈ R n  s.t.  A x ≤ b \begin{aligned} &\min f(\mathbf{x})=1 / 2 \mathbf{x}^{\mathrm{T}} H \mathbf{x}+\mathbf{c}^{\mathrm{T}} \mathbf{x}, \mathbf{x} \in R^{n}\\\\ &\text { s.t. } A \mathbf{x} \leq \mathbf{b} \end{aligned} minf(x)=1/2xTHx+cTx,xRn s.t. Axb
H H H对称矩阵时,被称为二次规划(Quadratic Programming,QP)。
特别地,当H正定时,目标函数为凸函数,线性约束下可行域又是凸集。上式被称为凸二次规划。
问题(1):
min ⁡ f ( x ) = 1 / 2 x T H x + c T x , x ∈ R n  s.t.  a i T x ≥ b i , i ∈ I a i T x = b i , i ∈ E \begin{array}{l} \min f(\mathbf{x})=1 / 2 \mathbf{x}^{\mathrm{T}} H \mathbf{x}+\mathbf{c}^{\mathrm{T}} \mathbf{x}, \mathbf{x} \in R^{n} \\\\ \text { s.t. } \boldsymbol{a}_{i}^{T} \boldsymbol{x} \geq b_{i}, i \in I \\\\ \quad\quad \boldsymbol{a}_{i}^{T} \boldsymbol{x}=b_{i}, i \in E \end{array} minf(x)=1/2xTHx+cTx,xRn s.t. aiTxbi,iIaiTx=bi,iE

二次规划的性质

QP是一种最简单的非线性规划。QP有如下良好的性质,当H是半正定时:

  • K-T条件是最优解的充要条件。
  • 局部最优解就是全局最优解。

等式约束下的二次规划

问题(2): min ⁡ f ( x ) = 1 / 2 x T H x + c T x , x ∈ R n  s.t.  A x = b \begin{aligned} &\min f(\mathbf{x})=1 / 2 \mathbf{x}^{\mathrm{T}} H \mathbf{x}+\mathbf{c}^{\mathrm{T}} \mathbf{x}, \mathbf{x} \in R^{n}\\ &\text { s.t. } A \mathbf{x}=\mathbf{b} \end{aligned} minf(x)=1/2xTHx+cTx,xRn s.t. Ax=b
求解方法:Lagrange乘子法,求解以下无约束二次最优化问题。
L ( x , λ ) = 1 2 x T H x + c T x + λ T ( A x − b ) L(\mathbf{x}, \lambda)=\frac{1}{2} \mathbf{x}^{\mathrm{T}} H \mathbf{x}+\mathbf{c}^{\mathrm{T}} \mathbf{x}+\lambda^{\mathrm{T}}(A \mathbf{x}-\mathbf{b}) L(x,λ)=21xTHx+cTx+λT(Axb)
L ( x , λ ) L(\mathbf{x}, \lambda) L(x,λ) x , λ \mathbf{x},\lambda x,λ的导数为零,得到线性方程组:
H x + c T + A T λ = 0 A x − b = 0 \begin{aligned} &H \mathbf{x}+\mathbf{c}^{\mathrm{T}}+A^{\mathrm{T}} \lambda=0\\ &A \mathbf{x}-\mathbf{b}=\mathbf{0} \end{aligned} Hx+cT+ATλ=0Axb=0
可解得 x \mathbf{x} x,即为上式的解。

凸二次规划的有效集方法

  • 直观解释:
    将不起作用的约束去掉,将起作用约束作为等式约束,通过解一系列等式约束的二次规划来实现不等式约束的优化。
  • 基本原理:
    x \mathbf{x} x是问题(1)的最优解,则它也是问题(3):
    min ⁡ 1 2 x T H x + c T x  s.t.  a i T x = b i , i ∈ I \begin{array}{l} \min \frac{1}{2} \mathbf{x}^{\mathrm{T}} H \mathbf{x}+\mathbf{c}^{\mathrm{T}} \mathbf{x} \\\\ \text { s.t. } \mathbf{a}_{i}^{\mathrm{T}} \mathbf{x}=b_{i}, i \in I \end{array} min21xTHx+cTx s.t. aiTx=bi,iI的最优解,其中 I I I是起作用约束指标集(有效集)。反之,若 x \mathbf{x} x是问题(1)的可行解,又是(3)的K-T点,且相应的乘子 λ i ≥ 0 \lambda_{i} \geq 0 λi0,则 x \mathbf{x} x是问题(1)的最优解。

算法步骤(迭代法):

  • 设当前迭代点为 x k \mathbf{x}_k xk,它也是(1)的可行解。该点的有效集记作 I k I_k Ik,为寻求 x k \mathbf{x}_k xk点的迭代方向 d \mathbf{d} d,用乘子法求解
    min ⁡ 1 2 ( x k + d ) T H ( x k + d ) + c T ( x k + d )  s.t.  a i T d = 0 , i ∈ I k \begin{array}{l} \min \frac{1}{2}\left(\mathbf{x}_{k}+\mathbf{d}\right)^{\mathrm{T}} H\left(\mathbf{x}_{k}+\mathbf{d}\right)+\mathbf{c}^{\mathrm{T}}\left(\mathbf{x}_{k}+\mathbf{d}\right) \\ \\\text { s.t. } \mathbf{a}_{i}^{\mathrm{T}} \mathbf{d}=0, i \in I_{k} \end{array} min21(xk+d)TH(xk+d)+cT(xk+d) s.t. aiTd=0,iIk
    • 若所得最优值 d k = 0 \mathbf{d}_k=0 dk=0,则 x k \mathbf{x}_k xk是(3)的最优解。
      • 为判断它是否(1)的最优解,考察对应于有效约束的乘子 λ i ≥ 0 \lambda_{i} \geq 0 λi0是否成立。若成立,则 x k \mathbf{x}_k xkK-T点,由二次规划性质 x k \mathbf{x}_k xk是(1)的最优解。
    • 若所得最优值 d k ≠ 0 \mathbf{d}_k≠0 dk=0,则取 x k + 1 = x k + α d k \mathbf{x}_{k+1}=\mathbf{x}_{k}+\alpha \mathbf{d}_{k} xk+1=xk+αdk,在 x k + 1 \mathbf{x}_{k+1} xk+1为可行点的条件下确定 d k \mathbf{d}_k dk方向的步长 α k \alpha_k αk
      • 如果存在 p p p不在 I k I_{k} Ik中,使得 a p x k + 1 = b p \mathbf{a}_{p} \mathbf{x}_{k+1}=\mathrm{b}_{p} apxk+1=bp,则将 p p p加入有效集
      • 如果存在 I k I_{k} Ik中的指标 q q q,使得 λ i < 0 \lambda_i<0 λi<0,则 x k \mathbf{x}_{k} xk不是最优解,从有效集中去掉q。

可行步长的选取:阻塞约束

α k = min ⁡ { 1 , min ⁡ i ∉ I k , a i T d k < 0 b i − a i T x k a i T d k } \alpha_{k}=\min \left\{1, \min _{i \notin I_{k}, \mathbf{a}_{i}^{T} \mathbf{d}_{k}<0} \frac{b_{i}-\mathbf{a}_{i}^{T} \mathbf{x}_{k}}{\mathbf{a}_{i}^{T} \mathbf{d}_{k}}\right\} αk=min{1,i/Ik,aiTdk<0minaiTdkbiaiTxk}
α k = 1 \alpha_{k}=1 αk=1时,对应约束集不影响,保持不变
α k < 1 \alpha_{k}<1 αk<1时,对应约束称为阻塞约束,此时沿着 d k \mathbf{d}_{k} dk运动,会被不在指标集中的约束给阻塞了,约束集因此改变。

  • 2
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值