二次规划的对偶形式(CVX)

解析一下 Boyd & Vandenberghe, "Convex Optimization"上的例子,重点在于其对偶形式是怎么得到的
Section 5.2.4: Solves a simple QCQP

输入数据

randn('state',13);
n = 6;
P0 = randn(n); P0 = P0'*P0 + eps*eye(n);
P1 = randn(n); P1 = P1'*P1;
P2 = randn(n); P2 = P2'*P2;
P3 = randn(n); P3 = P3'*P3;
q0 = randn(n,1); q1 = randn(n,1); q2 = randn(n,1); q3 = randn(n,1);
r0 = randn(1); r1 = randn(1); r2 = randn(1); r3 = randn(1);

优化代码

cvx_begin
    variable x(n)
    dual variables lam1 lam2 lam3
    minimize( 0.5*quad_form(x,P0) + q0'*x + r0 )
    lam1: 0.5*quad_form(x,P1) + q1'*x + r1 <= 0;
    lam2: 0.5*quad_form(x,P2) + q2'*x + r2 <= 0;
    lam3: 0.5*quad_form(x,P3) + q3'*x + r3 <= 0;
cvx_end
obj1 = cvx_optval;

计算对偶间隙

P_lam = P0 + lam1*P1 + lam2*P2 + lam3*P3;
q_lam = q0 + lam1*q1 + lam2*q2 + lam3*q3;
r_lam = r0 + lam1*r1 + lam2*r2 + lam3*r3;
obj2 = -0.5*q_lam'*inv(P_lam)*q_lam + r_lam;
disp('The duality gap is equal to ');
disp(obj1-obj2)

原目标

m i n i m i z e   1 2 x T P 0 x + q 0 T x + r 0 1 2 x T P 1 x + q 1 T x + r 1 < = 0 1 2 x T P 2 x + q 2 T x + r 2 < = 0 1 2 x T P 3 x + q 3 T x + r 3 < = 0 minimize \ \frac{1}{2}x^TP_0x+q_0^Tx+r_0\\ \frac{1}{2}x^TP_1x+q_1^Tx+r_1<=0\\ \frac{1}{2}x^TP_2x+q_2^Tx+r_2<=0\\ \frac{1}{2}x^TP_3x+q_3^Tx+r_3<=0 minimize 21xTP0x+q0Tx+r021xTP1x+q1Tx+r1<=021xTP2x+q2Tx+r2<=021xTP3x+q3Tx+r3<=0
P 0 ∈ S + + , P 1 , P 2 , P 3 ∈ S + P_0 \in S_{++},P_1,P_2,P_3 \in S_+ P0S++,P1,P2,P3S+,原目标是严格凸函数,有唯一极小解

拉格朗日的形式

L ( x , λ 1 , λ 2 , λ 3 ) = 1 2 x T P 0 x + q 0 T x + r 0 + ∑ i = 1 3 λ i ( 1 2 x T P i x + q i T x + r i ) = 1 2 x T P ( λ ) x + q ( λ ) T x + r ( λ ) P ( λ ) = P 0 + ∑ i = 1 3 λ i P i q ( λ ) = q 0 + ∑ i = 1 3 λ i q i r ( λ ) = r 0 + ∑ i = 1 3 λ i r i λ ⪰ 0 \mathcal{L}(x,\lambda_1,\lambda_2,\lambda_3)=\frac{1}{2}x^TP_0x+q_0^Tx+r_0+\sum_{i=1}^3\lambda_i(\frac{1}{2}x^TP_ix+q_i^Tx+r_i)\\= \frac{1}{2}x^TP(\lambda)x+q(\lambda)^Tx+r(\lambda)\\ P(\lambda)=P_0+\sum_{i=1}^3\lambda_iP_i\\ q(\lambda)=q_0+\sum_{i=1}^3\lambda_iq_i\\ r(\lambda)=r_0+\sum_{i=1}^3\lambda_ir_i\\ \lambda\succeq 0 L(x,λ1,λ2,λ3)=21xTP0x+q0Tx+r0+i=13λi(21xTPix+qiTx+ri)=21xTP(λ)x+q(λ)Tx+r(λ)P(λ)=P0+i=13λiPiq(λ)=q0+i=13λiqir(λ)=r0+i=13λiriλ0

对偶形式

由于对偶变量 λ ⪰ 0 \lambda\succeq 0 λ0,因此, P ( λ ) ∈ S + + P(\lambda)\in S_{++} P(λ)S++
对拉格朗日求导可以得到极小值的位置
L ( x , λ ) = 1 2 x T P ( λ ) x + q ( λ ) T x + r ( λ ) → P ( λ ) x + q ( λ ) = 0 → x = − P ( λ ) − 1 q ( λ ) \mathcal{L}(x,\lambda)=\frac{1}{2}x^TP(\lambda)x+q(\lambda)^Tx+r(\lambda)\rightarrow\\ P(\lambda)x+q(\lambda)=0\rightarrow x=-P(\lambda)^{-1}q(\lambda) L(x,λ)=21xTP(λ)x+q(λ)Tx+r(λ)P(λ)x+q(λ)=0x=P(λ)1q(λ)
代入拉格朗日函数,得到对偶形式
g ( λ ) = i n f x ( L ( x , λ ) ) = − 1 2 q ( λ ) T P ( λ ) − 1 q ( λ ) + r ( λ ) λ ⪰ 0 g(\lambda)=\underset{x}{inf}(\mathcal{L}(x,\lambda))=-\frac{1}{2}q(\lambda)^TP(\lambda)^{-1}q(\lambda)+r(\lambda)\\\lambda\succeq 0 g(λ)=xinf(L(x,λ))=21q(λ)TP(λ)1q(λ)+r(λ)λ0

参考

http://web.cvxr.com/cvx/examples/cvxbook/Ch05_duality/html/qcqp.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值