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

非线性最优化

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

约束最优化问题通常写为:
Minf(x) s.t. ci(x)=0,iEci(x)0,iI \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}
其中E,IE,I分别为等式约束的指标集和不等式约束的指标集ci(x)c_i(\mathbf{x})约束函数

无约束二次最优化

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

二次规划的一般形式

minf(x)=1/2xTHx+cTx,xRn s.t. Axb \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}
HH对称矩阵时,被称为二次规划(Quadratic Programming,QP)。
特别地,当H正定时,目标函数为凸函数,线性约束下可行域又是凸集。上式被称为凸二次规划。
问题(1):
minf(x)=1/2xTHx+cTx,xRn s.t. aiTxbi,iIaiTx=bi,iE \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}

二次规划的性质

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

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

等式约束下的二次规划

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

凸二次规划的有效集方法

  • 直观解释:
    将不起作用的约束去掉,将起作用约束作为等式约束,通过解一系列等式约束的二次规划来实现不等式约束的优化。
  • 基本原理:
    x\mathbf{x}是问题(1)的最优解,则它也是问题(3):
    min12xTHx+cTx s.t. aiTx=bi,iI \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} 的最优解,其中II是起作用约束指标集(有效集)。反之,若x\mathbf{x}是问题(1)的可行解,又是(3)的K-T点,且相应的乘子λi0\lambda_{i} \geq 0,则x\mathbf{x}是问题(1)的最优解。

算法步骤(迭代法):

  • 设当前迭代点为xk\mathbf{x}_k,它也是(1)的可行解。该点的有效集记作IkI_k,为寻求xk\mathbf{x}_k点的迭代方向d\mathbf{d},用乘子法求解
    min12(xk+d)TH(xk+d)+cT(xk+d) s.t. aiTd=0,iIk \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}
    • 若所得最优值dk=0\mathbf{d}_k=0,则xk\mathbf{x}_k是(3)的最优解。
      • 为判断它是否(1)的最优解,考察对应于有效约束的乘子λi0\lambda_{i} \geq 0是否成立。若成立,则xk\mathbf{x}_kK-T点,由二次规划性质xk\mathbf{x}_k是(1)的最优解。
    • 若所得最优值dk0\mathbf{d}_k≠0,则取xk+1=xk+αdk\mathbf{x}_{k+1}=\mathbf{x}_{k}+\alpha \mathbf{d}_{k},在xk+1\mathbf{x}_{k+1}为可行点的条件下确定dk\mathbf{d}_k方向的步长αk\alpha_k
      • 如果存在pp不在IkI_{k}中,使得apxk+1=bp\mathbf{a}_{p} \mathbf{x}_{k+1}=\mathrm{b}_{p},则将pp加入有效集
      • 如果存在IkI_{k}中的指标qq,使得λi<0\lambda_i<0,则xk\mathbf{x}_{k}不是最优解,从有效集中去掉q。

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

αk=min{1,miniIk,aiTdk<0biaiTxkaiTdk} \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=1\alpha_{k}=1时,对应约束集不影响,保持不变
αk<1\alpha_{k}<1时,对应约束称为阻塞约束,此时沿着dk\mathbf{d}_{k}运动,会被不在指标集中的约束给阻塞了,约束集因此改变。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章