We consider the problem of List Update, one of the most fundamental problems in online algorithms. We are given a list of elements and requests for these elements that arrive over time. Our goal is to serve these requests, at a cost equivalent to their position in the list, with the option of moving them towards the head of the list. Sleator and Tarjan introduced the famous "Move to Front" algorithm (wherein any requested element is immediately moved to the head of the list) and showed that it is 2-competitive. While this bound is excellent, the absolute cost of the algorithm's solution may be very large (e.g., requesting the last half elements of the list would result in a solution cost that is quadratic in the length of the list). Thus, we consider the more general problem wherein every request arrives with a deadline and must be served, not immediately, but rather before the deadline. We further allow the algorithm to serve multiple requests simultaneously. We denote this problem as List Update with Time Windows. While this generalization benefits from lower solution costs, it requires new types of algorithms. In particular, for the simple example of requesting the last half elements of the list with overlapping time windows, Move-to-Front fails. We show an O(1) competitive algorithm. The algorithm is natural but the analysis is a bit complicated and a novel potential function is required. Thereafter we consider the more general problem of List Update with Delays in which the deadlines are replaced with arbitrary delay functions. This problem includes as a special case the prize collecting version in which a request might not be served (up to some deadline) and instead suffers an arbitrary given penalty. Here we also establish an O(1) competitive algorithm for general delays. The algorithm for the delay version is more complex and its analysis is significantly more involved.
翻译:我们考虑列表更新问题,这是在线算法中最基本的问题之一。我们给出一些元素的列表和随时间到达的这些元素的请求。我们的目标是服务这些请求,并在列表中的位置等价于它们的成本,同时可以将它们向列表头移动。Sleator和Tarjan提出了著名的“移动到前面”算法(其中任何请求的元素立即移动到列表的头部),并表明它的竞争比为2。虽然这个界限很好,但算法解决方案的绝对成本可能非常大(例如,请求列表的后一半元素将导致解决方案成本相对于列表长度的平方)。因此,我们考虑更一般的问题,即每个请求都有一个截止时间,必须在截止时间之前服务,而不是立即服务。我们还允许算法同时服务多个请求。我们将该问题称为带时间窗口的列表更新。虽然这种推广受益于较低的解决方案成本,但需要新类型的算法。特别是,在请求带有重叠时间窗口的列表的后一半元素的简单示例中,“移动到前面”失败了。我们展示了一种O(1)竞争算法。该算法自然但分析有点复杂,需要一种新颖的势能函数。然后,我们考虑更一般的具有延迟的列表更新问题,其中截止时间被延迟函数所替换。此问题包括作为奖金收集版本的特殊情况,在该版本中,可能不会服务某个请求(直到某个截止时间),而是遭受任意给定的惩罚。在这里,我们还为一般延迟建立了O(1)竞争算法。延迟版本的算法更复杂,其分析显着更复杂。