Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.