形式陈述
从覆盖到最优证书
把一批站点放在平面上,要选一个中心,使最远站点到它的距离尽量小。输入有限点列 ,采用 Euclidean 内积及其平方距离理路内积空间Inner product space带正定对称双线性形式或正定 Hermitian 半双线性形式的向量空间。,求
输出是包含全部点的闭圆盘;中文“包围圆”在此同时指它的边界与内部。非空输入返回圆心 、平方半径 ,不用先开平方。空输入返回专门的空圆标记;它与以原点为心、半径零的圆不同。坐标为有理数时,平面最小圆的 都可用有理数精确表示。
一个可独立核验的最优证书是至多三个输入点及非负系数 ,满足
还须检查所有输入点都在圆内。对任意另一个中心 ,平方展开给出
因此任何覆盖这些证书点的圆,其平方半径至少为右端,尤其不小于 。覆盖检查给上界,凸组合等式给下界;两个检查合在一起才证明最优。
为什么总有三个点以内的证书
非空有限点集的目标连续,并在 时趋于无穷,所以最优中心存在。它也唯一:若不同中心 都用平方半径 覆盖全部点,中点满足
会得到更小圆,矛盾。
最优中心必须在圆上输入点的凸包内。否则取该凸包中距中心最近的点,沿中心指向它的方向移动一小步,会严格缩短到每个边界点的距离;有限个内部点有正的剩余余量,足够小的移动仍使它们在圆内,于是可以缩小半径。这与最优性矛盾。再用 Carathéodory 定理理路Carathéodory 定理Caratheodory theorem in convex geometry有限维凸包中的每个点都可由至多维数加一个原集合点的凸组合表示。,平面凸包中的中心只需至多三个边界点表示。这些点不一定唯一,圆心却唯一。
递归中的点为什么必须留在边界
定义 为覆盖 、并让 的每个点都在圆上的最小圆。它不是 的普通最小圆。顶层要求 ;递归把暂时无法覆盖的新点加入 。
随机选 ,先求 。若 ,直接返回。否则求
其正确性依靠:在新的最优圆中,违反旧圆的 必须成为边界点。固定非空 并取 ,圆心的条件可改写为
以及
在这个凸可行集上最小化 ,就是原来的强制边界问题。若新点约束在新最优中心处仍严格松弛,就可沿新中心朝旧中心移动少量:其他约束保持可行,目标严格下降,产生矛盾。 时,对两圆的标准圆方程作凸组合也得到同样结论。[1, §2, Lemma 1]
直觉
违反一次,少一个自由方向
普通圆可以移动圆心并改变半径。指定一个边界点后,半径由圆心到它的距离决定;指定两个不同边界点后,圆心只能在垂直平分线上移动;指定三个不共线点后,圆已唯一确定。递归不是每次重新盲猜三个点,而是把已经证明必须贴住的点保留下来。
覆盖检查与凸组合下界 可以停止的两个基例
为空时,直接构造经过 的最小圆:零点为空圆,一点为零半径圆,两点取直径圆,三个不共线点取外接圆。三点共线且互异时不存在经过它们的有限圆,不能随意返回最远点对的直径圆,因为它没有让中间点留在边界。
合法顶层调用生成的子问题总可行,且 内不会新增重复位置。因而当 时,可以直接返回三点外接圆,不再扫描剩余 :它们已由这个可达子问题的不变量保证被覆盖。若把子程序当成可接受任意 的公共接口,这个快捷出口就不再安全,必须另外检查可行性。[1, pp.4–5]
实现不复制整个前缀
附件用一个点 ID 数组保存当前 ,每个递归帧记录有效前缀长度、至多三个边界 ID 和返回阶段。每次从有效前缀均匀抽一个位置,与末项交换;先算不含末项的子问题,必要时再把末项加入边界。两个分支结束后恢复交换,所以调用者仍看到同一份点集。
递归由显式栈模拟,不受 Python 递归深度限制。新随机选择在每个节点重新取得;没有在每层复制长度为 的列表。若照着递归公式不断写 P[:-1],光复制成本就可能破坏线性期望界。
例子与边界
三个真正参与最优性的点
取 ,另加内部点 、边内点 和一个重复的 。仅看 时,直径圆的中心为 、平方半径为 ; 到该中心的平方距离为 ,确实违反。
三点等距方程给出圆心 、平方半径 。证书系数为
三项系数非负、和为一;全部六个输入位置都通过覆盖检查。所以最小平方半径恰为 ,而不是仅凭图形猜到的数值。内部点和重复点不改变最优圆,但重复 ID 仍是输入记录,不能在程序里不说明就改变它们的身份。
三点外接圆不总是三点最小圆
改成 。三点外接圆为中心 、平方半径 ;真正最小圆却是 的直径圆,中心 、平方半径 ,且 严格在内部。这解释了为什么“任意取三个点求外接圆”不能替代最小圆算法,也解释了强制边界子问题和普通子问题的差别。
全部点共线时,最小圆以两个极端位置为直径;全部位置重合时,半径为零。四点共圆时可能有多个支撑集,不能把每个圆上点都计成“删除它会改变最优值”的关键点。算法只在严格在外时重建,圆上相等不触发违反。
从最终圆线性提取证书
最终递归留下的三个边界记录未必就是最方便展示的最小证书。附件再扫描真正圆上的输入点。以一个非零半径方向 为参照:遇到反向共线向量,直接得到一对直径端点;否则在叉积为正、为负的两侧,分别保留与 内积最小的边界方向。因为所有这些向量等长,这恰是两侧最远离 的角方向。
中心属于边界凸包,故选出的三个方向不能全落在同一开半平面;解二维重心坐标得到非负系数。零系数删掉即可。这个扫描只用 次精确运算,没有为提取证书再枚举全部三元组。圆内检查和证书验证也各为线性。
推论与应用
期望线性到底怎样得到
强制边界集合大小为 时,只需至多 个额外点决定其最优圆。 已由三点证书证明; 时,前述圆心问题是在平面半空间交中找距 最近的点,最优点在内部、边的投影或两条有效边界的交点,至多需两条约束; 时只剩直线上一个区间,最近点由至多一个端点约束决定; 时无需额外点。
不要求决定点唯一。固定当前集合后,任何删除会改变答案的点都必须属于每一份决定集,所以这样的点至多 个。均匀抽最后处理点,触发第二次递归的概率至多 。令 为期望圆内测试数,得到
逐层代入可取 。常数工作与测试数同阶,加上输入、输出证书扫描,总期望算术操作数为 ,辅助空间为 。这是对每个固定输入、内部独立随机选择取期望的 Las Vegas 保证理路随机化算法Randomized algorithm把随机比特作为额外输入并分析输出正确率或运行时间分布的算法。,并非所有随机轨迹都线性。固定种子仅用于复算,不能把一次测试的速度当成概率证明。
算术与推广的边界
圆心、平方半径和内外分支采用 精确几何计算理路精确几何计算Exact geometric computation · EGC让组合控制流由数学上正确的几何谓词符号驱动,并把近似构造与精确判定分离。,避免用固定 epsilon 把边界点移到错误一侧。若输入分子分母至多 位,本页固定维数公式只含常数个输入数,约分后的中间几何数位长为 ;设这种位长下含约分的有理运算成本为 ,几何部分期望为 。均匀抽取位置另需随机整数生成成本,理想拒绝抽样平均用 位随机数一次。
在 维,最小球有至多 个支撑点,但基例求球和随机递归常数都依赖 。不能把平面中的常数 或“固定维数线性”改写成同时对 的统一线性界。LP-type 模型理路LP-type 问题LP-type problem · LP型问题 · 抽象线性规划型问题以单调值、局部违反关系和有界大小的基刻画一类优化问题,并用极端元素双计数控制随机样本的违反量。整理小基与违反集合的关系;它还需要局部性,不能仅凭“存在短证书”就调用所有抽样结论。
终结任务要求交付圆、证书、三点外接圆反例和精确复算记录。完整执行器中的审计模式会扫描各递归前缀,它用于核验,不计入以上关闭审计时的核心界。
参考资料
- Emo Welzl,“Smallest enclosing disks (balls and ellipsoids)” 原稿,1991,§2,PDF pp.2–5,Lemma 1、递归与 Theorem 2;§3 讨论扩展。原稿页码与出版页码359–370不同。
- Bernd Gärtner、Emo Welzl,“A Simple Sampling Lemma: Analysis and Applications in Geometric Optimization”,2001,§2 “Smallest enclosing ball”、§3 Fact 3.3:删除关键点、抽样和非唯一基。