如果从一个点集中任取不同的两个点 x1 和 x2 ,它们之间的线段(包括端点)上的点都属于这个点集,则称这个点集为凸集。
数学定义:
给定集合 C , x 1 , x 2 ∈ C ; 0 < θ < 1 C,x_1,x_2 ∈ C;0<θ<1 C,x1,x2∈C;0<θ<1;
如果有: θ x + ( 1 − θ ) y ∈ C θx+(1-θ)y∈C θx+(1−θ)y∈C
则称 C C C 为凸集, θ x 1 + ( 1 − θ ) x 2 θx_1+(1-θ)x_2 θx1+(1−θ)x2 为点 x 1 , x 2 x_1,x_2 x1,x2 的凸组合。
设一函数 f : R n → R f:\mathbb{R}^n→\mathbb{R} f:Rn→R,记其定义域为 D ( f ) D(f) D(f),如果 D ( f ) D(f) D(f) 是凸集,且在其中任取两个点 x 1 , x 2 x_1,x_2 x1,x2,满足以下性质:
f ( θ x 1 + ( 1 − θ x 2 ) ) ≤ θ f ( x 1 ) + ( 1 − θ ) f ( x 2 ) f(θx_1+(1−θx_2))≤θf(x_1)+(1−θ)f(x_2) f(θx1+(1−θx2))≤θf(x1)+(1−θ)f(x2)
那么就称 f f f 为凸函数。
注意:这里所说的凸函数对应于考研数学中的凹函数(实际上加一个 “-” 就可以)。
凸优化的结果一定是全局最优解。
假定 f ( x ) f(x) f(x) 是一个凸函数, 给定一个实数 α ∈ R α∈R α∈R,我们把集合 { x ∈ D ( f ) ∣ f ( x ) ≤ α x∈D(f)|f(x)≤α x∈D(f)∣f(x)≤α} 叫做 α α α 水平子集。
α α α 水平子集是所有满足 f ( x ) ≤ α f(x)≤α f(x)≤α 的点构成的集合,且水平子集也是凸集。
水平子集告诉我们,给凸函数添加一个上限,定义域内剩下的点构成的点集仍然是一个凸集。
把形如: h ( x ) = A x + b h(x)=Ax+b h(x)=Ax+b 的函数叫做仿射函数。
其中, A m ∗ n A_{m*n} Am∗n,向量 b ∈ R m b∈Rm b∈Rm。直观上理解,仿射函数将一个n维空间的向量通过线性变换 A A A 映射到 m 维空间,并在其基础上加上向量 b b b,进行了平移。
{ x ∈ D ( h ) ∣ h ( x ) = 0 x∈D(h)|h(x)=0 x∈D(h)∣h(x)=0} 也是凸集。
优化,是求近似解的过程。例如:
{ x 1 + x 2 = 0 2 x 1 + x 2 = 1 → 此 方 程 组 无 解 3 x 2 + 2 x 2 = 1 \begin{cases} x_1 + x_2 = 0\\ 2x_1 + x_2 = 1 →此方程组无解\\ 3x_2 + 2x_2 = 1\\ \end{cases} ⎩⎪⎨⎪⎧x1+x2=02x1+x2=1→此方程组无解3x2+2x2=1
但是我们可以得到一个使相差最小的解,即:
m i n x 1 , x 2 ( x 1 + x 2 − 0 ) 2 + ( 2 x 1 + x 2 − 1 ) 2 + ( 3 x 2 + 2 x 2 − 1 ) 2 min_{x_1,x_2} (x_1 + x_2 - 0)^2 + (2x_1 + x_2 - 1)^2 + (3x_2 + 2x_2 - 1)^2 minx1,x2(x1+x2−0)2+(2x1+x2−1)2+(3x2+2x2−1)2
求得和能使最小的解,即可达到三个方程同时近似。
为了能得到近似解,我们可以使用上一篇文章介绍的:求正规方程的最小二乘解。
而我们也可以使用约束优化方法。
例:
m i n min min f ( x ) = ( x 1 − 2 ) 2 + x 2 f(x) = (x_1-2)^2 + x_2 f(x)=(x1−2)2+x2
s . t s.t s.t c 1 ( x ) = x 1 − 2 x 2 + 6 ⩾ 0 , c_1(x) = x_1 - 2x_2 + 6 \geqslant 0, c1(x)=x1−2x2+6⩾0,
c 2 ( x ) = x 1 + 3 ⩾ 0 c_2(x)=x_1 + 3 \geqslant 0 c2(x)=x1+3⩾0
此时的优化,相当于在由 3 个函数 f ( x ) , c 1 ( x ) , c 2 ( x ) f(x),c_1(x),c_2(x) f(x),c1(x),c2(x) 共同围城的可行域中,求 f ( x ) f(x) f(x) 的最小值(而且一定是在 f ( x ) f(x) f(x) 与某一或某几个约束函数的边界上取到,即约束被激活)。
根据拉格朗日对偶性,即将原始问题转化成对偶问题,从而更容易地进行函数优化。
假设 f ( x ) , c i ( x ) , h j ( x ) f(x),c_i(x),h_j(x) f(x),ci(x),hj(x)是定义在 R n \mathbb{R}^n Rn 上的连续可微函数,考虑约束优化问题:
m i n x min_x minx f ( x ) f(x) f(x)
s . t s.t s.t c i ( x ) ⩽ 0 , i = 1 , 2 , … , k c_i(x)\leqslant{0},i=1,2,…,k ci(x)⩽0,i=1,2,…,k
h j ( x ) = 0 , j = 1 , 2 , … , l h_j(x)=0,j=1,2,…,l hj(x)=0,j=1,2,…,l
为要求解地原始问题。
L ( x , α , β ) = = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β i h j ( x ) L(x,α,β)==f(x) + \sum_{i=1}^{k}α_ic_i(x) +\sum_{j=1}^{l}β_ih_j(x) L(x,α,β)==f(x)+∑i=1kαici(x)+∑j=1lβihj(x)
目标 为:最大化 L ( x , α , β ) L(x,α,β) L(x,α,β) ,因为在满足约束的条件下 L ( x , α , β ) L(x,α,β) L(x,α,β) 最大化时, L ( x , α , β ) L(x,α,β) L(x,α,β) 才等价于原函数 f ( x ) f(x) f(x)(下面将证明)。
考虑:
Θ p ( x ) = α , β ; α i ⩾ 0 M a x L ( x , α , β ) Θ_p(x)=\mathop{}_{α,β;α_i\geqslant{0}}^{Max}L(x,α,β) Θp(x)=α,β;αi⩾0MaxL(x,α,β)
且 Θ p ( x ) Θ_p(x) Θp(x) 此时一定是凹函数(对应于考研数学中的凸函数)。
倘若某 x x x 违反原始问题地约束条件时:
① 违反约束条件,即某个 c i ( x ) > 0 c_i(x)>0 ci(x)>0
· 欲使 L ( x , α , β ) L(x,α,β) L(x,α,β) 值最大,可令对应的乘子 α i → + ∞ α_i → +\infty αi→+∞ ,则此时 Θ p ( x ) → + ∞ Θ_p(x) → +\infty Θp(x)→+∞
② 违反约束条件,即某个 h j ( x ) ≠ 0 h_j(x)\neq0 hj(x)̸=0
· 欲使 L ( x , α , β ) L(x,α,β) L(x,α,β) 值最大,可令某 β i h j ( x ) → + ∞ β_ih_j(x) → +\infty βihj(x)→+∞,其余的 α i , β j α_i,β_j αi,βj 都取 0 0 0,则此时 Θ p ( x ) → + ∞ Θ_p(x) → +\infty Θp(x)→+∞
★ \bigstar ★ 以上,即:
Θ p ( x ) = Θ_p(x)= Θp(x)= { f ( x ) , x 满 足 约 束 条 件 + ∞ , x 不 满 足 约 束 条 件 \begin{cases} f(x),x满足约束条件\\ +\infty,x不满足约束条件\\ \end{cases} {f(x),x满足约束条件+∞,x不满足约束条件
若 x x x 满足约束条件,为使 L ( x , α , β ) L(x,α,β) L(x,α,β) 取最大值,
应: ∑ i = 1 k α i c i ( x ) = 0 , ∑ j = 1 l β i h j ( x ) = 0 \sum_{i=1}^{k}α_ic_i(x)=0,\sum_{j=1}^{l}β_ih_j(x)=0 ∑i=1kαici(x)=0,∑j=1lβihj(x)=0
此时, Θ p ( x ) ⇋ α , β ; α i ⩾ 0 M a x L ( x , α , β ) ⇋ f ( x ) Θ_p(x) \leftrightharpoons \mathop{}_{α,β;α_i\geqslant{0}}^{Max} L(x,α,β) \leftrightharpoons f(x) Θp(x)⇋α,β;αi⩾0MaxL(x,α,β)⇋f(x)
优化问题下,目标为: x M i n Θ p ( x ) \mathop{}_{x}^{Min} Θ_p(x) xMinΘp(x)
根据等价关系可得: x M i n Θ p ( x ) ⇋ x M i n α , β ; α i ⩾ 0 M a x L ( x , α , β ) ⇋ x M i n f ( x ) \mathop{}_{x}^{Min} Θ_p(x) \leftrightharpoons \mathop{}_{x}^{Min} \mathop{}_{α,β;α_i\geqslant{0}}^{Max} L(x,α,β) \leftrightharpoons \mathop{}_{x}^{Min} f(x) xMinΘp(x)⇋xMinα,β;αi⩾0MaxL(x,α,β)⇋xMinf(x)
定义原始问题的最优值为 p ∗ = x M i n Θ p ( x ) p^*=\mathop{}_{x}^{Min}Θ_p(x) p∗=xMinΘp(x)
定义: Θ D ( α , β ) = x M i n L ( x , α , β ) Θ_D(α,β)=\mathop{}_{x}^{Min}L(x,α,β) ΘD(α,β)=xMinL(x,α,β)
考虑极大化: α , β ; α i ⩾ 0 M a x Θ D ( α , β ) = α , β ; α i ⩾ 0 M a x x M i n L ( x , α , β ) \mathop{}_{α,β;α_i\geqslant{0}}^{Max}Θ_D(α,β)= \mathop{}_{α,β;α_i\geqslant{0}}^{Max} \mathop{}_{x}^{Min}L(x,α,β) α,β;αi⩾0MaxΘD(α,β)=α,β;αi⩾0MaxxMinL(x,α,β)
定义对偶问题的最优值为 d ∗ = α , β ; α i ⩾ 0 M a x Θ D ( α , β ) d^*=\mathop{}_{α,β;α_i\geqslant{0}}^{Max}Θ_D(α,β) d∗=α,β;αi⩾0MaxΘD(α,β)
且 Θ D ( α , β ) Θ_D(α,β) ΘD(α,β) 此时一定为凸函数(对应于考研数学中的凹函数)。
d ∗ = α , β ; α i ⩾ 0 M a x x M i n L ( x , α , β ) ⩽ x M i n α , β ; α i ⩾ 0 M a x L ( x , α , β ) = p ∗ d^*=\mathop{}_{α,β;α_i\geqslant{0}}^{Max}\mathop{}_{x}^{Min}L(x,α,β) \leqslant \mathop{}_{x}^{Min} \mathop{}_{α,β;α_i\geqslant{0}}^{Max} L(x,α,β)=p^* d∗=α,β;αi⩾0MaxxMinL(x,α,β)⩽xMinα,β;αi⩾0MaxL(x,α,β)=p∗
设 { x ∗ , α ∗ , β ∗ {x^*,α^*,β^*} x∗,α∗,β∗} 为原始问题与对偶问题的可行解,并且 d ∗ = p ∗ d^* = p^* d∗=p∗
则 { x ∗ , α ∗ , β ∗ {x^*,α^*,β^*} x∗,α∗,β∗} 就是原始问题与对偶问题两个问题的最优解。
(最大值集合中的最小值 ⩾ \geqslant ⩾ 最小值集合中的最大值)
KKK (Karush Kuhn Tucker) 条件:
{ ∇ x L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ α L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ β L ( x ∗ , α ∗ , β ∗ ) = 0 α i ∗ c i ( x ∗ ) = 0 , i = 1 , 2 , … , k c i ( x ∗ ) ⩽ 0 , i = 1 , 2 … , k α i ∗ ⩾ 0 , i = 1 , 2 … k h j ( x ∗ ) = 0 , j = 1 , 2 … , l \begin{cases} \nabla_x L(x^*,α^*,β^*)=0\\ \nabla_α L(x^*,α^*,β^*)=0\\ \nabla_β L(x^*,α^*,β^*)=0\\ α_i^*c_i(x^*)=0,i=1,2,…,k\\ c_i(x^*)\leqslant0,i=1,2…,k\\ α_i^*\geqslant0,i=1,2…k\\ h_j(x^*)=0,j=1,2…,l \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∇xL(x∗,α∗,β∗)=0∇αL(x∗,α∗,β∗)=0∇βL(x∗,α∗,β∗)=0αi∗ci(x∗)=0,i=1,2,…,kci(x∗)⩽0,i=1,2…,kαi∗⩾0,i=1,2…khj(x∗)=0,j=1,2…,l
其中, α i ∗ c i ( x ∗ ) = 0 , i = 1 , 2 , … , k α_i^*c_i(x^*)=0,i=1,2,…,k αi∗ci(x∗)=0,i=1,2,…,k 为 KKT 条件的对偶互补条件:
{ 若 α ∗ > 0 , 则 c i ( x ∗ ) = 0 若 c i ( x ∗ ) < 0 , 则 α ∗ = 0 \begin{cases} 若α^*>0,则 c_i(x^*)=0\\ 若c_i(x^*)<0,则α^*=0 \end{cases} {若α∗>0,则ci(x∗)=0若ci(x∗)<0,则α∗=0
x ∗ , α ∗ , β ∗ x^*,α^*,β^* x∗,α∗,β∗ 是原始问题与对偶问题的解 ⇋ x ∗ , α ∗ , β ∗ \leftrightharpoons x^*,α^*,β^* ⇋x∗,α∗,β∗ 满足 KKT 条件。