Source author record

Ali Alatabbi

Explore this author’s publications, collaborators and research topics. This catalog record has not been claimed by its author.

ResearcherUnclaimed source record

Catalog footprint

Research overview

6works
1topics
4close collaborators

Published work

6 publications

preprint2015arXiv

Algorithms for Longest Common Abelian Factors

In this paper we consider the problem of computing the longest common abelian factor (LCAF) between two given strings. We present a simple O(σ n2)O(σ~ n^2) time algorithm, where nn is the length of the strings and σσ is the alphabet size, and a sub-quadratic running time solution for the binary string case, both having linear space requirement. Furthermore, we present a modified algorithm applying some interesting tricks and experimentally show that the resulting algorithm runs faster.

preprint2015arXiv

Computing Covers Using Prefix Tables

An \emph{indeterminate string} x=x[1..n]x = x[1..n] on an alphabet ΣΣ is a sequence of nonempty subsets of ΣΣ; xx is said to be \emph{regular} if every subset is of size one. A proper substring uu of regular xx is said to be a \emph{cover} of xx iff for every i∈1..ni \in 1..n, an occurrence of uu in xx includes x[i]x[i]. The \emph{cover array} γ=γ[1..n]γ= γ[1..n] of xx is an integer array such that γ[i]γ[i] is the longest cover of x[1..i]x[1..i]. Fifteen years ago a complex, though nevertheless linear-time, algorithm was proposed to compute the cover array of regular xx based on prior computation of the border array of xx. In this paper we first describe a linear-time algorithm to compute the cover array of regular string xx based on the prefix table of xx. We then extend this result to indeterminate strings.

preprint2015arXiv

Enhanced Covers of Regular & Indeterminate Strings using Prefix Tables

A \itbf{cover} of a string x=x[1..n]x = x[1..n] is a proper substring uu of xx such that xx can be constructed from possibly overlapping instances of uu. A recent paper \cite{FIKPPST13} relaxes this definition --- an \itbf{enhanced cover} uu of xx is a border of xx (that is, a proper prefix that is also a suffix) that covers a {\it maximum} number of positions in xx (not necessarily all) --- and proposes efficient algorithms for the computation of enhanced covers. These algorithms depend on the prior computation of the \itbf{border array} β[1..n]β[1..n], where β[i]β[i] is the length of the longest border of x[1..i]x[1..i], 1≤i≤n1 \le i \le n. In this paper, we first show how to compute enhanced covers using instead the \itbf{prefix table}: an array π[1..n]π[1..n] such that π[i]π[i] is the length of the longest substring of xx beginning at position ii that matches a prefix of xx. Unlike the border array, the prefix table is robust: its properties hold also for \itbf{indeterminate strings} --- that is, strings defined on {\it subsets} of the alphabet ΣΣ rather than individual elements of ΣΣ. Thus, our algorithms, in addition to being faster in practice and more space-efficient than those of \cite{FIKPPST13}, allow us to easily extend the computation of enhanced covers to indeterminate strings. Both for regular and indeterminate strings, our algorithms execute in expected linear time. Along the way we establish an important theoretical result: that the expected maximum length of any border of any prefix of a regular string xx is approximately 1.64 for binary alphabets, less for larger ones.

preprint2015arXiv

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 i∈2..ni \in 2..n, $\s{y}[i] \in 0..n\- i\+ 1$. A \itbf{prefix table} of a string $\s{x}$ is an array $\sπ = \sπ[1..n]$ of integers such that, for every i∈1..ni \in 1..n, $\sπ[i] = j$ if and only if $\s{x}[i..i\+ j\- 1]$ is the longest substring at position ii 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π = \s{y}$.

preprint2015arXiv

Linear Algorithms for Computing the Lyndon Border Array and the Lyndon Suffix Array

We consider the problem of finding repetitive structures and inherent patterns in a given string $\s{s}$ of length nn over a finite totally ordered alphabet. A border $\s{u}$ of a string $\s{s}$ is both a prefix and a suffix of $\s{s}$ such that $\s{u} \not= \s{s}$. The computation of the border array of a string $\s{s}$, namely the borders of each prefix of $\s{s}$, is strongly related to the string matching problem: given a string $\s{w}$, find all of its occurrences in $\s{s}$. A {\itshape Lyndon word} is a primitive word (i.e., it is not a power of another word) which is minimal for the lexicographical order of its conjugacy class (i.e., the set of words obtained by cyclic rotations of the letters). In this paper we combine these concepts to introduce the \emph{Lyndon Border Array} Lβ\mathcal L β of $\s{s}$, whose ii-th entry $\mathcal L β(\s{s})[i]$ is the length of the longest border of $\s{s}[1 \dd i]$ which is also a Lyndon word. We propose linear-time and linear-space algorithms for computing $\mathcal L β(\s{s})$. %in the case of both binary and bounded alphabets. Further, we introduce the \emph{Lyndon Suffix Array}, and by modifying the efficient suffix array technique of Ko and Aluru \cite{KA03} outline a linear time and space algorithm for its construction.

preprint2015arXiv

String Comparison in VV-Order: New Lexicographic Properties & On-line Applications

VV-order is a global order on strings related to Unique Maximal Factorization Families (UMFFs), which are themselves generalizations of Lyndon words. VV-order has recently been proposed as an alternative to lexicographical order in the computation of suffix arrays and in the suffix-sorting induced by the Burrows-Wheeler transform. Efficient VV-ordering of strings thus becomes a matter of considerable interest. In this paper we present new and surprising results on VV-order in strings, then go on to explore the algorithmic consequences.

Research graph

See the researcher in context

Open full explorer

Inspect adjacent papers, topics, institutions and collaborators without losing the researcher page.

Building this map preview

BZPEER is loading the nearby papers, people, topics and institutions for this page.