Results 1  10
of
11
An experimental analysis of selfadjusting computation
 In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI
, 2006
"... Selfadjusting computation uses a combination of dynamic dependence graphs and memoization to efficiently update the output of a program as the input changes incrementally or dynamically over time. Related work showed various theoretical results, indicating that the approach can be effective for a r ..."
Abstract

Cited by 34 (18 self)
 Add to MetaCart
Selfadjusting computation uses a combination of dynamic dependence graphs and memoization to efficiently update the output of a program as the input changes incrementally or dynamically over time. Related work showed various theoretical results, indicating that the approach can be effective for a reasonably broad range of applications. In this article, we describe algorithms and implementation techniques to realize selfadjusting computation and present an experimental evaluation of the proposed approach on a variety of applications, ranging from simple list primitives to more sophisticated computational geometry algorithms. The results of the experiments show that the approach is effective in practice, often offering orders of magnitude speedup from recomputing the output from scratch. We believe this is the first experimental evidence that incremental computation of any type is effective in practice for a reasonably broad set of applications.
Towards InPlace Geometric Algorithms and Data Structures
 In Proceedings of the Twentieth ACM Symposium on Computational Geometry
, 2003
"... For many geometric problems, there are ecient algorithms that surprisingly use very little extra space other than the given array holding the input. For many geometric query problems, there are ecient data structures that need no extra space at all other than an array holding a permutation of the ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
For many geometric problems, there are ecient algorithms that surprisingly use very little extra space other than the given array holding the input. For many geometric query problems, there are ecient data structures that need no extra space at all other than an array holding a permutation of the input. In this paper, we obtain the rst such spaceeconomical solutions for a number of fundamental problems, including threedimensional convex hulls, twodimensional Delaunay triangulations, xeddimensional range queries, and xeddimensional nearest neighbor queries.
Kinetic algorithms via selfadjusting computation
 In Proceedings of the 14th Annual European Symposium on Algorithms (ESA 2006
, 2006
"... Abstract. Define a static algorithm as an algorithm that computes some combinatorial property of its input consisting of static, i.e., nonmoving, objects. In this paper, we describe a technique for syntactically transforming static algorithms into kinetic algorithms, which compute properties of mov ..."
Abstract

Cited by 12 (9 self)
 Add to MetaCart
Abstract. Define a static algorithm as an algorithm that computes some combinatorial property of its input consisting of static, i.e., nonmoving, objects. In this paper, we describe a technique for syntactically transforming static algorithms into kinetic algorithms, which compute properties of moving objects. The technique o«ers capabilities for composing kinetic algorithms, for integrating dynamic and kinetic changes, and for ensuring robustness even with fixedprecision floatingpoint arithmetic. To evaluate the e«ectiveness of the approach, we implement a library for performing the transformation, transform a number of algorithms, and give an experimental evaluation. The results show that the technique performs well in practice. 1
Kinetic and Dynamic Data Structures for Closest Pairs and All Nearest Neighbors
, 2008
"... We present simple, fully dynamic and kinetic data structures, which are variants of a dynamic twodimensional range tree, for maintaining the closest pair and all nearest neighbors for a set of n moving points in the plane; insertions and deletions of points are also allowed. If no insertions or del ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
We present simple, fully dynamic and kinetic data structures, which are variants of a dynamic twodimensional range tree, for maintaining the closest pair and all nearest neighbors for a set of n moving points in the plane; insertions and deletions of points are also allowed. If no insertions or deletions take place, the structure for the closest pair uses O(n log n) space, and processes O(n 2 βs+2(n) log n) critical events, each in O(log 2 n) time. Here s is the maximum number of times where the distances between any two specific pairs of points can become equal, βs(q) = λs(q)/q, and λs(q) is the maximum length of DavenportSchinzel sequences of order s on q symbols. The dynamic version of the problem incurs a slight degradation in performance: If m ≥ n insertions and deletions are performed, the structure still uses O(n log n) space, and processes O(mnβs+2(n) log³ n) events, each in O(log³ n) time. Our kinetic data structure for all nearest neighbors uses O(n log² n) space, and processes O(n 2 β 2 s+2 (n) log3 n) critical events. The expected time to process all events is O(n 2 β 2 s+2 (n) log4 n), though processing a single event may take �(n) expected time in the worst case. If m ≥ n insertions and deletions are performed, then the expected number of events is O(mnβ 2 s+2 (n) log3 n) and processing them all takes O(mnβ 2 s+2 (n) log4 n). An insertion or deletion takes O(n) expected time.
A Kinetic Triangulation Scheme for Moving Points in The Plane ∗
"... We present a simple randomized scheme for triangulating a set P of n points in the plane, and construct a kinetic data structure which maintains the triangulation as the points of P move continuously along piecewise algebraic trajectories of constant description complexity. Our triangulation scheme ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We present a simple randomized scheme for triangulating a set P of n points in the plane, and construct a kinetic data structure which maintains the triangulation as the points of P move continuously along piecewise algebraic trajectories of constant description complexity. Our triangulation scheme experiences an expected number of O(n 2 βs+2(n) log 2 n) discrete changes, and handles them in a manner that satisfies all the standard requirements from a kinetic data structure: compactness, efficiency, locality and responsiveness. Here s is the maximum number of times where any specific triple of points of P can become collinear, βs+2(q) = λs+2(q)/q, and λs+2(q) is the maximum length of DavenportSchinzel sequences of order s + 2 on n symbols. Thus, compared to the previous solution of Agarwal et al. [4], we achieve a (slightly) improved bound on the number of discrete changes in the triangulation. In addition, we believe that our scheme is simpler to implement and analyze. Categories and Subject Descriptors F.2.2 [Analysis of algorithms and problem complexity]: Nonnumerical algorithms and problems—Geometrical problems and computations; G.2.1 [Discrete mathematics]: Combinatorics—Combinatorial algorithms
SelfAdjusting Computation with Delta ML
"... Abstract. In selfadjusting computation, programs respond automatically and efficiently to modifications to their data by tracking the dynamic data dependences of the computation and incrementally updating the output as needed. In this tutorial, we describe the selfadjustingcomputation model and pr ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Abstract. In selfadjusting computation, programs respond automatically and efficiently to modifications to their data by tracking the dynamic data dependences of the computation and incrementally updating the output as needed. In this tutorial, we describe the selfadjustingcomputation model and present the language ∆ML (Delta ML) for writing selfadjusting programs. 1
On Approximate GeodesicDistance Queries amid Deforming Point Clouds
"... We propose data structures for answering a geodesicdistance query between two query points in a twodimensional or threedimensional dynamic environment, in which obstacles are deforming continuously. Each obstacle in the environment is modeled as the convex hull of a continuously deforming point ..."
Abstract
 Add to MetaCart
We propose data structures for answering a geodesicdistance query between two query points in a twodimensional or threedimensional dynamic environment, in which obstacles are deforming continuously. Each obstacle in the environment is modeled as the convex hull of a continuously deforming point cloud. The key to our approach is to avoid maintaining the convex hull of each point cloud explicitly but still able to retain sufficient geometric information to estimate geodesic distances in the free space.