Results 1  10
of
13
Nearest Common Ancestors: A survey and a new distributed algorithm
, 2002
"... Several papers describe linear time algorithms to preprocess a tree, such that one can answer subsequent nearest common ancestor queries in constant time. Here, we survey these algorithms and related results. A common idea used by all the algorithms for the problem is that a solution for complete ba ..."
Abstract

Cited by 76 (12 self)
 Add to MetaCart
Several papers describe linear time algorithms to preprocess a tree, such that one can answer subsequent nearest common ancestor queries in constant time. Here, we survey these algorithms and related results. A common idea used by all the algorithms for the problem is that a solution for complete balanced binary trees is straightforward. Furthermore, for complete balanced binary trees we can easily solve the problem in a distributed way by labeling the nodes of the tree such that from the labels of two nodes alone one can compute the label of their nearest common ancestor. Whether it is possible to distribute the data structure into short labels associated with the nodes is important for several applications such as routing. Therefore, related labeling problems have received a lot of attention recently.
Succinct ordinal trees with levelancestor queries
 In SODA ’04: Proceedings of the Fifteenth annual ACMSIAM Symposium on Discrete Algorithms
, 2004
"... We consider succinct or spaceefficient representations of trees that efficiently support a variety of navigation operations. We focus on static ordinal trees, i.e., arbitrary static rooted trees where the children of each node are ordered. The set of operations is essentially the union of the sets ..."
Abstract

Cited by 41 (4 self)
 Add to MetaCart
We consider succinct or spaceefficient representations of trees that efficiently support a variety of navigation operations. We focus on static ordinal trees, i.e., arbitrary static rooted trees where the children of each node are ordered. The set of operations is essentially the union of the sets of operations supported by previous succinct
Maintaining Hierarchical Graph Views for Dynamic Graphs
, 2004
"... We describe a data structure for e#ciently maintaining views of dynamic graphs. ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We describe a data structure for e#ciently maintaining views of dynamic graphs.
A General Technique for Managing Strings in ComparisonDriven Data Structures
"... Abstract. This paper presents a general technique for optimally transforming any dynamic data structure D that operates on atomic and indivisible keys by constanttime comparisons, into a data structure D ′ that handles unboundedlength keys whose comparison cost is not a constant. 1 ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Abstract. This paper presents a general technique for optimally transforming any dynamic data structure D that operates on atomic and indivisible keys by constanttime comparisons, into a data structure D ′ that handles unboundedlength keys whose comparison cost is not a constant. 1
Path Minima Queries in Dynamic Weighted Trees
"... Abstract. In the path minima problem on trees each tree edge is assigned a weight and a query asks for the edge with minimum weight on a path between two nodes. For the dynamic version of the problem on a tree, where the edgeweights can be updated, we give comparisonbased and RAM data structures th ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Abstract. In the path minima problem on trees each tree edge is assigned a weight and a query asks for the edge with minimum weight on a path between two nodes. For the dynamic version of the problem on a tree, where the edgeweights can be updated, we give comparisonbased and RAM data structures that achieve optimal query time. These structures support inserting a node on an edge, inserting a leaf, and contracting edges. When only insertion and deletion of leaves in a tree are needed, we give two data structures that achieve optimal and significantly lower query times than when updating the edgeweights is allowed. One is a semigroup structure for which the edgeweights are from an arbitrary semigroup and queries ask for the semigroupsum of the edgeweights on a given path. For the other structure the edgeweights are given in the word RAM. We complement these upper bounds with lower bounds for different variants of the problem. 1
Dynamic Tree Cross Products
 In: Proc. 15th ISAAC. LNCS. (2004
, 2004
"... Range searching over tree cross products is a variant of classic range searching, recently introduced by Buchsbaum et al. (Proc. 8th ESA, vol. 1879 of LNCS, pp. 120131, 2000). A tree cross product consist of hyperedges connecting the nodes of trees T1 , . . . , Td . In this context, range sear ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Range searching over tree cross products is a variant of classic range searching, recently introduced by Buchsbaum et al. (Proc. 8th ESA, vol. 1879 of LNCS, pp. 120131, 2000). A tree cross product consist of hyperedges connecting the nodes of trees T1 , . . . , Td . In this context, range searching means to determine all hyperedges connecting a given set of tree nodes. Buchsbaum et al. describe a data structure which supports, besides queries, adding and removing of edges; the tree nodes remain fixed. In this paper we present a new data structure, which additionally provides insertion and deletion of leaves of T1 , . . . , Td ; it combines the former approach with a novel technique of using search trees superimposed over ordered list maintenance structures. The extra cost for this dynamization is roughly a factor of log n /log log n). The trees being dynamic is especially important for maintaining hierarchical graph views, a problem that can be modeled as tree cross product. Such views evolve from a large base graph by the contraction of subgraphs defined recursively by an associated hierarchy. The graph view maintenance problem is to provide methods for refining and coarsening a view. In previous solutions only the edges of the underlying graph were dynamic; with the application of our data structure, the node set becomes dynamic as well.
The Euler Path to Static LevelAncestors
, 2007
"... Suppose a rooted tree T is given for preprocessing. The levelancestor problem is to answer quickly queries of the following form. Given a vertex v and an integer i> 0, find the ith vertex on the path from the root to v. Algorithms that achieve a linear time bound for preprocessing and a constant ti ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Suppose a rooted tree T is given for preprocessing. The levelancestor problem is to answer quickly queries of the following form. Given a vertex v and an integer i> 0, find the ith vertex on the path from the root to v. Algorithms that achieve a linear time bound for preprocessing and a constant time bound for a query have been published by Dietz (1991), Alstrup and Holm (2000), and Bender and Farach (2002). The first two algorithms address dynamic versions of the problem; the last addresses the static version only and is the simplest. The purpose of this note is to expose another simple algorithm that lies under a complicated PRAM algorithm by Berkman and Vishkin (1990,1994). We further show that its simplicity allows for an easy extension of its functionality, adding queries for descendants and level successors as well as ancestors, extensions for which the former algorithm is less suitable. 1
Finding Path Minima in Incremental Unrooted Trees ∗
, 2008
"... Consider a dynamic forest of unrooted trees over a set of n vertices which we update by link operations: Each link operation adds a new edge adjacent to vertices in two different trees. Every edge in the forest has a weight associated with it, and at any time we want to be able to answer a pathmin ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Consider a dynamic forest of unrooted trees over a set of n vertices which we update by link operations: Each link operation adds a new edge adjacent to vertices in two different trees. Every edge in the forest has a weight associated with it, and at any time we want to be able to answer a pathmin query which returns that edge of minimum weight along the path between two given vertices. For the case where the weights are integers we give an algorithm that performs n − 1 link operations and m pathmin queries in O(n + mα(m,n)) time. This extends well known results of Tarjan [11] and Yao [12] to a more general dynamic setting at the cost of restricting the weights to be integers. Using our data structure we get an optimal data structure for a restricted version of the mergeable trees problem [9]. We also suggest a simpler data structures for the case where trees are rooted and the link operation always adds an edge between the root of one tree and an arbitrary vertex of another tree.
Fast, precise and dynamic distance queries
"... We present an approximate distance oracle for a point set S with n points and doubling dimension λ. For every ε> 0, the oracle supports (1 + ε)approximate distance queries in (universal) constant time, occupies space [ε −O(λ) + 2 O(λ log λ)]n, and can be constructed in [2 O(λ) log 3 n+ε −O(λ) +2 O( ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present an approximate distance oracle for a point set S with n points and doubling dimension λ. For every ε> 0, the oracle supports (1 + ε)approximate distance queries in (universal) constant time, occupies space [ε −O(λ) + 2 O(λ log λ)]n, and can be constructed in [2 O(λ) log 3 n+ε −O(λ) +2 O(λ log λ)]n expected time. This improves upon the best previously known constructions, presented by HarPeled and Mendel [13]. Furthermore, the oracle can be made fully dynamic with expected O(1) query time and only 2O(λ) log n+ε−O(λ) O(λ log λ) +2 update time. This is the first fully dynamic (1 + ε)distance oracle. 1
6.851: Advanced Data Structures Spring 2007
, 2007
"... In the last lecture we began the topic of string matching and document retrieval. In the string matching problem, we are given a an alphabet Σ, text T, and a pattern P. We may ask questions such as whether P is a substring of T, how many occurrences of P in T are there, and where do they occur? To s ..."
Abstract
 Add to MetaCart
In the last lecture we began the topic of string matching and document retrieval. In the string matching problem, we are given a an alphabet Σ, text T, and a pattern P. We may ask questions such as whether P is a substring of T, how many occurrences of P in T are there, and where do they occur? To solve this problem, we introduced suffix arrays and suffix trees. Suffix arrays are arrays of size O(T ) that store all suffixes of T in lexicographic order. We can query for the existence of P in T in O(P  + lg T ) time with the aid of a longest common prefix array. Suffix trees, which are compressed tries of all suffixes of T, can answer search queries in O(P ) time, but require O(T  · Σ) space and O(T  + sort(Σ)) preprocessing time. The space can be reduced to O(T ) by storing a BST instead of an array in every suffix tree node. However, this comes at the cost of O(P  lg Σ) query time. In this lecture we introduce a new data structure called a Suffix Tray that combines the best aspects of suffix arrays and suffix trees. We will achieve O(P  + lgΣ) time queries with only O(T ) space. We then discuss approximate string matching–that is matching strings within an error tolerance under different distance metrics such as the Hamming distance or edit distance. We examine several solutions to this problem with increasingly better run times.