跳转至

3 Online Algorithms

在线算法 Online Algorithms

在线算法(online algorithm)处理输入时,输入序列会随时间逐步到达。算法必须在看到未来输入之前作出决定,而且已经作出的决定不能撤销。

这类问题的困难通常来自信息不完整,而不是计算能力不足。分析在线算法时,通常把它与知道完整输入的离线最优算法(offline optimum)比较。

Competitive Ratio 竞争比

设实例为 \(I\),在线算法为 \(ALG\),离线最优算法为 \(OPT\)

对于最小化问题,竞争比(competitive ratio)定义为

\[ \operatorname{CR}(ALG)=\max_I\frac{ALG(I)}{OPT(I)}. \]

对于最大化问题,竞争比定义为

\[ \operatorname{CR}(ALG)=\min_I\frac{ALG(I)}{OPT(I)}. \]

最小化问题的竞争比至少为 \(1\),最大化问题的竞争比至多为 \(1\)。竞争比越接近理想值,算法的最坏情况保证越好。

竞争比与近似比(approximation ratio)形式相似,但两者的来源不同:近似算法与同一输入上的最优解比较,在线算法则与拥有更多输入信息的离线算法比较。

Ski Rental Problem 滑雪租赁问题

问题描述

滑雪者计划滑雪,但不知道旅行会持续多少天。每天可以:

  • 租用滑雪板,费用为 \(1\)
  • 购买滑雪板,费用为 \(M\),之后可以重复使用。

设实际滑雪天数为 \(T\)。离线算法知道 \(T\),因此最优成本为

\[ OPT(T)=\min(T,M). \]

在线算法每天观察旅行是否继续,然后决定租用或购买。它不能预知 \(T\),也不能撤销过去的选择。

两个极端策略都不理想:

  • 第一天就购买:当 \(T=1\) 时,\(ALG=M\)\(OPT=1\)
  • 永远租用:当 \(T\gg M\) 时,\(ALG=T\)\(OPT=M\)

因此,问题的困难来自缺少未来信息。

确定性策略

考虑策略 III:先租用 \(M\) 天,如果旅行仍未结束,则在第 \(M+1\) 天购买。

  • \(T\le M\),算法一直租用,故

$\(ALG(T)=T=OPT(T).\)$

  • \(T>M\),算法先支付 \(M\) 天租金,再支付购买费用 \(M\),故

$\(ALG(T)=2M=2OPT(T).\)$

因此该策略是 \(2\)-competitive。

确定性下界

更一般地,设算法在租用 \(X\) 天后购买。若算法永远不购买,则当 \(T\) 足够大时竞争比无界;因此只考虑有限的 \(X\)

对该策略,令旅行在第 \(X+1\) 天结束:

  • \(X\le M-1\) 时,

$\(OPT=X+1,\qquad ALG=X+M,\)$

因而

$$ \frac{ALG}{OPT}=\frac{X+M}{X+1} =1+\frac{M-1}{X+1}\ge 2-\frac1M. $$

  • \(X\ge M\) 时,

$\(OPT=M,\qquad ALG=X+M,\)$

因而

$\(\frac{ALG}{OPT}=\frac{X+M}{M}\ge 2.\)$

这说明任意确定性策略的竞争比在 \(M\) 较大时都不能显著低于 \(2\)。在通常的 ski-rental 模型中,\(2\) 是确定性算法的标准最优保证;策略“租 \(M\) 天后购买”正好达到这个上界。

对手(adversary)可以根据算法已经作出的决定选择输入长度,从而让算法在信息不足时作出代价较高的决定。

Online Bipartite Matching 在线二分图匹配

问题描述

给定无权无向二分图

\[G=(U_1,U_2,E)。\]

一侧顶点 \(U_2\) 预先已知,另一侧顶点 \(U_1\) 逐个到达。每个 \(u\in U_1\) 到达时,算法才看到它的所有邻边。算法可以把 \(u\) 至多匹配到一个尚未使用的 \(v\in U_2\),然后继续处理下一个到达的顶点。

匹配(matching)是没有公共端点的边集合。算法一旦加入一条边,就不能删除它,也不能回到之前到达的顶点重新匹配。目标是最大化最终匹配的边数。

该模型可以描述在线广告分配:用户加载网页对应一个到达的顶点,边表示该用户可能看到的广告主,广告主一旦被占用就不能再次使用。

Greedy 算法

\(u\in U_1\) 到达时,如果存在可用邻点,就任意选择一个可用的 \(v\in U_2\),加入边 \((u,v)\);如果没有可用邻点,则跳过 \(u\)

\(1/2\)-competitive 证明

设算法得到的匹配为 \(ALG\),离线最优匹配为 \(OPT\)。对每条算法加入的边 \(e=(u,v)\),令 \(f(e)\)\(OPT\) 中所有与 \(e\) 共享端点的边。

由于 \(OPT\) 本身是匹配,至多有一条边与 \(u\) 相连,至多有一条边与 \(v\) 相连,因此

\[|f(e)|\le 2.\]

另一方面,\(OPT\) 中每条边最终都被某条算法边阻塞:如果它的在线端点到达时没有被算法匹配,则算法本来可以选择它;如果该端点已经被算法匹配,则两条边共享端点。于是

\[ |OPT|\le \sum_{e\in ALG}|f(e)|\le 2|ALG|. \]

因此

\[|ALG|\ge \frac12|OPT|,\]

Greedy 算法是 \(1/2\)-competitive。

确定性下界

考虑两个离线顶点 \(v_1,v_2\)。第一个在线顶点 \(u_1\) 同时连接到二者。算法此时若不匹配,或者选择其中一个端点,对手都可以选择相应的后续输入,使算法最终只能得到一条边,而离线最优匹配可以得到两条边。

因此不存在竞争比严格大于 \(1/2\) 的确定性在线算法。结合 Greedy 的上界,确定性在线二分图匹配的最优竞争比为 \(1/2\)

Online Scheduling 在线调度

问题描述

\(n\) 个作业(job)和 \(m\) 台相同机器(identical machines)。作业 \(j\) 的处理时间为 \(p_j>0\)。作业逐个到达,作业到达时必须立即分配到某台机器,未来作业的数量和大小未知。

更一般地,机器 \(i\) 可以有速度 \(s_i\),作业 \(j\) 在机器 \(i\) 上的处理时间为 \(p_j/s_i\);下面的竞争比证明针对课程重点讨论的相同机器情形,即所有 \(s_i=1\)

设机器 \(i\) 的负载(load)为分配给它的作业处理时间之和,调度的最大完工时间(makespan)为

\[ C(\pi)=\max_{i\in\{1,\ldots,m\}}L_i(\pi). \]

目标是最小化 makespan。

Least-Loaded Algorithm

Least-Loaded Algorithm 每次把新作业分配给当前负载最小的机器。

\((2-1/m)\)-competitive 证明

设算法产生的调度为 \(\pi\),最优离线调度为 \(\pi^*\),并令

\[C^*=C(\pi^*).\]

显然,最优 makespan 至少满足

\[ C^*\ge \frac1m\sum_{j=1}^{n}p_j, \qquad C^*\ge \max_j p_j. \]

令机器 \(i\) 是算法最终负载最大的机器,令 \(j\) 是最后分配到机器 \(i\) 的作业。作业 \(j\) 到达时,机器 \(i\) 的旧负载不大于当时所有机器平均负载,因此

\[ L_i(\pi)-p_j \le \frac1m\sum_{k\ne j}p_k. \]

于是

\[ \begin{aligned} C(\pi) &=L_i(\pi)\\ &\le \frac1m\sum_{k\ne j}p_k+p_j\\ &=\frac1m\sum_{k=1}^{n}p_k+\left(1-\frac1m\right)p_j\\ &\le C^*+\left(1-\frac1m\right)C^*\\ &=\left(2-\frac1m\right)C^*. \end{aligned} \]

因此 Least-Loaded Algorithm 是 \((2-1/m)\)-competitive。

\(m=2\) 时的下界

\(m=2\) 时,上界为 \(3/2\)。对手可以先给出两个大小为 \(1\) 的作业:

  • 如果算法把它们放在同一台机器上,算法的 makespan 为 \(2\),而最优值为 \(1\)
  • 否则两台机器各有一个大小为 \(1\) 的作业。此时再给出一个大小为 \(2\) 的作业,算法必须把它放在某台已有负载 \(1\) 的机器上,makespan 为 \(3\),而最优调度可以把两个大小为 \(1\) 的作业放在一台机器上,把大小为 \(2\) 的作业放在另一台机器上,最优值为 \(2\)

因此任意确定性算法的竞争比至少为 \(3/2\)。所以在两台相同机器上,Least-Loaded Algorithm 的保证是紧的。

Online Decision-Making Meets Stochasticity

当输入顺序由随机机制产生,或者算法已知输入分布时,可以利用概率分析弥补信息不足。秘书问题和先知不等式是两个经典例子。

Secretary Problem 秘书问题

问题描述

\(n\) 个候选人逐个到达,候选人的相对排名可以比较,但算法不知道后续候选人的排名。每个候选人到达时,算法必须不可撤销地决定录用或拒绝,目标是最大化录用全局最佳候选人的概率。

如果对手可以控制候选人的到达顺序,任何在线算法都可能在录用一个候选人后遇到更好的候选人;如果算法甚至不知道 \(n\),对手也可以利用未知的终止时间。因此在强对手模型下不存在有界的竞争比。

经典秘书问题采用较弱的随机顺序模型:

  • \(n\) 已知;
  • \(n\) 个候选人的到达顺序是均匀随机排列;
  • 算法最大化录用最佳候选人的概率。

三种策略

策略 I:直接录用第一个候选人。

最佳候选人位于第一位的概率为

\[\Pr[\text{录用最佳}]=\frac1n.\]

策略 II:观察前一半,选择后一半中第一个超过前一半最高水平的人。

成功事件可以取为:第二佳候选人在前半段,而最佳候选人在后半段。因此

\[ \Pr[\text{成功}]\ge \frac12\cdot\frac12=\frac14. \]

策略 III:观察前 \(n/e\) 个候选人,选择之后第一个超过观察阶段最高水平的人。

该策略的成功概率为

\[ \Pr[\text{成功}]\to \frac1e. \]

它是经典秘书问题的最优策略。

最优阈值的推导

考虑拒绝前 \(\tau\) 个候选人的阈值策略。只有当全局最佳候选人出现在位置 \(t>\tau\),且前 \(t-1\) 个候选人中的最佳者出现在前 \(\tau\) 个位置时,算法才会在位置 \(t\) 成功录用全局最佳者。

因此成功概率为

\[ \begin{aligned} P_\tau &=\sum_{t=\tau+1}^{n} \Pr[\text{第 }t\text{ 位是全局最佳}] \Pr[\text{前 }t-1\text{ 位的最佳者在前 }\tau\text{ 位}]\\ &=\sum_{t=\tau+1}^{n}\frac1n\cdot\frac\tau{t-1}\\ &=\frac\tau n\left(H_{n-1}-H_{\tau-1}\right), \end{aligned} \]

其中 \(H_k=\sum_{i=1}^{k}1/i\) 是调和数。令 \(\tau\approx n/e\) 可以使该概率最大;当 \(n\) 足够大时,最大成功概率趋近于 \(1/e\)

另一种理解方式是:算法不应选择一个不是“当前为止最佳”的候选人。随着位置增加,当前候选人为全局最佳的条件概率上升,而从当前位置开始仍能成功的概率下降,因此最优策略具有一个阈值结构。

Prophet Inequality 先知不等式

问题描述

\(n\) 个相互独立的随机变量 \(X_1,\ldots,X_n\)。算法预先知道每个随机变量的分布,但只能按 \(1,\ldots,n\) 的顺序逐个观察其实现值。看到 \(X_i\) 后,算法必须立即选择它并停止,或者拒绝它并继续;拒绝后不能返回。

算法希望最大化期望收益。先知知道所有随机变量的实现值,因此基准为

\[ X_{\max}=\max\{X_1,\ldots,X_n\}, \qquad OPT=\mathbb E[X_{\max}]. \]

算法的收益不可能超过 \(\mathbb E[X_{\max}]\)。先知不等式研究的是:只知道分布的在线停止规则,能否保证接近这个基准。

\(1/2\) 下界

考虑两个随机变量:

\[ X_1=1, \]

以及

\[ X_2=\begin{cases} 1/\varepsilon,&\text{概率 }\varepsilon,\\ 0,&\text{概率 }1-\varepsilon. \end{cases} \]

此时

\[ \mathbb E[X_{\max}]=2-\varepsilon. \]

如果接受 \(X_1\),收益为 \(1\);如果跳过 \(X_1\),则只能接受 \(X_2\),期望收益也是 \(1\)。因此任何在线算法的期望收益都不超过 \(1\),从而

\[ \frac{\mathbb E[ALG]}{\mathbb E[X_{\max}]} \le \frac1{2-\varepsilon}\longrightarrow \frac12. \]

所以一般情况下不可能得到严格大于 \(1/2\) 的保证。

基于中位数的 \(1/2\)-competitive 策略

\(\tau\)\(X_{\max}\) 的中位数,满足

\[ \Pr[X_{\max}\ge \tau]=\frac12. \]

策略:选择第一个满足 \(X_i\ge\tau\) 的变量。假设 \(\tau\) 处没有点质量,以避免等号处理带来的技术细节。

由于

\[ X_{\max}\le \tau+(X_{\max}-\tau)^+, \]

其中 \((x)^+=\max(x,0)\),有

\[ \mathbb E[X_{\max}] \le \tau+\sum_{i=1}^{n}\mathbb E[(X_i-\tau)^+]. \]

算法在 \(X_{\max}\ge\tau\) 时至少获得阈值贡献 \(\tau\) 的一半期望,即贡献 \(\tau/2\)。对于超出阈值的部分,由于各变量独立,算法在看到 \(X_i\) 之前尚未停止的概率至少为 \(\Pr[X_{\max}<\tau]=1/2\)。因此

\[ \begin{aligned} \mathbb E[ALG] &\ge \frac12\tau+\frac12\sum_{i=1}^{n}\mathbb E[(X_i-\tau)^+]\\ &\ge \frac12\mathbb E[X_{\max}]. \end{aligned} \]

所以该阈值策略是 \(1/2\)-competitive。结合前面的困难实例,\(1/2\) 是一般独立随机变量模型下的最优常数保证。

小结

在线算法的核心是:输入逐步揭示,决策需要立即作出,未来信息不可用。

  • Ski Rental:确定性算法的经典竞争比为 \(2\),下界来自对手对输入长度的选择;
  • Online Bipartite Matching:简单 Greedy 通过阻塞关系得到 \(1/2\)-competitive,且该保证对确定性算法是紧的;
  • Online Scheduling:Least-Loaded Algorithm 在 \(m\) 台相同机器上达到 \((2-1/m)\)-competitive;
  • Secretary Problem:在已知 \(n\) 且到达顺序随机时,跳过约 \(n/e\) 个候选人并选择之后第一个记录最佳者,成功概率为 \(1/e\)
  • Prophet Inequality:只知道分布的停止规则可以通过中位数阈值达到 \(1/2\)-competitive。

这些例子说明,竞争比刻画了信息限制造成的损失,而不只是算法运行时间或计算能力造成的损失。