【計算機數學】二次規劃(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}運動,會被不在指標集中的約束給阻塞了,約束集因此改變。

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