【数学基础】【控制理论】QP方法求解带约束的二次型优化问题

QP标准问题描述

m i n f ( x ) = 1 2 x T H x + c T x minf(x)=\frac{1}{2}x^THx+c^Tx minf(x)=21xTHx+cTx
s . t . B x ≤ d s.t. \qquad Bx\le d s.t.Bxd
其中H为对称正定阵,x是要优化的变量。

二次型优化问题分为等式约束和不等式约束,核心思路是利用拉格朗日乘子把等式约束化为无条件约束极值问题,不等式约束问题化为等式约束问题

等式约束优化

只考虑有等式约束的情况,那么原问题简化为:

m i n f ( x ) = 1 2 x T H x + c T x minf(x)=\frac{1}{2}x^THx+c^Tx minf(x)=21xTHx+cTx
s . t . B x = d s.t. \qquad Bx= d s.t.Bx=d
引入拉格朗日乘子,得到拉格朗日函数:
L ( x , λ ) = 1 2 x T H x + c T x + λ T ( B x − d ) L(x,\lambda )=\frac{1}{2}x^THx+c^Tx+\lambda^T(Bx-d) L(x,λ)=21xTHx+cTx+λT(Bxd)
拉格朗日函数是x和 λ \lambda λ的函数,分别对两个变量求偏导,这里涉及到矩阵求导的问题(注意一下)
H x + c + B T λ = 0 Hx+c+B^T\lambda=0 Hx+c+BTλ=0
B x − d = 0 Bx-d=0 Bxd=0
在求解最优变量x过程中,因为对 λ \lambda λ求偏导时已经包含了等式约束,所以就将等式约束问题变成了含有两个参数 ( x λ ) (x \quad\lambda) (xλ)的无条件极值问题。

( x λ ) (x \quad\lambda) (xλ)由方程求解:
[ H B T B 0 ] [ x λ ] = [ − c d ] \left[ \begin{matrix} H & B^T\\B & 0 \end{matrix} \right] \left[ \begin{matrix} x \\\lambda \end{matrix} \right]= \left[ \begin{matrix} -c \\ d \end{matrix} \right] [HBBT0][xλ]=[cd]

不等式约束优化

先引入一个概念:

有效集(active set),对于一个可行解,它必定满足所有约束,其中满足等式约束的称为有效约束,所有有效约束构成的集合称为有效集,记作 Ω ( x ) \Omega(x) Ω(x)

可以简单理解成,能约束当前可行解的等式约束构成的集合。
例如:对于可行解x(0)=[2 0]T和约束条件:
− x 1 + 2 x 2 ≤ 2 ( C 1 ) -x_1+2x_2\le2\quad(C1) x1+2x22(C1)
x 1 + 2 x 2 ≤ 6 ( C 2 ) x_1+2x_2\le6\qquad(C2) x1+2x26(C2)
x 1 − 2 x 2 ≤ 2 ( C 3 ) x_1-2x_2\le2\qquad(C3) x12x22(C3)
− x 2 ≤ 0 ( C 4 ) -x_2\le0\qquad\qquad(C4) x20(C4)
其中C3和C4就是属于有效集,而C1和C2已经自动满足了,不属于有效集。

不等式约束问题通过求解有效集对应的等式约束问题来求解
m i n f ( x ) = 1 2 x T H x + c T x minf(x)=\frac{1}{2}x^THx+c^Tx minf(x)=21xTHx+cTx
s . t . b i x = d i , i ∈ Ω ( x ) s.t. \qquad b_ix= d_i,i\in\Omega(x) s.t.bix=di,iΩ(x)
可以进一步改进可行解 直到求出最优解。

现在从一个可行解 x ∗ x^* x出发,该可行解对应的有效集为 Ω ∗ ( x ∗ ) \Omega^*(x^*) Ω(x),即
b i x ∗ = d i , i ∈ Ω ∗ ( x ∗ ) b_ix^*=d_i,i\in\Omega^*(x^*) bix=di,iΩ(x)
从当前可行解出发,增加一个增量,把 x ∗ x^* x变成 x ∗ + δ x^*+\delta x+δ,则构成等式约束:
m i n f ( x ∗ + δ ) = 1 2 ( x ∗ + δ ) T H ( x ∗ + δ ) + c T ( x ∗ + δ ) minf(x^*+\delta)=\frac{1}{2}(x^*+\delta)^T H (x^*+\delta)+c^T(x^*+\delta) minf(x+δ)=21(x+δ)TH(x+δ)+cT(x+δ)
s . t . b i δ = 0 , i ∈ Ω ∗ ( x ∗ ) s.t. \qquad b_i\delta= 0,i\in\Omega^*(x^*) s.t.biδ=0,iΩ(x) \qquad x ∗ x^* x x ∗ + δ x^*+\delta x+δ约束之差)

x ∗ x^* x是已知的可行解,上述问题可以改写成:
m i n f ( δ ) = 1 2 δ T H δ + ( x ∗ T H + c T ) δ minf(\delta)=\frac{1}{2}\delta^TH\delta+(x^{*T}H+c^T)\delta minf(δ)=21δTHδ+(xTH+cT)δ
s . t . b i x = 0 , i ∈ Ω ( x ) s.t. \qquad b_ix= 0,i\in\Omega(x) s.t.bix=0,iΩ(x)
这就简化成了等式约束问题,可以用拉格朗日方法求解最优解 δ ∗ \delta^* δ λ ∗ \lambda^* λ
按照下面的规则判断最优解和调整有效集

在这里插入图片描述

说明几点:
这个算法是基于element-by-element的搜索方法,不用对矩阵求逆。
1、 δ \delta δ用来判断是否达到最优解,如果 δ \delta δ等于零,说明在当前约束条件下无法再改进,对于x的增量已经到头了。如果 λ \lambda λ非负,那说明即使离开当前有效集,也无法再得到改进。而如果 λ \lambda λ小于零说明当前的约束限制了改进,用通俗的话讲就是搜索的路线错了,如果换另一条搜索(有效集)还可以进一步优化。
2、如果 δ \delta δ不等于零,说明当前找到了一个可以改进的增量,若把这个增量加上形成新了的可行解,然后等式约束求解过程。(相当于做一次迭代)对应第3种情况。
3、如果这个增量加上以后,没有满足所有的约束条件,也就是不可行。那么说明这个迭代的结果(步长)过大,那适当减小步长,继续等式约束。对应第4种情况
4、思考题:为什么 λ \lambda λ的正负号可以用来判断是达到了最优解还是因为有效约束的限制无法继续改进。

主要来自 席裕庚《预测控制》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值