On-Line Indexing for General Alphabets via Predecessor Queries on Subsets of an Ordered List

  • Authors:
  • Tsvi Kopelowitz

  • Affiliations:
  • -

  • Venue:
  • FOCS '12 Proceedings of the 2012 IEEE 53rd Annual Symposium on Foundations of Computer Science
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

The problem of \textit{Text Indexing} is a fundamental algorithmic problem in which one wishes to preprocess a text in order to quickly locate pattern queries within the text. In the ever evolving world of dynamic and on-line data, there is also a need for developing solutions to index texts which arrive on-line, i.e.~a character at a time, and still be able to quickly locate said patterns. In this paper, a new solution for on-line indexing is presented by providing an on-line suffix tree construction in $O(\log \log n + \log\log |\Sigma|)$ worst-case expected time per character, where $n$ is the size of the string, and $\Sigma$ is the alphabet. This improves upon all previously known on-line suffix tree constructions for general alphabets, at the cost of having the run time in expectation. The main idea is to reduce the problem of constructing a suffix tree on-line to an interesting variant of the order maintenance problem, which may be of independent interest. In the famous order maintenance problem, one wishes to maintain a dynamic list $L$ of size $n$ under insertions, deletions, and order queries. In an order query, one is given two nodes from $L$ and must determine which node precedes the other in $L$. In an extension to this problem, named the {\em Predecessor search on Dynamic Subsets of an Ordered Dynamic List problem} (POLP for short), it is also necessary to maintain dynamic subsets $S_1, \cdots, S_k\subseteq L$, such that given some $u\in L$ it will be possible to quickly locate the predecessor of $u$ in $S_i$, for any integer $1\leq i \leq k$. This paper provides an efficient data structure capable of locating the predecessor of $u$ in $S_i$ in $O(\log \log n)$ worst-case time and answering order queries on $L$ in $O(1)$ worst-case time, while allowing updates to $L$ in $O(1)$ worst-case expected time and updates to the subsets in $O(\log \log n)$ worst-case expected time. This improves over a previous data structure which may be implicitly obtained from Dietz~\cite{Dietz89}, in which the updates to the sets and $L$ are done in $O(\log \log n)$ \textit{amortized} expected time. In addition, the bounds shown here match the currently best known bounds for predecessor search in the RAM model. Furthermore, this paper improves or simplifies bounds for several additional applications, including fully-persistent arrays, the monotonic list labeling problem, and the Order-Maintenance Problem.