1. 凸集基础概念与定义
在优化问题中,凸集是最基础也是最重要的概念之一。简单来说,凸集就是"没有凹陷"的集合。想象一个橡皮球,无论怎么挤压变形,只要不出现凹陷,它就是一个凸集;而如果出现凹陷,比如一个甜甜圈,就不是凸集。
数学上的严格定义是:对于集合C⊂ℝⁿ,如果对于任意两点x,y∈C,连接这两点的线段上的所有点都在C内,那么C就是凸集。用公式表示为:
∀x,y∈C, θ∈[0,1], 有(1-θ)x + θy ∈ C
这个定义看似简单,但蕴含着深刻的几何意义。它保证了在凸集内任意两点间的"过渡"都是平滑的,没有突变或间断。这个性质在优化问题中至关重要,因为它确保了如果我们沿着两点间的连线搜索,不会突然"掉出"可行域。
注意:凸集的定义中θ的范围是闭区间[0,1],这意味着包含端点。这一点在实际应用中非常重要,特别是在处理边界情况时。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 常见凸集类型与应用实例
2.1 线性子空间与仿射集
线性子空间是最简单的凸集例子。它满足加法和数乘封闭性:x,y∈S ⇒ ax+by∈S, ∀a,b∈ℝ。几何上,线性子空间必须经过原点,如直线、平面等。
仿射集则是线性子空间的平移。形式上,S = T + v₀,其中T是线性子空间,v₀是固定向量。在实际应用中,仿射集经常出现在线性方程组的解空间中。
工程应用实例:在电路设计中,基尔霍夫定律形成的约束条件就定义了一个仿射集。电压和电流的关系通过线性方程描述,其解空间就是一个仿射集。
2.2 线性不等式定义的集合
形如{x | Ax ≤ b}的集合是凸集。这个性质非常重要,因为大多数工程优化问题都可以表示为线性不等式约束。
证明思路:取x,y满足Ax≤b,Ay≤b。对于它们的凸组合z=(1-θ)x+θy,有:
Az = A[(1-θ)x + θy] = (1-θ)Ax + θAy ≤ (1-θ)b + θb = b
实际应用:在资源分配问题中,资源限制通常表示为线性不等式,如CPU、内存等资源的分配上限。
2.3 范数球与椭球
范数球Bᵣ = {x | ||x|| ≤ r}是凸集,其中||·||可以是任意范数。特别地:
- l₂范数:标准的欧几里得球
- l₁范数:菱形(在2D中是旋转45度的正方形)
- l∞范数:轴对齐的盒子
椭球是范数球的推广:{x | (x-x₀)ᵀP⁻¹(x-x₀) ≤ r},其中P≻0(正定矩阵)。椭球在统计学(如置信区域)和控制系统(如可达集)中有广泛应用。
数值计算技巧:在处理椭球约束时,通常会进行Cholesky分解P=LLᵀ,将椭球转化为球来处理,简化计算。
3. 锥与广义不等式
3.1 锥的基本性质
集合K⊂ℝⁿ称为锥,如果满足x∈K ⇒ θx∈K, ∀θ≥0。直观上,锥是从原点出发的"射线"集合。
凸锥是同时满足锥性质和凸性质的集合。这意味着它不仅对正数缩放封闭,还对加法封闭:x,y∈K ⇒ θ₁x+θ₂y∈K, ∀θ₁,θ₂≥0。
重要例子:
- 非负象限:ℝ₊ⁿ =
- 二阶锥:
- 半正定锥:S₊ⁿ =
3.2 广义不等式
由锥K可以定义广义不等式:
x ⪯ᴋ y ⇔ y - x ∈ K
这种不等式推广了传统的分量不等式(当K=ℝ₊ⁿ时)。在优化问题中,广义不等式允许我们表达更复杂的约束关系。
应用实例:在半定规划中,矩阵不等式X⪰0(即X∈S₊ⁿ)就是用广义不等式表示的。
4. 超平面与分离定理
4.1 超平面与半空间
超平面定义为{x | ⟨a,x⟩ = b},其中a≠0是法向量。在2D中是直线,3D中是平面。超平面将空间分成两个半空间,{x | ⟨a,x⟩ ≤ b}和{x | ⟨a,x⟩ ≥ b}。
半空间是凸集,而任意凸集都可以表示为半空间的交集。这个性质在凸优化中非常重要,因为它意味着我们可以用一组线性不等式来描述凸集。
几何解释:在支持向量机(SVM)中,最优分类超平面就是最大化两个类别间间隔的超平面。
4.2 分离超平面定理
分离超平面定理指出:两个不相交的凸集C和D,存在超平面分离它们,即存在a≠0和b使得:
⟨a,x⟩ ≤ b ∀x∈C
⟨a,y⟩ ≥ b ∀y∈D
强分离定理进一步要求:如果C和D是非空、闭、凸集,且至少一个有界,那么当C∩D=∅时,存在强分离超平面,使得:
⟨a,x⟩ < b ∀x∈C
⟨a,y⟩ > b ∀y∈D
优化意义:分离定理是凸优化对偶理论的基础,它保证了在某些条件下,原始问题和对偶问题之间的间隙为零。
5. 支撑超平面与最近点问题
5.1 支撑超平面
对于凸集C和其边界点x₀,如果存在超平面使得C完全位于该超平面的一侧,且x₀在超平面上,则该超平面称为C在x₀处的支撑超平面。
支撑超平面定理表明:凸集的每个边界点都有至少一个支撑超平面。这个性质在非光滑优化中特别有用,因为即使函数在边界点不可微,支撑超平面仍然存在。
应用实例:在经济学中,支撑超平面对应于价格向量,支撑超平面定理保证了均衡价格的存在性。
5.2 最近点问题
给定凸集C和点x₀,最近点问题寻找C中距离x₀最近的点y。当C是闭凸集时,解存在且唯一。
几何最优性条件:ŷ是x₀在C上的投影当且仅当:
⟨y - ŷ, x₀ - ŷ⟩ ≤ 0 ∀y∈C
这个条件表明,从ŷ指向C内任何方向的向量与从ŷ指向x₀的向量夹角至少为90度。
算法实现:投影梯度下降法就是基于最近点投影的迭代算法,在约束优化中广泛应用。
数值稳定性考虑:在实际计算中,判断⟨y - ŷ, x₀ - ŷ⟩ ≤ 0时需要考虑浮点误差,通常设置一个小的容差ε>0,判断是否≤ε。
6. 凸集在优化中的应用技巧
6.1 凸性验证方法
验证一个集合是否为凸集,常用的方法有:
- 直接根据定义验证:检查任意两点连线是否在集合内
- 检查是否可以表示为凸集的基本运算(交集、仿射变换等)的结果
- 检查是否可以表示为半空间的交集
常见错误:误认为并集保持凸性。实际上,两个凸集的并集通常不是凸集。
6.2 凸集运算保持性
以下运算保持凸性:
- 交集:任意多个凸集的交集仍是凸集
- 仿射变换:f(x)=Ax+b,若C凸则f(C)凸
- 透视函数和线性分式函数
这些性质允许我们构建复杂的凸集,同时保持凸性,这对建模复杂优化问题非常有用。
6.3 实际应用中的注意事项
- 数值精度问题:在计算机中表示凸集时,需要考虑浮点运算的精度限制
- 退化情况处理:如低维凸集嵌入高维空间时的特殊情况
- 边界情况:严格凸与非严格凸的区别在实际算法中可能影响收敛性
性能优化技巧:对于复杂的凸集约束,可以预先计算一些辅助信息(如支撑函数值)来加速后续计算。
