Results 1 
9 of
9
Dictionary matching and indexing with errors and don’t cares
 In STOC ’04
, 2004
"... This paper considers various flavors of the following online problem: preprocess a text or collection of strings, so that given a query string p, all matches of p with the text can be reported quickly. In this paper we consider matches in which a bounded number of mismatches are allowed, or in which ..."
Abstract

Cited by 50 (1 self)
 Add to MetaCart
This paper considers various flavors of the following online problem: preprocess a text or collection of strings, so that given a query string p, all matches of p with the text can be reported quickly. In this paper we consider matches in which a bounded number of mismatches are allowed, or in which a bounded number of “don’t care ” characters are allowed. The specific problems we look at are: indexing, in which there is a single text t, and we seek locations where p matches a substring of t; dictionary queries, in which a collection of strings is given upfront, and we seek those strings which match p in their entirety; and dictionary matching, in which a collection of strings is given upfront, and we seek those substrings of a (long) p which match an original string in its entirety. These are all instances of an alltoall matching problem, for which we provide a single solution. The performance bounds all have a similar character. For example, for the indexing problem with n = t  and m = p, the query time for k substitutions is O(m + (c1 log n) k k! # matches), with a data structure of size O(n (c2 log n) k k! and a preprocessing time of O(n (c2 log n) k), where c1, c2> k! 1 are constants. The deterministic preprocessing assumes a weakly nonuniform RAM model; this assumption is not needed if randomization is used in the preprocessing.
AN O(n log log n)TIME ALGORITHM FOR TRIANGULATING A SIMPLE POLYGON
, 1988
"... Given a simple nvertex polygon, the triangulation problem is to partition the interior of the polygon into n2 triangles by adding n3 nonintersecting diagonals. We propose an O(n log logn)time algorithm for this problem, improving on the previously best bound of O (n log n) and showing that tria ..."
Abstract

Cited by 37 (4 self)
 Add to MetaCart
Given a simple nvertex polygon, the triangulation problem is to partition the interior of the polygon into n2 triangles by adding n3 nonintersecting diagonals. We propose an O(n log logn)time algorithm for this problem, improving on the previously best bound of O (n log n) and showing that triangulation is not as hard as sorting. Improved algorithms for several other computational geometry problems, including testing whether a polygon is simple, follow from our result.
On the Embedding Phase of the Hopcroft and Tarjan Planarity Testing Algorithm
 ALGORITHMICA
, 1994
"... We give a detailed description of the embedding phase of the Hopcroft and Tarjan planarity testing algorithm. The embedding phase runs in linear time. An implementation based on this paper can be found in [MMN93]. ..."
Abstract

Cited by 35 (6 self)
 Add to MetaCart
We give a detailed description of the embedding phase of the Hopcroft and Tarjan planarity testing algorithm. The embedding phase runs in linear time. An implementation based on this paper can be found in [MMN93].
Algorithms for dense graphs and networks on the random access computer, Algorithmica 15
, 1996
"... Abstract. We improve upon the running time of several graph and network algorithms when applied to dense graphs. In particular, we show how to compute on a machine with word size L = f2 (log n) a maximal matching in an nvertex bipartite graph in time O (n 2 + n2"5/~.) = O (n2"5/log n), how to comp ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
Abstract. We improve upon the running time of several graph and network algorithms when applied to dense graphs. In particular, we show how to compute on a machine with word size L = f2 (log n) a maximal matching in an nvertex bipartite graph in time O (n 2 + n2"5/~.) = O (n2"5/log n), how to compute the transitive closure of a digraph with n vertices and m edges in time O(n 2 + nm/,k), how to solve the uncapacitated transportation problem with integer costs in the range [0..C] and integer demands in the range [U..U] in time O ((n 3 (log log / log n) 1/2 + n 2 log U) log nC), and how to solve the assignment problem with integer costs in the range [0..C] in time O(n 2"5 lognC/(logn/loglogn)l/4). Assuming a suitably compressed input, we also show how to do depthfirst and breadthfirst search and how to compute strongly connected components and biconnected components in time O(n~. + n2/L), and how to solve the single source shortestpath problem with integer costs in the range [0..C] in time O (n 2 (log C)/log n). For the transitive closure algorithm we also report on the experiences with an implementation. Key Words.
Purely Functional Representations of Catenable Sorted Lists.
 In Proceedings of the 28th Annual ACM Symposium on Theory of Computing
, 1996
"... The power of purely functional programming in the construction of data structures has received much attention, not only because functional languages have many desirable properties, but because structures built purely functionally are automatically fully persistent: any and all versions of a structur ..."
Abstract

Cited by 16 (5 self)
 Add to MetaCart
The power of purely functional programming in the construction of data structures has received much attention, not only because functional languages have many desirable properties, but because structures built purely functionally are automatically fully persistent: any and all versions of a structure can coexist indefinitely. Recent results illustrate the surprising power of pure functionality. One such result was the development of a representation of doubleended queues with catenation that supports all operations, including catenation, in worstcase constant time [19].
Spaceefficient finger search on degreebalanced search trees
 In SODA
, 2003
"... We show how to support the finger search operation on degreebalanced search trees in a spaceefficient manner that retains a worstcase time bound of O(log d), where d is the difference in rank between successive search targets. While most existing treebased designs allocate linear extra storage i ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
We show how to support the finger search operation on degreebalanced search trees in a spaceefficient manner that retains a worstcase time bound of O(log d), where d is the difference in rank between successive search targets. While most existing treebased designs allocate linear extra storage in the nodes (e.g., for side links and parent pointers), our design maintains a compact auxiliary data structure called the “hand ” during the lifetime of the tree and imposes no other storage requirement within the tree. The hand requires O(log n) space for an nnode tree and has a relatively simple structure. It can be updated synchronously during insertions and deletions with time proportional to the number of structural changes in the tree. The auxiliary nature of the hand also makes it possible to introduce finger searches into any existing implementation without modifying the underlying data representation (e.g., any implementation of RedBlack trees can be used). Together these factors make finger searches more appealing in practice. Our design also yields a simple yet optimal inorder walk algorithm with worstcase O(1) work per increment (again without any extra storage requirement in the nodes), and we believe our algorithm can be used in database applications when the overall performance is very sensitive to retrieval latency. 1
A LinearTime Certifying Triconnnectivity Algorithm for Hamiltonian Graphs
, 2010
"... A graph is triconnected if it is connected, has at least 4 vertices and the removal of any two vertices does not disconnect the graph. We give a lineartime certifying algorithm deciding triconnectivity of Hamiltonian graphs. If the input graph is triconnected, the algorithm constructs an easily che ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
A graph is triconnected if it is connected, has at least 4 vertices and the removal of any two vertices does not disconnect the graph. We give a lineartime certifying algorithm deciding triconnectivity of Hamiltonian graphs. If the input graph is triconnected, the algorithm constructs an easily checkable proof for this fact. If the input graph is not triconnected, the algorithm returns a separation pair.
An Overview over RedBlack and Finger Trees
, 1992
"... 2 1 1 Figure 1: A redblack tree. The darkened nodes are black nodes. The external nodes are denoted by squares. Shown with each node is its rank. Wyk give another, simpler, implementation of finger trees. They describe a finger data structure which is a modification of redblack trees, but othe ..."
Abstract
 Add to MetaCart
2 1 1 Figure 1: A redblack tree. The darkened nodes are black nodes. The external nodes are denoted by squares. Shown with each node is its rank. Wyk give another, simpler, implementation of finger trees. They describe a finger data structure which is a modification of redblack trees, but other forms of balanced trees could be used as a basis for the structure. The two problems presented in Chapters 3 and 4 rely on the use of redblack and finger trees respectively. In this chapter we give a fairly complete overview of redblack trees, of the finger trees introduced by Tarjan and Van Wyk, and of a variant of these which we use in Chapter 4. The material here is intended to be comprehensive and useful as an introduction to these two types of data structures. Re  ack rees A redblack tree is a full binary tree in which each node is assigned a color, either red or black. The leaves are called
SYNONYMS ValidTime Access Methods DEFINITION
"... A validtime index is a temporal index that enables fast access to validtime datasets. In a traditional database, an index is used for selection queries. When accessing validtime databases such selections also involve the validtime dimension (the time when a fact becomes valid in reality). The ch ..."
Abstract
 Add to MetaCart
A validtime index is a temporal index that enables fast access to validtime datasets. In a traditional database, an index is used for selection queries. When accessing validtime databases such selections also involve the validtime dimension (the time when a fact becomes valid in reality). The characteristics of the validtime dimension imply various properties that the temporal index should have in order to be efficient. As traditional indices, the performance of a temporal index is described by three costs: (i) storage cost (i.e., the number of pages the index occupies on the disk), (ii) update cost (the number of pages accessed to perform an update on the index; for example when adding, deleting or updating a record), and (iii) query cost (the number of pages accessed for the index to answer a query). HISTORICAL BACKGROUND A validtime database maintains the entire temporal behavior of an enterprise as best known now [12]. It stores the current knowledge about the enterprise's past, current or even future behavior. If errors are discovered about this temporal behavior, they are corrected by modifying the database. If the knowledge about the enterprise is updated, the new knowledge modifies the existing one. When a correction or an update is applied, previous values are not retained. It is thus not possible to view the database as it was before the correction/update. This is in contrast to a transactiontime database, which maintains the