§1–2:讲义 PDF p1–29(slides 无页脚页码) §3.1–3.3:讲义 PDF p30–35 §3.4–4:讲义 PDF p36–62

在线算法研究的是输入逐个到来、决策不可撤销时怎样做决定。它的困难不在计算量,而在不知道未来:即使算力无限,也可能因为信息不足而做错。本讲先给出衡量在线算法好坏的标准(竞争比),再用两个经典问题演示设计与分析的基本套路。

部分要回答的问题核心结论
1. Online Algorithms什么是在线算法?怎样算”好”?竞争分析:对所有输入比较
2. Ski Rental:确定性不知道滑几天,哪天买雪板?第 天买,竞争比 ,且是确定性最优
3. Ski Rental:随机化掷硬币能否做得更好?竞争比可降到 ( 时最优)
4. Line Search不知道目标在哪一侧,怎样找?确定性最优竞争比为

1. Online Algorithms

1.1 在线与离线

“Online” 的核心含义是 irrevocable:每一步决策做出后不能撤回。

离线算法在线算法
输入一开始全部给出按顺序逐个到来,到来时就要决策
例子选择排序(先看完全部数据)插入排序(来一个插一个)
挑战运行时间信息论意义上的:不知道未来

1.2 竞争分析

既然看不到未来,就拿在线算法与”知道全部输入”的离线最优解比较:能否在不知道未来的情况下接近离线最优?对代价最小化问题,比值越接近 1 越好。

定义:竞争比(competitive ratio)

设 为在线算法在输入 上的代价, 为知道整个 的离线最优代价。

  • 若对每个可能的输入 都有 则称 ALG 是 -competitive 的,即 ALG 在最坏情况下达到竞争比 。
  • 若 是任何在线算法能达到的最好竞争比,则称 ALG 是最优在线算法,竞争比 是 tight 的。

可以把竞争分析看成算法与对手(adversary)之间的博弈:对手知道算法,专挑让 最大的输入。竞争比衡量的就是被坑得最惨时比先知差几倍。

Remark:带加性常数的定义

术语 “competitive ratio” 和 “-competitive” 来自 Karlin, Manasse, Rudolph, Sleator 的 Competitive Snoopy Caching(Algorithmica 1988)。原始定义允许一个与输入无关的加性常数 : 若 是满足此式的最小常数,称算法 strongly competitive。分页、-server 等问题通常使用这种形式。

1.3 历史与课程结构

竞争分析的源头是分页问题:Denning(1968)的 working set model 研究内存分页,相关的精确分析数十年后才出现(Albers, Favrholdt, Giel 2004)。Sleator & Tarjan(1985)用最坏情况竞争分析研究 list update 与 paging,说明它比平均情况分析更能解释这些算法为何好用。更早的在线问题还有 Graham(1966)的在线调度和 Yao(1980)的在线装箱。

课程分为两大部分:

flowchart TD
  A[Online Algorithms] --> B["① Worst-Case Analysis"]
  A --> C["② Beyond Worst-Case Analysis"]
  B --> B1["按问题:Paging & k-Server、Scheduling、Bin packing、在线图问题<br/>(经典问题 → 经典算法 → 改进 → 推广)"]
  B --> B2["按技术:Primal-dual analysis<br/>(数学技术 → 一般框架 → 应用)"]
  C --> C1["Random order、Stochastic inputs、Recourse augmentation、<br/>Machine-learned advice、Online optimal baseline"]

参考书:Borodin & Pankratov, Online Algorithms(draft);Buchbinder & Naor, The Design of Competitive Online Algorithms via a Primal-Dual Approach。

成绩:Lecture notes 30 + Lecture notes++ 30(含一个与讲义相关的扩展专题),作业 。

2. Ski Rental

滑雪租赁是在线算法的入门问题:它只有一个决策(哪天买),却能完整演示竞争比、上界与下界、对手论证、随机化这一整套思路。本节先看确定性算法。

2.1 问题与形式化

去滑雪但没有雪板。每个滑雪日开始时决定:租(每天花费 )还是买(一次性花费 ,之后不再花钱)。讲义的具体例子取 。

定义:Ski Rental 问题

  • 参数:租金每天 ,买价 (正整数)。
  • 输入:总滑雪天数 。离线时 已知;在线时未来是否继续滑雪未知,每天开始时才知道今天要滑。
  • 在线算法:每天的动作只有”租”或”买”,且至多买一次。确定性算法因此由一个参数 刻画:前 天租,第 天买(若还在滑)。
  • 代价:

离线最优很简单: 就一直租,否则第一天就买。

2.2 比较几种确定性策略

“第 1 天买”在滑满 10 天时最好,但只滑 1 天时花了 10 倍的钱;“第 8 天买”在只滑 7 天时不吃亏。哪个更好?用竞争比衡量,就要看每个策略的最坏输入。

对策略 , 时 ; 时 ALG 固定为 ,而 OPT 在 时最小。所以最坏输入是 :刚买完就不滑了,此时租金和买价都付了。

策略最坏输入ALGOPT竞争比
第 1 天买10110
第 8 天买1782.125
第 10 天买19101.9
第 15 天买24102.4

“第 天买”的直觉是:先租,直到已付租金即将达到买价时再买。这样 时与 OPT 完全一样, 时最多是 OPT 的两倍左右。

2.3 Tightness:上界与下界

说”第 天买是最好的”需要两方面结果:

  • 正面结果(上界):给出算法,证明其竞争比 ;
  • 负面结果(下界):证明某个算法、甚至任何算法都做不到比 更好。

负面结果靠对手构造坏输入,分两个层次:

  • 算法层面:骗一个具体算法。对”第 1 天买”,输入”只滑 1 天”,得其竞争比 ;对”第 10 天买”,输入”只滑 10 天”,得 。
  • 问题层面:骗算法设计者。设计者先选定一个确定性算法(即提交 ),对手看到 后再选输入 。

Tightness 也有不同层次:算法层面的 tight 指对某个算法的分析不能再改进;问题层面的 tight 指在某一类算法(确定性、随机化、带 advice……)中竞争比不能再改进。

定理:确定性 Ski Rental 的最优竞争比

买价为正整数 时,“第 天买”的竞争比为 ;任何确定性在线算法的竞争比都 。因此 是 tight 的( 时为 )。

证明

上界:取 。 时 ; 时 ,,比值为 。

下界:确定性算法由购买日 决定(从不购买时,取 比值无界)。对手取 ,则 :

  • :;
  • :。

两种情况竞争比都 。

下图把对手 带来的比值画成 的函数: 太小,在短期滑雪上亏买价; 太大,在长期滑雪上多付租金; 恰好平衡两边。

下界论证的关键是对手能预知 :确定性算法的行为对对手完全透明。这正是随机化可能起作用的地方。

3. Ski Rental:随机化

确定性下界之所以成立,是因为对手看到 后可以令 。若算法自己掷硬币决定哪天买,对手就只知道分布、不知道结果,未必能同时坑到每一种可能。本节先说明随机算法怎样评价,再用两个简单的混合策略说明随机化确实有用,最后把一般随机策略写成一个优化问题。

3.1 随机算法与期望竞争比

定义:随机在线算法的竞争比

  • 随机在线算法:确定性在线算法上的一个概率分布。对 Ski Rental,就是购买日 上的一个分布。
  • 输入 在算法做随机选择之前固定(对手知道算法的分布,但不知道随机结果)。若对每个输入 都有 则称该随机算法是 -competitive 的。

对 Ski Rental,把期望代价比写成输入的函数 ,竞争比就是 。若对手能先看到随机结果再选 ,随机算法就退化为确定性算法,比值回到 。

3.2 两个 50/50 混合策略

取 ,各以 概率执行两个确定性策略:

混合关键输入OPT竞争比
第 1 天买 / 第 10 天买15.55.5
第 8 天买 / 第 10 天买81.5625
101.81.8

第一种混合没有帮助:分量”第 1 天买”本身的竞争比是 10,只滑 1 天时一半概率白付买价。第二种混合把竞争比降到 ,因为两个分量的最坏输入错开了:坑”第 8 天买”要取 ,此时”第 10 天买”还在租;坑”第 10 天买”要取 ,此时”第 8 天买”只花 17。对手只能选一个 ,无法同时命中两者。随机化确实有帮助。

3.3 一般随机策略

一般情形下,租金每天 ,买价为整数 。确定性算法由购买日 刻画,随机算法由购买日的分布刻画:

要找最优分布,先缩小搜索范围:第 天以后才买不会带来好处。

引理:只需在第 天前买(Buy by day b)

把所有 的概率质量移到第 天,得到的新分布的竞争比不超过原分布。因此只需考虑 ,。

证明

  • 短季 :被移动的购买日(原来 ,现在 )都还没到,移动前后都在租,代价完全相同。
  • 长季 :新分布下所有人都已在 天内买过,代价与 无关,其中被移动的部分代价为 。原分布在足够长的季节上,这部分代价为 ,其余部分代价相同,而两者 OPT 都是 。所以新分布在任意 上的比值,不超过原分布在超长季上的比值。

两种情况下新分布的最坏比值都不增加。

接下来写出期望代价。固定 ,按购买日分两类: 时在季内买了,先租 天再买,代价 ; 时季节结束还在租,代价 。于是

时所有人都已购买,代价与 OPT 都不再变化,。最优随机算法就是求解

这是一个线性规划。离散求和不便直接求解,下一步改用连续时间来简化计算。

3.4 连续时间模型

离散的期望代价是分段求和,直接解 很繁琐。把”天”换成连续时间后,求和变成积分,可以用求导来设计分布。连续模型只是分析工具:最后要说明,连续策略得到的上界经过取整后对整数天依然成立。

定义:连续时间 Ski Rental 及其与离散模型的配对

租金为每单位时间 ,买价为整数 ,。

  • 离散模型:季节长度 ;在第 天开始时买,之前已付租金 。
  • 连续模型:季节长度 可为实数;购买时刻 是密度为 的随机变量,之前已付租金 。若 ,代价为 ;若 ,代价为 。
  • 配对: 对应第 天买,即离散分布取
  • 代价与比值:(整数 ),(实数 ),,。在同一模型内省略下标。

与离散情形一样按”季内是否已买”分两类,对 有

引理:连续上界蕴含离散上界

设离散分布由连续密度 按上述方式配对得到,则 时两种模型都已全部购买,比值不再变化。因此连续策略的竞争比上界也是取整后离散策略的竞争比上界。

证明

固定整数 ,逐个比较第 天对应的区间 :

  • (季内已买):,连续模型也已买。因 ,
  • (仍在租):,连续模型也在租,。

对 求和得 ,两边同除 得第一个不等号。第二个不等号是因为允许的 越多,最坏情况只会更大。

直观地说,离散模型在第 天买只付 天租金,比连续模型的 少,所以取整只会降低代价。

3.5 构造最优连续策略:

对手会选比值最大的 ,所以好的分布应让所有 的比值一样大,不给对手留明显的弱点。设计目标是对所有 有 ,即每个滑雪时刻的边际代价恒为 。

对 关于 求导:

再求导一次:

密度必须指数增长。由 归一化,得

越晚购买的权重越大,但早买仍有可能。代回边际代价验证:

与 有关的项正好抵消。又 ,所以 ,即 对所有 成立; 时代价与 OPT 都不再变化。

定理:随机 Ski Rental 的 上界

对任意整数 ,按密度 ()抽取 ,在第 天购买,该随机算法的竞争比不超过 。

证明

取整后只付 天租金而不是 ,且 。由 3.4 节引理,。

3.6 离散最优解与后续

离散模型本身也可以精确求解: 的线性规划给出最优分布与最优比值。

定理:离散 Ski Rental 的最优随机算法

对整数 ,最优随机算法在第 天()购买的概率为 最优竞争比为

是公比 的几何增长,正是指数密度的离散版本。由 , 随 增大而递增并趋于 :例如 ,。所以 是对所有 一致成立的上界,也是 时的最优值。

至此,Ski Rental 的最优确定性算法和最优随机算法都已得到。但故事并未结束:如何超越最坏情况分析(例如利用机器学习预测,Improving Online Algorithms via ML Predictions, NeurIPS 2018)?如果关心的不只是期望代价(例如控制尾部风险,Controlling Tail Risk in Online Ski-Rental, SODA 2024)?

4. Line Search(Cow Path)

Ski Rental 中对手只控制一个数 。下面这个问题同样是算法与对手的博弈,但未知的是目标的方向和距离,算法要在两个方向之间分配搜索,权衡更明显。

4.1 问题与朴素尝试

定义:Line Search(Cow Path)

你站在数轴原点,以单位速度移动。目标位于距离 处,但不知道在左侧还是右侧( 也未知),走到目标所在位置时才能发现它。

  • :找到目标所用的时间(即总移动距离);
  • :知道目标位置时直接走过去。
  • Keep-Moving-Right:目标在左侧时永远找不到,竞争比无界。
  • Zig-Zag:依次走到 、回原点、走到 、回原点、走到 ……半径每轮加 。目标在右侧 处时,之前 轮每轮花 ,总代价约 ,竞争比为 ,同样无界。

半径增长太慢,会反复走已经搜过的路;增长太快,最后一趟可能在错误的一侧走得太远。设第 轮的搜索半径为 ,目标在第 轮于另一侧被找到,则代价约为

半径应按几何级数增长,下面分析两种倍增方式。

4.2 倍增策略

方式一:两侧都搜完再加倍。 半径依次为 ,每轮先右后左。较难的情形是目标在左侧且 :之前各轮代价 ;最后一轮先向右走 再返回,然后向左走 ,代价 。总代价 ,竞争比 。取 时比值趋于 ,所以对这个算法 是 tight 的。

方式二:每趟单程后都加倍。 转折点依次为 ,即第 趟走到 再返回原点。

定理:倍增搜索的竞争比

转折点为 ()的倍增搜索是 -competitive 的,且对该算法 是 tight 的。

证明

设目标在第 趟(转折点 )被找到。同侧的上一次到访是第 趟,到达 却没找到目标,所以 ,即 。之前各趟都是往返: 最后一趟只需走 ,总代价 。

Tight:取 ,代价为 ,当 、 时比值趋于 。

下面两张图分别展示倍增搜索的轨迹,以及竞争比随目标距离的变化:目标恰好落在同侧上一次到访点之外时比值最大,峰值逐渐逼近 。

4.3 下界:任何确定性算法都不能优于 9

定理:Line Search 的确定性下界

任何确定性 Line Search 算法的竞争比都不小于 。结合倍增搜索,确定性最优竞争比为 (Beck & Newman 1970)。

证明

规范化。因为 ,转折距离 的单程找不到目标,可以删去;同侧连续的几趟可以合并。不妨设算法左右交替,第 趟的转折距离为 ,且 (同侧没有走得更远的单程不会发现新位置;转折距离不趋于无穷时,较远的目标永远找不到)。

对手。把目标放在第 趟终点稍外侧: 第 趟差一点碰到它,第 趟去了另一侧,第 趟才找到。之前各趟都是往返,于是

前缀和递推。设算法是 -competitive 的,。记 由 ,令 得 ,整理为

增长比递减。令 ()。上式除以 得 ,于是 其中第二步用了 AM-GM; 保证 且与 无关。

矛盾。每轮 至少减少 ,所以 , 足够大时右端小于 ,与 矛盾。

4.4 随机化

与 Ski Rental 一样,随机化在这里也有帮助:最优随机算法的竞争比约为 (Kao, Reif & Tate 1996),而确定性最优为 。两者都是各自模型中的最优值;随机情形下,目标位置在算法做随机选择之前固定。