Robustness and Computational Geometry What it is Algorithms are developed with certain assumptions All arithmetic operations are exact, real operations Objects are in general position In real-world, these assumptions are not met Failure of assumptions can lead to incorrect results Computational Geometry involves both numerical and combinatorial information Errors in one affect the other How failures occur Numerical Precision problems Floating-point errors accumulate in standard computations Algorithms for finding answers are not exact Degeneracies Problems are often given in degenerate configuration Degenerate situations can arise during the course of computation e.g. Point sets: Two coincident points, three colinear points, four cocircular points What failures cause Different computations give conflicting results Algorithm crashes Answer is incorrect Dealing with Numerical Errors More accurate/exact computation algorithms Necessary when the arithmetic computation algorithm is unreliable Less-common approaches Estimated error Rounding (snap-rounding) Data normalization and hidden variables Epsilon geometry Tolerances Common, direct approach Can be very useful and appropriate Designs may be based on tolerances Can easily eliminate many floating-point errors Several drawbacks Tolerances must be determined for each computation/object A tolerance that works for one object may not work for another A tolerance that works on one computer may not work on another Incidence intransitivity (a =b, b=c, but a != c) Can never handle every case Dealing with Numerical Errors (continued) Interval (and affine) arithmetic Keep each value as a range of possible values e.g. x = [4..6] Each computation takes place over the range of values e.g. [a,b] + [c,d] = [a+c,b+d] Drawbacks Computed intervals may be much larger than what is necessary Intervals may be too large to be useful Cutting size of the original interval may not make enough of a difference Incidence intransitivity can occur in naive implementation Affine arithmetic can reduce some of the problems with rapidly growing intervals, at the potential cost of increased computation. Dealing with Numerical Errors (continued) Exact computation Keep enough information that any decision based on a numerical value can be made exactly Often involves exact arithmetic Keeps numbers to whatever precision is necessary Can be used for integers, rational numbers Handling algebraic numbers (i.e. roots of polynomials) is enough for almost all computational geometry problems, but requires more than exact arithmetic Fits in best with the model assumed in algorithm development Major drawback: can be extremely slow. Arithmetic operations are not constant time. Numerous approaches for speeding up computation Interval arithmetic Floating-point filters Lazy arithmetic and precision-driven computation Modular arithmetic Hardware implementation when possible Minimizing intermediate precision Dealing with Degeneracies Less-common approaches Symbolic reasoning Redundancy elimination Automatic parsing Case-by-case identification Common, straightforward method Must determine all potential degeneracies ahead of time Code must be written to detect and then handle each degenerate case Exact computation can be important Inaccurate computation can create degeneracies where none existed Inaccurate computation can eliminate degeneracies that were there Dealing with Degeneracies (continued) Perturbation methods Approach for dealing with a group of degeneracies at once Exact computation is necessary Input problem is slightly modified (perturbed) to eliminate the possibility of degeneracies Usually the perturbation is symbolic, perturbing by some amount, , solving the problem, then taking a limit as goes to zero. As long as the perturbation method used is consistent, the answer will be consistent Difficulties: The solution is actually the solution of a slightly modified problem, not the one given. Computing with the variable perturbation may be difficult It may be difficult to map the perturbed problem back to the original one. Global information may be necessary Difficulties in the Curved Domain Most common computational geometry problems deal with linear objects, but several real-world problems involve curved objects Curved domain means that equations being dealt with are nonlinear polynomials Leads to faster growth in errors Takes longer to perform computations Computations are less straightforward – e.g. two lines generically intersect in one point, two curves in a number of points. More likely to encounter irrational numbers – must be handled very differently Curved domain dramatically increases the number of potential degeneracies e.g. Two surfaces meeting at a point, two surfaces tangent along a curve Enumeration, detection, and handling of degenerate cases is much more complex Conclusion Robustess problems fall into two categories Numerical precision Degeneracies Robustess is a serious concern in computational geometry due to the interaction of numerical and combinatorial data Several approaches developed on both fronts to deal with these categories of problems Numerical precision Tolerances Interval arithmetic Exact arithmetic Degeneracies Case-by-case Perturbations Handling the nonlinear domain is significantly more complex than the linear domain References A complete reference list would take far too many pages. Here are a few references that give overviews of the topics discussed: Two sources for general overviews of robustness issues are: Hoffmann, C. M., Geometric and Solid Modeling, Chapter 4. Morgan Kauffmann Publishers, Inc., San Mateo, CA: 1989 Schirra, Stefan, “Precision and Robustness in Geometric Computations.” in Algorithmic Foundations of Geographic Information Systems. Lecture Notes in Computer Science, 1340. Springer, Berlin; New York: 1997. Interval arithmetic has been around a long time. A couple of books on it are: Moore, R. E., Interval Analysis. Prentice-Hall, Englewood Cliffs, NJ: 1966. Alefeld, G. and Herzberger, J. Introduction to Interval Computation. Academic Press, New York: 1983. A good overview of exact computation is given in: Yap, C. K. and Dube, T. “The Exact Computation Paradigm” in D. Z. Du and F. Hwang, editors, Computing in Euclidean Geometry, 2nd edition. pages 452-492. World Scientific Press, Singapore: 1995. An overview of perturbation methods is given in: Seidel, R., “The nature and Meaning of Perturbations in Geometric Computing.” In Discrete and Computational Geometry, Vol. 19, No. 1, pages 1-17. January 1998.