前言
本文主要记录在凸优化中几个比较基础的概念:凸集、仿射集、凸包、锥、锥包。
仿射集(affine sets)
回顾一下直线与线段的定义。
对于
x1≠x2∈Rn,θ∈R
则直线可以表示为:
y=θx1+(1−θ)x2
类似的,对θ加一点限制,就可以导出线段的定义:
y=θx1+(1−θ)x2,θ∈R,θ∈[0,1]
有了直线的概念后,下面定义仿射集:
- 仿射集:一个集合C是仿射集,若∀x1,x2∈C,则连接x1与x2的直线也在集合内。
用数学的语言来描述的话就是:
- 仿射集:设x1,...,xk∈C,θ1,...,θk∈R,θ1+...+θk=1,如果集合C是仿射集,当且仅当θ1x1+...+θkxk∈C
我们把 θ1x1+...+θkxk叫做仿射组合。
与C相关的子空间
下面讲一下仿射集的一些性质。根据上面的定义,若x1,x2∈C, C是仿射集,则θx1+(1−θ)x2∈C,其中θ∈R。那么问,αx1+βx2是否属于C呢?
如下图所示,当直线不经过原点时,显然αx1+βx2∉C,当直线经过原点时,就有αx1+βx2∈C。

我们定义:V=C−v0={x−x0|x∈C},∀x0∈C
称V为与C相关的子空间。我们可以理解成V是C平移v0得到的一个字空间。
证:
∀v1,v2∈C,∀α,β∈R
因为v1+v0∈C,v2+x0∈C,x0∈C, 所以:
α(v1+x0)+β(v2+x0)+(1−α−β)x0∈C
即
αv1+βv2+x0∈C
此时就有:
αv1+βv2∈V
一个例子
C={x|AX=b},A∈Rm×n,b∈Rm,x∈Rn
与C相关的子空间V={x−x0|x∈C},∀x0∈C 恰好也是矩阵A的零空间。
仿射包
对于任意一个集合C,是否可以构造出其最小的仿射集。如果可以,这个最小的仿射集就叫做仿射包。
-
仿射包:aff C={θ1x1+...+θkxk|∀x1,...,xk∈C,θ1+θ2+...+θk=1}
-
仿射集的仿射包就是它本身。
凸集 Convex Set
- 一个集合是凸集,即当任意两点之间的线段任然在C内
- 用数学表达的话就是:∀x1,x2∈C,∀θ,θ∈[0,1],θx1+(1−θ)x2∈C
x1,...,xk的凸组合
x1,...,xk的凸组合表示为:
θ1x1+θ2x2+...+θkxk∈C
θ1,...,θk∈R,θ1+...+θk=1
θ1,...,θk∈[0,1]
凸包
对任意集合C∈Rn,它的凸包记作:
CovC={θ1x1+...,+θkxk|∀x1,...,xk∈C,∀θ1,...θk∈[0,1],θ1+...+θk=1}
锥 Cone 和 凸锥 Convex Cone
- C是锥等价于 ∀x∈C,θ>0,有θx∈C
- C是凸锥等价于 ∀x1,x2∈C,θ1,θ2≥0,有θ1x1+θ2x2∈C
凸锥的组合
θ1x1+...+θkxk,θ1,...,θk≥0
凸锥包
x1,...,xk∈C,{θ1x1+...+θkxk|x1,...,xk∈C,θ1,...,θk≥0}
总结
-
仿射组合
∀θ1,...,θk,θ1+...+θk=1
-
凸组合
θ1,...,θk,θ1+...+θk=1,θ1,...,θk∈[0,1]
-
凸锥组合
∀θ1,...θk,θ1,...,θk≥0
-
任意一个仿射集,它一定是凸的。
-
凸锥也一定是凸的。
-
如果集合只有一个元素:C=x,该集合也是一个仿射集。若这个点是原点,即x=0,那么它还是凸锥。
-
空集也是仿射集,同时还是凸集和凸锥。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?