Results 11  20
of
69
An Empirical Study of Dynamic Graph Algorithms
 ACM JOURNAL ON EXPERIMENTAL ALGORITHMICS
, 1996
"... The contributions of this paper are both of theoretical and of experimental nature. From the experimental point of view, we conduct an empirical study on some dynamic connectivity algorithms which where developed recently. In particular, the following implementations were tested and compared with ..."
Abstract

Cited by 24 (4 self)
 Add to MetaCart
The contributions of this paper are both of theoretical and of experimental nature. From the experimental point of view, we conduct an empirical study on some dynamic connectivity algorithms which where developed recently. In particular, the following implementations were tested and compared with simple algorithms: simple sparsification by Eppstein et al. and the recent randomized algorithm by Henzinger and King. In our experiments, we considered both random and nonrandom inputs. Moreover, we present a simplified variant of the algorithm by Henzinger and King, which for random inputs was always faster than the original implementation. For nonrandom inputs, simple sparsification was the fastest algorithm for small sequences of updates; for medium and large sequences of updates, the original algorithm by Henzinger and King was faster. From the theoretical point of view, we analyze the average case running time of simple sparsification and prove that for dynamic random graph...
Algorithms for Proximity Problems in Higher Dimensions
 Comput. Geom. Theory Appl
, 1996
"... We present algorithms for five interdistance enumeration problems that take as input a set S of n points in IR d (for a fixed but arbitrary dimension d) and as output enumerate pairs of points in S satisfying various conditions. We present: an O(n log n + k) time and O(n) space algorithm that ..."
Abstract

Cited by 23 (2 self)
 Add to MetaCart
We present algorithms for five interdistance enumeration problems that take as input a set S of n points in IR d (for a fixed but arbitrary dimension d) and as output enumerate pairs of points in S satisfying various conditions. We present: an O(n log n + k) time and O(n) space algorithm that takes as additional input a distance # and outputs all k pairs of points in S separated by a distance of # or less; an O(n log n + k log k) time and O(n+k) space algorithm that enumerates in nondecreasing order the k closest pairs of points in S; an O(n log n + k) time algorithm for the same problem without any order restrictions; an O(nk log n) time and O(n) space algorithm that enumerates in nondecreasing order the nk pairs representing the k nearest neighbors of each point in S; and an O(n log n + kn) time algorithm for the same problem without any order restrictions. The algorithms combine a modification of the planar approach of Dickerson, Drysdale, and Sack [11] with the ...
An Experimental Analysis of Change Propagation in Dynamic Trees
, 2005
"... Change propagation is a technique for automatically adjusting the output of an algorithm to changes in the input. The idea behind change propagation is to track the dependences between data and function calls, so that, when the input changes, functions affected by that change can be reexecuted to u ..."
Abstract

Cited by 21 (13 self)
 Add to MetaCart
Change propagation is a technique for automatically adjusting the output of an algorithm to changes in the input. The idea behind change propagation is to track the dependences between data and function calls, so that, when the input changes, functions affected by that change can be reexecuted to update the computation and the output. Change propagation makes it possible for a compiler to dynamize static algorithms. The practical effectiveness of change propagation, however, is not known. In particular, the cost of dependence tracking and change propagation may seem significant. The contributions of the paper are twofold. First, we present some experimental evidence that change propagation performs well when compared to direct implementations of dynamic algorithms. We implement change propagation on treecontraction as a solution to the dynamic trees problem and present an experimental evaluation of the approach. As a second contribution, we present a library for dynamictrees that support a general interface and present an experimental evaluation by considering a broad set of applications. The dynamictrees library relies on change propagation to handle edge insertions/deletions. The applications that we consider include path queries, subtree queries, leastcommonancestor queries, maintenance of centers and medians of trees, nearestmarkedvertex queries, semidynamic minimum spanning trees, and the maxflow algorithm of Sleator and Tarjan.
Finding the k Smallest Spanning Trees
, 1992
"... We give improved solutions for the problem of generating the k smallest spanning trees in a graph and in the plane. Our algorithm for general graphs takes time O(m log #(m, n)+k 2 ); for planar graphs this bound can be improved to O(n + k 2 ). We also show that the k best spanning trees for a set of ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
We give improved solutions for the problem of generating the k smallest spanning trees in a graph and in the plane. Our algorithm for general graphs takes time O(m log #(m, n)+k 2 ); for planar graphs this bound can be improved to O(n + k 2 ). We also show that the k best spanning trees for a set of points in the plane can be computed in time O(min(k 2 n + n log n, k 2 + kn log(n/k))). The k best orthogonal spanning trees in the plane can be found in time O(n log n + kn log log(n/k)+k 2 ).
Maintaining Center and Median in Dynamic Trees
, 2000
"... We show how to maintain centers and medians for a collection of dynamic trees where edges may be inserted and deleted and node and edge weights may be changed. All updates are supported in O(log n) time, where n is the size of the tree(s) involved in the update. ..."
Abstract

Cited by 17 (4 self)
 Add to MetaCart
We show how to maintain centers and medians for a collection of dynamic trees where edges may be inserted and deleted and node and edge weights may be changed. All updates are supported in O(log n) time, where n is the size of the tree(s) involved in the update.
Dynamic parallel tree contraction
 In Proceedings 5th Annual ACM Symp. on Parallel Algorithms and Architectures
, 1994
"... Parallel tree contraction has been found to be a useful and quite powerful tool for the design of a wide class of efficient graph algorithms. We propose a corresponding technique for the parallel solution of problems with incremental changes in the data. In dynamic tree contraction problems, we are ..."
Abstract

Cited by 17 (2 self)
 Add to MetaCart
Parallel tree contraction has been found to be a useful and quite powerful tool for the design of a wide class of efficient graph algorithms. We propose a corresponding technique for the parallel solution of problems with incremental changes in the data. In dynamic tree contraction problems, we are given an initial tree T, and then an online algorithm processes requests regarding T. Requests may be either incremental changes to T or requests for certain values computed using the tree. A simple example is maintaining the preorder numbering on a tree. The online algorithm would then have to handle incremental changes to the tree, and would also have to quickly answer queries about the preorder number of any tree node. Our dynamic algorithms are based on the prior parallel tree contraction algorithms, and hence we call such algorithms incremental tree contraction algorithms. By maintaining the connection between our incremental algorithms and the parallel tree contraction algorithm, we create incremental algorithms for tree contraction. We consider a dynamic binary tree T of ≤ n nodes and unbounded depth. We describe a procedure, which we call the dynamic parallel tree contraction algorithm, which incrementally processes various parallel modification requests and queries: (1) parallel requests to add or delete leaves of T, or modify labels of internal nodes or leaves of T, and also (2) parallel tree contraction queries which require recomputing values at specified nodes. Each modification or query is with respect to a set of nodes U in T. We make use of a random splitting tree as an aid
Dynamic and Static Algorithms for Optimal Placement of Resources in a Tree
 THEORETICAL COMPUTER SCIENCE
, 1996
"... We consider the problem of placing resources in trees. We give algorithms for the static and dynamic version of the problem. The static algorithms are faster than the algorithms found in literature, while the dynamic algorithms are the first for this problem and run in polylogarithmic time. ..."
Abstract

Cited by 15 (1 self)
 Add to MetaCart
We consider the problem of placing resources in trees. We give algorithms for the static and dynamic version of the problem. The static algorithms are faster than the algorithms found in literature, while the dynamic algorithms are the first for this problem and run in polylogarithmic time.
Experimental Analysis of Dynamic Minimum Spanning Tree Algorithms (Extended Abstract)
, 1997
"... ) Giuseppe Amato Giuseppe Cattaneo y Giuseppe F. Italiano z Abstract We conduct an extensive empirical study on the performance of several algorithms for maintaining the minimum spanning tree of a dynamic graph. In particular, we implemented and tested Frederickson's algorithms, and sparsifi ..."
Abstract

Cited by 15 (2 self)
 Add to MetaCart
) Giuseppe Amato Giuseppe Cattaneo y Giuseppe F. Italiano z Abstract We conduct an extensive empirical study on the performance of several algorithms for maintaining the minimum spanning tree of a dynamic graph. In particular, we implemented and tested Frederickson's algorithms, and sparsification on top of Frederickson's algorithms, and compared them to other dynamic algorithms. Moreover, we propose a variant of a dynamic algorithm by Frederickson, which was in our experience always faster than the other implementations derived from the papers. In our experiments, we considered both random and nonrandom inputs, with nonrandom inputs trying to enforce bad update patterns on the algorithms. For random inputs, a simple adaptation of a partially dynamic data structure on Kruskal's algorithm was the fastest implementation. For nonrandom inputs, sparsification yielded the fastest algorithm. In both cases, the performance of our variant of the algorithm of Frederickson was clos...
Average Case Analysis of Dynamic Graph Algorithms
 PROC. 6TH SYMP. ON DISCRETE ALGORITHMS
, 1995
"... We present a model for edge updates with restricted randomness in dynamic graph algorithms and a general technique for analyzing the expected running time of an update operation. This model is able to capture the average case in many applications, since (1) it allows restrictions on the set of edges ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
We present a model for edge updates with restricted randomness in dynamic graph algorithms and a general technique for analyzing the expected running time of an update operation. This model is able to capture the average case in many applications, since (1) it allows restrictions on the set of edges which can be used for insertions and (2) the type (insertion or deletion) of each update operation is arbitrary, i.e., tot random. We use our technique to analyze existing and new dynamic algorithms for the following problems: maximum cardinality matching, minimum spanning forest, connectivity, 2edge connectivity, kedge connectivity, kvertex connectivity, and bipartiteness. Given a random graph G with m0 edges and n vertices and a sequence of 1 update operations such that the graph contains rtt edges after operation i, the expected tinhe for performing the updates for any 1 is O(/log  I= 1/x/) in the case of minimum spanning forests, connectivity, 2edge connectivity, and bipartiteness. The expected time per update operation is O(n) in the case of maximum matching. We also give improved bounds for kedge and kvertex connectivity. Additionally we give an insertionsonly algorithm for maximum cardinality matching with worstcase O(n) amortized time per insertion.
Dynamic Trees as Search Trees via Euler Tours, Applied to the Network Simplex Algorithm
 Mathematical Programming
, 1997
"... The dynamic tree is an abstract data type that allows the maintenance of a collection of trees subject to joining by adding edges (linking) and splitting by deleting edges (cutting), while at the same time allowing reporting of certain combinations of vertex or edge values. For many applications of ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
The dynamic tree is an abstract data type that allows the maintenance of a collection of trees subject to joining by adding edges (linking) and splitting by deleting edges (cutting), while at the same time allowing reporting of certain combinations of vertex or edge values. For many applications of dynamic trees, values must be combined along paths. For other applications, values must be combined over entire trees. For the latter situation, we show that an idea used originally in parallel graph algorithms, to represent trees by Euler tours, leads to a simple implementation with a time of O(log n) per tree operation, where n is the number of tree vertices. We apply this representation to the implementation of two versions of the network simplex algorithm, resulting in a time of O(log n) per pivot, where n is the number of vertices in the problem network.