当前位置: 首页 > news >正文

BOYD凸优化2.3:保凸运算

在实际应用中,当我们遇到一个非常复杂的集合时,直接用凸集的定义(即证明集合中任意两点的连线仍在集合内:)去推导往往极其困难。保凸运算提供了一种“搭积木”的思路:如果我们知道一些基础的“砖块”(如半空间、球体)是凸集,那么只要我们使用特定的“胶水”(即保凸运算)将它们组合或变形,得到的新集合就必然也是凸集

这是一种非常有力的构造性证明方法。Boyd 在这一节主要介绍了四种核心的保凸运算,我们来逐一详细、基础地拆解。

第一部分:交集运算

总体来说,交集运算就是把多个“合格条件”同时叠加在一起,找出那个同时满足所有条件的区域。

在凸优化中,我们经常需要给变量设置各种限制(约束)。如果每一个限制条件本身构成一个凸集,那么把这些条件全部“交”在一起(即要求变量同时满足所有限制),得到的结果依然是凸的。

我们用通俗的生活例子和直观的几何图形来拆解“交集运算”在保凸性上的意义。

想象你要在城市里买一套房子,你的要求是(每个要求相当于一个集合):

  1. 集合 A:距离地铁站不能超过 1 公里(这在地图上是一个)。

  2. 集合 B:距离你公司不能超过 5 公里(这是地图上另一个)。

  3. 集合 C:必须在长江以北(这是一条直线划出的半个平面)。

这三个区域各自都是凸集(实心圆是凸的,半平面也是凸的)。

那么,最终符合你所有要求的“选房范围”在哪里? 就是这三个区域的交集—— 必须同时落在两个圆内,且在江北。这个切出来的最终区域,无论形状多么古怪(可能像个月牙,也可能像个切掉角的椭圆),它绝对不可能出现“向内凹陷”的缺口。它必然还是凸的

我们再回到数学和几何的视角。

最基础的凸集之一是半空间 (Halfspace)。什么叫半空间?就是一条直线(或一个平面)把空间一分为二,其中一半就是半空间。

假设你面前有一块巨大的、无限延伸的面团。

  • 你拿一把刀,笔直地切一刀,扔掉右边,留下左边。这剩下的半块面团就是凸的(半空间)。

  • 你换个角度,再笔直地切一刀,扔掉下边,留下上边。这就相当于在第一次剩下的面团上再取一次交集。剩下的部分依然没有凹槽,还是凸的。

  • 你从四面八方切了 100 刀。这就相当于100 个半空间的交集。最后切出来的形状可能是一个复杂的钻石或者水晶体(多面体 Polyhedron),但只要你每一刀都是笔直的,剩下的核心永远是凸的

核心结论:只要你用来相交的“母集”本身是凸的,无论你交几个(有限个甚至无限个),得到的“子集”永远是凸的。

我们可以用“连线”的概念简单验证一下。

凸集的定义是:如果点 x 和点 y 在集合里,那么它们之间的连线(线段)上的任意一点,也必须在集合里。

假设我们有两个凸集,它们的交集是

  1. 我们在交集里面随便挑两个点

  2. 既然交集里,说明 x 和 y同时属于

  3. 因为是凸集,且,所以 x 和 y 的连线整个都在里面

  4. 同理,因为是凸集,且,所以 x 和 y 的连线整个也在里面

  5. 既然这条连线既在里,又在里,那么这条连线必然就在它们的交集里。

这就完美证明了:交集必然还是凸集。

Boyd 在书中举了几个通过“无限个交集”构造复杂凸集的经典例子,其中最常见的是线性矩阵不等式 (LMI)

比如,我们要找一个对称矩阵 X,使得对任意向量 v,都有(也就是 X是半正定的,记作)。

某一个固定的向量 v 来说,其实就是一个关于 X 元素的线性不等式,它定义了一个“半空间”(一个非常简单的凸集)。 但是要满足半正定,这个不等式必须对所有可能的向量 v 都成立。由于向量 v 有无数个,这就相当于有无数个半空间

因此,“半正定矩阵锥 (PSD Cone)” 就可以看作是无数个半空间的交集。 根据保凸运算定理:无数个凸集的交集依然是凸集。所以,我们几乎不需要做任何复杂的计算,就能直接断定:半正定矩阵的集合是一个凸集

这正是“保凸运算”的威力所在:它允许我们将极其复杂、难以直接用定义证明的集合,拆解为无数个简单集合的交集,从而瞬间判定其凸性。

第二部分:仿射函数

简单来说,仿射函数(Affine Function)就是“线性变换 + 平移”

在数学公式上,它的长相非常固定:

其中,A 是一个矩阵(负责线性变换),b 是一个向量(负责平移)。

如果把它降维到我们在初中学的最简单的一元函数,它其实就是一条直线方程:。只不过在凸优化里,我们处理的是多维向量,所以变成了矩阵变成了向量。

我们用几何和生活中的例子来拆解它为什么能“保凸”。

你可以把“仿射变换”想象成对一块面团(集合)进行以下几种物理操作:

  • 平移 (对应):把面团从桌子的左边推到右边。

  • 缩放与拉伸 (对应):把一个圆圆的面团,横向拉长变成长条,或者压扁变成一张饼。

  • 旋转与翻转 (对应):把面团转个角度。

  • 投影 (对应降维的):用手电筒照着这个立体的面团,看它在墙上投下的二维影子。

重点来了:仿射变换绝不包含扭曲、弯折、或者挖洞这些操作(比如把直的面团弯成牛角面包,这叫非线性变换,不是仿射的)。

Boyd 的书里提到了仿射变换对凸集有“双向免疫力”:正向映射反向映射都保凸。

正向映射(把凸集变过去)

假设你手里有一块原本就是“凸”的面团(没有任何凹陷)。

不管你怎么平移它(加 $b$),不管你怎么均匀地拉伸它、压扁它(乘 A),甚至看它的影子,它绝对不会平白无故生出一个“凹坑”来

  • 一个实心球(凸集)被拉伸后变成了实心椭球,依然是凸的。

  • 一个实心立方体(凸集)在墙上的影子是六边形,依然是凸的。

这就是正向保凸:凸集经过仿射变换后,得到的新集合依然是凸的

反向映射(寻找能命中目标的起点)

这个稍微绕一点,但非常有用。反向映射(逆像)的意思是:结果必须落在一个指定的范围里,倒推要求起点在什么范围。

打靶比喻:

假设目标靶子 C 是一个完美的实心圆(一个凸集)。

你站在远处射箭。但是今天有风,你的箭射出去后,受到风速和重力的影响,它的轨迹偏移是一个仿射变换()。

现在问:你站在哪些位置(或者以哪些角度)射箭,能够保证箭最终准确扎进那个实心圆靶子里?

答案是:所有能射中靶子的“起始位置”构成的集合,必然也是一个凸集。如果点 x能射中,点 y 也能射中,那么 x 和 y连线上的中间点也一定能射中。

第三部分:透视函数线性分式函数

这两个函数虽然看起来是“非线性”的(因为公式里含有了除法),但极其神奇的是,它们完全不会破坏集合的凸性

1. 透视函数 (Perspective Function)

数学定义

透视函数的作用是将一个维的向量,降维变成维的向量。它的公式是:

  • 输入:一个维向量和一个标量(合起来是一个维的向量)。

  • 定义域限制:要求分母(在几何上代表物体必须在相机镜头的前方)。

  • 输出:一个维向量(把前面的每个坐标都除以最后一个坐标)。

想象你在三维空间(,即 z 是二维坐标 (x,y),t 是深度坐标)里看一盏灯:

  1. 相机的小孔(或者你的眼睛)位于坐标原点 (0,0,0)。

  2. 成像平面(底片)位于距离小孔距离为 1 的平面上(即 t=1的平面)。

  3. 三维空间中的一个点 (x, y, t) 发出一束光,穿过原点,打在底片上。根据初中的相似三角形原理,它在底片上的坐标就会变成

这正是透视函数在做的事情:它把高维物体的所有点,沿着向原点汇聚的光线,投影到一个低维的超平面上。

  • 立方体本身是一个凸集

  • 远处的“灭点”(Vanishing Point)就相当于透视函数公式里的原点

  • 当立方体被投影到二维平面(也就是你的屏幕或画纸)上时,它的正面可能显得很大,背面显得很小(即除以了不同的深度 t),产生了强烈的拉伸感。

  • 保凸性的体现:无论这个立方体看起来多么倾斜或畸变,它在纸面上画出来的二维外轮廓,依然是一个完美的凸多边形

  • 正向保凸:如果空间里有一个三维的凸物体(比如一个没有凹陷的实心马铃薯),用相机拍一张照片,照片上马铃薯的二维轮廓必然也是凸的,绝不会平白无故产生一个凹进去的坑。

  • 反向保凸(逆像):如果你在底片上画一个凸的几何图形(比如一个实心正方形),所有能在这个正方形里成像的三维空间点构成的集合(就像是一个以原点为顶点的四棱锥向外无限延伸),在空间中也必然是凸的

2. 线性分式函数 (Linear-Fractional Function)

线性分式函数(也叫射影函数 Projective Function)是仿射函数和透视函数的终极结合体

数学定义

它的公式长这样:

  • 输入是一个维向量。

  • 分子 ():是一个仿射变换,结果是一个维向量。

  • 分母 ():也是一个仿射变换,结果是一个标量(要求大于 0)。

  • 输出:一个维向量。

初看这个公式,分子分母都有变量 x,这显然是一个复杂的非线性函数。为什么它还能保持集合的凸性呢?

因为线性分式函数本质上可以拆解为两步走,每一步都是我们已知的保凸运算:

  1. 第一步(仿射变换):构造一个全新的高维向量,把分子和分母拼起来:

    这是一个纯粹的仿射函数(线性变换+平移)。如果原集合是凸的,变换后的高维集合也必然是凸的。

  2. 第二步(透视变换):对这个高维向量使用透视函数,用前维的内容除以最后一维的内容:

    透视函数也是保凸的。

结论:因为“仿射”保凸,“透视”也保凸,所以它们两个复合起来的线性分式函数,自然也拥有完美的保凸免疫力(无论是正向映射还是反向映射)。

实际应用场景

在计算机图形学、3D 游戏渲染(比如 OpenGL/DirectX 的投影矩阵)以及射影几何中,线性分式变换无处不在。当你在 3D 游戏里转动视角时,屏幕上变换后的三维物体的凸多边形边界依然是凸多边形,绝对不会发生畸变扭曲导致凸集变凹集,这就是利用了这一数学特性。

http://www.jsqmd.com/news/864571/

相关文章:

  • 常州环创再生资源科技:徐州专业的钨钢回收公司有哪些 - LYL仔仔
  • 地下自来水管道漏水检测技术拆解与专业服务商遴选 - 奔跑123
  • 小白也能照着做:Claude Code Windows安装与API中转配置全流程(附常见报错解决)
  • 如何用AI CoverGen在5分钟内将音频转换为专业级音乐封面
  • 2026年4月高大空间冷暖风机实力厂家推荐,乏风取热箱/高大空间冷暖风机/干冷器/空气幕,高大空间冷暖风机品牌推荐 - 品牌推荐师
  • 社区医院管理系统|基于SprinBoot+vue社区医院管理系统设计与实现(源码+数据库+文档)
  • 地下自来水管道漏水检测技术解析 专业服务商怎么选 - 奔跑123
  • MPV播放器终极配置指南:10个简单技巧打造专业级视频体验
  • NodeMCU PyFlasher完整指南:3分钟学会ESP8266固件烧录的终极免费方案
  • 老板花了几万块买的协同办公工具,三个月后员工们还在微信群传文件?
  • 【热门 v 2.7.5 版本】电脑 Open Claw 一键部署入门干货(图文教程)
  • 是德科技E5071C矢量网络分析仪参数
  • 蛋白质-配体相互作用分析终极指南:PLIP工具从入门到精通
  • PagedAttention 与 vLLM 推理加速
  • 如何用silk-v3-decoder轻松解锁微信QQ语音文件:音频格式解放指南
  • WinUtil:Windows系统优化终极指南,10分钟完成专业级配置
  • 京东宿迁具身智能数据采集社区启运:以真实数据破局产业瓶颈,传感器筑牢感知底座
  • 5分钟学会免费备份微博:Speechless插件完整使用指南
  • 预测未来--Herry
  • 一眸科技 | 情感认知智能,让AI更懂人心
  • CATLASS 算子开发:AICore 抽象硬件架构
  • 终极AI音乐创作工具:5分钟生成专业级歌曲翻唱
  • 免费获取B站4K超清视频:解锁大会员专享内容的完整方案
  • IDEA 中 Build、Maven、Run 三者的本质区别 —— 为什么你的代码在 IDE 能编译却在 CI/CD 失败?
  • FineReport网络报表bug
  • 课程管理|基于Javavue的在线课程管理系统(源码+数据库+文档)
  • 免费歌词下载神器:163MusicLyrics 终极使用指南,轻松获取网易云和QQ音乐歌词
  • Midscene.js:视觉驱动的跨平台AI自动化测试框架深度解析
  • 宁波有面子的婚宴场地
  • 鸿蒙 HarmonyOS 6 | Pura X Max 鸿蒙原生适配 10:横屏下页面从上下结构改为左右结构