slides.pdf

Algorithms for semi-algebraic curves and surfaces
B. Mourrain
GALAAD, INRIA Méditerranée, Sophia Antipolis
[email protected]
July 21, 2011
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
1 / 53
SHAPES
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
2 / 53
Context
Acquisition of the 3rd dimension easier.
Increasing representations of virtual shapes.
Need of fine and compact models of the geometry.
Need of powerfull and precise techniques for geometric
computations.
Approximation and certification are key issues.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
3 / 53
Computer Aided Geometric Design
I
Interpolation of points, resp. curves by surfaces.
I
(self)-intersection computation.
I
Closest point or distance computation (collision).
I
Surfaces filling holes, with constraints on the boundary.
I
Pipes, canal surfaces, offset, fillet, blending, . . .
I
Medial axis or skeletal structure.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
4 / 53
r Representation:
I semi-algebraic models: Bezier, NURBS, piecewise rational
parameterisation,
I many pacthes, but “small” degree,
I with errors on the input coefficients;
I stored using machine numbers,
r Computation:
I points: intersection points, singularities, ombilic points,
I curves: apparent contours, (auto-)intersections, ridges,
I surfaces: offsets, blending, drafts, enveloppes,
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
5 / 53
Shape representation
Shape representations
I
Point clouds [1] [2] [3]
I
Meshes [1] [2] [3]
I
Parametric curves, surfaces, volumes . . . [1] [2] [3]
I
Implicit curves, surfaces, volumes . . . [1] [2] [3]
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
7 / 53
Shape representation
Parametric and implicit curves
Univariate Bernstein representation
For any f (x) ∈ Q[x] of degree d, with
d
d
X
X
d
f (x) =
ci
(x − a)i (b − x)d−i (b − a)−d =
ci Bdi (x; a, b),
i
i=0
i=0
The c = [ci ]i=0,...,d are the control coefficients of f on [a, b].
Properties:
Pd
Pd
d−i
i
i
i
I
i=0 Bd (x; a, b) = 1;
i=0 (a d + b d ) Bd (x; a, b) = x;
I f (a) = c0 , f (b) = cd ;
Pd−1
i
I f 0 (x) = d
i=0 ∆(c)i Bd−1 (x; a, b) where ∆(c)i = ci+1 − ci ;
I (x, f (x))x∈[a,b] ∈ convex hull of the points (a d−i + b i , ci )i=0..d
d
d
I #{f (x) = 0; x ∈ [a, b]} = V (c) −2p, p ∈ N.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
9 / 53
Shape representation
Parametric and implicit curves
De Casteljau subdivision algorithm
(
ci0 = ci , i = 0, . . . , d,
r −1
cir (t) = (1 − t) cir −1 (t) + t ci+1
(t), i = 0, . . . , d − r .
I
I
c− (t) = (c00 (t), c01 (t), . . . , c0d (t)) represents f on [a, (1 − t) a + t b].
c+ (t) = (c0d (t), c1d−1 (t), . . . , cd0 (t)) represents f on [(1 − t) a + t b, b].
The geometric point of view.
B. Mourrain
The algebraic point of view.
Algorithms for semi-algebraic curves and surfaces
10 / 53
Shape representation
Parametric and implicit curves
Spline representation
Nodes: t0 ≤ t1 ≤ · · · ≤ tl ∈ R
Basis functions:
1 if ti ≤ t < ti+1
0 otherwise.
t − ti
ti+d+1 − t
Nid−1 (t) +
N d−1 (t).
Nid (t) =
ti+d − ti
ti+d+1 − ti+1 i+1
Ni0 (t) =
Support of Nid (t) =]ti , ti+d+1 [;
I Positive basis of functions which are piecewise polynomials of degree
d on the subdivision t0 , t1 , . . . , tl ;
I Sum to 1;
Function representation:
I
f (t) =
L
X
ci Nid (t)
i=1
I
I
Fast and stable algorithms for node insertion, evaluation;
Simple representation of the derivative;
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
11 / 53
Shape representation
Parametric and implicit curves
Parametric curve
Piecewise polynomial parametrisation:
→ Rm
L
X
t →
7
ci Nid (t)
σ:I
i=0
where cj ∈ Rm are the control points.
Rational parametrisation:
→ Rm
PL
wi ci Nid (t)
t 7→ Pi=0
L
d
i=0 wi Ni (t)
σ:I
where cj ∈ Rm are the control points and wi the weights.
Also called Non-Uniform Rational BSpline (NURBS).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
12 / 53
Shape representation
Parametric and implicit curves
Implicit curves
I
I
I
An algebraic curve C ⊂ R2 is defined by an equation f (x, y ) = 0
where f (x, y ) ∈ R[x, y ] is squarefree.
The degree of C is the minimal degree of a polynomial f defining C.
The tangent line at a point (x0 , y0 ) ∈ C is
(x − x0 )∂x f (x0 , y0 ) + (y − y0 )∂y f (x0 , y0 ) = 0
Points with a vertical tangent: f (x0 , y0 ) = ∂y f (x0 , y0 ) = 0.
Points with a horinzontal tangent: f (x0 , y0 ) = ∂x f (x0 , y0 ) = 0.
I
Singular points: f (x0 , y0 ) = ∂x f (x0 , y0 ) = ∂y f (x0 , y0 ) = 0.
I
Multiplicity of (x0 , y0 ) ∈ C: valuation of f (x0 + u, y0 + v ).
Theorem (Bezout)
Two planar curves C1 of degree d1 , C2 of degree d2 have either an infinite number
of common points or intersect in atmost d1 d2 points.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
13 / 53
Shape representation
Parametric and implicit surfaces
Rectangular patches
Piecewise polynomial parametrisation:
σ : I × J → Rm
L X
L0
X
0
(s, t) 7→
ci,j Nid (s)Njd (t)
i=0 j=0
where ci,j ∈ Rm are the control points.
Rational parametrisation:
σ : I × J → Rm
PL
(s, t) 7→
PL0
d0
d
i=0
j=0 wi,j ci,j Ni (s)Nj (t)
PL PL0
d
d0
i=0
j=0 wi,j Ni (s)Nj (t)
where ci,j ∈ Rm are the control points and wi,j the weight functions.
+ A standard in Computer Aided Geometric Design.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
15 / 53
Shape representation
Parametric and implicit surfaces
Triangular patches
X
f (s, t) =
ci,j,k Ni,j,k (s, t)
i+j+k=d
where
Ni,j,k (s, t) =
d! i j
s t (1 − s − t)k .
i!j!k!
I
Parameters domain in the unit 2d simplex.
I
De Casteljau-like subdivision and insertion algorithm at a new point.
Arithmetic complexity O(d 3 ), memory space O(d 2 ).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
16 / 53
Shape representation
Parametric and implicit surfaces
Implicit surfaces
I
An algebraic surface S is defined by f (x, y , z) = 0 with f ∈ R[x, y , z]
squarefree.
I
The degree of S is the minimal degree of a polynomial f defining S.
I
The tangent plane at a point (x0 , y0 , z0 ) ∈ S is
(x−x0 )∂x f (x0 , y0 , z0 )+(y −y0 )∂y f (x0 , y0 , z0 )+(z−z0 )∂z f (x0 , y0 , z0 ) = 0
I
Singular points of S:
f (x0 , y0 , z0 ) = ∂x f (x0 , y0 , z0 ) = ∂y f (x0 , y0 , z0 ) = ∂z f (x0 , y0 , z0 ) = 0.
I
Multiplicity of (x0 , y0 , z0 ) ∈ S: valuation of f (x0 + u, y0 + v , z0 + w ).
Theorem (Bezout)
Three surfaces S1 of degree d1 , S2 of degree d2 , S3 of degree d3 have either an
infinite number of common points or intersect in atmost d1 d2 d3 points.
Intersection of surfaces defined by two or more equations
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
17 / 53
Shape representation
Exercises
Exercise 1.1:
I
I
I
Compute the coefficients in the Bernstein basis of degree d on [0, 1] of 1, x, x 2 , . . ..
Prove the derivation rule on the Bernstein representation.
Prove De Casteljau subdivision rule on the Bernstein representation.
Exercise 1.2: Put in equations the following problems:
I
I
I
I
I
Intersection of planar implicit, parametric curves;
Raycasting for implicit surfaces;
Intersection of implicit and parametric surfaces;
Closest point on a curve or a surface;
Offset of a curve or a surface;
Exercise 1.3: Let P1 , . . . , PN be points in the plane. We fix a degree (d1 , d2 ). The objective is to determine a polynomial of
bidegree ≤ (d1 , d2 ) defining an implicit curve which fits this set of points.
I
Construct the linear system that satisfied the vector of coefficients of a polynomial expressed in the Bernstein basis in
order to vanishes at the points Pi ;
I
I
Use the Singular Value Decomposition of the corresponding matrix to find an optimal solution of the fitting problem;
Generate points from a parametric curve and use the previous construction to approximate them by implicit curves of
increasing degrees.
Exercise 1.4:
I
I
Show that the set of rational curves in the plane of degree ≤ d is of dimenion ≤ 3(d + 1).
I
Show that a curve of degree d with a singular point of multiplicity d − 1, is parametrised by a rational function.
Compute the dimension of the set of implicit curves. Show that all implicit curves cannot be parametrised by a rational
function.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
19 / 53
Computing points on curves and surfaces
Geometric problems we want to solve
I
Intersection of planar curves;
I
Topology and arrangement of planar curves;
I
Raycasting for implicit surfaces;
I
Intersection of implicit and parametric surfaces;
I
Closest point on a curve or a surface;
I
Offset of a curve or a surface;
I
Voronoi diagram of curves and surfaces;
I
...
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
21 / 53
Computing points on curves and surfaces
Local methods
Newton method
f : Rn → Rn
x 7→ f(x)
1
2
Choose x0 ∈ Rn ;
Iterate xn+1 := xn − Df(xn )−1 f(xn ) until kxn+1 − xn k < .
I
Quadratic local convergence.
I
No guaranty of global convergence.
I
No guaranty of what, it could converge to.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
23 / 53
Computing points on curves and surfaces
Local methods
Local convergence criterion
Definition
I
I
I
βf (x) = kDf(x)−1 f(x)k
1
1
γf (x) = supk≥2 k k!
Df(x)−1 D k f(x)k k−1
αf (x) = βf (x) γf (x).
Let δ(u) := 14 (1 + u −
p
(1 + u)2 − 8 u).
Theorem (Schub Smale’93)
√
If αf (x) < α0 ≤ 14 (13 − 3 17) ∼ 0.1577 then
I
0
f has a unique zero ζ in the ball B(x, γfδ(x)
), with
δ0 = δ(α0 ) ≤
I
√
2− 2
2
∼ 0.2929;
0
for each point z ∈ I (x, γfδ(x)
), Newton’s method starting from z
converges quadratically to ζ.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
24 / 53
Computing points on curves and surfaces
Local methods
Homotopy
+ Deform a system f0 = 0 with known solutions into the system to solve
f = 0.
I
Linear homotopy: F (t, x) = (1 − t)f0 (x) + t f(x)
I
Toric homotopy: use a lifting parameter as in BKK theorem.
I
Geometric homotopy: deform the geometry of similar configurations.
Characteristics:
I
Path following using predictor-corrector schemes.
I
Assume the same number of solutions for f0 = 0 and f = 0.
I
Applied for square systems.
I
Numerical certification issues.
I
Adaptation for components of dimension ≥ 1.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
25 / 53
Computing points on curves and surfaces
Subdivision methods
Subdivision solver in Bernstein bases
Given a polynomial f (x) ∈ R[x] of degree d,
I
We express it in the Bernstein basis on the interval [a, b]:
f (x) =
d
X
ci Bdi (x; a, b).
i=0
I
We use the coefficient sequence [c0 , . . . , cd ] to isolate its real roots on
[a, b].
I
We count the number of sign variation V (c).
I
I
I
B. Mourrain
If V (c) = 0, there is not root of f in ]a, b[;
If V (c) = 1, there is one root of f in ]a, b[;
Otherwise, we can subdivide the interval.
Algorithms for semi-algebraic curves and surfaces
27 / 53
Computing points on curves and surfaces
Subdivision methods
Isolation of real roots
Algorithm (isolation of the roots of f on the interval [a, b] )
input: A polynomial f := (c, [a, b]) with simple real roots (and ).
If V (c) > 1 and |b − a| > , subdivide;
If V (c) = 0, remove the interval.
If V (c) = 1, output interval containing one and only one root.
(If |b − a| ≤ and V (c) > 0 output the interval).
output: list of isolating intervals in [a, b] for the real roots of f (or the
-multiple root).
I
Multiple roots (and multiplicity) within a precision .
I
x := t/(1 − t): Uspensky method.
I
Complexity: OB (d 6 τ 2 ) [MVY02],[RZ03],[MRR04],[EKMW05];
ÕB (d 4 τ 2 ) [KM05], [ESY06], [EMT06], [ET07].
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
28 / 53
Computing points on curves and surfaces
Subdivision methods
Proposition (Descartes’ rule)
For f := (c, [a, b]), #{f (x) = 0; x ∈ [a, b]} = V (c) −2p, p ∈ N.
Theorem
V (c− ) + V (c+ ) ≤ V (c).
Theorem (Vincent’36)
If there is no complex root in the complex disc
D( 12 , 12 ), then V (c) = 0.
Theorem (Two circles, Ostrowski)
If there is no complex root in the union of the
1
complex discs D( 21 ± i 2√
, √13 ) except a simple
3
real root, then V (c) = 1.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
29 / 53
Computing points on curves and surfaces
Subdivision methods
Continued Fraction solver [AC’76, ..., TE’08]
+ Instead of changing the interval:
I
Fix it: ]0, +∞[
I
Change the fonction, by homography transformation:
a b
H : ]0, +∞[ → ] , [
c d
a+bx
x 7→
c +dx
I
Work with (f ◦ H, H)
r Regularity:
I
I
V (f ◦ H) = 0 ⇒ no root;
V (f ◦ H) = 1 ⇒ a single root;
where V (·) is the number of sign changes of the coefficients in the
monomial basis.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
30 / 53
Computing points on curves and surfaces
Subdivision methods
r Subdivision:
I
Compute a lower bound b = L(f ) ∈ N of the roots of f in R+ ;
I
Compute f (x) := Tb (f ) = f (x + n) and repeat until L(f ) = 0;
I
1
).
Split: T1 (p) = p(x + 1), R(p) = (x + 1)d p( x+1
B
0
x= x+B
0
CF(α) = bαc+
1
B. Mourrain
CF
1
α−bαc
x= x+1
x= 1/(x+1)
0
1
0
Algorithms for semi-algebraic curves and surfaces
31 / 53
Computing points on curves and surfaces
Subdivision methods
+ Continued Fraction expansion of the roots:
1
α = b0 +
1
b1 + b2 +...
where bi is the total shift between the i th and (i + 1)th inversions.
Theorem ([Vincent;1836], [Uspensky;1948], [Alesina,Galuzzi;1998])
Let f ∈ Z[x], and b0 , b1 , . . . , bn ∈ Z+ , n > O(d τ ). The map
1
x 7→ b0 +
1
b1 +
1
..
. bn +
x
transforms f (x) to f˜(x) such that
1
2
V (f˜) = 0 ⇔ f has no positive real roots.
V (f˜) = 1 ⇔ f has one positive real root.
2O(dτ ) [Vincent; 1836], [Uspensky;1948] . . . ,
ÕB (d 5 τ 3 ) [Akritas;1980], [Akritas,Bocharov,Strzébonski;2005], . . .
ÕB (d 4 τ 2 ) [Emiris, Tsigaridas.; 2006]; Expected ÕB (d 3 τ ) [Tsigaridas, Emiris;
B.2008],
Mourrain. . .
Algorithms for semi-algebraic curves and surfaces
32 / 53
Computing points on curves and surfaces
Subdivision methods
Basic operators:
I Hλ : p(x) 7→ p(λ x)
I Ta : p(x) 7→ p(x + a)
I R : p 7→ x deg(p) p(1/x)
Correspondances:
x −a
a+bt
∈ [0, +∞[ ↔ x =
∈ [a, b[
1−x
1+t
a+bt
x −a
) ↔ f (x) = (b − x)d p(
)
p(t) = (1 + t)d f (
1+t
b−x
d
d
X
X
ai i
i
ai t ↔
Bd (x; a, b)
d
t=
i=0
i=0
i
a+b
)
2
t +1 d
t
a+b
RT1 R(p) = (
) p(
) ↔ c− · Bd (x;
, b)
t
t +1
2
T1 (p) = p(t + 1) ↔ c+ · Bd (x; a,
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
33 / 53
Computing points on curves and surfaces
Subdivision methods
Multivariate subdivision solver

P
d1 ,...,dn
1

 f1 (u) = i1 ,...,in bi1 ,...,in Bi1 ,...,in (u1 , . . . , un ),
..
.

P

,...,dn
fs (u) = i1 ,...,in bis1 ,...,in Bid11,...,i
(u1 , . . . , un ),
n
Algorithm
1
preconditioning on the equations;
2
reduction of the domain;
3
if the reduction ratio is too small, subdivision of the domain.
r Global quadratic convergence of C(b) to f , by subdivision.
r Local quadratic convergence for precond. reductions.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
34 / 53
Computing points on curves and surfaces
Subdivision methods
Preconditioning (for square systems)
Transform f into f̃ = M f
a) Optimize the distance between the equations:
X
||f ||2 =
|b(f )i1 ,...,in |2 ,
0≤i1 ≤d1 ,...,0≤in ≤dn
by taking for M, the matrix of eigenvectors of Q = (hfi |fj i)1≤i,j≤s .
b) M = Jf−1 (u0 ) for u0 ∈ D.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
35 / 53
Computing points on curves and surfaces
Subdivision methods
Reduction
mj (f ; xj ) =
Mj (f ; xj ) =
Pdj
ij
ij =0 min{0≤ik ≤dk ,k6=j} bi1 ,...,in Bdj (xj ; aj , bj )
Pdj
ij
ij =0 max{0≤ik ≤dk ,k6=j} bi1 ,...,in Bdj (xj ; aj , bj )
Proposition
For any u = (u1 , . . . , un ) ∈ D, and any j = 1, . . . , n, we have
mj (f ; uj ) ≤ f (u) ≤ Mj (f ; uj ).
Use the roots of mj (f , uj ) = 0, Mj (f , uj ) = 0
to reduce the domain of search.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
36 / 53
Computing points on curves and surfaces
Subdivision methods
Theorem (Multivariate Vincent theorem)
If f (x) has no root in the complex polydisc D(1/2, 1/2)n , then the
coefficients of f in the Bernstein basis of [0, 1]n are of the same sign.
I
Convergence of the control polygon:
Theorem
There exists κ2 (f ) such that for D of size small enought,
∀x ∈ D; |f (x) − b(f ; x)| ≤ κ2 (f ) 2 .
I
Local quadratic convergence of the reduction:
Proposition
Let D a domain of size containing a simple root of f . There exists
κf > 0, such that for small enought
|M̃j (f̃; uj ) − m̃j (f̃; uj )| ≤ κf 2 .
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
37 / 53
Computing points on curves and surfaces
Subdivision methods
Experiments
sbd subdivision.
rd reduction, based on a univariate root-solver using the Descarte’s rule.
sbds subdivision using the preconditioner (a).
rds reduction using the global preconditioner (a).
rdl reduction using the jacobian preconditioner (b).
method
iterations
subdivisions
sbd
4826
4826
rd
2071
1437
sbds
3286
3286
rds
1113
748
rdl
389
116
bidegrees (12,12), (12,12)
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
resultat
220
128
152
88
78
time (ms)
217
114
180
117
44
38 / 53
Computing points on curves and surfaces
Subdivision methods
method
iterations
subdivisions
output
sbd
161447
161447
61678
rd
731
383
36
sbds
137445
137445
53686
rds
389
202
18
rdl
75
34
8
bidegrees (2,3), (3,4); 3 singular solutions.
method
iterations
subdivisions
output
sbd
235077
235077
98250
rd
275988
166139
89990
sbds
1524
1524
114
rds
590
367
20
rdl
307
94
14
bidegrees (3,4), (3,4); 3 singular solutions.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
time (ms)
1493
18
1888
21
7
time (ms)
4349
8596
36
29
18
39 / 53
Computing points on curves and surfaces
Subdivision methods
method
iter.
sbd
76523
rd
42949
sbds
4697
rds
1895
rdl
1082
bidegrees (4, 4), (8, 8)
subd.
76523
27943
4697
1222
326
method
iter.
sbd
84887
rd
82873
sbds
6076
rds
1486
rdl
1055
bidegrees (8, 8), (8, 8)
B. Mourrain
subd.
84887
51100
6076
920
305
result
20352
12000
116
72
64
result
28896
20336
364
144
60
Algorithms for semi-algebraic curves and surfaces
time (ms)
3454
2154
258
179
113
time (ms)
3820
4553
333
163
120
40 / 53
Computing points on curves and surfaces
Algebraic methods
In one variable
We want to solve
f := x d + ad−1 x d−1 + · · · + a0 = 0
(ai ∈ K) or to find z1 , . . . , zd ∈ C such that
f =
d
Y
(z − zi ).
i=1
or to find approximation of z1 , . . . , zd ∈ C within a precision ε.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
42 / 53
Computing points on curves and surfaces
Algebraic methods
By Euclidean division in K[x], any polynomial p can be reduced to a
polynomial r of degree < d:
p = f q + r.
Any polynomial p is equal modulo a multiple of f to a linear combination
of 1, . . . , x d−1 .
The equivalent classes of polynomials modulo the multiples of f noted
A = K[x]/(f ) has a basis: {1, . . . , x d−1 }.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
43 / 53
Computing points on curves and surfaces
Algebraic methods
If the roots zi are distincts, another basis of A = K[x]/(f ) is
ei =
Y (x − zj )
(zi − zj )
j6=i
They are known as the Lagrange interpolation polynomials.
For any polynomial p:
d
X
p≡
p(zi ) ei
i=1
We have in A = K[x]/(f ):
e2i ≡ ei , ei ej ≡ 0 (i 6= j), e1 + · · · + ed ≡ 1
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
44 / 53
Computing points on curves and surfaces
Algebraic methods
The matrix of the multiplication by x
Mx : K[x]/(f ) → K[x]/(f )
q 7→ x q
Monomial basis 1, x, . . . , x d−1


0 . . . 0 −a0


.
..
 1 . . . ..

.




..
..


. 0
.
0
1 −ad−1
Lagrange basis (for simple roots):


z1 0 . . . 0

. 
 0 . . . . . . .. 


 .. . . . .

 .
.
. 0 
0 . . . 0 zd
I The eigenvalues are the roots zi of f (x) = 0.
I The eigenvectors are the Lagrange interpolation polynomials ei
(when the roots are simple).
+ Solving f = 0 reduces to eigenvalue/eigenvector computation.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
45 / 53
Computing points on curves and surfaces
Algebraic methods
Duality in one variable
d = {Λ : K[x] → K linear}.
r The dual of K[x]: K[x]
i
Example: p 7→ d (p) =coefficient of x i in p = i!1 ∂ i (p)(0)
Example: 1ζ : p 7→ p(ζ).
r Representation by series:
Λ=
∞
X
i=0
Λ(x i ) di ∈ K[[d]].
P
1
i i
Example: 1ζ = ∞
i=0 ζ d ∈ K[[d]] = 1−ζd .
r Structure of K[x]-module: p(x) · Λ : q 7→ Λ(p q).
x ·Λ =
∞
X
Λ(x i )di−1
i=1
p(x) · Λ = π+ (p(d−1 ) Λ(d)).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
46 / 53
Computing points on curves and surfaces
Algebraic methods
I The dual space Ab of A is the set of linear forms λ from A to K.
The multiplication by x in Ab is the transposed of Mx :
Mxt : Ab → Ab
λ 7→ x · λ
where x · λ : p 7→ λ(x p).
A basis of Ab is the set of evaluations 1zi : p 7→ p(zi ), dual to ei .
The eigenvectors of Mxt are the evaluations 1zi , i = 1 . . . d.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
47 / 53
Computing points on curves and surfaces
Algebraic methods
In several variables
Variables: x1 , . . . , xn .
Monomials: xα = x1α1 · · · xnαn , α = (α1 , . . . , αn ) ∈ Nn .
Coefficients: K = Q, R, C, . . ..
Polynomials: R = K[x1 , . . . , xn ].
Equations: f1 = 0, . . . , fs = 0 to be solved, with fi ∈ R.
P
Ideal: I = (f1 , . . . , fs ) = { i hi fi ; hi ∈ R}
(all the relations we know on the unknowns).
Quotient algebra: A = R/I of polynomials modulo I :
a ≡ a0 iff a − a0 ∈ I
(similar to polynomial functions restricted to
the set of solutions).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
48 / 53
Computing points on curves and surfaces
Algebraic methods
Solving f = 0 reduces to describe A = K[x]/(f)
Hypothesis: the number of complex roots of {f1 = 0, . . . , fs = 0} is
finite ⇔ A = K[x]/(f1 , . . . , fs ) is a finite dimensional vector space.
In practice, we compute
I
I
a set B = {b1 , . . . , bD } of polynomials (monomials) which is a basis
of A;
a ) by a modulo f , . . . , f :
the tables of multiplications Ma = (mj,k
1
s
a bj :=
D
X
a
mk,j
bk .
k=1
for a = x1 , . . . (using Gröbner basis, Border basis, Resultants, ...)
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
49 / 53
Computing points on curves and surfaces
Algebraic methods
Example in two variables
Let I be the ideal of R = K[x1 , x2 ] generated by
>
f 1 := 13 x12 + 8 x1 x2 + 4 x22 − 8 x1 − 8 x2 + 2
>
f 2 := x12 + x1 x2 − x1 −
1
6
A polynomial in K[x1 , x2 ] can be reduced, modulo (f1 , f2 ), to a linear
combination of 1, x1 , x2 , x1 x2 :
>
>
expand(x1 x1 − f2);
1
x12 ≡ −x1 x2 + x1 + .
6
expand(x12 x2 + 19 x1 f1 − ( 59 +
13
9
x12 x2 ≡ −x1 x2 +
x1 + 49 x2 ) f2);
55
2
5
x1 +
x2 + .
54
27
54
A basis of A is 1, x1 , x2 , x1 x2
The quotient ring A = K[x1 , x2 ]/I is a vector space of dimension 4.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
50 / 53
Computing points on curves and surfaces
Algebraic methods
Solving by eigencomputation
We assume that Z(I ) = {ζ1 , . . . , ζd } ⇔ A = K[x]/I of finite dimension D
over K.
Ma : A → A
u 7→ a u
Mat : Ab → Ab
Λ 7→ a · Λ = Λ ◦ Ma
Theorem
I The eigenvalues of Ma are {a(ζ1 ), . . . , a(ζd )}.
I
The eigenvectors of all (Mat )a∈A are (up to a scalar) 1ζi : p 7→ p(ζi ).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
51 / 53
Computing points on curves and surfaces
Algebraic methods
Multiplication operators
Matrix of multiplication by x1 in the basis {1, x1 , x2 , x1 x2 } modulo
>
>
f1 = 13 x12 + 8 x1 x2 + 4 x22 − 8 x1 − 8 x2 + 2
f2 = x12 + x1 x2 − x1 − 61
1 × x1 ≡ x1 ,
1
x1 × x1 ≡ −x1 x2 + x1 + , x2 × x1 ≡ x1 x2 ,
6
1
5 13
4
2
x1 x2 × x1 ≡ x1 x2 + x1 f1 − ( +
x1 + x2 ) f2
9
9
9
9
55
2
5
≡ −x1 x2 +
x1 +
x2 + .
54
27
54
This yields:


5
0 16 0 54


 1 1 0 55 

54 
M1 = 
.
 0 0 0 2 
27 

B. Mourrain
0 −1 1 −1
Algorithms for semi-algebraic curves and surfaces
52 / 53
Computing points on curves and surfaces
Algebraic methods
Computing the roots from the eigenvectors
>
Eigenvals(M1);
1 1 1 1
[− , − , , ]
3 3 3 3
>
Eigenvects(transpose(M1));
1 5
5
1 7 7
[1, − , , − ], [1, , , ]
3 6 18
3 6 18
As the basis is (1, x1 , x2 , x1 x2 ), we deduce the roots:
I
ζ1 = (− 13 , 65 ),
I
ζ2 = ( 31 , 76 ).
Remark: v4 v1 = v2 v3 .
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
53 / 53
Computing points on curves and surfaces
Isolated singular points
Assume 0 is an isolated multiple point of a system f(x) = 0.
1 d |α|
α! d α
I
We denote by dα = 10 ◦
I
P
The set of differentials Λ = α λα dα such that for all p ∈ (f), we
have Λ(p) = 0 is called the inverse system at 0 and denoted D.
I
If Λ ∈ D, the d−1
i ? Λ ∈ D.
I
If 0 is isolated multiple, then D ⊂ K[d].
I
The dimension of D is the multiplicity of O.
B. Mourrain
the differentials evaluated at 0.
Algorithms for semi-algebraic curves and surfaces
55 / 53
Computing points on curves and surfaces
Isolated singular points
Algorithms to compute D
Given f1 , . . . , fs which define an isolated point 0;
I
Macaulay approach: [M’16] compute degree by degree the mutiplies
Vt := (x1 , . . . , xn )t−1 × {f1 , . . . , fs } and the elements ∈ K[d] of
degree ≤ t in d that vanish on Vt .
I
Integration approach: [M’98] Deduce the element Λ of degree ≤ t
in D as those such that d−1
i ? Λ ∈ D and is of degree ≤ t − 1.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
56 / 53
Computing points on curves and surfaces
Exercises
Exercise 2.1: Describe and implement a step of the homotopy continuation for a linear
deformation of polynomial system.
Exercise 2.2: Prove Descartes Lemma: #{f (x) = 0; x ∈]a, b[} = V (c) −2p, p ∈ N..
Exercise 2.3: Prove that V + (c) + V − (c) ≤ V (c).
Q
Q
Exercise 2.4: For f = ad x d + · · · + a0 = an di=1 (x − zi ), let M(f ) = an max(1, | zi |).
I Using the following theorem:
Theorem (Davenport-Mahler-Mignotte)
Let f ∈ C[X ], with deg(f ) = d and not necessarily square-free. Let Ω be any set of ` couples of
indices (i, j), 1 ≤ i < j ≤ d, and let the distinct non-zero (complex) roots of f be
0 < |γ1 | ≤ |γ2 | ≤ · · · ≤ |γd |. Then
2` M(f )` ≥
Y
|γi − γj | ≥ 2`−
d(d−1)
2
M(f )1−d−`
p
| disc(fred ) |,
(i,j)∈Ω
where fred is the square-free part of f . If f ∈ Z[x], ` ≤ d and bitsizef = τ , then
d d/2 22dτ ≥ d `/2 22`τ ≥
Y
|γi − γj | ≥ d −d 2−d
2
−3τ (`+d)
≥ d −d 2−d
2
−6dτ
.
(i,j)∈Ω
and the two circle theorems, prove that the number of subdivisions to isolate its real roots
is O(dτ + d log d).
I Deduce that the binary cost of the subdivision solver is ÕB (d 4 τ 2 ).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
58 / 53
Computing points on curves and surfaces
Exercises
Exercise 2.5: Prove that if f(x) = 0 has simple roots ζ1 , . . . , ζD , there exists e1 , . . . , eD ∈ R/(f)
such that
ei (ζj ) = δi,j , ei2 ≡ ei , ei ej ≡ 0, e1 + · · · + eD ≡ 1.
Exercise 2.6: (Hermite Theorem) Suppose that f(x) = 0 has a finite number of complex roots in
Cn . Let A = R[x]/(f) and Tr : a ∈ A 7→ Trace(Ma ) where Ma is the multiplication by a in A.
We denote by Qh the quadratic form (a, b) 7→ Tr (h a b).
I Show that the rank of Q1 is the number of complexe distinct roots of f (x) = 0.
I Show that the signature of Q1 is the number of real distinct roots of f (x) = 0.
I Show that the rank of Qh is the number of complexe distinct roots ζ with h(ζ) 6= 0.
I Show that the signature of Q1 is the sum of the sign of h at the real roots.
Exercise 2.7: Compute the inverse system of
I f1 = x12 − x22 , f2 = x1 x2 at (0, 0);
I f1 = 2 x12 x2 + 5 x14 , f2 = 2 x1 x22 + 5 x14 at (0, 0);
Exercise 2.8: Let C be the curve defined by f (x, y ) = x y .
I Compute the jacobian g (x, y ) of f (x, y ) and x 2 + y 2 ;
I Compute the inverse system D of f and g at 0.
I Compute a dual monomial basis B of D.
I Take a dual element Λ ∈ D such that Λ(Jf ,g ) > 0.
I Compute the matrix of the bilinear form QΛ : (a, b) 7→ Λ(a b) in the basis B.
I Compute its signature and compare it with the number of real branches of C at (0, 0).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
59 / 53
Algorithms for curves
Sweeping methods
Arrangement of segments (Bentley-Ottman)
I
I
Choose a sweeping direction.
Detect the next event where changes in the sweeping line appear:
I
I
I
Update the sweeping structure at these events.
I
I
I
An end point of a segment,
A crossing point of two segments.
Insert or remove a segment in the sweeping structure.
Swap two segments in the sweeping structure.
Advantages:
I
I
B. Mourrain
Use only adjacent segments to compute the intersection points.
Perform local updates of the cell/arrangement structure.
Algorithms for semi-algebraic curves and surfaces
62 / 53
Algorithms for curves
Sweeping methods
Topology of implicit curves [C’75] [GK’97] [GN’01]
Algorithm
Topology of an implicit curve
1
Compute the critical value for the projection πy along the y -abcisses.
2
Above each point, compute the y -value, with their multiplicity.
3
Between two critical points, compute the number of branches.
4
Connect the points between two slices according to their y -order.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
63 / 53
Algorithms for curves
Sweeping methods
Subresultants
Given two polynomials p(x), q(x) ∈ A[x], compute for some coefficients
I r1 = −a2 rem(p, q) ∈ A[x],
1
I r2 = −a2 rem(q, r1 ) ∈ A[x],
2
..
.
2
rN+1 = −aN+1
rem(rN−1 , rN ) = 0
Sr(p, q) = [p(x), q(x), r1 (x), . . . , rN (x)] ∼ [p(x), q(x), Sr1 (x), . . . , Sr0 (x)]
I
with Sri (x) = sri,i x i + · · · + sri,0 .
Properties:
I The polynomial ri (x) is of degree ≤ deg(q) − i.
I The coefficients of ri (x) are minors of the Sylvester matrix.
I The last non-zero remainder rN is the gcd of p and q.
I For the first k ≤ 0 such that srk,k 6= 0, we have Srk (x) = gcd(p, q).
I The first coefficients of ri (x) are minors of the Sylvester matrix.
I If Vp,q (a) is the sign variation of Sr(p, q)(a), then
I
I
B. Mourrain
Vp,p0 (a) − Vp,p0 (b) is the number of real roots of p in [a, b],
Vp,p0 q (a) − Vp,p0 q (b) is the sum of the signs of q at the real roots of p
in [a, b].
Algorithms for semi-algebraic curves and surfaces
64 / 53
Algorithms for curves
Sweeping methods
Topology of implicit 2d curves in practice
I
I
Compute the subresultant sequence
Sy (f , ∂y f ) = [f (x, y ), ∂y f (x, y ), Srd−2 (x, y ), . . . , Sr0 (x)].
Sr0 (x)
˜ 0 (x) =
Compute the squarefree part Sr
of Sr 0 .
gcd(Sr0 (x),Sr 0 (x))
0
I
˜ 0 (x) = Γ1 (x) · · · Γs (x) where
Compute the factorisation Sr
I
I
I
I
I
˜ 0 , sr1,1 ), Γ1 = Sr
˜ 0 /Φ1 ,
Φ1 = gcd(Sr
Φ2 = gcd(Φ1 , sr2,2 ), Γ2 = Φ1 /Φ2 , . . .
Check the genericity condition:
sr
(x)
β(x) = − k k,k−1
srk,k (x) .
Srk = srk,k (x) (y − β(x))k mod Γk (x)
where
For each root α of Γk (x), count the number of roots of f (α, y ) = 0
sr
(α)
below and above β(α) = − k k,k−1
srk,k (α) .
For a rational value m in between the α, count the number of sign
changes of [srk,k (m)]k=0,...,d and deduce the number of branches
above x = m.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
65 / 53
Algorithms for curves
Sweeping methods
Some examples
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
66 / 53
Algorithms for curves
Subdivision methods
+ Deduce the topology from the isolation of some specific points.
+ Separate the point isolation problem from the proper topology
computation.
Basic tools:
I
I
Univariate solvers to isolate/approximate roots of polynomials.
Multivariate solvers of zero-dimensional systems:
I
I
Algebraic solvers,
Subdivision solvers,
which output isolating boxes containing a root, within a precision .
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
68 / 53
Algorithms for curves
Subdivision methods
A general scheme
Algorithm (A generic subdivision algorithm)
Input: An algebraic description of a semi-algebraic set.
Output: A topological description of the semi-algebraic set.
Create a subdivision tree T and set its root to B0 .
Create a list of cells C and initialize it with [B0 ].
While C 6= ∅
I
I
c = pop C
If regular(c) T ← topology(c) else C ← subdivide(c)
return fusion T
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
69 / 53
Algorithms for curves
Subdivision methods
+ An algebraic curve C defined by a square-free polynomial
f (x, y ) ∈ Q[x, y ].
r Interesting points:
I
x-critical points of C: f (x, y ) = ∂y f (x, y ) = 0.
I
y -critical points of C: f (x, y ) = ∂x f (x, y ) = 0.
I
Singular points of C: f (x, y ) = ∂x f (x, y ) = ∂y f (x, y ) = 0.
I
Extremal points of f : ∂x f (x, y ) = ∂y f (x, y ) = 0.
r Regularity and topology:
(a)
B. Mourrain
(b)
(c)
Algorithms for semi-algebraic curves and surfaces
70 / 53
Algorithms for curves
Subdivision methods
(a) Empty boxes
+ No extremal points, which implies no closed loop of C inside D.
+ No point on the boundary: C ∩ ∂D = ∅
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
71 / 53
Algorithms for curves
Subdivision methods
(b) No x-critical point in D.
How is the curve in the box ?
Proposition
If C is x-regular in D, the topology of C in D is uniquely determined by its
intersection C ∩ ∂D.
Algorithm
I
I
Compute the x-index of the points p on C ∩ ∂D: sign(Tpi (C), e1 ).
Connect and remove recursively two consecutive points p, q of C ∩ ∂D with
x-index(p) = 1, x-index(q) = −1 and xp < xq , starting from the smallest
x-coordinnate.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
72 / 53
Algorithms for curves
Subdivision methods
(c) A singular point in D.
The domain contains a single point of fx (x, y ) = fy (x, y ) = 0.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
73 / 53
Algorithms for curves
Subdivision methods
Definition (Topological degree in R2 )
Number of times (f1 (x, y ), f2 (x, y )) goes around (0, 0) when (x, y ) goes
around ∂D (counter-clockwise).
p9
p8
p1
p7
p2
fy = 0
fx = 0
p3
p6
p4
B. Mourrain
p5
Algorithms for semi-algebraic curves and surfaces
74 / 53
Algorithms for curves
Subdivision methods
Definition (Topological degree in R2 )
For f = (f1 , f2 ) : D ⊂ R2 → R2 ,
deg(f, D, o) = lim
→o
X
sign(Jf (p))
p∈f −1 ()
Proposition
Let (pi ) be a counter-clockwise subdivision of ∂D (ps+1 = p1 ), such that
on [pi , pi+1 ], fσ(i) (σ(i) ∈ {1, 2}) is of constant sign. Then
s
deg(f, D, 0) =
B. Mourrain
1X
(−1)σ(i) det(sign(f(pi )), sign(f(pi+1 )))(∗)
8
i=1
Algorithms for semi-algebraic curves and surfaces
75 / 53
Algorithms for curves
Subdivision methods
Theorem (Khimshiashvili)
Let x be the single singular point of f (x, y ) = 0 in D:
Nbr (f , D) = 2(1 − deg(∇f , D, 0)).
Theorem
Let x be the single singular point of f = 0 on D and suppose it isolated in
f = g = 0:
Nbr (f = 0, g > 0, x) − Nbr (f = 0, g < 0, x) = 2 deg((f , Jf ,g ), D, 0).
I
g = (∂x f )2 + (∂y f )2 : number of branches of f at the singular point x.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
76 / 53
Algorithms for curves
Subdivision methods
The ”Minnesota” algorithm
Algorithm (Topology of planar curves)
I
Isolate the extremal points, the smooth x-critical points and smooth
y -critical points.
I
Decompose the domain into boxes containing at most one of these
points.
I
For boxes with one extremal point, split until the number of branches
is the number of points on the boundary and apply the singular
connection algorithm.
I
For boxes with no singular point, apply the connection algorithm for
regular domains.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
77 / 53
Algorithms for curves
B. Mourrain
Subdivision methods
Algorithms for semi-algebraic curves and surfaces
78 / 53
Algorithms for curves
Subdivision methods
Extension to arrangements of several curves
Input:
I
Many semi-algebraic curves (piecewise-linear, parametric, implicit,
. . . ) in a domain D ⊂ R2 .
Algorithms:
I
Handle several objects per cell.
I
Use the same regularity criterion.
Applications:
I
Compute the decomposition into connected components defined by
these objects.
I
Compute the adjacency relations.
I
Perform boolean operations on regions defined by semi-algebraic
curves.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
79 / 53
Algorithms for curves
Subdivision methods
Fusion of the regions
Extract regions from the subdivision:
−
f3
f3
−
+
f1
f1
f2
f2
+
Fusion of regions
Segmentation of the boundaries
2
3
4
v2
v3
v6
6
1
5
7
f1
f4
8
f2
v1
f3
9
v4
2
v5
1
3
7
6
9
4
5
8
v2
v6
f1 ∪ f4
3
1
2
4
5
6
7
8
9
f2 ∪ f3
v1
B. Mourrain
v5
Algorithms for semi-algebraic curves and surfaces
80 / 53
Algorithms for curves
Subdivision methods
Generic algorithm which applies for piecewise, parametric, implicit,
. . . curves
+ Need to be able to compute
I (x|y)-critical points,
I self-intersection points or isolated points,
I segment-curve intersection points,
I curve-curve intersection points.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
81 / 53
Algorithms for curves
Subdivision methods
Examples
B. Mourrain
degree 8
degree 12
degree 28
degree 32,4,4
degree 32,13,4
degree 76
Algorithms for semi-algebraic curves and surfaces
82 / 53
Algorithms for surfaces
Subdivision method for smooth surfaces
Meshing implicit surfaces [ACM’05]
Algorithm
Input: An implicit surface S defined by f (x, y , z) = 0 and a box
D = [a, b] × [c, d] × [e, f ] ⊂ R3 .
Output: A mesh of S, isotopic to V in D.
1
2
If the topology of S is C is not known, and size(C ) ≥ ε, subdivide C .
Else if size(C ) ≤ ε, output a ε-singular cell.
3
Else mesh the surface S in the box in connection with the neighbor
boxes.
I
Express f in the Bernstein basis of D.
Regularity:
If fz 6= 0 in D and f (x, y , e) = 0, f (x, y , f ) = 0 regular, then S
regular in D regular. (same characterisation for any permutation of
(x, y , z)).
For approximation at precision ε, one can request a regular box to be
of size ≤ ε.
I
I
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
85 / 53
Algorithms for surfaces
Subdivision method for smooth surfaces
Entropy
Definition (ε-entropy)
For any set A in Rn , let E (A, ε) be the minimum number of closed balls of
radius ε, covering A.
Definition
dim(A) = limε→0
log(E (A, ε))
log(ε−1 )
Proposition
For A ⊂ Rn and Vδ (A) = {x ∈ Rn , dist(x, A) ≤ δ},
E (Vδ (A), ε) ≤ µ(ε, δ) E (A, ε).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
86 / 53
Algorithms for surfaces
Subdivision method for smooth surfaces
Analysis
Proposition
If S is smooth in D, there exists k0 (f ) > 0, k1 (f ) > 0, such that
∀x ∈ D, k0 (f ) d(x, SR ) ≤ |f (x)| ≤ k1 (f ) d(x, SR ).
Proposition
There exits k2 (f ) > 0,
∀x ∈ C ⊂ D, |f (x) − b(f ; x)| < k2 (f ) |C |2 .
For small enough, a cell C of size , not at distance of S is
removed by the algorithm.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
87 / 53
Algorithms for surfaces
Subdivision method for smooth surfaces
Vitushkin Variation
Definition
For any set S ⊂ Rn , let V0 (S) be the number of connected components of
S, and
R
Vi (S) = c(i) L∈G n−i V0 (S ∩ L))dL,
where Gk is the Grassmannian of spaces of dimension k in Rn , dL is the
1
.
canonical measure on Gn−i , and c(i) = R
V ([0,1]i ∩L)dL
L∈Gn−i
0
Example:
2πr =
1
2
Rπ R
0
R N(Lθ,x
∩ C) dx dθ.
Theorem
For any semi-algebraic set A,
Pdim(A)
Pdim(A)
c1 (d(A), n) i=0 Vi (A)ε−i ≤ E (A, ε) ≤ c2 (n) i=0 Vi (A)ε−i .
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
88 / 53
Algorithms for surfaces
Subdivision method for smooth surfaces
Theorem
Let S = {f (x, y , z) = 0} ∩ D be smooth. The number of cells produced
by the algorithm is bounded by a multiple of the ε-entropy of S:
1
1
N 6 c0 V0 (S) + V1 (S) + 2 Area(S) .
ε
ε
I
I
V0 (S): number of connected components of S.
R
V1 (S) 6 c1 S |k1 (p)| + |k2 (p)|dp, where k1 (p), k2 (p) are the
principal curvatures of S at p.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
89 / 53
Algorithms for surfaces
Projection methods for singular surfaces
What are the interesting points on a surface ?
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
91 / 53
Algorithms for surfaces
Projection methods for singular surfaces
Polar variety
Definition
The polar variety Polz (S) of S for the projection πz is the set of the
critical points of S for πz .
For a surface S ⊂ R3 defined by f (x, y , z) = 0, the polar variety for πz is
defined by f (x, y , z) = 0, ∂z f (x, y , z) = 0.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
92 / 53
Algorithms for surfaces
Projection methods for singular surfaces
Whitney stratification
Definition
I A stratification of S is a locally finite partition of S into smooth
submanifolds, called strata.
I
I
For any p ∈ X ∩ Y , X is Whitney-regular at p along Y if for any
sequences xn ∈ X , yn ∈ Y converging to p,
l = limn→+∞ xn yn ⊂ T = limn→+∞ Txn X .
Whitney stratification = Stratification + Whitney regular.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
93 / 53
Algorithms for surfaces
Projection methods for singular surfaces
Thom’s lemma
Theorem (Thom-Mather)
Let S be a Whitney stratified subset of Rm and φ : S → Rn be a proper
stratified submersion. Then there is a stratum preserving homeomorphism
h : S → Rn × (φ−1 (0) ∩ S)
which is smooth on each stratum and commutes with the projection ρ to
Rn .
φ
- Rn
S
ρ
3
h
? Rn × (φ−1 (0) ∩ S)
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
94 / 53
Algorithms for surfaces
Projection methods for singular surfaces
Whitney stratification of S
The squarefree part of Resultantz (f (x, y , z), ∂z f (x, y , z)) is denoted
∆(πz , S).
I
I
I
I
S0 the set of points p of Polz (S) so that πz (p) is a x-critical point of
∆(πz , S).
S1 : the connected components of Polz (S) − S0 .
S2 : the connected components of S − Polz (S).
S3 : the connected components of R3 − S.
Theorem
(S0 , S1 , S2 , S3 ) is a Whitney stratification of R3 compatible with S and
fulfills the hypothesis of Thom’s lemma with φ = πyz .
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
95 / 53
Algorithms for surfaces
Projection methods for singular surfaces
Topology of an algebraic surface
Algorithm (Moving the wall)
Input:
I
I
A surface S ⊂ R3 defined by f (x, y , z) = 0, f ∈ Q[x, y , z] squarefree.
A box B ⊂ R3 .
Output:
I
A simplicial complex with points in S, isotopic to S.
1
Perform a generic change for coordinnates.
2
Compute the arrangement of the projection of the polar curve.
3
Compute the topology of the 3D polar curve.
4
Use the topology of this curve to deduce the adjacency relations
between cells lifted from the plane.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
96 / 53
Algorithms for surfaces
Projection methods for singular surfaces
Subresultant for algebraic surfaces
I
Subresultant sequence:
I
”Gcd” factorisation:
Srz (f , ∂z f ) = [f (x, y , z), ∂z f (x, y , z), Srd−2 (x, y , z), . . . , Sr0 (x, y )].
I
I
I
I
Sr 0 (x, y ) = ∆1 (x, y ) · · · ∆l (x, y ).
where
˜ 0,0 ,
Φ0 (x, y ) = Sr
Φ1 (x, y ) = gcd(Φ0 (x, y ), sr1,1 (x, y )), ∆1 = Φ0 /Φ1 ,
Φ2 (x, y ) = gcd(Φ1 (x, y ), sr2,2 (x, y )), ∆2 = Φ1 /Φ2 , . . .
Pseudo generic position: (two components of the polar curve have
distinct projections)
For k = 1, . . . , d − 2, i = 0, . . . , k − 1,
Rk,i (x, y ) := k(k − i)srk,i (x, y )srk,k (x, y ) − (i + 1)srk,i+1 (x, y )srk,k−1 (x, y ) = 0
mod ∆k .
In this case, the parametrisation of the polar curve above
∆k (x, y ) = 0 is given by
z =−
B. Mourrain
srk,k−1 (x, y )
.
k srk,k (x, y )
Algorithms for semi-algebraic curves and surfaces
97 / 53
Algorithms for surfaces
Projection methods for singular surfaces
Topology of surfaces
I
I
Compute the arrangement of the planar curves
∆1 (x, y ) = 0, . . . , ∆d−2 (x, y ) = 0.
The strata S0 is the lifted points of the singular and intersections
points of the arrangement.
I In generic position, the intersection points (α, βk (α)) of two
planar curves ∆i (x, y ) = 0 lift in
I
I
a singularity (α, βk (α), γl (α)) (if Rl,i (α, βk (α)) = 0 for
i = 0, . . . , l − 1),
two distinct points otherwise.
I The lifted points are the simple roots of
Γk,l (x) = 0, gk (x, y ) = 0, hl (x, y , z) = 0,
where
I
I
I
B. Mourrain
Γk,l (x) = 0 defined the roots of Γk (x) = 0 such that
deg(gcd(f , ∂z f )) = l.
gk (x, y ) = Φ0 (x, y )/Srk (x, y ) mod Γk,l (x),
hl (x, y , z) = f (x, y , z)/Srl (x, y , z) mod (Γk,l (x), gk (x, y )).
Algorithms for semi-algebraic curves and surfaces
98 / 53
Algorithms for surfaces
Projection methods for singular surfaces
I
The strata S1 is obtained by lifting each planar arc by the
corresponding map γk (x, y ).
I
The strata S2 is obtained
I
I
by lifting regular arcs between the lifted critical points of the planar
arrangement,
by connecting the ordered lifted arcs and the arcs of the polar curve in
2D faces, using the points above and below the lifted critical points.
+ The decomposistion (S0 , S1 , S2 ) gives a Whitney stratification of
S compatible with V (the apparent contour).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
99 / 53
Algorithms for surfaces
B. Mourrain
Projection methods for singular surfaces
Algorithms for semi-algebraic curves and surfaces
100 / 53
Algorithms for surfaces
Projection methods for singular surfaces
For polynomials of degree d and coefficients of bit-size ≤ τ :
I
I
I
Bit complexity for the topology of a planar curve: ÕB (d 11 τ ).
Bit complexity for the topology of an algebraic 3D curve: ÕB (d 23 τ ).
Bit complexity for the topology of an algebraic surface: ÕB (d 23 τ ).
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
101 / 53
Algorithms for surfaces
Projection methods for singular surfaces
S.S. Abhyankar.
Algebraic Geometry for Scientists and Engineers.
American Mathematical Society, Providence, R. I., 1990.
L. Alberti and B. Mourrain.
Visualisation of algebraic curves.
In The 15th Pacific Graphics, pages 303–312. IEEE Computer Society, 2007.
L. Alberti, B. Mourrain, and J.-P. Técourt.
Isotopic triangulation of a real algebraic surface.
Journal of Symbolic Computation, 44:1291–1310, 2009.
L. Alberti, B. Mourrain, and J. Wintz.
Topology and arrangement computation of semi-algebraic planar curves.
Comput. Aided Geom. Design, 25:631–651, November 2008.
M.F. Atiyah and I.G. MacDonald.
Introduction to Commutative Algebra.
Addison-Wesley, 1969.
S. Basu, R. Pollack, and M.-F. Roy.
Algorithms in Real Algebraic Geometry.
Springer-Verlag, Berlin, 2003.
D. Cox, J. Little, and D. O’Shea.
Ideals, Varieties, and Algorithms: An Introduction to Computational Algebraic Geometry and Commutative Algebra.
Undergraduate Texts in Mathematics. Springer Verlag, New York, 1992.
D. Cox, J. Little, and D. O’Shea.
Using algebraic geometry, volume 185 of Graduate Texts in Mathematics.
Springer-Verlag, New York, 1998.
D. Eisenbud and H.I. Levine.
An Algebraic Formula for the Degree of a C ∞ Map Germ.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
101 / 53
Algorithms for surfaces
Projection methods for singular surfaces
The Annals of Mathematics, 106(1):pp. 19–44, 1977.
M. Elkadi and B. Mourrain.
Introduction à la résolution des systèmes d’équations algébriques, volume 59 of Mathématiques et Applications.
Springer-Verlag, 2007.
G. Farin.
Curves and surfaces for computer aided geometric design : a practical guide.
Comp. science and sci. computing. Acad. Press, 1990.
T. Fukuda, K. Aoki, and W.Z. Sun.
On the number of branches of a plane curve germ.
Kodai Mathematical Journal, 9(2):179–187, 1986.
M. Giusti, G. Lecerf, B. Salvy, and J.-C. Yakoubsohn.
On location and approximation of clusters of zeros: Case of embedding dimension one.
Foundations of Computational Mathematics, 7:1–58, 2007.
L. González-Vega and I. Necula.
Efficient topology determination of implicitly defined algebraic plane curves.
Comput. Aided Geom. Design, 19(9):719–743, 2002.
M. Goresky and R. MacPherson.
Stratified Morse Theory.
Springer-Verlag, 1988.
H. Hironaka.
Triangulations of algebraic sets.
In Algebraic geometry (Proc. Sympos. Pure Math., Vol. 29, Humboldt State Univ., Arcata, Calif., 1974), pages 165–185.
Amer. Math. Soc., Providence, R.I., 1975.
J. R. Sendra J. G. Alcazar, J. Schicho.
A delineability-based method for computing critical sets of algebraic surfaces.
Journal of Symbolic Computation, 42(6):678–691, 2007.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
101 / 53
Algorithms for surfaces
Projection methods for singular surfaces
G. N. Khimšiašvili.
The local degree of a smooth mapping.
Sakharth. SSR Mecn. Akad. Moambe, 85(2):309–312, 1977.
A. Leykin, J. Verschelde, and A. Zhao.
Newton’s method with deflation for isolated singularities of polynomial systems.
Theoretical Computer Science, 359(1-3):111 – 122, 2006.
N. G. Lloyd.
Degree Theory.
Cambridge University Press, Cambridge, 1978.
F.S. Macaulay.
The algebraic theory of modular systems.
Cambridge Univ. Press, 1916.
A. Mantzaflaris and B. Mourrain.
A subdivision approach to planar semi-algebraic sets.
In Geometric Modeling and Processing, volume 6130 of Lecture Notes in Computer Science, pages 104–123. Springer
Berlin/Heidelberg, June 2010.
A. Mantzaflaris, B Mourrain, and E. Tsigaridas.
On Continued Fraction Expansion of Real Roots of Polynomial Systems, Complexity and Condition Numbers.
Theoretical Computer Science, 412(22):2312–2330, 2011.
M. G. Marinari, H. M. Möller, and T. Mora.
On multiplicities in polynomial system solving.
Trans. Amer. Math. Soc, 348:3283–3321, 1996.
B. Mourrain.
Isolated points, duality and residues.
Journal of Pure and Applied Algebra, 117-118:469 – 493, 1997.
B. Mourrain and J. P. Pavone.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
101 / 53
Algorithms for surfaces
Projection methods for singular surfaces
Subdivision methods for solving polynomial equations.
Journal of Symbolic Computation, 44:292–306, March 2009.
B. Mourrain and Ph. Trébuchet.
Stable normal forms for polynomial system solving.
Theoretical Computer Science, 409(2):229 – 240, 2008.
D. N’Diatta, B. Mourrain, and O. Ruatta.
On the computation of the topology of a non-reduced implicit space curve.
In D. Jeffrey, editor, ISSAC, pages 47–54. ACM Press, 2008.
D. N’Diatta, B. Mourrain, and O. Ruatta.
On the Isotopic Meshing of an Algebraic Implicit Surface, 2011.
to appear in Journal of Symbolic Computation.
M. Shub and S. Smale.
Complexity of Bezout’s Theorem I: Geometric Aspects.
Journal of the American Mathematical Society, 6(2):459–501, 1993.
Z. Szafraniec.
On the number of branches of a 1-dimensional semianalytic set.
Kodai Mathematical Journal, 11(1):78–85, 1988.
Z. Szafraniec.
Topological degree and quadratic forms.
Journal of Pure and Applied Algebra, 141(3):299 – 314, 1999.
J. von zur Gathen and J. Gerhard.
Modern computer algebra.
Cambridge University Press, New York, 1999.
Y. Yomdin and G. Comte.
Tame geometry with applications in smooth analysis.
LNM 1834. Springer-Verlag, 2004.
B. Mourrain
Algorithms for semi-algebraic curves and surfaces
101 / 53