将竹子修剪至合适高度
数据结构与算法
2020-05-04 v1
摘要
本文研究为机器人熊猫园丁编程以阻止竹园遮挡您房屋外湖泊视野的问题。花园由 根具有已知每日生长速率的竹茎组成,园丁每天至多可砍伐一根竹子。作为计算机科学家,您发现该问题已在 [G\k{a}sieniec 等人, SOFSEM'17] 中形式化为竹园修剪(BGT)问题,其目标是计算一个永续调度(即待砍竹子的序列)供机器人园丁遵循,以最小化 makespan,即竹子曾达到的最大高度。两种自然策略是 Reduce-Max 与 Reduce-Fastest(x)。Reduce-Max 修剪当日最高的竹子,而 Reduce-Fastest(x) 在高于 的竹子中修剪生长最快者。已知 Reduce-Max 与 Reduce-Fastest(x) 对最佳选择 分别达到 与 的 makespan。我们证明了 Reduce-Max 的首个常数上界 ,并将 Reduce-Fastest(x) 在 时的上界改进为 。另一关键方面源于您的机器人园丁具有有限的计算能力与内存。因此算法能快速确定下一根待砍竹子且至多需要线性空间十分重要。我们将此方面形式化为设计 Trimming Oracle 数据结构的问题,并提供了三种实现不同永续调度的高效 Trimming Oracle,包括由 Reduce-Max 与 Reduce-Fastest(x) 产生的那些。
引用
@article{arxiv.2005.00168,
title = {Cutting Bamboo Down to Size},
author = {Davide Bilò and Luciano Gualà and Stefano Leucci and Guido Proietti and Giacomo Scornavacca},
journal= {arXiv preprint arXiv:2005.00168},
year = {2020}
}
备注
17 pages, 5 figures, FUN 2020