中文

竹修剪问题重探:简单算法亦可表现良好

数据结构与算法 2022-09-07 v2

摘要

竹修剪问题考虑 n 根生长速率为 h_1, h_2, …, h_n 且满足 ∑_i h_i = 1 的竹子。在给定单位时间内,每根竹子增长 h_i,随后竹修剪算法可将其中一根修剪回零高度。目标是最小化最高竹子的高度,亦称积压(backlog)。竹修剪问题与许多调度问题密切相关,可视为广泛研究的固定速率杯子游戏的变体,但具有常数因子资源扩增。以往工作给出了复杂风车算法,在竹修剪问题中达到最优积压 2。然而,是否存在具相同保证的简单算法仍属开放问题——近期工作投入大量理论与实验努力以解答。尤其两种算法作为自然候选出现:Reduce-Max 算法(总砍最高竹子)与 Reduce-Fastest(x) 算法(在高度至少 x 的竹子中砍生长最快者)。两算法均被猜想达到积压 2。本文改进了 Reduce-Fastest 与 Reduce-Max 的界。除其他结果外,我们证明对所有 x ≥ 2,Reduce-Fastest(x) 的精确最优积压为 x + 1(在 x = 2 情形证明 D'Emidio、Di Stefano 与 Navarra 的猜想),并证明 Reduce-Fastest(1) 未达到积压 2(反驳 D'Emidio、Di Stefano 与 Navarra 的猜想)。最后,我们展示一种不同算法,称为截止驱动策略(Deadline-Driven Strategy),既非常简单又达到最优积压 2。这解决了竹修剪问题是否存在简单最坏情况最优算法之疑问。

关键词

引用

@article{arxiv.2201.07350,
  title  = {Bamboo Trimming Revisited: Simple Algorithms Can Do Well Too},
  author = {John Kuszmaul},
  journal= {arXiv preprint arXiv:2201.07350},
  year   = {2022}
}

备注

7 pages