Title: Detecting Degenerate Object Configurations with the Rational Univariate Reduction
1Detecting Degenerate Object Configurations with
the Rational Univariate Reduction
- John Keyser
- Department of Computer Science
- Texas AM University
2Outline
- Motivation
- The Rational Univariate Reduction
- Background
- Computation Process
- Implementation
- Incorporating the RUR
- Numerical Perturbation
- Conclusion and Future Work
3Robustness in Boundary Evaluation
- Like many geometric operations, boundary
evaluation subject to robustness problems - Exact computation approaches, used in
computational geometry, havent been applied as
readily - Exact computation with curved objects generally
requires computer algebra methods.
4Goal(big picture)
- Support boundary evaluation for curved solids
robustly - Numerical error
- Degeneracies
5Need for Exact Boundary Evaluation
- Early work showed numerical problems
- Boole system, floating-point based
- Curved primitives
- Tracing approach, tolerances
- Early-mid 90s
- Krishnan et al. at UNC
6Exact Boundary Evaluation
- Solids defined by parametric surfaces
- Implicit form also stored
- Intersection curves are algebraic plane curves
- Usually no parametric representation
- Kept in patch domain
- Intersections of curves are algebraic points
- Solution of systems of polynomial equations
7ESOLID
- Exact boundary evaluation program
- Exact representations of surfaces, curves, points
- Key operations curve-curve intersection, curve
topology provided by MAPC library - MAPC curve-curve intersections
- Most time-consuming part of computation
- With Culver,Krishnan,Foskey,Manocha
8ESOLID (continued)
- Intersecting curves
- Resultants allow isolating x,y coordinates
separately - Box hits determine which points are true
- Points represented as unique root of polynomial
system within a box.
9ESOLIDSpeedups
- Numerous speedup techniques applied
- Floating-point filters/Interval arithmetic
- Lazy evaluation
- Quick rejection
- Assumes General Position
- Does not handle any actual degeneracies
- Fails by crash, infinite loop
10ESOLIDPerformance
- Applied to real-world cases
- Performance, with speedups, within one order of
magnitude of Boole
11Problem
- Degenerate cases cause failure
- Want way to represent points even in degenerate
cases - Tangential intersections
- Intersections at curve singularities
- 3 or more curves meeting at a point
- Need way to treat degeneracies
12Approach
- Define new method for representing points
- Allows certain degeneracies to be detected,
represented cleanly - Numerical perturbation approach to treat
degeneracies - Work done with Koji Ouchi, Maurice Rojas
13Outline
- Motivation
- The Rational Univariate Reduction
- Background
- Computation Process
- Implementation
- Incorporating the RUR
- Numerical Perturbation
- Conclusion and Future Work
14Rational Univariate Reduction(RUR)
- We will use it as an alternative representation
for points - Capable of handling degenerate situations
smoothly - Can be used for detecting degeneracies, or as
part of a routine to handle them directly
15Previous Work on RUR
- Fundamental method not new known for centuries
- Prior computation approaches ineffective
- Rely on Groebner bases too slow
- Groebner-free methods are iterative dont work
well for exact computation - Sparse resultant Emiris (and others)
16Context for Our Implementation
- Fits into precision-driven computation model
- LEDA and EGC work
- Core library
- Extends model to handle arbitrary roots of
polynomials - Includes complex roots
17Outline
- Motivation
- The Rational Univariate Reduction
- Background
- Computation Process
- Implementation
- Incorporating the RUR
- Numerical Perturbation
- Conclusion and Future Work
18RUR operation
- Given m polynomials in n variables
- Rational coefficients
- Determine all roots of system by finding a set of
polynomials - h(x) minimal polynomial
- h1(a), h2(a), etc. coordinate polynomials
19RUR operation (continued)
- Determine the roots (real and complex) of the
minimal polynomial - Evaluate those roots in coordinate equations
- Result gives coordinates of every common root of
original system - For positive dimensional components, gives one
point on that component.
20Procedure for Computing RUR
Determine Matrix Labels
Minimal Polynomial
Coordinate Polynomials
Compute Perturbed System
Input Polynomials
Perturb For Each Coordinate
21Computing the Matrix Labels
- Form and compute the toric perturbation (sparse
resultant matrix following Canny and Emiris) - Find Newton polytopes for input equations
- Compute Minkowski sum
- Perturb randomly
- Compute mixed subdivision
- Lattice points in interior give column labels
- Rows are indexed by monomial multiplied by
original equation - Entries are coefficients of input polynomials
22Using the Sparse Matrix
- Determinant is the sparse resultant
- Vanishing is a necessary condition for common
root - Determining matrix row/column labels
- linear programming
- Do not actually put equation coefficients in
- Instead, will use perturbed system
23Procedure for Computing RUR
Determine Matrix Labels
Minimal Polynomial
Coordinate Polynomials
Compute Perturbed System
Input Polynomials
Perturb For Each Coordinate
24Computing the Minimal Polynomial
- If input system is f1f2fn0 in variables
x1,,xn - Compute perturbed system
- f0u0u1x1u2x2unxn
- fifi-sfi for i1 to n
- ui are chosen randomly
- fi are polynomials with same support as fi, but
with random coefficients
25Computing the Minimal Polynomial (continued)
- Find sparse resultant of perturbed system
- The minimal polynomial is found from this
(perturbed) resultant, substiuting a variable T
for u0.
26Procedure for Computing RUR
Determine Matrix Labels
Minimal Polynomial
Coordinate Polynomials
Compute Perturbed System
Input Polynomials
Perturb For Each Coordinate
27Computing Coordinate Polynomials
- To compute the coordinate polynomial hi, we
substitute ui/-1 for ui, and compute the
determinant again (twice). - We find the square-free parts, and using the two
determinants, we again introduce the variable T,
with a gcd calculation. - Finally, the coefficient polynomial is found
through division.
28Computing Polynomials(Summary)
- Use linear programming to determine sparse matrix
- Evaluate that matrix several times for various
entries - Perform some polynomial operations (gcd,
division) to determine RUR.
29ExtensionsAffine Roots
- Can compute affine roots (coordinate is zero) by
appending origin to the support of each input
polynomial - May lead to spurious additional roots
- Will need to test each root found to see whether
it should be kept (i.e. solves the actual system).
30ExtensionsNon-square Systems
- Can deal with non-square systems.
- If too few polynomials, just repeat one
polynomial - If too many polynomials, form new set of
polynomials from generic linear combinations of
input polynomials - Will need to test final results, as spurious
roots may be found.
31Computing with the RUR
- Given the RUR, can find roots of minimal
polynomial - We need all roots, real and complex
- Various techniques Aberths method is one for
iteratively converging to roots. - Substitute these into coordinate polynomials to
determine (complex) coordinates of roots.
32Procedure for Computing RUR
Find Roots (Aberths Method)
Minimal Polynomial
a1
a2
an
z-coordinate Polynomial
y-coordinate Polynomial
x-coordinate Polynomial
a1,x
a1,y
a1,z
33Dealing with Complex Numbers
- Do not fit into existing root-bound approaches
- Can determine real/imaginary parts separately
- Root bounds can be determined for real and
imaginary parts independently
34Finding Real Roots
- Often only care about real roots
- To find which roots are real, use root bounds to
show that imaginary part is 0. - Remember complex roots come in conjugate pairs
- In many cases, no complex roots near 0 this
test is easy.
35Representing Roots
- The evaluation process can determine bounding
intervals (boxes) around each root - Can be used in geometric computations just like
previous methods e.g. for quick rejection tests
36Functionality
- Each root is found by one point
- Degeneracies handled cleanly
- Tangential intersections
- Singularities in curves/surfaces
- Points lying on curves/surfaces
- Coincident points/curves/surfaces
37Functionality
- At least one point found on each positive
dimensional component - Two determinations with different generic values
will output two different sets of points - Differences indicate presence of positive
dimensional components
38Outline
- Motivation
- The Rational Univariate Reduction
- Background
- Computation Process
- Implementation
- Incorporating the RUR
- Numerical Perturbation
- Conclusion and Future Work
39Performance
- Implemented in C, using Gnu MP for
multiprecision arithmetic - Exact implementation of sparse resultant
- Based off of Emiris implementation
- Uses exact computation throughout
40Determining Polynomials
- Use interpolation of polynomials to avoid
symbolic computation. - Substitute (random) values and determine
- Vandermonde interpolation
- Used when evaluating sparse resultant matrix
determinant. - Have degree bounds for all polynomials
41Timing Results
- Quadric curve intersections arising from
real-world boundary evaluation cases - MAPC .017 -.024 seconds
- RUR .317-1.772 seconds
- Approximately 20-100 times slower!
- Cases with degenerate intersections, positive
dimensional components, higher dimension, all
successful
42Timing Breakdown
- Slows rapidly with higher degrees/dimensions
- For lower dimension/degree, the size of the
matrix tends to determine running time - Increases quickly with degree/dimension
- At higher dimension/degree, coefficient size of
coordinate polynomials grows very quickly and
tends to dominate time
43Checking Root Bounds
- Surprisingly, gt98 of time was spent in
computation of the RUR itself, not in checking
root bounds. - Root bounds could conceivably take longer, with
repeated construction in precision-driven system.
44Optimizations
- Other optimizations are not implemented yet.
- Prior experience shows filtering and similar
approaches can yield significant speedups - Difficult to filter the sparse resultant matrix
calculations - May be able to filter over coefficients of the
coefficient equations - Possibly make higher degree/dimension more
practical, but unlikely to ever beat MAPC
45Outline
- Motivation
- The Rational Univariate Reduction
- Background
- Computation Process
- Implementation
- Incorporating the RUR
- Numerical Perturbation
- Conclusion and Future Work
46Direct Implementation
- RUR approach could be used always
- Represent all points using RUR
- All degeneracies handled smoothly
- Checks between points are easy
- Evaluating point on curve is easy
- However, much slower for cases where there is no
degeneracy
47Incorporating for Degenerate Situations
- Idea hybrid representation of points
- Use standard MAPC approach first
- When it does not seem to be working (e.g.
repeated iterations), determine RUR - Thereafter RUR can be used instead
- Would allow a uniform treatment of all points,
with lower overhead than all-RUR - Bounding boxes for both approaches
- Might not need RUR itself after first evaluation
48Detecting Degeneracies
- Several degenerate situations in solid modeling
(boundary evaluation) - Some are dealt with more easily by other means
- Overlapping surfaces dealt with through
factorization or vanishing of intersection curve - Usually want to detect degeneracies
- Apply special case code or perturbation
49Degeneracies
50Specific Degeneracy Detection
- Assume points represented as RUR
- Coincident Points
- Check sign (need root bounds) for difference of
two points - Four or more surfaces meeting at a point
- Appears as a point lying on a curve in a patch
domain - Substitute coordinate values of point into curve
- Can generate root bounds to guarantee answer
51Specific Degeneracy Detection
- Curve lying on surface, or overlapping curves
- Test for positive dimensional components
- Surfaces tangent at a point
- Point found normally, curve topology checks
- Tangent curves
- Intersection found normally, examine curve
topology to determine if tangent
52Outline
- Motivation
- The Rational Univariate Reduction
- Background
- Computation Process
- Implementation
- Incorporating the RUR
- Numerical Perturbation
- Conclusion and Future Work
53Numerical Perturbation
- Predicated on a test to detect degeneracies
- Idea Since we have exact computation, we can
eliminate degeneracies by perturbing the data
numerically (not symbolically) - Symbolic must relate predicates directly to input
- Filtering should make perturbed data not much
slower in non-degenerate cases.
54Numerical Perturbation
- Key is capturing the designers intent
- Random perturbation of input surfaces in boundary
evaluation can easily lead to undesirable results - True for numeric or symbolic perturbation
- New approach assumes only one degenerate
situation, at known point in CSG-style tree.
55Generating Perturbation
- Idea need to perturb in or out at level
where degeneracy is occurring. - Capture designers intent
- Union perturb both out
- Intersection perturb both in
- Difference (A-B) A in, B out
- Perturbation will be less than some tolerance
value
56Propagating Information
- Propagate to children, all the way to leaves
- For difference A-B, must propagate opposite
perturbation direction - Apply scale in/out at leaves
- Results in perturbed primitives
- Must repeat calculations for entire tree
- When bad node is reached, no degeneracy
57Outline
- Motivation
- The Rational Univariate Reduction
- Background
- Computation Process
- Implementation
- Incorporating the RUR
- Numerical Perturbation
- Conclusion and Future Work
58Summary
- RUR method can find solutions to degenerate
systems easily - Application to several degenerate cases
- Less efficient than other general-position
methods - Numerical perturbation technique to eliminate
degeneracies
59Future Work
- Near term
- Add RUR check to ESOLID system for degeneracy
detection - Add numerical perturbation approach for
degeneracies - Optimizations of RUR implementation
- Long term
- Boundary evaluation for higher degree surfaces,
handling all degeneracies
60Questions?
- Thank you for listening (and staying)!
- Contact
- John Keyser keyser_at_cs.tamu.edu
- J. Maurice Rojas rojas_at_math.tamu.edu
- Koji Ouchi kouchi_at_cs.tamu.edu
- Funding
- NSF/DARPA CARGO
- NSF ITR (small)