把五个服务地点排在数轴的 处,只能在其中两处设置站点。若先选 ,离它最远的是 ;两站放好后,地点 离最近站点仍有距离 。这并非最优:选 就能让每个地点离某站至多 。最远点优先的价值在于,这种损失有一个对所有有限度量都成立的上限,而且算法能把证明所需的见证一起交出来。
形式陈述
点、中心与目标值
输入是有限度量空间理路度量空间Metric space用满足正定性、对称性与三角不等式的实值距离刻画点间远近的空间。 ,,以及整数 。中心必须是 的点。对 、,定义
这是最小化最远地点到最近中心的距离。它既不是所有距离之和,也不是每个簇内部两点距离的最大值。有限性保证所有最小值取得,非负性允许在 时仍用 表达二倍近似理路近似比Approximation ratio近似算法解值与最优值之间的最坏情形乘法保证。,无需除以零。
输出包括中心身份 、每个点的最近中心及半径 。当 时,再给一个最远未选点 ,使这 个点两两相距至少 。于是读者得到一份可行覆盖与一个最优半径下界 ,不必知道最优中心究竟在哪里。
空集单独约定只接受 ,返回空中心、空指派与半径零。非空输入不接受 ,因为到空中心集合的最近距离不是有限值。若允许伪度量,需先合并零距离类再讨论互异中心;本页接口保持真正度量,不在程序中悄悄合并身份。
只维护最近距离
任取一个起点 ,其后重复选择
并列按预先固定的点序处理。维护数组 ;加入新中心 后只需
若新距离严格更小,连同最近中心身份一起改写;相等时保留旧身份即可。每轮后的最大 就是当前覆盖半径。由正定性,未被选完时仍有正距离的点,所以最大者不会是已有中心。
Gonzalez 的原算法也是逐次选择最远的簇头。[1, §2] 其原文分析的目标是最大簇直径;这里固定中心半径目标,并在下节直接证明相应的 下界,避免把两种目标值混用。[2, §4.2]
直觉
选一个中心后,最该担心的是仍离所有中心很远的地点。把它变成新中心,会把某些最近距离降低,其他最近距离不变,因此覆盖半径单调不增。不过,“修补当前最坏点”还不足以证明近似:关键是这些被选中的点同时记录了此前各轮的困难。
假设最后还剩一个距离 的点。后选中心在入选时比它早的中心都至少离这么远,否则当时最大的最近距离就不可能最终仍有 。因而中心连同最后的最远点形成 个彼此分离的地点。任何只开 个站的方案,都必须让某一站同时负责其中两个;三角不等式把这两个地点的间距变成该站覆盖半径的二倍下界。
中心覆盖与分离见证 两个方向都要核验
最近距离数组的归纳很直接。第一中心加入后,。若更新前 ,再与 取小,恰是对 的最小值。因此最终指派确实覆盖所有点,半径不会因为漏看某中心而报大或报小。
再记第 轮覆盖半径为 。数组只会下降,所以 。任取 ,在 被选为最远点时,
这里 只作见证,并不增加实际站点数。把 个见证指派给任意最优的 个中心,至少两点 共用一个中心 。于是
这同时证明 。当 时全体点都是中心,,无需构造不存在的第 点。
例子与边界
把五点例子算到底
按身份 排列,初始中心取 。执行过程为:
| 已加入的中心 |
各点最近距离 |
下一最远点 |
|
|
|
|
|
,只作见证 |
最近中心身份为 ;中点平局留给旧中心 。半径 ,见证 的三组距离是 ,所以任何两个中心的最优半径至少为 。方案 达到 ,故二倍损失在这个实例上恰好取等。附件枚举中心组合时按身份序返回另一个同样最优的方案 。
证书与算法轨迹承担不同任务。验证输出的 个中心、全部指派距离不超过 ,并检查 个见证的所有点对距离至少为 ,已经足以证明二倍近似;这份验证器无需重跑贪心。若还声称“这就是指定起点和并列规则的运行”,才需要逐轮核最大者。
半径与簇直径差在哪里
半径为 的中心指派使每个簇的直径至多 ,因为簇内两点都能经由中心连接;但直径可能小于这个上界。对另一目标“把 分成 个非空簇,最小化最大簇直径”,上述 个见证给出的下界是 :同簇的两点本身就相距至少 。结合算法簇直径至多 ,也得到二倍近似,却是另一套上下界。不能对中心半径直接宣称最优值至少为 ,五点例子已经否定它。
改输入合同会发生什么
若把中心放到点集外,有限矩阵没有提供到那些位置的距离。二维连续的一中心问题可由最小包围圆理路最小包围圆Minimum enclosing circle · Smallest enclosing disk · Welzl algorithm · Welzl 最小圆算法用至多三个边界点核验最小圆,并以强制边界的随机递归在期望线性算术时间内构造它。求解;它使用坐标和几何支持点,输出的中心甚至不是输入点。本页的程序只返回原点身份,不自动解决受限设施集、连续平面或带容量版本。
若使用平方距离,二倍因子也会变化。数轴 上,平方距离矩阵满足 而 。选一个中心并从 开始,半径为 ,最优中心 的半径为 ,已超过二倍。失败发生在三角不等式,不是并列规则。
推论与应用
固定预算与固定尺度互相读取
覆盖数与 packing理路度量熵与覆盖数Metric entropy · Covering number · 覆盖数在指定尺度和度量下,用有限网覆盖函数类,并以覆盖数或度量熵量化其有效大小。把半径固定,询问要多少中心;k-center 把中心数固定,询问需要多大半径。最远点序列可以同时给出这些尺度的信息:持续加入最远点,直到覆盖半径不超过给定 ,所得中心是一个内部 -cover;除第一点外,每次入选时距离旧中心严格大于 ,所以这些中心也形成严格 -packing。
这不表示其中心数最少。它说明每个入选点都有“此前所有中心都覆盖不到我”的理由,从而把覆盖的可行性与分离的必要性连在同一条序列上。若把终止条件改成严格小于 ,packing 的边界不等号也要相应改变。
时间、存储与输入验证
每轮扫描 个点更新距离,再扫描取最大值, 轮为 次距离访问与比较,工作数组和输出中心共 空间。证书验证可直接检查 份指派和 个见证点对,需 次访问。附件另做穷举最优对照,代价为 ;这不属于贪心算法的运行界。
这些界把一次距离查询视为单位操作。若距离由 oracle 提供且一次成本为 ,查询部分乘 ;若预先存完整矩阵,输入本身另占 。读入并验证方阵、正定性和对称性需 ,穷尽三角不等式需 ,不能算进免费的输入承诺。精确有理数的比较还须计入分子分母位长。
有限度量单元终点继续使用这五个点:固定中心预算给覆盖,固定尺度给随机块,再把多尺度块组织成树。三种输出的半径、块数与距离保证分别核验。
参考资料
- Teofilo F. Gonzalez,Clustering to Minimize the Maximum Intercluster Distance,Theoretical Computer Science38,1985,pp.293–306,§2,尤其 Lemma2.1、Algorithm APPROX、Theorems2.2–2.3,pp.295–296:最远簇头机制与最大簇直径保证。
- Michael Dinitz,Approximation Algorithms,Lecture4,JHU,2024-02-01,§4.2,pp.2–4:离散 k-center 半径目标和二倍近似。