Detecting Degenerate Object Configurations with the Rational Univariate Reduction

advertisement
Detecting Degenerate Object
Configurations with the
Rational Univariate Reduction
John Keyser
Department of Computer Science
Texas A&M University
October 9, 2003
DIMACS CAD/CAM Workshop
1
Outline
• Motivation
• The Rational Univariate Reduction
– Background
– Computation Process
– Implementation
• Incorporating the RUR
• Numerical Perturbation
• Conclusion and Future Work
October 9, 2003
DIMACS CAD/CAM Workshop
2
Robustness in Boundary
Evaluation
• Like many geometric operations, boundary
evaluation subject to robustness problems
• Exact computation approaches, used in
computational geometry, haven’t been
applied as readily
• Exact computation with curved objects
generally requires computer algebra
methods.
October 9, 2003
DIMACS CAD/CAM Workshop
3
Goal
(big picture)
• Support boundary evaluation for curved
solids robustly
– Numerical error
– Degeneracies
October 9, 2003
DIMACS CAD/CAM Workshop
4
Need 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
October 9, 2003
DIMACS CAD/CAM Workshop
5
Exact 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
October 9, 2003
DIMACS CAD/CAM Workshop
6
ESOLID
• 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
October 9, 2003
DIMACS CAD/CAM Workshop
7
ESOLID (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.
October 9, 2003
DIMACS CAD/CAM Workshop
8
ESOLID
Speedups
• 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
October 9, 2003
DIMACS CAD/CAM Workshop
9
ESOLID
Performance
• Applied to real-world cases
– Performance, with speedups, within one order
of magnitude of Boole
October 9, 2003
DIMACS CAD/CAM Workshop
10
Problem:
• 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
October 9, 2003
DIMACS CAD/CAM Workshop
11
Approach
• 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
October 9, 2003
DIMACS CAD/CAM Workshop
12
Outline
• Motivation
• The Rational Univariate Reduction
– Background
– Computation Process
– Implementation
• Incorporating the RUR
• Numerical Perturbation
• Conclusion and Future Work
October 9, 2003
DIMACS CAD/CAM Workshop
13
Rational 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
October 9, 2003
DIMACS CAD/CAM Workshop
14
Previous 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 – don’t
work well for exact computation
• Sparse resultant – Emiris (and others)
October 9, 2003
DIMACS CAD/CAM Workshop
15
Context 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
October 9, 2003
DIMACS CAD/CAM Workshop
16
Outline
• Motivation
• The Rational Univariate Reduction
– Background
– Computation Process
– Implementation
• Incorporating the RUR
• Numerical Perturbation
• Conclusion and Future Work
October 9, 2003
DIMACS CAD/CAM Workshop
17
RUR operation
• Given m polynomials in n variables
– Rational coefficients
• Determine all roots of system by finding a
set of polynomials:
h(x):
h1(a), h2(a), etc.
October 9, 2003
minimal polynomial
coordinate polynomials
DIMACS CAD/CAM Workshop
18
RUR 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.
October 9, 2003
DIMACS CAD/CAM Workshop
19
Procedure for Computing RUR
Determine
Matrix
Labels
Input
Polynomials
Compute
Perturbed
System
Perturb
For Each
Coordinate
October 9, 2003
DIMACS CAD/CAM Workshop
Minimal
Polynomial
Coordinate
Polynomials
20
Computing 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
October 9, 2003
DIMACS CAD/CAM Workshop
21
Using 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
October 9, 2003
DIMACS CAD/CAM Workshop
22
Procedure for Computing RUR
Determine
Matrix
Labels
Input
Polynomials
Compute
Perturbed
System
Perturb
For Each
Coordinate
October 9, 2003
DIMACS CAD/CAM Workshop
Minimal
Polynomial
Coordinate
Polynomials
23
Computing the Minimal
Polynomial
• If input system is f1=f2=…=fn=0 in variables
x1,…,xn
Compute perturbed system:
f0=u0+u1x1+u2x2+…+unxn
fi’=fi-sfi* for i=1 to n
ui are chosen randomly
fi* are polynomials with same support as fi, but
with random coefficients
October 9, 2003
DIMACS CAD/CAM Workshop
24
Computing 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.
October 9, 2003
DIMACS CAD/CAM Workshop
25
Procedure for Computing RUR
Determine
Matrix
Labels
Input
Polynomials
Compute
Perturbed
System
Perturb
For Each
Coordinate
October 9, 2003
DIMACS CAD/CAM Workshop
Minimal
Polynomial
Coordinate
Polynomials
26
Computing 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.
October 9, 2003
DIMACS CAD/CAM Workshop
27
Computing 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.
October 9, 2003
DIMACS CAD/CAM Workshop
28
Extensions
Affine 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).
October 9, 2003
DIMACS CAD/CAM Workshop
29
Extensions
Non-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.
October 9, 2003
DIMACS CAD/CAM Workshop
30
Computing with the RUR
• Given the RUR, can find roots of minimal
polynomial
– We need all roots, real and complex
– Various techniques – Aberth’s method is one for
iteratively converging to roots.
• Substitute these into coordinate polynomials
to determine (complex) coordinates of
roots.
October 9, 2003
DIMACS CAD/CAM Workshop
31
Procedure for Computing RUR
Find Roots
(Aberth’s
Method)
Minimal
Polynomial
x-coordinate
Polynomial
October 9, 2003
a1
y-coordinate
Polynomial
a2
a2,x
an,x
a1,y
a2,y
an,y
a1,z
a2,z
DIMACS CAD/CAM Workshop
an
z-coordinate
Polynomial
a1,x
…
…
an,z
32
Dealing 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
October 9, 2003
DIMACS CAD/CAM Workshop
33
Finding 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.
October 9, 2003
DIMACS CAD/CAM Workshop
34
Representing 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
October 9, 2003
DIMACS CAD/CAM Workshop
35
Functionality
• 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
October 9, 2003
DIMACS CAD/CAM Workshop
36
Functionality
• 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
October 9, 2003
DIMACS CAD/CAM Workshop
37
Outline
• Motivation
• The Rational Univariate Reduction
– Background
– Computation Process
– Implementation
• Incorporating the RUR
• Numerical Perturbation
• Conclusion and Future Work
October 9, 2003
DIMACS CAD/CAM Workshop
38
Performance
• Implemented in C++, using Gnu MP for
multiprecision arithmetic
• Exact implementation of sparse resultant
– Based off of Emiris’ implementation
– Uses exact computation throughout
October 9, 2003
DIMACS CAD/CAM Workshop
39
Determining 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
October 9, 2003
DIMACS CAD/CAM Workshop
40
Timing 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
October 9, 2003
DIMACS CAD/CAM Workshop
41
Timing 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
October 9, 2003
DIMACS CAD/CAM Workshop
42
Checking Root Bounds
• Surprisingly, >98% 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.
October 9, 2003
DIMACS CAD/CAM Workshop
43
Optimizations
• 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
October 9, 2003
DIMACS CAD/CAM Workshop
44
Outline
• Motivation
• The Rational Univariate Reduction
– Background
– Computation Process
– Implementation
• Incorporating the RUR
• Numerical Perturbation
• Conclusion and Future Work
October 9, 2003
DIMACS CAD/CAM Workshop
45
Direct 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
October 9, 2003
DIMACS CAD/CAM Workshop
46
Incorporating 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
October 9, 2003
DIMACS CAD/CAM Workshop
47
Detecting 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
October 9, 2003
DIMACS CAD/CAM Workshop
48
Degeneracies
October 9, 2003
DIMACS CAD/CAM Workshop
49
Specific 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
October 9, 2003
DIMACS CAD/CAM Workshop
50
Specific 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
October 9, 2003
DIMACS CAD/CAM Workshop
51
Outline
• Motivation
• The Rational Univariate Reduction
– Background
– Computation Process
– Implementation
• Incorporating the RUR
• Numerical Perturbation
• Conclusion and Future Work
October 9, 2003
DIMACS CAD/CAM Workshop
52
Numerical 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.
October 9, 2003
DIMACS CAD/CAM Workshop
53
Numerical Perturbation
• Key is capturing the designer’s 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.
October 9, 2003
DIMACS CAD/CAM Workshop
54
Generating Perturbation
• Idea: need to perturb “in” or “out” at level
where degeneracy is occurring.
• Capture designer’s intent:
– Union – perturb both out
– Intersection – perturb both in
– Difference (A-B) – A in, B out
• Perturbation will be less than some
tolerance value
October 9, 2003
DIMACS CAD/CAM Workshop
55
Propagating 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
October 9, 2003
DIMACS CAD/CAM Workshop
56
Outline
• Motivation
• The Rational Univariate Reduction
– Background
– Computation Process
– Implementation
• Incorporating the RUR
• Numerical Perturbation
• Conclusion and Future Work
October 9, 2003
DIMACS CAD/CAM Workshop
57
Summary
• 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
October 9, 2003
DIMACS CAD/CAM Workshop
58
Future 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
October 9, 2003
DIMACS CAD/CAM Workshop
59
Questions?
• Thank you for listening (and staying)!
• Contact:
– John Keyser: keyser@cs.tamu.edu
– J. Maurice Rojas: rojas@math.tamu.edu
– Koji Ouchi: kouchi@cs.tamu.edu
• Funding
– NSF/DARPA CARGO
– NSF ITR (small)
October 9, 2003
DIMACS CAD/CAM Workshop
60
Download