5 research outputs found
Inferring an Indeterminate String from a Prefix Graph
An \itbf{indeterminate string} (or, more simply, just a \itbf{string}) \s{x}
= \s{x}[1..n] on an alphabet is a sequence of nonempty subsets of
. We say that \s{x}[i_1] and \s{x}[i_2] \itbf{match} (written
\s{x}[i_1] \match \s{x}[i_2]) if and only if \s{x}[i_1] \cap \s{x}[i_2] \ne
\emptyset. A \itbf{feasible array} is an array \s{y} = \s{y}[1..n] of
integers such that \s{y}[1] = n and for every , \s{y}[i] \in
0..n\- i\+ 1. A \itbf{prefix table} of a string \s{x} is an array \s{\pi} =
\s{\pi}[1..n] of integers such that, for every , \s{\pi}[i] = j
if and only if \s{x}[i..i\+ j\- 1] is the longest substring at position
of \s{x} that matches a prefix of \s{x}. It is known from \cite{CRSW13} that
every feasible array is a prefix table of some indetermintate string. A
\itbf{prefix graph} \mathcal{P} = \mathcal{P}_{\s{y}} is a labelled simple
graph whose structure is determined by a feasible array \s{y}. In this paper we
show, given a feasible array \s{y}, how to use \mathcal{P}_{\s{y}} to
construct a lexicographically least indeterminate string on a minimum alphabet
whose prefix table \s{\pi} = \s{y}.Comment: 13 pages, 1 figur
Designing a parallel suffix sort
Suffix sort plays a critical role in various computational algorithms
including genomics as well as in frequently used day to day software
applications. The sorting algorithm becomes tricky when we have lot of repeated
characters in the string for a given radix. Various innovative implementations
are available in this area e.g., Manber Myers. We present here an analysis that
uses a concept around generalized polynomial factorization to sort these
suffixes. The initial generation of these substring specific polynomial can be
efficiently done using parallel threads and shared memory. The set of distinct
factors and their order are known beforehand, and this helps us to sort the
polynomials (equivalent of strings) accordingly
Reconstructing a Suffix Array
Abstract. For certain problems (for example, computing repetitions and repeats, data compression applications) it is not necessary that the suffixes of a string represented in a suffix tree or suffix array should occur in lexicographical order (lexorder). It thus becomes of interest to study possible alternate orderings of the suffixes in these data structures, that may be easier to construct or more efficient to use. In this paper we consider the “reconstruction ” of a suffix array based on a given reordering of the alphabet, and we describe simple timeand space-efficient algorithms that accomplish it
Reconstructing a suffix array
For certain problems (for example, computing repetitions and repeats, data compression applications) it is not necessary that the suffixes of a string represented in a suffix tree or suffix array should occur in lexicographical order (lexorder). It thus becomes of interest to study possible alternate orderings of the suffixes in these data structures, that may be easier to construct or more efficient to use. In this paper we consider the "reconstruction" of a suffix array based on a given reordering of the alphabet, and we describe simple time- and space-efficient algorithms that accomplish it