n = s = 2 and f1 = f2 = t1 + t2. =â Implicit(f1,f2) = ãx â yã. Literature is vast, many techniques. (Busé, Chardin, D'Andrea, Dickenstein, Emiris, Orecchia, Wang..).
New, Practical Algorithms for Implicitization of Hypersurfaces
John Abbott, Anna M. Bigatti, Lorenzo Robbiano Kassel, Germany – Genova, Italy A.M. Bigatti
ICMS 2016
July 2016, Berlin
Implicitization
Berlin, July 2016
1 / 10
A well known problem Implicit f1 , ..., fn ∈ K [t1 , . . . , ts ]
K a field,
ϕ : K [x1 , ..., xn ] −→ K [t1 , . . . , ts ] given by xi 7→ fi Problem: find a set of generators for Implicit(f1 , . . . , fn ) := ker(ϕ) The solution is simple and elegant :-) Example 1 f1 = t12 , f2 = t1 t2 , f3 = t22 polynomials in K [t1 , t2 ] /**/ use QQ[t[1..2], x[1..3]]; f := [t[1]^2, t[1]*t[2], t[2]^2]; /**/ elim([t[1],t[2]], ideal([x[i]-f[i] | i in 1..3]) ); ideal(x[2]^2 -x[1]*x[3])
... but slow and memory hungry :-( A.M. Bigatti
Implicitization
Berlin, July 2016
2 / 10
Hypersurface We concentrate on the hypersurface case: Implicit(f1 , . . . , fn ) = (g) is principal, hence (prime) g irreducible. The hypersurface case typically arises when s = n − 1. Remark f1 , ..., fn ∈ K [t1 , . . . , ts ]: minimum number of generators for Implicit(f1 , . . . , fn ) ≥ n − s. In particular if s ≤ n − 1 at least one generator. Example 2 n = s = 2 and f1 = f2 = t1 + t2
=⇒
Implicit(f1 , f2 ) = hx − y i
Literature is vast, many techniques (Busé, Chardin, D’Andrea, Dickenstein, Emiris, Orecchia, Wang..) A.M. Bigatti
Implicitization
Berlin, July 2016
3 / 10
Implicit ElimTH
Polynomial parametrization: ElimTH algorithm Proposition f1 , . . . , fn ∈ K [t1 , . . . , ts ] \ K . Let h be a new indeterminate, and let K [t1 , . . . , ts , h, x1 , . . . , xn ] deg(t1 ) = · · · = deg(ts ) = deg(h) = 1 and deg(xi ) = deg(fi ) Let Fi = fihom , and J be the ideal hx1 − F1 , . . . , xn − Fn i. Then: 1 2
The ideal J ∩ K [h, x1 , . . . , xn ] is prime Implicit(f1 , . . . , fn ) = (J ∩ K [h, x1 , . . . , xn ])deh
Example 3 /**/ P := NewPolyRing(QQ, "t[1],t[2], h, x[1],x[2],x[3]", MakeTermOrd(RowMat([1, 1, 1, 2, 2, 2])), 1); use P; /**/ f := [t[1]^2-2, t[1]*t[2]-t[1], t[2]^2]; /**/ F := [t[1]^2-2*h^2, t[1]*t[2]-t[1]*h, t[2]^2]; /**/ E := elim([t[1],t[2]], ideal([x[i]-f[i] | i in 1..3]) ); /**/ Eh := elim([t[1],t[2]], ideal([x[i]-F[i] | i in 1..3]) ); /**/ E = ideal(subst(gens(Eh), h, 1)); // --> true A.M. Bigatti
Implicitization
Berlin, July 2016
4 / 10
Implicit ElimTH
Polynomial parametrization: ElimTH algorithm Input f1 , . . . , fn ∈ K [t1 , . . . , ts ] \ K such that Implicit(f1 , . . . , fn ) principal ElimTH-1 Initialization: ElimTH-1.1 Create the ring R = K [t1 , . . . , ts , h, x1 , . . . , xn ] graded by [1, . . . , 1, 1, deg(f1 ), . . . , deg(fn )] with σ elimination ordering for {t1 , . . . , ts } hom(h) ElimTH-1.2 Let Fi = fi ∈ R. ElimTH-1.3 Let J = hx1 − F1 , . . . , xn − Fn i ElimTH-2 Main Loop: Start Buchberger’s algorithm for a σ-Gröbner basis of J. Work degree by degree i.e. always choose pair with min degree. When you find G such that LTσ (G) not divisible by any ti exit loop. ElimTH-3 Let g = Gdeh(h) mapped into K [x1 , . . . , xn ]. Output g ∈ K [x1 , . . . , xn ] −→ generator of Implicit(f1 , . . . , fn ). A.M. Bigatti
Implicitization
Berlin, July 2016
5 / 10
Implicit ElimTH
Polynomial parametrization: ElimTH algorithm Input f1 , . . . , fn ∈ K [t1 , . . . , ts ] \ K such that Implicit(f1 , . . . , fn ) principal ElimTH-1 Initialization: ElimTH-1.1 Create the ring R = K [t1 , . . . , ts , h, x1 , . . . , xn ] graded by [1, . . . , 1, 1, deg(f1 ), . . . , deg(fn )] with σ elimination ordering for {t1 , . . . , ts } hom(h) ElimTH-1.2 Let Fi = fi ∈ R. ElimTH-1.3 Let J = hx1 − F1 , . . . , xn − Fn i ElimTH-2 Main Loop: Start Buchberger’s algorithm for a σ-Gröbner basis of J. Work degree by degree i.e. always choose pair with min degree. When you find G such that LTσ (G) not divisible by any ti exit loop. ElimTH-3 Let g = Gdeh(h) mapped into K [x1 , . . . , xn ]. Output g ∈ K [x1 , . . . , xn ] −→ generator of Implicit(f1 , . . . , fn ). A.M. Bigatti
Implicitization
Berlin, July 2016
5 / 10
Implicit ElimTH
Polynomial parametrization: ElimTH algorithm Input f1 , . . . , fn ∈ K [t1 , . . . , ts ] \ K such that Implicit(f1 , . . . , fn ) principal ElimTH-1 Initialization: ElimTH-1.1 Create the ring R = K [t1 , . . . , ts , h, x1 , . . . , xn ] graded by [1, . . . , 1, 1, deg(f1 ), . . . , deg(fn )] with σ elimination ordering for {t1 , . . . , ts } hom(h) ElimTH-1.2 Let Fi = fi ∈ R. ElimTH-1.3 Let J = hx1 − F1 , . . . , xn − Fn i ElimTH-2 Main Loop: Start Buchberger’s algorithm for a σ-Gröbner basis of J. Work degree by degree i.e. always choose pair with min degree. When you find G such that LTσ (G) not divisible by any ti exit loop. ElimTH-3 Let g = Gdeh(h) mapped into K [x1 , . . . , xn ]. Output g ∈ K [x1 , . . . , xn ] −→ generator of Implicit(f1 , . . . , fn ). A.M. Bigatti
Implicitization
Berlin, July 2016
5 / 10
Implicit Direct
Polynomial parametrization: Direct algorithm Inspired by Buchberger-Moeller algorithm for computing ideal of points Direct Method: rough idea Let {T1 , T2 , T3 , . . .} ⊂ K [x1 , . . . , xn ]. For k = 1, 2, 3, . . . do Check for linear dependency among ϕ(Ti ) with i = 1..k If found, return corresponding polynomial. use enumerative term-ordering on K [x1 , . . . , xn ] every power-product T appears at a finite position (or: there are finitely many power-products smaller than any T ) Ex: Lex is not enumerative DegRevLex is enumerative detect lin.dep. using gaussian elimination Recall ϕ : K [x1 , ..., xn ] −→ K [t1 , . . . , ts ] given by xi 7→ fi Polynomial ϕ(T ) ∈ K [t1 , . . . , ts ] ←→ infinite row with finite support Build “row-reduced echelon form” incrementally A.M. Bigatti
Implicitization
Berlin, July 2016
6 / 10
Implicit Direct
Polynomial parametrization: Direct algorithm Input f1 , . . . , fn ∈ K [t1 , . . . , ts ] \ K such that Implicit(f1 , . . . , fn ) principal Direct-1 Initialization: Direct-1.1 Fix enumerative term-ordering σ on K [x1 , . . . , xn ] Direct-1.2 Set QB = ∅; PhiQB = ∅; L = {1} Direct-2 Main Loop: Direct-2.1 Let T = minσ (L); remove T from L Direct-2.2 Compute v = ϕ(T ) ∈ K [t1 , . . . , ts ] P Direct-2.3 Is there a linear dependency v = i ai vi where vi ∈ PhiQB? P If yes then exit & return corresponding poly: T − i ai Ti If no, update L := L ∪ {x1 T , . . . , xn T }; append T to QB, and v to PhiQB. P Output T − i ai Ti ∈ K [x1 , . . . , xn ] −→ generator of Implicit(f1 , . . . , fn ). A.M. Bigatti
Implicitization
Berlin, July 2016
7 / 10
Implicit Direct
Polynomial parametrization: Direct algorithm Input f1 , . . . , fn ∈ K [t1 , . . . , ts ] \ K such that Implicit(f1 , . . . , fn ) principal Direct-1 Initialization: Direct-1.1 Fix enumerative term-ordering σ on K [x1 , . . . , xn ] Direct-1.2 Set QB = ∅; PhiQB = ∅; L = {1} Direct-2 Main Loop: Direct-2.1 Let T = minσ (L); remove T from L Direct-2.2 Compute v = ϕ(T ) ∈ K [t1 , . . . , ts ] P Direct-2.3 Is there a linear dependency v = i ai vi where vi ∈ PhiQB? P If yes then exit & return corresponding poly: T − i ai Ti If no, update L := L ∪ {x1 T , . . . , xn T }; append T to QB, and v to PhiQB. P Output T − i ai Ti ∈ K [x1 , . . . , xn ] −→ generator of Implicit(f1 , . . . , fn ). A.M. Bigatti
Implicitization
Berlin, July 2016
7 / 10
Implicit Direct
Polynomial parametrization: Direct algorithm Input f1 , . . . , fn ∈ K [t1 , . . . , ts ] \ K such that Implicit(f1 , . . . , fn ) principal Direct-1 Initialization: Direct-1.1 Fix enumerative term-ordering σ on K [x1 , . . . , xn ] Direct-1.2 Set QB = ∅; PhiQB = ∅; L = {1} Direct-2 Main Loop: Direct-2.1 Let T = minσ (L); remove T from L Direct-2.2 Compute v = ϕ(T ) ∈ K [t1 , . . . , ts ] P Direct-2.3 Is there a linear dependency v = i ai vi where vi ∈ PhiQB? P If yes then exit & return corresponding poly: T − i ai Ti If no, update L := L ∪ {x1 T , . . . , xn T }; append T to QB, and v to PhiQB. P Output T − i ai Ti ∈ K [x1 , . . . , xn ] −→ generator of Implicit(f1 , . . . , fn ). A.M. Bigatti
Implicitization
Berlin, July 2016
7 / 10
Implicit Direct
Rational parametrization Either (or any other) algorithm may be used by RatPar to deal with rational parametrizations: Input f1 =
p1 q , . . . , fn
=
pn q
∈ K (t1 , . . . , ts ) with q common denominator
RatPar-1 Let d = max{deg(q), deg(p1 ), . . . , deg(pn )} RatPar-2 Create the poly ring R = K [t1 , . . . , ts , h, x0 , x1 , . . . , xn ] graded by deg(ti ) = deg(h) = 1 and deg(xi ) = d homd (h)
RatPar-3 Let Q = q homd (h) ∈ R and Pi = pi
∈R
RatPar-4 Compute hG1 , . . . , Gm i = Implicit(Q, P1 , . . . , Pn ) RatPar-5 Compute gi = Gi deh(x0 ) Output hg1 , . . . , gm i −→ Implicit(f1 , . . . , fn )
A.M. Bigatti
Implicitization
Berlin, July 2016
8 / 10
Implicit Direct
The implementation These algorithms are implemented in CoCoALib (and CoCoA-5).
Examples Ex d’Andrea Ex Orecchia Ex Enneper Ex Robbiano Ex Buse1 Ex Buse2 Ex Wang Ex Dickenstein1 Ex Dickenstein4 Ex Bohemian Ex Sine A.M. Bigatti
ElimTH 32003 0 0 0 0.273 0 0 1.196 0 0 0 0
ElimTH 0 0.009 0.007 0.028 0.597 0.021 0.228 16.278 0.060 0.943 0.011 0.012 Implicitization
Direct 32003 0 0 0 0.031 0 0 0.159 0 0 0 0
Direct 0 0.003 0.002 0.026 0.118 0.070 0.083 7.707 0.032 0.934 0.004 0.010
Len 6 9 57 319 13 56 715 41 161 7 7
Berlin, July 2016
9 / 10
Implicit Direct
New tests ∞ = more than 20 minutes Examples Ex 13-Poly Ex 14-Poly Ex 15-Poly Ex 16-Poly Ex 17-Poly Ex 18-Poly Ex 19-Poly Ex 20-Poly Ex 21-Poly Ex 1-RatFun Ex 2-RatFun Ex 3-RatFun Ex 4-RatFun Ex 5-RatFun Ex 6-RatFun A.M. Bigatti
ElimTH 32003 2.1 ∞ 20.3 ∞ 1.4 60.8 2.2 5.0 10.2 0.1 0.6 0.6 10.4 63.3 116.4
ElimTH 0 (3) 6.9 ∞ (5) 55.7 ∞ (3) 4.8 ∞ (3) 9.3 (6) 71.5 (11) 121.0 (4) 1.370 (2) 2.8 (3) 13.4 (3) 159.1 (2) 141.7 (6) 761.4 Implicitization
Direct 32003 0.1 8.41 0.9 58.4 9.1 228.0 47.3 ∞ 36.4 0.1 1.1 2.1 64.8 46.2 202.7
Direct
Len
0 (3) 0.4 (5) 58.2 (5) 3.4 (3) 204.1 (3) 27.9 ∞ (3) 148.9 ∞ (11) 418.5 (4) 1.2 (2) 3.8 (3) 17.9 (3) 335,0 (2) 101.6 (6) 1214.4
471 6398 1705 4304 1763 9360 5801 6701 2356 62 57 115 189 149 2692
Berlin, July 2016
10 / 10