1,046 research outputs found
Constructions of Snake-in-the-Box Codes for Rank Modulation
Snake-in-the-box code is a Gray code which is capable of detecting a single
error. Gray codes are important in the context of the rank modulation scheme
which was suggested recently for representing information in flash memories.
For a Gray code in this scheme the codewords are permutations, two consecutive
codewords are obtained by using the "push-to-the-top" operation, and the
distance measure is defined on permutations. In this paper the Kendall's
-metric is used as the distance measure. We present a general method for
constructing such Gray codes. We apply the method recursively to obtain a snake
of length for permutations of ,
from a snake of length for permutations of~. Thus, we have
, improving
on the previous known ratio of . By using the general method we also present a direct construction. This
direct construction is based on necklaces and it might yield snakes of length
for permutations of . The direct
construction was applied successfully for and , and hence
.Comment: IEEE Transactions on Information Theor
Prioritized Metric Structures and Embedding
Metric data structures (distance oracles, distance labeling schemes, routing
schemes) and low-distortion embeddings provide a powerful algorithmic
methodology, which has been successfully applied for approximation algorithms
\cite{llr}, online algorithms \cite{BBMN11}, distributed algorithms
\cite{KKMPT12} and for computing sparsifiers \cite{ST04}. However, this
methodology appears to have a limitation: the worst-case performance inherently
depends on the cardinality of the metric, and one could not specify in advance
which vertices/points should enjoy a better service (i.e., stretch/distortion,
label size/dimension) than that given by the worst-case guarantee.
In this paper we alleviate this limitation by devising a suit of {\em
prioritized} metric data structures and embeddings. We show that given a
priority ranking of the graph vertices (respectively,
metric points) one can devise a metric data structure (respectively, embedding)
in which the stretch (resp., distortion) incurred by any pair containing a
vertex will depend on the rank of the vertex. We also show that other
important parameters, such as the label size and (in some sense) the dimension,
may depend only on . In some of our metric data structures (resp.,
embeddings) we achieve both prioritized stretch (resp., distortion) and label
size (resp., dimension) {\em simultaneously}. The worst-case performance of our
metric data structures and embeddings is typically asymptotically no worse than
of their non-prioritized counterparts.Comment: To appear at STOC 201
External-Memory Graph Algorithms
We present a collection of new techniques for designing and analyzing efficient external-memory algorithms for graph problems and illustrate how these techniques can be applied to a wide variety of specific problems. Our results include:
Proximate-neighboring. We present a simple
method for deriving external-memory lower bounds
via reductions from a problem we call the “proximate neighbors” problem. We use this technique to derive non-trivial lower bounds for such problems as list ranking, expression tree evaluation, and connected components. PRAM simulation. We give methods for efficiently
simulating PRAM computations in external memory, even for some cases in which the PRAM algorithm is not work-optimal. We apply this to derive a number of optimal (and simple) external-memory graph algorithms.
Time-forward processing. We present a general
technique for evaluating circuits (or “circuit-like”
computations) in external memory. We also usethis in a deterministic list ranking algorithm.
Deterministic 3-coloring of a cycle. We give
several optimal methods for 3-coloring a cycle,
which can be used as a subroutine for finding large
independent sets for list ranking. Our ideas go
beyond a straightforward PRAM simulation, and
may be of independent interest.
External depth-first search. We discuss a method
for performing depth first search and solving related
problems efficiently in external memory. Our
technique can be used in conjunction with ideas
due to Ullman and Yannakakis in order to solve
graph problems involving closed semi-ring computations even when their assumption that vertices fit in main memory does not hold.
Our techniques apply to a number of problems, including list ranking, which we discuss in detail, finding Euler tours, expression-tree evaluation, centroid decomposition of a tree, least-common ancestors, minimum spanning tree verification, connected and biconnected components, minimum spanning forest, ear decomposition, topological sorting, reachability, graph drawing, and visibility representation
On the Power of Advice and Randomization for Online Bipartite Matching
While randomized online algorithms have access to a sequence of uniform
random bits, deterministic online algorithms with advice have access to a
sequence of advice bits, i.e., bits that are set by an all powerful oracle
prior to the processing of the request sequence. Advice bits are at least as
helpful as random bits, but how helpful are they? In this work, we investigate
the power of advice bits and random bits for online maximum bipartite matching
(MBM).
The well-known Karp-Vazirani-Vazirani algorithm is an optimal randomized
-competitive algorithm for \textsc{MBM} that requires access
to uniform random bits. We show that
advice bits are necessary and
sufficient in order to obtain a
-competitive deterministic advice algorithm. Furthermore, for a
large natural class of deterministic advice algorithms, we prove that
advice bits are required in order to improve on the
-competitiveness of the best deterministic online algorithm, while
it is known that bits are sufficient.
Last, we give a randomized online algorithm that uses random bits, for
integers , and a competitive ratio that approaches
very quickly as is increasing. For example if , then the difference
between and the achieved competitive ratio is less than
Parallel Algorithmic Techniques for Combinatorial Computation
Parallel computation offers the promise of great improvements in the solution of problems that, if we were restricted to sequential computation, would take so much time that solution would be impractical. There is a drawback to the use of parallel computers, however, and that is that they seem to be harder to program. For this reason, parallel algorithms in practice are often restricted to simple problems such as matrix multiplication. Certainly this is useful, and in fact we shall see later some non-obvious uses of matrix manipulation, but many of the large problems requiring solution are of a more complex nature. In particular, an instance of a problem may be structured as an arbitrary graph or tree, rather than in the regular order of a matrix. In this paper we describe a number of algorithmic techniques that have been developed for solving such combinatorial problems. The intent of the paper is to show how the algorithmic tools we present can be used as building blocks for higher level algorithms, and to present pointers to the literature for the reader to look up the specifics of these algorithms. We make no claim to completeness; a number of techniques have been omitted for brevity or because their chief application is not combinatorial in nature. In particular we give very little attention to parallel sorting, although sorting is used as a subroutine in a number of the algorithms we describe. We also only describe algorithms, and not lower bounds, for solving problems in parallel
- …