Interval scheduling is a basic problem in the theory of algorithms and a classical task in combinatorial optimization. We develop a set of techniques for partitioning and grouping jobs based on their starting and ending times, that enable us to view an instance of interval scheduling on many jobs as a union of multiple interval scheduling instances, each containing only a few jobs. Instantiating these techniques in dynamic and local settings of computation leads to several new results. For $(1+\varepsilon)$-approximation of job scheduling of $n$ jobs on a single machine, we develop a fully dynamic algorithm with $O(\frac{\log{n}}{\varepsilon})$ update and $O(\log{n})$ query worst-case time. Further, we design a local computation algorithm that uses only $O(\frac{\log{N}}{\varepsilon})$ queries when all jobs are length at least $1$ and have starting/ending times within $[0,N]$. Our techniques are also applicable in a setting where jobs have rewards/weights. For this case we design a fully dynamic deterministic algorithm whose worst-case update and query time are $\operatorname{poly}(\log n,\frac{1}{\varepsilon})$. Equivalently, this is the first algorithm that maintains a $(1+\varepsilon)$-approximation of the maximum independent set of a collection of weighted intervals in $\operatorname{poly}(\log n,\frac{1}{\varepsilon})$ time updates/queries. This is an exponential improvement in $1/\varepsilon$ over the running time of a randomized algorithm of Henzinger, Neumann, and Wiese ~[SoCG, 2020], while also removing all dependence on the values of the jobs' starting/ending times and rewards, as well as removing the need for any randomness. We also extend our approaches for interval scheduling on a single machine to examine the setting with $M$ machines.
翻译:区间调度是算法理论中的基本问题,也是组合优化领域的经典任务。我们开发了一套基于任务开始和结束时间进行划分与分组的技术,使大量任务的区间调度实例可视为多个仅含少量任务的区间调度实例的并集。将这些技术应用于动态和本地计算场景,产生了若干新结果。针对单台机器上$n$个任务的$(1+\varepsilon)$-近似调度,我们设计了一个全动态算法,其最坏情况下更新时间为$O(\frac{\log{n}}{\varepsilon})$,查询时间为$O(\log{n})$。此外,当所有任务长度至少为$1$且起止时间位于$[0,N]$内时,我们提出了一种仅需$O(\frac{\log{N}}{\varepsilon})$次查询的本地计算算法。该技术同样适用于任务带有奖励/权重的场景。针对此类情形,我们设计了全动态确定性算法,其最坏情况下的更新和查询时间为$\operatorname{poly}(\log n,\frac{1}{\varepsilon})$。等价地,这是首个在$\operatorname{poly}(\log n,\frac{1}{\varepsilon})$时间更新/查询内保持加权区间集最大独立集$(1+\varepsilon)$-近似的算法。相较于Henzinger、Neumann和Wiese~[SoCG, 2020]的随机算法,该算法在$1/\varepsilon$维度上实现了指数级改进,同时消除了对任务起止时间及奖励值的依赖,并完全去除了随机性需求。我们还扩展了单台机器上的区间调度方法,进一步探讨了含$M$台机器的场景。