# 定义
标准形式的优化问题如下:
xmins.t.f0(x)fi(x)≤0,i=1,…,mhj(x)=0,j=1,…,p
- x∈Rn 是优化变量
- f0:Rn→R 为目标函数(cost/objective function)
- fi:Rn→R, i=1,…,m 是不等式约束函数
- hj:Rn→R, j=1,…,p 是等式约束函数
最优值定义:
p∗=inf{f0(x)∣fi(x)≤0, i=1,…,m; hj(x)=0, j=1,…,p}
- 如果无可行解(即不存在任何 x 满足所有约束),则 p∗=+∞
- 如果问题无界下,即 f0(x) 可以趋于 −∞,则 p∗=−∞
相关定义:
- 若 x∈dom f0 且满足所有约束,则称 x 为可行解(feasible)
- 若 x 可行且 f0(x)=p∗,则 x 为最优解,所有最优解组成集合 Xopt∗
- 若满足存在 R>0,在 ∣z−x∣2≤R 内 x 对应的局部子问题最优,则 x 为局部最优
举例(n=1, m=p=0):
- f0(x)=1/x, dom f0=R++:p∗=0,但不存在最优点
- f0(x)=−logx, dom f0=R++:p∗=−∞
- f0(x)=xlogx, dom f0=R++:p∗=−1/e, x=1/e 达到最优
- f0(x)=x3−3x:p∗=−∞,但 x=1 处有局部最小
优化问题的标准形式隐含一个域约束 x∈D=⋂i=0mdom fi∩⋂j=1pdom hj,其中 D 称为问题的域,fi(x)≤0,hj(x)=0 为显式约束。若 m=p=0,即为无约束问题。
例子:
xmin −i∑log(bi−aiTx)
这是无显式约束问题,但隐含约束 aiTx<bi。
凸规划/凸优化问题定义
当满足:
- 目标函数 f0 是凸函数
- 所有不等式约束 fi 均为凸函数
- 所有等式约束 hj 为仿射函数(即 hj(x)=ajTx+bj,线性函数)
时,标准形式问题称为凸优化问题。
根据凸集性质或凸集定义易证:凸优化问题的可行域一定为凸集。
# 非凸问题与等价(转化)问题
某些非凸优化问题可通过变量变换、等式消除或引入 slack 变量等方式转化为凸问题。常见保持凸性的等价变换有:
-
消除等式约束:
xmin f0(x)s.t. fi(x)≤0, Ax=b
等价于
zmin f0(Fz+x0)s.t. fi(Fz+x0)≤0
其中 x=Fz+x0 表示满足 Ax=b 的所有 x。
-
引入 slack 变量:
aiTx≤bi ⇔ aiTx+si=bi, si≥0
-
上凸包/epigraph 形式:
x,tmin ts.t. f0(x)−t≤0
-
变量消元(最小化部分变量):
x1,x2minf0(x1,x2), s.t. fi(x1)≤0
等价于
f0(x1):=x2inff0(x1,x2)
# 準凸(Quasiconvex)优化
如果 f0 是準凸函数(quasiconvex),约束 fi 凸,等式约束仿射,问题一般不是凸优化,但可用一些手段处理(例如二分法/bisection——通过求解一系列凸可行性问题 φt(x)≤0,fi(x)≤0,Ax=b 来近似 p∗)。
举例:
- 分式目标 f0(x)=q(x)p(x),p 凸、q 凸且 q>0,可用 φt(x)=p(x)−tq(x) 替换,φt 关于 x 是凸函数。
# 例子
-
线性规划 (Linear Programming, LP)
xmins.t.cTxGx⪯hAx=b
- 目标函数和约束函数都是仿射函数(线性函数)
- 可行域是多面体(polyhedron)
-
线性分式规划 (Linear-Fractional Program)
xmins.t.f0(x)=eTx+faTx+dGx⪯hAx=b
- 目标函数是线性分式函数,定义域为 dom f0={x∣eTx+f>0}
- 这是一个拟凸优化问题(quasiconvex optimization problem),不是凸优化问题
- 可以通过二分法(bisection)求解:通过求解一系列凸可行性问题来近似最优值
- 可以等价转化为线性规划:引入变量 y=x/(eTx+f) 和 z=1/(eTx+f),则原问题等价于
y,zmins.t.cTy+dzGy⪯hzAy=bzeTy+fz=1z≥0
- 其中 c=a,转化后的问题是线性规划
-
广义线性分式规划 (Generalized Linear-Fractional Program)
- 目标函数为多个线性分式函数的最大值或加权和
- 形式更一般,但仍可通过类似方法转化为线性规划或使用二分法求解
-
二次规划 (Quadratic Programming, QP)
xmins.t.(1/2)xTPx+qTx+rGx⪯hAx=b
- 目标函数是二次函数,其中 P⪰0(半正定矩阵)
- 约束函数是仿射函数
- 当 P≻0 时,目标函数是严格凸函数,有唯一最优解
-
二次约束二次规划 (Quadratically Constrained Quadratic Programming, QCQP)
xmins.t.(1/2)xTP0x+q0Tx+r0(1/2)xTPix+qiTx+ri≤0,i=1,…,mAx=b
- 目标函数和约束函数都是二次函数
- 要求 Pi⪰0, i=0,1,…,m(所有二次项系数矩阵半正定)
-
半正定规划 (Semidefinite Programming, SDP)
xmins.t.cTxx1F1+x2F2+⋯+xnFn+G⪯0Ax=b
- 约束包含线性矩阵不等式 (LMI)
- 其中 Fi,G∈Sk(k×k 对称矩阵)
- 这是线性规划的推广,将向量不等式推广到矩阵不等式
-
锥规划 (Cone Programming)
xmins.t.cTxFx+g⪯K0Ax=b
- 使用广义不等式 ⪯K,其中 K 是正常锥(proper cone)
- 当 K=R+n 时,退化为线性规划
- 当 K=S+n 时,为半正定规划
- 当 K 为洛伦兹锥时,为二阶锥规划 (SOCP)
-
几何规划 (Geometric Programming, GP)
- 通过变量替换可以转化为凸优化问题
- 原始形式不是凸的,但可以通过对数变换转化为凸问题
-
最小二乘问题 (Least Squares)
xmin∥Ax−b∥22
- 无约束二次优化问题
- 当 A 列满秩时,有解析解 x∗=(ATA)−1ATb
-
带约束的最小二乘
xmins.t.∥Ax−b∥22Cx=d∥x∥2≤R
# 平方和
平方和(Sum of Squares, SOS)优化是凸优化中的一个重要主题,与正多项式和半正定规划密切相关。
-
Hilbert's 17th Problem
- 问题:一个在 Rn 上非负的多项式是否总能表示为有理函数的平方和?
- 答案:对于多项式,不一定能表示为多项式的平方和,但可以表示为有理函数的平方和
- 对于矩阵情况,有类似的结论
-
平方和多项式 (Sum of Squares Polynomials)
-
平方和与半正定规划的关系
- 判断一个多项式是否为平方和可以转化为半正定规划问题
- 给定多项式 p(x),寻找 Gram 矩阵 Q⪰0 使得 p(x)=z(x)TQz(x)
- 其中 z(x) 是包含 x 的单项式向量(monomial vector)
- 这可以表述为线性矩阵不等式(LMI)约束
-
平方和优化 (SOS Optimization)
- 优化问题:在平方和约束下优化目标函数
- 形式:
mins.t.cTxpi(x) 是平方和多项式,i=1,…,m
- 这类问题可以转化为半正定规划问题求解
# 多目标优化
多目标优化(Multicriterion Optimization)问题同时考虑多个目标函数,需要在多个目标之间进行权衡。
-
多目标优化问题形式
xmins.t.(f1(x),f2(x),…,fk(x))fi(x)≤0,i=1,…,mhj(x)=0,j=1,…,p
- 有 k 个目标函数 f1,f2,…,fk:Rn→R
- 目标函数值构成向量 (f1(x),f2(x),…,fk(x))∈Rk
- 通常不存在一个解能同时最小化所有目标函数
-
Pareto 最优解 (Pareto Optimal Solution)
- 定义:可行解 x∗ 是 Pareto 最优的,如果不存在另一个可行解 x 使得
- fi(x)≤fi(x∗) 对所有 i=1,…,k 成立
- 且至少存在一个 j 使得 fj(x)<fj(x∗)
- 也称为非支配解(non-dominated solution)或有效解(efficient solution)
- Pareto 最优解集:所有 Pareto 最优解组成的集合,称为 Pareto 前沿(Pareto frontier)
-
标量化方法 (Scalarization)
将多目标优化问题转化为单目标优化问题:
加权和方法 (Weighted Sum Method)
xmini=1∑kwifi(x)
- 其中 wi≥0,i=1,…,k 且 ∑i=1kwi=1(或 ∑i=1kwi>0)
- 当所有 fi 是凸函数时,加权和也是凸函数
- 通过改变权重 wi 可以得到不同的 Pareto 最优解
- 注意:并非所有 Pareto 最优解都能通过加权和方法得到(特别是非凸情况)
ϵ-约束方法 (ϵ-Constraint Method)
xmins.t.fj(x)fi(x)≤ϵi,i=1,…,k, i=j其他约束
- 选择一个目标函数作为主目标,其他目标函数作为约束
- 通过调整 ϵi 可以得到不同的 Pareto 最优解
-
凸多目标优化
- 当所有目标函数 fi 都是凸函数,且约束函数也是凸函数时,称为凸多目标优化问题
- 对于凸多目标优化,加权和方法可以找到所有 Pareto 最优解
- Pareto 前沿在目标空间中通常是凸的
# 可微无约束优化问题的最优性条件
对于可微的无约束优化问题,最优性条件基于目标函数的梯度。
-
无约束优化问题的最优性条件
考虑无约束优化问题:
xminf0(x)
一阶必要条件(First-Order Necessary Condition)
二阶条件(Second-Order Conditions)
- 二阶必要条件:若 x∗ 是局部最优解,且 f0 在 x∗ 处二次可微,则
∇f0(x∗)=0,∇2f0(x∗)⪰0
- 二阶充分条件:若 f0 在 x∗ 处二次可微,且
∇f0(x∗)=0,∇2f0(x∗)≻0
则 x∗ 是严格局部最小值
凸函数情况
- 对于凸函数 f0,一阶条件 ∇f0(x∗)=0 是充要条件
- 即:x∗ 是全局最优解 ⟺ ∇f0(x∗)=0 且 x∗∈dom f0
- 这是因为凸函数的任意局部最小值都是全局最小值
-
等式约束优化问题的最优性条件
考虑等式约束优化问题:
xmins.t.f0(x)Ax=b
最优性条件
- x∗ 是最优解当且仅当存在拉格朗日乘子向量 ν∈Rp 使得
x∗∈dom f0,Ax∗=b,∇f0(x∗)+ATν=0
- 这等价于:∇f0(x∗) 属于 A 的行空间(或 AT 的列空间)
- 对于凸函数,这也是充要条件
-
非负象限上的优化问题
考虑非负约束优化问题:
xmins.t.f0(x)x⪰0
最优性条件
- x∗ 是最优解当且仅当
x∗∈dom f0,x∗⪰0,{∇f0(x∗)i≥0∇f0(x∗)i=0xi∗=0xi∗>0
- 这称为互补松弛条件(complementary slackness condition)
- 对于凸函数,这也是充要条件
-
应用示例
- 无约束问题:minx∥Ax−b∥22 的最优解满足 ATAx=ATb
- 等式约束:minx cTx s.t. Ax=b 的最优解满足 c+ATν=0 对某个 ν
- 非负约束:minx cTx s.t. x⪰0 的最优解满足 c⪰0 且 cixi=0 对所有 i
# 可微有约束优化问题的最优性条件
对于可微的有约束优化问题,最优性条件基于拉格朗日乘子理论和KKT条件。
-
标准形式的约束优化问题
xmins.t.f0(x)fi(x)≤0,i=1,…,mhj(x)=0,j=1,…,p
其中 f0,fi,hj:Rn→R 都是可微函数。
-
拉格朗日函数 (Lagrangian Function)
L(x,λ,μ)=f0(x)+i=1∑mλifi(x)+j=1∑pμjhj(x)
- λ=[λ1,…,λm]T∈Rm 是不等式约束的拉格朗日乘子
- μ=[μ1,…,μp]T∈Rp 是等式约束的拉格朗日乘子
-
KKT 条件 (Karush-Kuhn-Tucker Conditions)
若 x∗ 是局部最优解,且在 x∗ 处满足某些约束品性(constraint qualification),则存在拉格朗日乘子 λ∗∈Rm 和 μ∗∈Rp 使得以下KKT条件成立:
稳定性条件(Stationarity Condition)
∇xL(x∗,λ∗,μ∗)=∇f0(x∗)+i=1∑mλi∗∇fi(x∗)+j=1∑pμj∗∇hj(x∗)=0
原问题可行性条件(Primal Feasibility)
fi(x∗)≤0,i=1,…,m;hj(x∗)=0,j=1,…,p
对偶可行性条件(Dual Feasibility)
λi∗≥0,i=1,…,m
互补松弛条件(Complementary Slackness)
λi∗fi(x∗)=0,i=1,…,m
满足KKT条件的点 x∗ 称为KKT点或KKT解,是局部最优解(充分条件)。
-
约束品性 (Constraint Qualification)
约束品性用于保证局部最优解满足KKT条件。常见的约束品性包括:
线性无关约束品性 (LICQ - Linear Independence Constraint Qualification)
- 在可行点 x∗ 处,所有起作用的约束(active constraints)的梯度线性无关
- 起作用的不等式约束:I(x∗)={i∣fi(x∗)=0}
- LICQ要求:{∇fi(x∗),i∈I(x∗);∇hj(x∗),j=1,…,p} 线性无关
其他约束品性
- Mangasarian-Fromovitz约束品性(MFCQ)
- Slater约束品性(适用于凸优化问题)
注意:即使不满足约束品性,最优解仍可能满足KKT条件;但若不满足约束品性,最优解不一定满足KKT条件。
-
Fritz John 条件 (Fritz John Conditions)
若在局部最优解 x∗ 处有 LO(x∗)=TO(x∗)(线性化可行方向锥等于切锥),则存在 λ0≥0,λ∈R+m,μ∈Rp,使得:
稳定性条件
λ0∇f0(x∗)+i=1∑mλi∇fi(x∗)+j=1∑pμj∇hj(x∗)=0
原问题可行性条件
fi(x∗)≤0, i=1,…,m;hj(x∗)=0, j=1,…,p
对偶可行性条件
λi≥0,i=1,…,m
互补松弛条件
λifi(x∗)=0,i=1,…,m
满足上述条件的点称为Fritz John点或Fritz John解。
与KKT条件的关系
- 当 λ0>0 时,Fritz John条件等价于KKT条件(可归一化使 λ0=1)
- 当 λ0=0 时,称为异常情况(abnormal case),此时目标函数梯度不参与条件
-
凸优化问题的KKT条件
对于凸优化问题(f0,fi 凸,hj 仿射),KKT条件是充要条件:
- 若 x∗ 是可行解且满足KKT条件,则 x∗ 是全局最优解
- 若 x∗ 是全局最优解且满足Slater约束品性(存在严格可行点),则存在拉格朗日乘子使得KKT条件成立
-
KKT条件的应用与局限性
应用
- 可以验证一个解是否可能为最优解
- 帮助排除可行域中很多不是最优的解
- 当不容易验证约束品性时,可以先求出所有KKT解,然后从中比较找出最优解
局限性
- 有时局部最优点不一定满足KKT条件(当约束品性不满足时)
- 有些问题的最优解不是KKT解(如例3.3:minx2≤0x,最优解 x=0 不满足KKT条件)
- 有些问题满足KKT条件的解不存在,但存在最优解(如例3.5:min(x+y−2)2≤0−xy,最优解 x=y=1 但不存在KKT解)
-
例子
例1:minx2≤0x
- 最优解为 x=0,约束起作用
- 在 x=0 处,∇f1(x)=0,只有一个全零向量,线性相关,不满足LICQ条件
- 对于任意 λ≥0,∇f0(x)+λ∇f1(x)=1+λ⋅0=1=0,无法满足KKT条件
- 因此最优解不是KKT解
例2:minx2≤0x2
- 最优解为 x=0,约束起作用
- 在 x=0 处,∇f1(x)=0,不满足LICQ条件
- 但对于任意 λ≥0,∇f0(x)+λ∇f1(x)=0+λ⋅0=0,满足KKT条件
- 因此虽然不满足LICQ条件,但最优解是KKT解
例3:min(x+y−2)2≤0−xy
- 该题中满足KKT条件的解不存在
- 但该题存在最优解 x=y=1