13 research outputs found

    A Framework for Algorithm Stability

    Get PDF
    We say that an algorithm is stable if small changes in the input result in small changes in the output. This kind of algorithm stability is particularly relevant when analyzing and visualizing time-varying data. Stability in general plays an important role in a wide variety of areas, such as numerical analysis, machine learning, and topology, but is poorly understood in the context of (combinatorial) algorithms. In this paper we present a framework for analyzing the stability of algorithms. We focus in particular on the tradeoff between the stability of an algorithm and the quality of the solution it computes. Our framework allows for three types of stability analysis with increasing degrees of complexity: event stability, topological stability, and Lipschitz stability. We demonstrate the use of our stability framework by applying it to kinetic Euclidean minimum spanning trees

    Kinetic Voronoi Diagrams and Delaunay Triangulations under Polygonal Distance Functions

    Full text link
    Let PP be a set of nn points and QQ a convex kk-gon in R2{\mathbb R}^2. We analyze in detail the topological (or discrete) changes in the structure of the Voronoi diagram and the Delaunay triangulation of PP, under the convex distance function defined by QQ, as the points of PP move along prespecified continuous trajectories. Assuming that each point of PP moves along an algebraic trajectory of bounded degree, we establish an upper bound of O(k4nλr(n))O(k^4n\lambda_r(n)) on the number of topological changes experienced by the diagrams throughout the motion; here λr(n)\lambda_r(n) is the maximum length of an (n,r)(n,r)-Davenport-Schinzel sequence, and rr is a constant depending on the algebraic degree of the motion of the points. Finally, we describe an algorithm for efficiently maintaining the above structures, using the kinetic data structure (KDS) framework

    A framework for algorithm stability

    Get PDF
    We say that an algorithm is stable if small changes in the input result in small changes in the output. Algorithm stability plays an important role when analyzing and visualizing time-varying data. However, so far, there are only few theoretical results on the stability of algorithms, possibly due to a lack of theoretical analysis tools. In this paper we present a framework for analyzing the stability of algorithms. We focus in particular on the tradeoff between the stability of an algorithm and the quality of the solution it computes. Our framework allows for three types of stability analysis with increasing degrees of complexity: event stability, topological stability, and Lipschitz stability. We demonstrate the use of our stability framework by applying it to kinetic Euclidean minimum spanning trees
    corecore