4 research outputs found
Run Generation Revisited: What Goes Up May or May Not Come Down
In this paper, we revisit the classic problem of run generation. Run
generation is the first phase of external-memory sorting, where the objective
is to scan through the data, reorder elements using a small buffer of size M ,
and output runs (contiguously sorted chunks of elements) that are as long as
possible.
We develop algorithms for minimizing the total number of runs (or
equivalently, maximizing the average run length) when the runs are allowed to
be sorted or reverse sorted. We study the problem in the online setting, both
with and without resource augmentation, and in the offline setting.
(1) We analyze alternating-up-down replacement selection (runs alternate
between sorted and reverse sorted), which was studied by Knuth as far back as
1963. We show that this simple policy is asymptotically optimal. Specifically,
we show that alternating-up-down replacement selection is 2-competitive and no
deterministic online algorithm can perform better.
(2) We give online algorithms having smaller competitive ratios with resource
augmentation. Specifically, we exhibit a deterministic algorithm that, when
given a buffer of size 4M , is able to match or beat any optimal algorithm
having a buffer of size M . Furthermore, we present a randomized online
algorithm which is 7/4-competitive when given a buffer twice that of the
optimal.
(3) We demonstrate that performance can also be improved with a small amount
of foresight. We give an algorithm, which is 3/2-competitive, with
foreknowledge of the next 3M elements of the input stream. For the extreme case
where all future elements are known, we design a PTAS for computing the optimal
strategy a run generation algorithm must follow.
(4) Finally, we present algorithms tailored for nearly sorted inputs which
are guaranteed to have optimal solutions with sufficiently long runs
Online Service with Delay
In this paper, we introduce the online service with delay problem. In this
problem, there are points in a metric space that issue service requests
over time, and a server that serves these requests. The goal is to minimize the
sum of distance traveled by the server and the total delay in serving the
requests. This problem models the fundamental tradeoff between batching
requests to improve locality and reducing delay to improve response time, that
has many applications in operations management, operating systems, logistics,
supply chain management, and scheduling.
Our main result is to show a poly-logarithmic competitive ratio for the
online service with delay problem. This result is obtained by an algorithm that
we call the preemptive service algorithm. The salient feature of this algorithm
is a process called preemptive service, which uses a novel combination of
(recursive) time forwarding and spatial exploration on a metric space. We hope
this technique will be useful for related problems such as reordering buffer
management, online TSP, vehicle routing, etc. We also generalize our results to
servers.Comment: 30 pages, 11 figures, Appeared in 49th ACM Symposium on Theory of
Computing (STOC), 201