Results 1  10
of
12
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 50 (24 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 17 (5 self)
 Add to MetaCart
(Show Context)
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
(Show Context)
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
A Kinetic Triangulation Scheme for Moving Points in The Plane
 SCG'10
, 2010
"... 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 7 (3 self)
 Add to MetaCart
(Show Context)
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.
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 3 (0 self)
 Add to MetaCart
(Show Context)
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
Kinetic Data Structures for the SemiYao Graph and All Nearest Neighbors in Rd
"... This paper presents kinetic data structures (KDS’s) for maintaining the SemiYao graph, all the nearest neighbors, and all the (1 + )nearest neighbors of a set of moving points in Rd. Our technique provides the first KDS for the SemiYao graph in Rd. It generalizes and improves on the previous wor ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper presents kinetic data structures (KDS’s) for maintaining the SemiYao graph, all the nearest neighbors, and all the (1 + )nearest neighbors of a set of moving points in Rd. Our technique provides the first KDS for the SemiYao graph in Rd. It generalizes and improves on the previous work on maintaining the SemiYao graph in R2. Our KDS for all nearest neighbors is deterministic. The best previous KDS for all nearest neighbors in Rd is randomized. Our structure and analysis are simpler and improves on the previous work. Finally, we provide a KDS for all the (1 + )nearest neighbors, which in fact gives better performance than the exact KDS’s for all nearest neighbors. 1
OutofOrder Event Processing in Kinetic Data Structures*
"... Abstract We study the problem of designing kinetic data structures (KDS's for short) when event timescannot be computed exactly and events may be processed in a wrong order. In traditional KDS's this can lead to major inconsistencies from which the KDS cannot recover. We present more robus ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract We study the problem of designing kinetic data structures (KDS's for short) when event timescannot be computed exactly and events may be processed in a wrong order. In traditional KDS's this can lead to major inconsistencies from which the KDS cannot recover. We present more robustKDS's for the maintenance of two fundamental structures, kinetic sorting and tournament trees, which overcome the difficulty by employing a refined event scheduling and processing technique. Weprove that the new event scheduling mechanism leads to a KDS that is correct except for finitely many short time intervals. We analyze the maximum delay of events and the maximum errorin the structure, and we experimentally compare our approach to the standard event scheduling mechanism.