前有学长精心的总结,在其基础上增加了部分内容,供大家参考!
文章目录
知识点总结
- 半定规划是一个非光滑 凸优化 问题
- 凸规划的 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.