Skip to content

定义Definition

凸包

Convex hull

包含给定点集的最小凸集,是凸几何中的基本包络对象,并可进一步研究其算法构造。

形式陈述 ​

集合 S⊆Rd 的凸包首先是一个凸几何对象:它由 S 的所有有限凸组合组成,

conv(S)={∑i=1mλixi:m≥1, xi∈S, λi≥0, ∑i=1mλi=1},

等价于包含 S 的所有凸集之交。有限平面点集的凸包是可能退化的凸多边形。计算页面通常以极点序列表示它,并需约定是否保留共线边界点;这种输出接口不改变凸包作为最小凸集的定义。

直觉

凸包是包含点集的最小凸集,同时包含内部与边界。已经位于凸包内的输入点不会扩大凸包;线性泛函在凸组合上取输入值的加权平均,所以取凸包不改变其上确界,但该上确界未必取得。

关键条件是凸组合系数非负且和为一;若允许负系数但仍要求系数和为一,得到仿射包;若连系数和的约束也取消,得到线性张成。例如单点 {(1,0)} 的凸包与仿射包都是自身,而线性张成是整条横轴。橡皮筋只描述有限平面点集凸包的边界,凸包本身还包含内部。

例子与边界

三角形三个顶点的凸包是整个三角形,内部点不改变结果。更具体地,点集 (0,0),(1,0),(1,1),(0,1),(1/2,1/2) 的凸包是单位正方形,中心点不成为顶点,因为它可写成四个角点的凸组合。Graham scan 先按极角排序,再用方向判定维护左转栈,在比较/实数 RAM 模型下给出确定性最坏 O(nlog⁡n);单调链达到同一界。对非空有限输入,若输出极点数为 h,输出敏感算法可以达到 O(nlog⁡max{2,h});这也覆盖全部输入点重合、只有一个极点的情形。空输入直接返回空凸包。只报一个输入规模有时会掩盖这种更细的保证。

若所有点共线,凸包退化为两端点之间的线段;只有一个不同点时则退化为单点,而不是二维多边形。边界上其余共线点是否全部输出取决于 API 约定:几何对象的极点只有端点,但某些算法题要求保留所有边界输入点。重复点、浮点近共线和输入顺序也必须显式处理。

推论与应用

凸包适用于任意点集,每个成员由有限凸组合见证。Carathéodory 定理保证,在 Rd 中至多用 d+1 个原始点即可表示任一凸包点。凸包未必闭,例如 (0,1) 的凸包仍是自身;空集的凸包约定为空。以下算法则只讨论有限输入。构造过程常由方向判定驱动 Graham scan 或 monotone chain;共线与重复点要求精确谓词和明确 tie-breaking。随机增量构造提供期望分析的另一条路线,但随机排列的期望界不能写成确定性最坏界。数据超出内存时应在外存模型下计块传输,并行实现则按并行模型分别报告工作与深度。

凸包边界上的站点对应Voronoi 图的无界 cell,Delaunay 三角剖分覆盖同一凸包。对非空有限点集的凸包,线性目标总能在某个极点取得最优;旋转卡壳还可在极点循环序列上求最远点对。凸多边形 Minkowski 和归并两个轮廓的支撑方向,并把反射后的机器人轮廓加到障碍上,用于构造平移碰撞禁区。

参考资料
  • Dimitri P. Bertsekas, Convex Optimization Theory, Athena Scientific, 2009,作者节选 §1.2,凸组合与 Proposition 1.2.1。
  • Mark de Berg et al., Computational Geometry: Algorithms and Applications, 3rd ed., Springer, 2008,Chs. 1–7。
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 3rd ed., MIT Press, 2009,§33.3 “Finding the convex hull”:Graham scan 与 Jarvis march。大学托管原书。
关系图谱23 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
分类位置

上位 / 更一般

下位 / 直接特例

暂未标注直接特例。

类型化关系