Robustness and Computational Geometry

advertisement
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.
Download