前有学长精心的总结,在其基础上增加了部分内容,供大家参考!
文章目录
知识点总结
- 半定规划是一个非光滑 凸优化 问题
- 凸规划的 KKT 点是全局极小点
- 定理:凸规划的任意 KKT 点是全局极小点
- 目标函数 Hessian 阵半正定时,且约束为凸时为凸规划
- 将这些(通常是非光滑的)问题重新表述成光滑的优化问题常用技巧:
min x ∈ R n f ( x ) ⟷ min x ∈ R n , t ∈ R t s . t . f ( x ) ≤ t \min_{x \in \mathbb{R}^n}~~f(x) \longleftrightarrow \begin{aligned} \min_{x\in\mathbb{R}^n,t\in \mathbb{R}} ~~& t\\ \mathrm{s.t.} ~~& f(x) \leq t \end{aligned} x∈Rnmin f(x)⟷x∈Rn,t∈Rmin s.t. tf(x)≤t
例 (a) f ( x ) = ∥ r ( x ) ∥ ∞ f(x) = \| r(x) \|_{\infty} f(x)=∥r(x)∥∞ 可重述为
min x ∈ R n , t ∈ R t s . t . − t ≤ r i ( x ) ≤ t , i = 1 , 2 , ⋯ , m \begin{aligned} \min_{x\in\mathbb{R}^n,t\in \mathbb{R}} ~~& t\\ \mathrm{s.t.} ~~& -t \leq r_i(x) \leq t,i=1,2,\cdots,m \end{aligned} x∈Rn,t∈Rmin s.t. t−t≤ri(x)≤t,i=1,2,⋯,m
(b) f ( x ) = max { r i ( x ) , i = 1 , 2 , ⋯ , m } f(x) = \max\{r_i(x),i=1,2,\cdots,m\} f(x)=max{ ri(x),i=1,2,⋯,m} 可重述为
min x ∈ R n , t ∈ R t s . t . r i ( x ) ≤ t , i = 1 , 2 ⋯ , m \begin{aligned} \min_{x\in\mathbb{R}^n,t\in \mathbb{R}} ~~& t\\ \mathrm{s.t.} ~~& r_i(x) \leq t,i=1,2\cdots,m \end{aligned} x∈Rn,t∈Rmin s.t. tri(x)≤t,i=1,2⋯,m
© f ( x ) = ∥ r ( x ) ∥ 1 f(x) = \|r(x)\|_1 f(x)=∥r(x)∥1 可重述为
min x ∈ R n , t ∈ R m ∑ i = 1 m t i s . t . − t i ≤ r i ( x ) ≤ t i , i = 1 , 2 , ⋯ , m \begin{aligned} \min_{x\in\mathbb{R}^n,t\in \mathbb{R}^m} ~~& \sum_{i=1}^m t_i\\ \mathrm{s.t.} ~~& -t_i \leq r_i(x) \leq t_i,i=1,2,\cdots,m \end{aligned} x∈Rn,t∈Rmmin s.t. i=1∑mti−ti≤ri(x)≤ti,i=1,2,⋯,m
-
线性规划是凸规划,其KKT点是全局最优点
-
求解二次规划的积极集法中,初始迭代 不是任意的 ,要是满足约束的可行点
-
二次(courant)罚函数中, 不能固定罚函数,当罚参数趋于 + ∞ +\infty +∞ 时由罚函数所得的原问题的近似解才是可行的。
-
增广 Lagrange 函数中, 固定 Lagrange 乘子为与问题为与问题最优解对应的 Lagrange 乘子, 且二阶充分条件成立 ,则对充分大的罚参数,求增广Lagrange函数的极小点可得原问题的解。
-
l 1 l_1 l1 罚函数是精确罚函数
- 特点:不需要 σ → ∞ \sigma \rightarrow \infty σ→∞,避免了无约束优化问题的病态性;但是是非光滑的,带来数值计算上的困难
-
凸规划,且满足 Slater 约束规范,则强对偶性成立
- S l a t e r C Q + 凸 规 划 ⇒ 强 对 偶 定 理 \mathrm{Slater ~ CQ} + 凸规划 \Rightarrow 强对偶定理 Slater CQ+凸规划⇒强对偶定理
-
二次规划不一定是凸规划,需要 Hessian 矩阵半正定
对数障碍函数
ϕ ( x , μ ) = f ( x ) − μ ∑ i log ( − c i ( x ) ) \phi(x,\mu) = f(x) - \mu \sum_i \log(-c_i(x)) ϕ(x,μ)=f(x)−μi∑log(−ci(x))
倒数障碍函数
ϕ ( x , μ ) = f ( x ) − μ ∑ i [ c i ( x ) ] − 1 \phi(x,\mu) = f(x) - \mu \sum_i [c_i(x)]^{-1} ϕ(x,μ)=f(x)−μi∑[ci(x)]−1
二次罚函数
ϕ ( x , σ ) = f ( x ) + 1 2 σ ∑ i ( c i ( x ) ) 2 = f ( x ) + 1 2 σ c ( x ) T c ( x ) \begin{aligned} \phi(x,\sigma) = & f(x) + \frac{1}{2}\sigma\sum_i(c_i(x))^2 \\ = & f(x) + \frac{1}{2}\sigma c(x)^Tc(x) \end{aligned} ϕ(x,σ)==f(x)+21σi∑(ci(x))2f(x)+21σc(x)Tc(x)
- Lagrange 乘子估计为
λ i ( k ) = σ k c ( k ) \lambda_i^{(k)} = \sigma_k c^{(k)} λi(k)=σkc(k)
乘子罚函数
ϕ ( x , λ , σ ) = f ( x ) + λ T c ( x ) + 1 2 σ c ( x ) T c ( x ) \phi(x,\lambda,\sigma) = f(x) + \lambda^T c(x) + \frac{1}{2} \sigma c(x)^Tc(x) ϕ(x,λ,σ)=f(x)+λTc(x)+21σc(x)Tc(x)
- Lagrange 乘子估计为
λ ( k + 1 ) = λ ( k ) + σ c i ( k ) \lambda^{(k +1)} = \lambda^{(k)} + \sigma c_i^{(k)} λ(k+1)=λ(k)+σci(k)
基本SQP法
SQP 法中的二次规划子问题:
min s ∈ R n 1 2 s T W ( k ) s + g ( k ) T s + f ( k ) s . t . a i ( k ) T s + c i ( k ) = 0 , i ∈ E a i ( k ) T s + c i ( k ) ≤ 0 , i ∈ I \begin{aligned} \min_{s \in \mathbb{R}^n} ~~& \frac{1}{2} s^T W^{(k)} s + {g^{(k)}}^T s + f^{(k)} \\ \mathrm{s.t.}~~& {a_i^{(k)}}^Ts + c_i^{(k)} = 0, i \in \mathcal{E}\\ ~~& {a_i^{(k)}}^Ts + c_i^{(k)} \leq 0, i \in \mathcal{I} \end{aligned} s∈Rnmin s.t. 21sTW(k)s+g(k)Ts+f(k)ai(k)Ts+ci(k)=0,i∈Eai(k)Ts+ci(k)≤0,i∈I
其中:
- W ( k ) = ∇ 2 f ( x ( k ) ) + ∑ i λ i ( k ) ∇ 2 c i ( x ( k ) ) W^{(k)} = \nabla^2f(x^{(k)}) + \sum_i \lambda_i^{(k)} \nabla^2 c_i(x^{(k)}) W(k)=∇2f(x(k))+∑iλi(k)∇2ci(x(k))
- s = x − x ( k ) s = x-x^{(k)} s=x−x(k) 是新定义的一个向量
- c i c_i ci 是把 x x x 带入约束得到的值
- a i a_i ai 是在 x x x 点处的约束的梯度
解出 s s s 后, x = s + x ( k ) x = s + x^{(k)} x=s+x(k)
SQP 法失败,可能是由初值选取不当造成的
判定一个点是不是KKT点
在 x ⋆ x^{\star} x⋆ 满足
− g = ∑ i = 1 n λ i a i -g = \sum_{i=1}^n \lambda_i a_i −g=i=1∑nλiai
解出乘子 λ \lambda λ 非负,为 KKT 点
一阶条件
一阶必要条件
KKT 条件
∇ x L ( x ∗ , λ ∗ ) = 0 c i ( x ∗ ) = 0 , i ∈ E c i ( x ∗ ) ≤ 0 , i ∈ I λ i ∗ ≥ 0 , i ∈ I λ i ∗ c i ( x ∗ ) = 0 , i ∈ I \begin{aligned} \nabla_x \mathcal{L}(x^*,\lambda^*) & = 0\\ c_i(x^*) & = 0, i \in \mathcal{E} \\ c_i(x^*) & \leq 0, i \in \mathcal{I} \\ \lambda_i^* &\geq 0, i \in \mathcal{I} \\ \lambda_i^*c_i(x^*) & = 0, i \in \mathcal{I} \end{aligned} ∇xL(x∗,λ∗)ci(x∗)ci(x∗)λi∗λi∗ci(x∗)=0=0,i∈E≤0,i∈I≥0,i∈I=0,i∈I
约束规范条件
LCQ、LICQ条件
若满足 LCQ 或 LICQ 条件,则极小点必是 KKT 点
- LCQ:在该点的等式约束和积极约束都是线性约束
- LICQ:该点处的等式约束和积极约束的梯度线性无关(非零)
任意约束的 Lagrange 乘子的相反数均反映约束函数发生变化时所引起的最优值的变化率
二阶条件
二阶充分条件
- 计算积极约束的梯度 a i , i ∈ A a_i,i \in \mathcal{A} ai,i∈A
- 计算 Lagrange 函数的 Hessian 矩阵 W W W
- 根据 p T a i p^Ta_i pTai 的条件求出 p ∈ F ⋆ p \in F^{\star} p∈F⋆
- 计算 p T W p p^T W p pTWp,若大于 0,则该点是局部解,否则不是
二阶充分条件: x ⋆ x^{\star} x⋆ 处KKT条件成立且
p T W p > 0 p^T W p > 0 pTWp>0
则 x ⋆ x^{\star} x⋆ 是问题的严格局部极小点
二阶必要条件
- x ⋆ x^{\star} x⋆ 是局部极小点
- 正则性假设成立
- 则存在乘子 λ ⋆ \lambda^{\star} λ⋆ 使得 KKT 条件成立
则
p T W p ≥ 0 p^T W p \geq 0 pTWp≥0
对偶函数求法
若对偶函数有解析形式,步骤如下:
- 先写出 Lagrange 函数 L ( x , λ ) \mathcal{L}(x,\lambda) L(x,λ)
- 求出使 Lagrange 函数取极小值时的 x x x
- 把 x x x 代回源 Lagrange 函数得到以 λ \lambda λ 为变量的函数 φ ( λ ) = min x ∈ R n L ( x , λ ) \varphi(\lambda)= \min_{x\in \mathbb{R}^n}~\mathcal{L}(x,\lambda) φ(λ)=minx∈Rn L(x,λ),即为对偶函数
- 原问题为求最小值,对偶问题即为求最大值,对偶问题取最优值时的 λ \lambda λ 为对应原问题取最优值时的 Lagrange 乘子
例 考虑问题
min x ∈ R n f ( x ) = c T x s . t . A x ≥ b x ≥ 0 \begin{aligned} \min_{x\in\mathbb{R}^n} ~~& f(x) = c^T x \\ \mathrm{s.t.} ~~& Ax \geq b \\ ~~&x\geq 0 \end{aligned} x∈Rnmin s.t. f(x)=cTxAx≥bx≥0
分别基于集合约束 x ∈ X = { x ∈ R n ∣ x ≥ 0 } x\in X=\{x\in\mathbb{R}^n | x\geq 0\} x∈X={ x∈Rn∣x≥0} 和 x ∈ X = R n x \in X = \mathbb{R}^n x∈X=Rn 写出该问题的对偶问题。
解 (a) Lagrange 函数为
L ( x , λ ) = c T x + λ T ( b − A x ) = ( c T − λ T A ) x + λ T b \begin{aligned} \mathcal{L}(x,\lambda) &= c^Tx + \lambda^T(b - Ax)\\ &=(c^T-\lambda^TA)x + \lambda^Tb \end{aligned} L(x,λ)=cTx+λT(b−Ax)=(cT−λTA)x+λTb
记对偶函数为
φ ( λ ) = min x ≥ 0 L ( x , λ ) \varphi(\lambda) = \min_{x\geq 0}~\mathcal{L}(x,\lambda) φ(λ)=x≥0min L(x,λ)
因此,需要 c T − λ T A ≥ 0 c^T - \lambda^TA\geq 0 cT−λTA≥0,则对偶函数为 φ ( λ ) = b T λ \varphi(\lambda) = b^T\lambda φ(λ)=bTλ。
对偶问题
max x ≥ 0 b T λ s . t . λ T A ≤ c T λ ≥ 0 \begin{aligned} \max_{x \geq 0} ~~& b^T\lambda \\ \mathrm{s.t.} ~~& \lambda^TA\leq c^T \\ ~~&\lambda\geq 0 \end{aligned} x≥0max s.t. bTλλTA≤cTλ≥0
(b) Lagrange 函数为
L ( x , λ ) = c T x + λ T ( b − A x ) + μ ( − x ) = ( c T − λ T A − μ T ) x + λ T b \begin{aligned} \mathcal{L}(x,\lambda) &= c^Tx + \lambda^T(b - Ax) + \mu(-x)\\ &=(c^T-\lambda^TA - \mu^T)x + \lambda^Tb \end{aligned} L(x,λ)=cTx+λT(b−Ax)+μ(−x)=(cT−λTA−μT)x+λTb
记对偶函数为
φ ( λ ) = min x ∈ R n L ( x , λ ) \varphi(\lambda) = \min_{x\in \mathbb{R}^n}~\mathcal{L}(x,\lambda) φ(λ)=x∈Rnmin L(x,λ)
因此,需要 c T − λ T A − μ T = 0 c^T - \lambda^TA - \mu^T = 0 cT−λTA−μT=0,则对偶函数为 φ ( λ ) = b T λ \varphi(\lambda) = b^T\lambda φ(λ)=bTλ。
对偶问题
max x ∈ R n b T λ s . t . λ T A + μ T = c T λ ≥ 0 , μ ≥ 0 \begin{aligned} \max_{x\in\mathbb{R}^n} ~~& b^T\lambda \\ \mathrm{s.t.} ~~& \lambda^TA +\mu^T = c^T \\ ~~&\lambda\geq 0,\mu\geq 0 \end{aligned} x∈Rnmax s.t. bTλλTA+μT=cTλ≥0,μ≥0
注记:由此题体会写对偶问题的灵活性,即通常仅把难处理的约束松弛到目标函数中形成 Lagrange 函数,这样对偶问题的变量要少一些. 但是求对偶函数时可能要稍微复杂些。显然,两个问题的是等价的。
积极集法
对问题
min x ∈ R n q ( x ) = 1 2 x T G x + d T x s.t. a i T x = b i , i ∈ A \begin{aligned} \min_{x\in\mathbb{R}^n} \quad q(x) &= \frac12x^TGx+d^Tx \\ \text{s.t.}\quad a^T_ix& = b_i, \quad i\in \mathcal A \end{aligned} x∈Rnminq(x)s.t.aiTx=21xTGx+dTx=bi,i∈A
考虑第 k k k 次迭代, x ( k ) x^{(k)} x(k) 是可行点, A ( k ) \mathcal{A}^{(k)} A(k) 是积极集。
令 s = x − x ( k ) s = x - x^{(k)} s=x−x(k), g ( k ) = ∇ q ( x ( k ) ) = G x ( k ) + d g^{(k)} = \nabla q(x^{(k)}) = Gx^{(k)} + d g(k)=∇q(x(k))=Gx(k)+d,则得优化问题
min s ∈ R n q ( x ) = 1 2 s T G s + g ( k ) T s s.t. a i T s = 0 , i ∈ A \begin{aligned} \min_{s\in\mathbb{R}^n} \quad q(x) &= \frac12 s^TGs+{g^{(k)}}^Ts \\ \text{s.t.}\quad a^T_is& = 0, \quad i\in \mathcal A \end{aligned} s∈Rnminq(x)s.t.aiTs=21sTGs+g(k)Ts=0,i∈A
- 解该问题得 s ( k ) s^{(k)} s(k),乘子为 λ ( k ) \lambda^{(k)} λ(k)
- 若 λ ( k ) \lambda^{(k)} λ(k) 有负, 删除最负的分量对应的约束
- 在新的约束的条件下,求取得目标函数最小值 s ( k ) s^{(k)} s(k),作为搜索方向 p p p。
- 步长 α k = min ( 1 , min i ∉ A ( k ) , a i T p ( k ) < 0 b i − a i T x ( k ) a i T p ( k ) ) \alpha_k=\min \left( 1,\min_{i\notin\mathcal A^{(k)}, a_i^Tp^{(k)}<0} \frac{b_i-a^T_ix^{(k)}}{a^T_ip^{(k)}}\right) αk=min(1,mini∈/A(k),aiTp(k)<0aiTp(k)bi−aiTx(k)) ,新的点为 x ( k + 1 ) = x ( k ) + α k p ( k ) x^{(k+1)}=x^{(k)}+\alpha_kp^{(k)} x(k+1)=x(k)+αkp(k)
- 迭代直到 Lagrange 乘子没有负
半定规划
形如:
min C ⋅ X s.t. A i ⋅ X = b 1 X ≥ 0 \begin{array}{cl}{
{\operatorname{min}}} & {C \cdot X} \\ {\text { s.t. }} & {A_{i} \cdot X=b_{1}} \\ {} & {X \geq 0}\end{array} min s.t. C⋅XAi⋅X=b1X≥0
对偶:
max ∑ i = 1 m y i b i s.t. ∑ i = 1 m y i A i + S = C S ≥ 0 \begin{aligned}{
{\operatorname{max}}} ~~& {\sum_{i=1}^{m} y_{i} b_{i}} \\ {\text { s.t.}} ~~& {\sum_{i=1}^{m} y_{i} A_{i}+S=\mathbf{C}} \\ {} & {S \geq 0}\end{aligned} max s.t. i=1∑myibii=1∑myiAi+S=CS≥0
举例:
max 11 y 1 + 19 y 2 s.t. y 1 [ 1 0 1 0 3 7 1 7 5 ] + y 2 [ 0 2 8 2 6 0 8 0 4 ] + S = [ 1 2 3 2 9 0 3 0 7 ] S ≥ 0 \begin{aligned}{\text { max }}~~ & {11 y_{1}+19 y_{2}} \\ {\text {s.t. }}~~ & {y_{1}\left[\begin{array}{ccc}{1} & {0} & {1} \\ {0} & {3} & {7} \\ {1} & {7} & {5}\end{array}\right]+y_{2}\left[\begin{array}{ccc}{0} & {2} & {8} \\ {2} & {6} & {0} \\ {8} & {0} & {4}\end{array}\right]+S=\left[\begin{array}{ccc}{1} & {2} & {3} \\ {2} & {9} & {0} \\ {3} & {0} & {7}\end{array}\right]} \\ {} & {S \geq 0}\end{aligned} max s.t. 11y1+19y2y1⎣⎡101037175⎦⎤+y2⎣⎡028260804⎦⎤+S=⎣⎡123290307⎦⎤S≥0
参考资料
[3] 刘红英,夏勇,周永生. 数学规划基础,北京,北京航空航天大学出版社,2012.