【课堂笔记】凸优化问题-2

文章目录

回顾

凸优化问题的初始形式为:
minimize f 0 ( x ) s.t. f i ( x ) ≤ 0 , i = 1 , . . . , m a i ⊤ x = b i , i = 1 , . . , p \begin{align*} \text{minimize } \ \ &f_0(x) \\ \text{s.t. }\ \ \ &f_i(x) \le 0, \ \ \ i=1,...,m\\ &a_i^\top x = b_i, \ \ \ \ i=1,..,p \end{align*} minimize s.t. f0(x)fi(x)≤0, i=1,...,mai⊤x=bi, i=1,..,p

一阶必要条件

x x x是最优的(optimal),当且仅当 x x x是可行解(feasible),且
∇ f 0 ( x ) ⊤ ( y − x ) ≥ 0 , ∀ feasible y \nabla f_0(x)^\top(y-x) \ge 0, \forall \text{feasible }y ∇f0(x)⊤(y−x)≥0,∀feasible y

证明:

  • " ⇒ \Rightarrow ⇒":如果存在某个 y y y,使得 ∇ f 0 ( x ) ⊤ ( y − x ) < 0 \nabla f_0(x)^\top(y-x) < 0 ∇f0(x)⊤(y−x)<0,设 z ( t ) = t y + ( 1 − t ) x z(t) = ty + (1-t)x z(t)=ty+(1−t)x是可行解,则
    d d t f 0 ( z ( t ) ) = ∇ f 0 ( z ( t ) ) ⊤ ( y − x ) d d t f 0 ( z ( t ) ) ∣ t = 0 = ∇ f 0 ( x ) ⊤ ( y − x ) < 0 \frac{d}{dt} f_0(z(t)) = \nabla f_0(z(t))^\top(y-x) \\ \frac{d}{dt} f_0(z(t)) \Big|_{t=0} = \nabla f_0(x)^\top(y-x)<0 dtdf0(z(t))=∇f0(z(t))⊤(y−x)dtdf0(z(t)) t=0=∇f0(x)⊤(y−x)<0
    所以对某个 t > 0 t > 0 t>0,有 f ( z ( t ) ) < f 0 ( x ) f(z(t)) < f_0(x) f(z(t))<f0(x)
  • " ⇐ \Leftarrow ⇐":因为 f 0 f_0 f0是凸的,所以 f 0 ( y ) ≥ f 0 ( x ) + ∇ f 0 ( x ) ⊤ ( y − x ) ≥ f 0 ( x ) f_0(y) \ge f_0(x) + \nabla f_0(x)^\top(y-x) \ge f_0(x) f0(y)≥f0(x)+∇f0(x)⊤(y−x)≥f0(x)

几种重要的优化问题形式

QCQP

二次约束的二次规划(Quadratically Constrained Quadratic Program):
minimize 1 2 x ⊤ P x + q 0 ⊤ x + r 0 s.t. 1 2 x ⊤ P i x + q i ⊤ x + r i ≤ 0 , i = 1 , . . . , m A x = b \begin{align*} \text{minimize } \ \ &\frac{1}{2}x^\top P x + q_0^\top x + r_0 \\ \text{s.t. }\ \ \ &\frac{1}{2}x^\top P_i x + q_i^\top x + r_i \le 0, \ \ \ i=1,...,m\\ &Ax=b \end{align*} minimize s.t. 21x⊤Px+q0⊤x+r021x⊤Pix+qi⊤x+ri≤0, i=1,...,mAx=b

SOCP

二阶锥规划(Second-Order Cone Programming)
minimize f ⊤ x s.t. ∥ A i x + b i ∥ 2 ≤ C i ⊤ x + d i , i = 1 , . . . , m F x = g \begin{align*} \text{minimize } \ \ &f^\top x \\ \text{s.t. }\ \ \ &\|A_i x + b_i\|_2 \le C_i^\top x + d_i, \ \ \ i=1,...,m\\ &Fx=g \end{align*} minimize s.t. f⊤x∥Aix+bi∥2≤Ci⊤x+di, i=1,...,mFx=g

LP

线性规划(Linear Programming)
minimize C ⊤ x s.t. A x ≤ b \begin{align*} \text{minimize } \ \ &C^\top x \\ \text{s.t. }\ \ \ &Ax \le b \end{align*} minimize s.t. C⊤xAx≤b

对偶性(Duality)与拉格朗日函数

给定一个一般的约束优化问题(不一定凸):
minimize f 0 ( x ) s.t. f i ( x ) ≤ 0 , i = 1 , . . . , m h i ( x ) = 0 , i = 1 , . . , p \begin{align*} \text{minimize } \ \ &f_0(x) \\ \text{s.t. }\ \ \ &f_i(x) \le 0, \ \ \ i=1,...,m\\ &h_i(x)=0, \ \ \ \ i=1,..,p \end{align*} minimize s.t. f0(x)fi(x)≤0, i=1,...,mhi(x)=0, i=1,..,p

定义拉格朗日函数 (Lagrangian)
L ( x , λ , ν ) = f 0 ( x ) + ∑ m i = 1 λ i f i ( x ) + ∑ p i = 1 ν i h i ( x ) dom L = D × R m × R p L(x, \lambda, \nu) = f_0(x) + \underset{i=1}{\overset{m}{\sum}}\lambda_i f_i(x) + \underset{i=1}{\overset{p}{\sum}}\nu_i h_i(x) \\ \text{dom} L = D \times \mathbb{R}^m \times \mathbb{R}^p L(x,λ,ν)=f0(x)+i=1∑mλifi(x)+i=1∑pνihi(x)domL=D×Rm×Rp

定义拉格朗日对偶函数
g ( λ , ν ) = inf x ∈ D L ( x , λ , ν ) g(\lambda, \nu)=\underset{x \in D}{\text{inf}}L(x, \lambda, \nu) g(λ,ν)=x∈DinfL(x,λ,ν)

  • 弱对偶性 (Weak Duality): 对于任意 λ ≥ 0 \lambda \ge 0 λ≥0,有 g ( λ , ν ) ≤ p ∗ g(\lambda, \nu) \le p^* g(λ,ν)≤p∗,其中 p ∗ p^* p∗是原问题的最优值。
  • 凹性 (Concave):无论原问题是凸还是非凸,对偶函数 g ( λ , ν ) g(\lambda, \nu) g(λ,ν)总是关于 ( λ , ν ) (\lambda, \nu) (λ,ν)的凹函数。

例子

minimize x ⊤ x s.t. A x = b \begin{align*} \text{minimize } \ \ &x^\top x \\ \text{s.t. }\ \ \ &Ax=b \end{align*} minimize s.t. x⊤xAx=b


L ( x , ν ) = x ⊤ x + ν ⊤ ( A x − b ) g ( ν ) = inf ⁡ x L ( x , ν ) L(x, \nu) = x^\top x + \nu^\top(Ax-b) \\ g(\nu) = \underset{x}{\inf} L(x, \nu) L(x,ν)=x⊤x+ν⊤(Ax−b)g(ν)=xinfL(x,ν)

求 inf ⁡ \inf inf:
∇ x L ( x , ν ) = 2 x + A ⊤ ν = 0 x 0 = − 1 2 A ⊤ ν g ( ν ) = L ( x 0 , ν ) = − 1 4 ν ⊤ A A ⊤ v − b ⊤ v \nabla_x L(x, \nu) = 2x + A^\top \nu = 0 \\ x_0 = -\frac{1}{2}A^\top\nu \\ g(\nu) = L(x_0, \nu) = -\frac{1}{4}\nu^\top AA^\top v - b^\top v ∇xL(x,ν)=2x+A⊤ν=0x0=−21A⊤νg(ν)=L(x0,ν)=−41ν⊤AA⊤v−b⊤v

拉格朗日对偶问题

定义为:
minimize g ( λ , ν ) s.t. λ ≥ 0 \begin{align*} \text{minimize } \ \ &g(\lambda, \nu) \\ \text{s.t. }\ \ \ &\lambda \ge 0 \end{align*} minimize s.t. g(λ,ν)λ≥0

它的最优解记为 d ∗ d^* d∗,则

  • 弱对偶性: d ∗ ≤ p ∗ d^* \le p^* d∗≤p∗,总是成立
  • 强对偶性: d ∗ = p ∗ d^* = p^* d∗=p∗,在凸优化问题中通常成立。

这是非常强大的性质,意味着原问题和对偶问题可能有相同的最优值,可用于算法设计。

KKT条件

假设在 ( x ∗ , λ ∗ , ν ∗ ) (x^*, \lambda^*, \nu^*) (x∗,λ∗,ν∗)上有 p ∗ = d ∗ p^* = d^* p∗=d∗,则有:
f 0 ( x ∗ ) = g ( λ ∗ , ν ∗ ) = inf ⁡ x ∈ D ( f 0 ( x ) + ∑ m i = 1 λ i ∗ f i ( x ) + ∑ p j = 1 ν j ∗ h j ( x ) ) ≤ f 0 ( x ∗ ) + ∑ m i = 1 λ i ∗ f i ( x ∗ ) + ∑ p j = 1 ν j ∗ h j ( x ∗ ) ≤ f 0 ( x ∗ ) \begin{align*} f_0(x^*) &= g(\lambda^*, \nu^*) \\ &= \underset{x\in D}{\inf}\left(f_0(x)+\underset{i=1}{\overset{m}{\sum}}\lambda_i^* f_i(x) + \underset{j=1}{\overset{p}{\sum}}\nu_j^*h_j(x)\right) \\ & \le f_0(x^*) + \underset{i=1}{\overset{m}{\sum}}\lambda_i^* f_i(x^*) + \underset{j=1}{\overset{p}{\sum}}\nu_j^*h_j(x^*) \\ &\le f_0(x^*) \end{align*} f0(x∗)=g(λ∗,ν∗)=x∈Dinf(f0(x)+i=1∑mλi∗fi(x)+j=1∑pνj∗hj(x))≤f0(x∗)+i=1∑mλi∗fi(x∗)+j=1∑pνj∗hj(x∗)≤f0(x∗)

最后一个不等式是因为条件中
∑ m i = 1 λ i ∗ f i ( x ∗ ) ≤ 0 ∑ p j = 1 ν j ∗ h j ( x ∗ ) = 0 \underset{i=1}{\overset{m}{\sum}}\lambda_i^* f_i(x^*) \le 0\\ \underset{j=1}{\overset{p}{\sum}}\nu_j^*h_j(x^*) =0 i=1∑mλi∗fi(x∗)≤0j=1∑pνj∗hj(x∗)=0

上述推导说明当 p ∗ = d ∗ p^* = d^* p∗=d∗,必有
λ i ∗ f i ( x ∗ ) = 0 \lambda_i^* f_i(x^*) = 0 λi∗fi(x∗)=0

总结KKT条件

  • 梯度条件: ∇ x L = 0 : ∇ f 0 ( x ) + ∑ m i = 1 λ i ∇ f i ( x ) + ∑ p j = 1 ∇ ν j ∗ h j ( x ) = 0 \nabla_x L=0: \nabla f_0(x) + \underset{i=1}{\overset{m}{\sum}}\lambda_i \nabla f_i(x) + \underset{j=1}{\overset{p}{\sum}}\nabla\nu_j^*h_j(x)=0 ∇xL=0:∇f0(x)+i=1∑mλi∇fi(x)+j=1∑p∇νj∗hj(x)=0
  • 原始可行性: f i ( x ) ≤ 0 , h i ( x ) = 0 f_i(x) \le 0, h_i(x) = 0 fi(x)≤0,hi(x)=0
  • 对偶可行性: λ ≥ 0 \lambda \ge 0 λ≥0
  • 互补松弛性: λ i f i ( x ) = 0 \lambda_i f_i(x) = 0 λifi(x)=0

对于任意优化问题, p ∗ = d ∗ p^*=d^* p∗=d∗能自然推出KKT条件(必要条件)在任意 ( x ∗ , λ ∗ , ν ∗ ) (x^*, \lambda^*, \nu^*) (x∗,λ∗,ν∗)上成立;而对于凸优化问题, K K T KKT KKT条件是 p ∗ = d ∗ p^*=d^* p∗=d∗的充分必要条件。

无约束优化(Unconstrained Minimization)

定义:设 f f f是凸函数且二阶连续可微,无约束优化问题即:
minimize f ( x ) \text{minimize } \ \ f(x) minimize f(x)

对于凸优化问题,只要算法设计合理,通常能保证收敛到全局最优解。

相关推荐
9ilk3 小时前
【C++】--- C++11
开发语言·c++·笔记·后端
码农12138号4 小时前
服务端请求伪造-SSRF 学习笔记
笔记·web安全·网络安全·ctf·ssrf·服务端请求伪造
断剑zou天涯4 小时前
【算法笔记】bfprt算法
java·笔记·算法
中屹指纹浏览器4 小时前
指纹浏览器抗检测进阶:绕过深度风控的技术实践
服务器·网络·经验分享·笔记·媒体
思成不止于此5 小时前
【MySQL 零基础入门】DQL 核心语法(四):执行顺序与综合实战 + DCL 预告篇
数据库·笔记·学习·mysql
林夕sama7 小时前
MySQL的学习笔记
笔记·学习·mysql
Cricyta Sevina7 小时前
Java Map 集合深度笔记(理论篇)
java·笔记·哈希算法·map集合
灯前目力虽非昔,犹课蝇头二万言。7 小时前
HarmonyOS笔记9:UIAbility之间的切换和数据的传递
笔记·harmonyos
Ccjf酷儿8 小时前
操作系统 李治军 3 内存管理
笔记