讲义 PDF p1–79(slides 无页脚页码)
-server 把 paging 从”页面要么在缓存、要么不在”推广到一般的距离: 个服务器分布在度量空间中,请求出现在某个点时必须派一个服务器过去,代价是移动距离。它是在线算法最核心的问题之一,著名的 -server 猜想至今未解决。本讲先在直线上设计出最优的 Double Coverage 算法,用势函数证明它是 -competitive;再到一般度量空间,介绍 Work Function Algorithm(WFA),证明它是 -competitive。
| 部分 | 要回答的问题 | 核心结论 |
|---|---|---|
| 1. 问题与背景 | 问题是什么?为什么猜想答案是 ? | 推广 paging;确定性下界 |
| 2. 直线上的算法设计 | 贪心为什么不行?怎样追上 OPT? | Double Coverage:两侧最近的服务器一起移动 |
| 3. DC 的势函数分析 | 怎样证明 DC 是 -competitive? | ,摊还代价 |
| 4. 树上的推广 | DC 能推广到哪里? | 树上同样 -competitive |
| 5. Work Function Algorithm | 一般度量空间怎么办? | 在”追上 OPT”与”当前代价低”之间平衡 |
| 6. WFA 的分析 | WFA 有多好? | -competitive;是否为 仍未解决 |
1. 问题与背景
来源:多磁头磁盘。请求出现在某个位置时,需要把一个磁头移过去,目标是总移动距离最小。
定义: -server 问题
- 度量空间 ; 个服务器的初始位置 (可以假设它们重合在同一点)。
- 请求序列 逐个到达。请求 到达时,必须有一个服务器位于 (必要时移动服务器),然后才能看到下一个请求。
- 目标:最小化所有服务器的总移动距离。
服务器位置的多重集称为配置(configuration)。
历史:由 Manasse, McGeoch, Sleator 于 STOC 1988 提出。-server 猜想:是否存在 -competitive 的确定性算法?
为什么猜想是 :
- -server 推广了 paging:取均匀度量(任意两个不同点距离为 ),点就是页面,服务器所在的点就是缓存中的页面,把服务器移到请求点就是缺页时调入页面。所以 paging 的下界都适用:确定性下界 ,随机下界 。
- 更强的结论(STOC 1988):在任何至少有 个点的度量空间上,都不存在竞争比 的确定性算法。所以 是能期望的最好结果。
- 随机版本的猜想是存在 竞争比的随机算法(后来被推翻,见第 7 节)。
2. 直线上的算法设计
先看最简单的度量空间:实数直线,。
2.1 朴素尝试
- 固定范围:每个服务器只负责一个固定区间。
- 贪心:派离请求最近的服务器。
两者都会被同一个简单例子击败。设 ,服务器在 和 ,请求为 :
- 固定范围: 都在右侧服务器的区间里,它来回奔波,代价约 。
- 贪心:右侧服务器总是离请求最近,同样来回奔波,代价约 。
- OPT:把左侧服务器移到 (代价 ),右侧服务器移到 (代价 ),之后全部命中,代价是常数。
这与 paging 中 LIFO、LFU 的问题相同:OPT 的代价不再增加,ALG 的代价却一直增加,因为 ALG 的配置始终没有追上 OPT 的配置。
2.2 与 Ski Rental 的联系
把例子放大:两个请求点都在很远的右侧(距离约 )。要不要把第二个服务器调过去?调过去要付 ;不调,每次请求都要付一小段距离。这正是 Ski Rental 的”租或买”:在局部代价累计到与远程移动相当时,就应该付出远程移动。
推广到一般情形的困难在于:可能的”远程移动”和”局部移动”都太多,难以一一对应。思路是当局部代价付够时,就向 OPT 的配置靠拢,大致让”长距离移动 = 若干短距离移动之和”。
2.3 从坏例子到 Double Coverage
再看一个例子(,两个服务器都在 ):
- 请求 :ALG、OPT 都把一个服务器移到 ,各付 。此时两者配置相同,贪心在局部是好的。
- 请求 :ALG、OPT 都把位于 的服务器移到 ,各付 。
- 请求 :贪心 ALG 把 处的服务器移回 ,只付 ;OPT 却可能把 处的服务器移到 ,付 。
对手为什么愿意多付?为了拉大 ALG 与 OPT 配置的差距:ALG 这一轮赢了,之后会输。
OPT 面对请求 有两种选择:派左侧服务器 ,或派右侧服务器 。ALG 只派 ,当前代价太高;只派 ,与 OPT 的配置差距太大。折中办法是:派 去服务,同时让 也向请求移动同样的距离。

定义:Double Coverage(DC,直线)
请求 到达时:
- 若 位于两个服务器之间:取 左侧最近的服务器 和右侧最近的服务器 ,两者以相同速度向 移动,直到其中一个到达 。较近的那个服务 ,另一个移动相同的距离。
- 若 在所有服务器的同一侧:只移动最近的那个服务器。
- 有多个服务器位于同一位置时,任意打破平局。
DC 的直觉:既然不知道 OPT 会派哪一侧的服务器,就两侧都派一点,从而无论 OPT 怎么选,ALG 的配置都向它靠近了一些。
例:DC 在 上追上 OPT
服务器从 和 出发。请求 在所有服务器右侧,只移动右侧服务器;请求 落在两者之间,两个服务器同时向它移动,左侧服务器因此逐步右移。第 5 个请求后两个服务器都到达 ,此后 DC 的配置变为 ,全部命中。DC 总代价为 ,OPT 为 。
3. DC 的势函数分析
3.1 势函数方法
和 Lecture 2 对 paging 分阶段计数不同,这里每一步的代价没有简单的上界,需要摊还分析:设计一个描述 ALG 状态的势函数 ,把每一步的实际代价加上势能变化作为摊还代价
若每一步都有 ,则求和后
相当于一个”存款”:ALG 某一步付得多时,必须是从存款中支取( 下降);OPT 付费时,ALG 可以存入至多 倍。
3.2 定义势函数
势函数由两部分组成:
- 配置差距:把 ALG 和 OPT 的服务器都按位置排序,,,令 在直线上,按顺序配对正是 ALG 与 OPT 配置之间的最小代价匹配。 衡量 ALG 离 OPT 有多远。
- 稀疏程度:ALG 的服务器之间有多分散, 直觉是:服务器彼此离得越远,每一次犯错的代价就越大。
定义:DC 的势函数
3.3 证明 DC 是 -competitive
每个请求分两步看:先让 OPT 服务( 因 改变而变化),再让 DC 服务( 因 改变而变化),分别估计。
引理 1:OPT 每次至多移动一个服务器
不妨设 OPT 是”懒惰”的:只在需要时移动,且只移动一个服务器到请求点。
证明
任何离线方案都可以改成懒惰方案而不增加代价:把服务器的提前移动推迟到它真正去服务请求时再一次走完,由三角不等式,路程不会变长。
OPT 的一步:OPT 移动一个服务器,距离 。 只与 ALG 有关,。 等于 ALG 与 OPT 配置之间的最小匹配代价;OPT 的一个服务器移动 ,原来那个匹配的代价至多增加 ,所以最小匹配至多增加 (即使它越过了 OPT 的其他服务器也成立)。所以
DC 的一步:此时 OPT 已有一个服务器位于请求点 。
情形 1:只移动一个服务器( 在所有服务器的右侧,左侧对称)。最右的 向右移动 。
- : 离其余 个服务器都远了 。
- :OPT 有服务器在 ,所以 OPT 最右的服务器 ; 从左侧向 移动, 减少 ,其余项不变。
- 。

情形 2:移动两个服务器()。两者各向 移动 ,。
- : 与 之间的距离减少 ;对 , 增加 , 减少 ,互相抵消; 同理。
- :见下面的引理 3。
- 。
引理 3: 与 中至少一个减少
因此另一个至多增加 ,其余项不变,。
证明
OPT 有一个服务器 。
- 若 :由排序,, 向右移动 后仍不超过 , 减少 。
- 若 :, 向左移动 后仍不小于 , 减少 。
定理:DC 在直线上是 -competitive 的
每一步 ,因此
ALG 与 OPT 从同一配置出发,;若初始服务器重合,,于是 ,。若初始服务器不重合,( 为初始服务器的分布范围)是与请求序列无关的常数,,仍称 DC 是(渐近)-competitive 的。结合第 1 节的下界,DC 是直线上的最优确定性算法。
思路:势函数的两部分各管什么
摊还代价要处处 ,难点是 DC 自己移动的步骤:此时 OPT 不付费,DC 的实际代价必须完全由 的下降来支付。
- 负责”追赶 OPT”:DC 每次移动都至少让一个服务器朝 OPT 的对应服务器靠近 , 下降 ,足以支付 DC 的代价。权重取 ,是因为 OPT 移动一步, 至多涨同样的距离,所以 OPT 付 时最多存入 ,这正是竞争比 的来源。
- 负责”两个服务器同时移动”的情形:此时 不一定下降(一个靠近、一个可能远离),但两个服务器相向而行, 下降 ,正好支付 的代价。只移动一个服务器时它向外走, 上升 ,由 的下降 覆盖,还剩 支付实际代价。
练习:去掉 会怎样
若只用 ,DC 的分析在哪一步失败?若只用 呢?
答:只用 时,情形 2 中 只能保证 (一个服务器靠近 OPT、另一个可能远离同样的距离), 可能等于 ,摊还代价无法被 OPT 支付。只用 时,情形 1 中 增加 ,;而且 与 OPT 无关,OPT 移动时无法”存入”势能。所以两部分缺一不可。
4. 树上的推广
DC 可以推广到树(边带长度的树形度量)上,同样是 -competitive 的(Chrobak & Larmore 1991)。
定义:Double Coverage(树)
请求 到达时,称服务器 为活跃的,若 与 之间的路径上没有其他服务器。所有活跃服务器以相同速度同时向 移动,直到某个服务器到达 ;移动过程中,若某个服务器与 之间出现了另一个服务器,它就变为不活跃,停止移动。
在直线上,活跃服务器恰好是 两侧最近的服务器,所以这是直线版本的推广。分析沿用同一个势函数: 改为 ALG 与 OPT 配置之间的最小代价匹配, 仍是 ALG 服务器两两距离之和。
再往一般度量空间推广时,DC 就不好用了,需要新的算法。
5. Work Function Algorithm
5.1 Work function
在一般度量空间中,-server 猜想仍未解决,但有一个候选算法:Work Function Algorithm(WFA)。已经证明 WFA 是 -competitive 的,它是否 -competitive 仍是公开问题。
WFA 的核心对象是”带固定终点的 OPT”。
定义:Work function
对配置 ,令 为从初始配置 出发、服务请求 、并且最后停在配置 的最小代价。 称为第 步的 work function。
离线最优就是 。
例:同样的历史,不同的终点
,服务器从 和 出发,前 个请求为 。
- 终点 :左侧服务器一直不动,右侧服务器在 之间往返,。
- 终点 :一开始把 处的服务器移到 ,之后全部命中,。
5.2 WFA 的定义
定义:WFA
记 为 WFA 服务完 后的配置。请求 到达时,选择 把位于 的服务器移到 :。
两项分别对应两个目标:
- :移动后的配置有多”像” OPT 的走法,即追上 OPT;
- :本次移动的代价,即局部代价低。
WFA 在两者之间平衡。只看第二项就是贪心;只看第一项则会为了模仿 OPT 付出过高的当前代价。
例:WFA 在 上的运行
服务器从 (蓝)和 (绿)出发,请求为 。每一步比较两种移动的得分 :
请求 移动 终点 本次移动 得分 选择 1: 1 1 2 ✓ 3 3 6 2: 2 1 3 ✓ 3 2 5 3: 3 1 4 ✓ 3 3 6 4: 4 1 5 ✓(平局取小移动) 3 2 5 5: 5 1 6 ✓(平局取小移动) 3 3 6 6: 6 1 7 3 2 5 ✓ 前五步 WFA 和贪心一样来回移动绿色服务器,但”停在 “的 OPT 代价越涨越高;第 6 步时,把远处的蓝色服务器调过来反而得分更低。此后配置为 ,后续请求全部命中。WFA 总代价为 (不等于最后一步的得分 ),OPT 为 。早期的请求让 这个配置变得有吸引力,WFA 由此追上了 OPT。
5.3 如何计算 OPT
不指定终点时,OPT 可以用最小费用流高效求出。设有 个请求:左侧是”可能的前驱”,包括 个初始服务器位置 和每个请求 ;右侧是每个请求 。从前驱到请求连边: 费用 ;()费用 ,表示服务完 的服务器接着去服务 。源点 连向所有前驱、所有请求连向汇点 ,费用为 ,所有容量为 。值为 的最小费用流就给每个请求指定了一个前驱,即 OPT。网络有 个点、 条边。

指定终点时,work function 满足动态规划递推:
含义:服务 时有一个服务器在 ,配置为 ;之后把这个服务器从 移到 ,到达终点 。
5.4 Work function 的基本性质
后面的分析反复用到以下性质,其中 表示两个配置之间的最小匹配距离。
引理:Work function 的性质
- Lipschitz:。
- 请求点已覆盖:若 ,则 。
- 单调:。
- 不动点方程:。
证明
- 先按最优方案停在 ,再沿最小匹配把服务器移到 。
- "":服务 的方案也服务了 。"":停在 的服务 的方案,结束时已有服务器位于 ,接着以零代价服务 ,终点仍是 。
- 同 2 的""部分:多服务一个请求不会更便宜。
- ""由 Lipschitz(从 把 处的服务器移回 )。"":由递推 ,而 含 ,由性质 2 有 。
性质 4 对 的含义特别好:右边的最小化问题恰好就是 WFA 的选择规则。所以 WFA 选出的 满足
即 WFA 每一步的”得分”等于 :在旧配置上服务完前 个请求的最小代价。
6. WFA 是 -competitive 的
6.1 伪离线代价与扩展代价
WFA 的配置序列 对应一串 work function 值 ,可以看作 WFA 在”追赶”的离线代价。
定义:伪离线代价与扩展代价
- 伪离线代价:。
- 扩展代价:。
伪离线代价望远镜求和:。
WFA 第 步的实际代价 。由上一节的等式,
对 求和:
flowchart LR A["WFA 规则 = 不动点方程的最小化<br/>ALG(i)+OFF(i) = OPT_i(R_{i-1}) − OPT_{i-1}(R_{i-1})"] --> B["ALG + OPT ≤ Σ EXT(i)"] C["Σ OFF(i) = OPT_n(R_n) ≥ OPT"] --> B D["只与请求序列有关:<br/>Σ EXT(i) ≤ 2k·OPT + c"] --> E["ALG ≤ (2k−1)·OPT + c"] B --> E
所以只要证明 ,就得到 。剩下的任务是估计扩展代价,而 只与请求序列有关,与 WFA 无关。
6.2 热身:只有 个点的度量空间
只考虑服务器占据不同点的配置,这样的配置只有 种(每种配置空出一个点)。令
由单调性,每一项 ,所以 。求和得
设 OPT 最终停在 ,由 Lipschitz,( 为最大距离)。所以 ,:在这种度量空间上 WFA 是(渐近)-competitive 的。
6.3 一般情形:对径点构造
一般情形下配置太多,不能对所有配置求和,需要知道 的最大值在哪里取到。为此先把度量空间扩大。
定义:对径扩张
取 。对原空间 的每个点 添加一个新点 ,令 仍是度量空间。对配置 记 ,即 个服务器都在 的对径点。

请求都在 中,OPT 不需要离开 ,WFA 也只把服务器移到请求点,所以扩张不改变 ALG 和 OPT,只是让 work function 的定义域变大。
关键结论(对径最大化)
在 处取到最大值。
讲义只给出直观,完整证明需要 work function 更细的性质(Koutsoupias & Papadimitriou 1995),这里不展开。
直观():只有一个服务器,设 ,。服务完 后服务器在 ,所以
差为 。由三角不等式 ,而 时 恰好取等,所以 是最坏的位置:它离当前请求最远,“从 绕道 再到终点”比”直接从 到终点”多出的代价最大。
6.4 估计扩展代价之和
在关键结论下,
思路是把正项与负项沿 OPT 的服务器路线配对。固定一个最优离线方案;若请求 与 ()由同一个服务器先后连续服务,记 ,把正项 与负项 配成一对。

引理:配对项的上界
对 (),
证明
由单调性和 Lipschitz, 而 。
定理:WFA 的竞争比
在任何度量空间上,,即 WFA 是 -competitive 的(Koutsoupias & Papadimitriou 1995)。
证明
配对项: 是 OPT 某个服务器在两次服务之间走过的路程的下界,不同配对对应 OPT 路线上不重叠的路段,所以 未配对项:每个被使用的服务器还剩下第一个请求 (其负项无配对)和最后一个请求 (其正项无配对),。负项 ;正项由单调性和 Lipschitz, 每个请求恰好作为一个正项和一个负项出现,都已计入。所以 代入 ,两边减去 即得。
思路:WFA 的证明在做什么
目标:比较 WFA 与 OPT,但 WFA 的行为很复杂,直接追踪它的每一步很难。
第一步:把 WFA 从分析中消掉。WFA 的选择规则恰好是 work function 不动点方程的最小化,于是”WFA 这一步的代价 + 它追赶的离线代价的增量”恰好等于在旧配置上的 work function 增量 。这个量不超过”所有配置中 work function 增量的最大值”,而 只取决于请求序列。追赶的离线代价总和至少是 OPT,于是 ,剩下的问题与 WFA 无关。
第二步:找到最大值的位置。在对径扩张的空间中,增量最大的配置是”所有服务器都在当前请求的对径点”,于是 变成具体的正负项之和。
第三步:沿 OPT 的路线配对。同一个 OPT 服务器先后服务的两个请求,对应的正负项之差至多是 倍的两点距离;这些距离加起来不超过 OPT。没配上对的只剩每个服务器的首尾,至多 对,各贡献至多 。两部分合起来就是 加常数,减去左边多出的一个 OPT,得到 。
7. 更多故事
-server 是在线算法最核心的问题之一。
确定性:WFA 是 -competitive 的(Koutsoupias & Papadimitriou, JACM 1995)。它是否 -competitive 仍未解决。已知 WFA 是 -competitive 的特殊情形:直线、 个点的度量、加权星(Bartal & Koutsoupias, TCS 2004);树且 (Coester & Koutsoupias, ICALP 2021)。
随机:
- 长期以来的猜想是 。
- 最好的上界为 , 为点数(Bubeck, Cohen, Lee, Lee & Mądry, STOC 2018,multiscale entropic regularization)。
- 猜想已被推翻:存在 的下界(Bubeck, Coester & Rabani, The Randomized -Server Conjecture Is False!, STOC 2023 best paper)。
- 仍然公开:能否去掉对 的依赖,得到 的竞争比。

