Professional Documents
Culture Documents
Monique Teillaud
[Florence, 1997]
Triangular period
Curves already appear for linear input
Bisecting curve
2D line segments
arcs of parabolas
Curves already appear for linear input
Voronoi diagram
2D line segments
arcs of parabolas
Karavelas
c - CGAL
Curves already appear for linear input
Voronoi diagram
3D line segments
patches of quadric surfaces
More generally:
useful
interesting
not so hard to understand
Why we should not be afraid of Computer Algebra
useful
interesting
not so hard to understand
people are nice
Why we should not be afraid of Computer Algebra
trying to convice myself...
useful
interesting
not so hard to understand (?)
some people are nice
One tool: Resultant
Univariate case
P = a0 x m + · · · + am
Q = b0 x n + · · · + bn
a0 6= 0, b0 6= 0, m > n,
coefficients in a field K (algebraically closed).
Sylvester resultant
˛ a0 b0
˛ ˛
˛
˛ a1 a0 b1 b0
˛ ˛
˛
˛ ˛
˛ .. .. ˛
˛
˛ a1 . b1 . ˛
˛
.. .. ..
˛ ˛
˛ ˛
˛ . . . b0 ˛
˛ ˛
˛ . .. .. . ˛
a0 x m + · · · + am ˛ . .
P = ˛ . . . . b1
˛
˛
Q = b0 x n + · · · + bn ˛
˛ .. .. ..
˛
˛
˛
˛ . . a0 . ˛
˛
˛ . . . . ˛
˛ . .. .. .. ˛
˛ . a1 ˛
˛ ˛
˛ .. .. .. .. ˛
Sylvester resultant = ˛ am
˛
. . . .
˛
˛
.. .. .. ..
˛ ˛
˛ ˛
˛
˛ am . . . . ˛
˛
˛
˛ .. .. .. ˛
˛
˛
˛ . . bn . ˛
˛
˛ .. .. .. ˛
.
˛ ˛
˛ . bn . ˛
˛ ˛
˛ .. .. ˛
˛
˛ . . ˛
˛
˛ am bn ˛
Sylvester resultant
˛ a0 b0
˛ ˛
˛
˛ a1 a0 b1 b0
˛ ˛
˛
˛ ˛
˛ .. .. ˛
˛
˛ a1 . b1 . ˛
˛
.. .. ..
˛ ˛
˛ ˛
˛ . . . b0 ˛
˛ ˛
˛ . .. .. . ˛
a0 x m + · · · + am ˛ . .
P = ˛ . . . . b1
˛
˛
Q = b0 x n + · · · + bn ˛
˛ .. .. ..
˛
˛
˛
˛ . . a0 . ˛
˛
˛ . .. .. .. ˛
˛ . ˛
˛ . . a1 . . ˛
˛ ˛
˛ .. .. .. .. ˛
Sylvester resultant = ˛ am
˛
. . . .
˛
˛
.. .. .. ..
˛ ˛
˛ ˛
˛ am . . . . ˛
= 0 iff
˛ ˛
˛
˛ .. .. .. ˛
˛
. . bn .
P and Q have a ˛
˛
˛
˛
˛ .. .. .. ˛
common root in K. ˛
˛
˛
. . bn .
˛
˛
˛
˛ .. .. ˛
˛
˛ . . ˛
˛
˛ am bn ˛
Demystifying Resultant - I
ax + by − c = 0
dx + ey − f = 0
seen as: x unknown, y parameter
Demystifying Resultant - I
ax + by − c = 0
dx + ey − f = 0
seen as: x unknown, y parameter
a d
Sylvester Resultant =
by − c ey − f
Demystifying Resultant - I
ax + by − c = 0
dx + ey − f = 0
seen as: x unknown, y parameter
a d
Sylvester Resultant =
by − c ey − f
= a(ey − f ) − d(by − c)
q s
Demystifying Resultant - II
p t?
q s
t on Cpqs
(x − xc )2 + (y − yc )2 = r 2
p t?
q s
t on Cpqs
X /Z = xc
Y /Z = yc
R/Z = r 2 − xc2 − yc2 .
Demystifying Resultant - II
p
2xp xc + 2yp yc + (r 2 − xc2 − yc2 ) − (xp2 + yp2 ) =
t?
0
2xq xc + 2yq yc + (r 2 − xc2 − yc2 ) − (xq2 + yq2 ) = 0
iff
q s
2xs xc + 2ys yc + (r 2 − xc2 − yc2 ) − (xs2 + ys2 ) = 0
2xt xc + 2yt yc + (r 2 − xc2 − yc2 ) − (xt2 + yt2 ) = 0
xp2 + yp2
xp yp 1
xq2 + yq2
xq yq 1
iff =0
xs ys 1 xs2 + ys2
xt yt 1 xt2 + yt2
Demystifying Resultant - II
p
2xp xc + 2yp yc + (r 2 − xc2 − yc2 ) − (xp2 + yp2 ) =
t?
0
2xq xc + 2yq yc + (r 2 − xc2 − yc2 ) − (xq2 + yq2 ) = 0
iff
q s
2xs xc + 2ys yc + (r 2 − xc2 − yc2 ) − (xs2 + ys2 ) = 0
2xt xc + 2yt yc + (r 2 − xc2 − yc2 ) − (xt2 + yt2 ) = 0
xp2 + yp2
xp yp 1
xq2 + yq2
xq yq 1
iff =0
xs ys 1 xs2 + ys2
xt yt 1 xt2 + yt2
No:
methods often return a multiple of the resultant
−→ resultant hard to compute
Digression on algebraic degree
No:
methods often return a multiple of the resultant
−→ resultant hard to compute
the resultant may be factored
−→ predicate can have a lower degree
Digression on algebraic degree
No:
methods often return a multiple of the resultant
−→ resultant hard to compute
the resultant may be factored
−→ predicate can have a lower degree
a factor may be P 2 + Q 2
−→ the degree does not mean so much
Digression on algebraic degree
Degree of a predicate
−→ not trivial
Degree of an algorithm
−→ depends on the algebraic expressions of predicates
Degree of a geometric problem
−→ ?
Digression 7→ thread
Another tool: Sturm sequences
P = P0 , P1 , . . . , Pd ∈ R[X ]
α, β ∈ R ∪{−∞, +∞}
P0 = P
P1 = Q
P2 = −Rem(P0 , P1 )
..
.
Pk = −Rem(Pk −2 , Pk −1 )
Pk +1 = −Rem(Pk −1 , Pk ) = 0
where
Rem(A, B) = remainder of the Euclidean division of A by B
Sturm sequences
Sturm sequence of P =
sequence S(P, P 0 ) of signed reminders of P and P 0
Var (S(P, P 0 ); α, β)
is the number of roots of P in the interval [α, β]
Sturm sequences for dummies
Sturm sequences for dummies by a dummy
P = aX 2 + bX + c
P 0 = 2aX + b
b2
P = P 0 .( X2 + 4a
b
) − ( 4a − c)
Sturm sequences for dummies by a dummy
P = aX 2 + bX + c
P
P 0 = 2aX + b
b2
+ + P = P 0 .( X2 + 4a
b
) − ( 4a − c)
∆
+ P0 = P, P1 = P 0 , P2 = ∆
+
+ if ∆ > 0
α = −∞, β = +∞
P0 − Var (P; α) = 2
Var (P; β) = 0
α β 2 roots
Sturm sequences
signs of
polynomial expressions
Comparing intersection points
signs of comparison of
polynomial expressions algebraic numbers
Comparing intersection points
signs of comparison of
polynomial expressions algebraic numbers
Sturm sequences −→
signs of
polynomial expressions
Practical efficiency
|P a(x)| > ε
?
y n
− + − +
P3 > 0 P2 > 0; P3 < 0 P3 < 0 P2 , P3 > 0
K K
28 6 28 6
Case 3,4 Case 4,5 Case 2,3 Case 1,2
− + − +
l1 > l2 l1 < l2
D D
13 10 13 10
Case 3b4 Case 3a,4 Case 2,3b Case 2,3a
− + − +
l1 > l2 P4 > 0 P4 > 0 l1 < l2
J0 J0
3 7 3 7
Case 3a Case 3b
− + − +
P4 l1 < l2 l1 > l2 P4
4 12 4 12
Case 4 Case 3a Case 2 Case 3b
y
v
C1
u
u
u
q12
u
t
J
B1 A1 A2
A1
√
I1
A1 x
l1 r1 l2 r2
K = 0 ⇐⇒ l1 , r1 , l2 , r2 harmonic division
Algebra is not just “computations”
it has a meaning...!
y
v
C1
u
u
u
q12
u
t
J
B1 A1 A2
A1
√
I1
A1 x
l1 r1 l2 r2
K = 0 ⇐⇒ l1 , r1 , l2 , r2 harmonic division
y
v
C1
u
u
u
q12
u
t
J
B1 A1 A2
A1
√
I1
A1 x
l1 r1 l2 r2
K = 0 ⇐⇒ l1 , r1 , l2 , r2 harmonic division
Implemented
Dupont
c et al
Arrangement of quadrics
Projection approach
Wolpert
c
Surfacic approach
Arrangement of quadrics
Sweeping approach
Sweeping plane:
Trapezoidal map of evolving conics
Volumic approach:
vertical decomposition
Arrangement of quadrics
Sweeping approach
Events:
- new quadric
- features in the map intersect
Arrangement of quadrics
Sweeping approach
worst-case
Events:
?
- new quadric
- features in the map intersect
x solution of
Qi (x, y , z1 ) = 0 Qk (x, y , z2 ) = 0
∃ y , z1 , z2 s.t. and
Qj (x, y , z1 ) = 0 Ql (x, y , z2 ) = 0
worst-case
Events:
?
- new quadric
- features in the map intersect
x solution of
Qi (x, y , z1 ) = 0 Qk (x, y , z2 ) = 0
∃ y , z1 , z2 s.t. and
Qj (x, y , z1 ) = 0 Ql (x, y , z2 ) = 0
δi (x) = kx − pi k − ri
Apollonius diagram
Additively weighted Voronoi diagram
δi (x) = kx − pi k − ri
Ci ⊂ R3
: x3 = kx − pi k − ri
⇐⇒ (x3 + ri )2 = (x − pi )2 x3 + ri > 0 half-cone
Apollonius diagram
Additively weighted Voronoi diagram
δi (x) = kx − pi k − ri
Ci ⊂ R3
: x3 = kx − pi k − ri
⇐⇒ (x3 + ri )2 = (x − pi )2 x3 + ri > 0 half-cone
Apollonius diagram =
lower envelope of the half-cones.
Bisector of σi and σj =
projection of a plane conic section Ci ∩ Cj .
Apollonius diagram
Additively weighted Voronoi diagram
δi (x) = kx − pi k − ri
Ci ⊂ R3
: x3 = kx − pi k − ri
⇐⇒ (x3 + ri )2 = (x − pi )2 x3 + ri > 0 half-cone
Apollonius diagram =
lower envelope of the half-cones.
Bisector of σi and σj =
projection of a plane conic section Ci ∩ Cj .
√
Σi sphere ⊂ R3 , center (pi , ri ) radius 2ri
Apollonius diagram
Additively weighted Voronoi diagram
δi (x) = kx − pi k − ri
Ci ⊂ R3
: x3 = kx − pi k − ri
⇐⇒ (x3 + ri )2 = (x − pi )2 x3 + ri > 0 half-cone
Apollonius diagram =
lower envelope of the half-cones.
Bisector of σi and σj =
projection of a plane conic section Ci ∩ Cj .
√
Σi sphere ⊂ R3 , center (pi , ri ) radius 2ri
Xi projection of x onto Ci
x ∈ A(σi ) iff kx − pi k − ri < kx − pj k − rj (∀j)
iff pow(Xi , Σi ) < pow(Xi , Σj )
Apollonius diagram
Additively weighted Voronoi diagram
δi (x) = kx − pi k − ri
Ci ⊂ R3
: x3 = kx − pi k − ri
⇐⇒ (x3 + ri )2 = (x − pi )2 x3 + ri > 0 half-cone
Apollonius diagram =
lower envelope of the half-cones.
Bisector of σi and σj =
projection of a plane conic section Ci ∩ Cj .
√
Σi sphere ⊂ R3 , center (pi , ri ) radius 2ri
A(σi ) = projection of the intersection of
the half-cone Ci with the power region of Σi
Same in Rd
Tricky predicates
Degree 16
Karavelas
c
Tricky predicates
Degree 16
Karavelas
c
Halperin
c et al.
ευχαριστ ώ
Material taken from:
Greece
National University of Athens
University of Crete
Germany
Max-Planck Institut für Informatik
Universität des Saarlandes
Israel
Tel-Aviv University
France
Loria
INRIA Sophia Antipolis
ευχαριστ ώ