• Aucun résultat trouvé

The Projective Noether Package User’s Manual

N/A
N/A
Protected

Academic year: 2022

Partager "The Projective Noether Package User’s Manual"

Copied!
17
0
0

Texte intégral

(1)

Version a1-2 January 14, 1998

The Projective Noether Package User’s Manual

Gr´ egoire Lecerf

Laboratoire GAGE, ´Ecole Polytechnique, F-91128 Palaiseau, France [email protected]

(2)

Abstract

LetV be a projective variety given by a list of homogeneous polynomials. We are interested in computing its dimensionr. So far the most efficient implemented algorithms rely on Gr¨obner basis computations. The present paper reports on an implementation done by M. Giusti1, G. Lecerf2, Jo¨el Marchand3 and B.

Salvy4, at the laboratory GAGE5 within the TERA6 project of new kinds of algorithms based on an evaluation strategy.

1M. Giusti:[email protected]

2G. Lecerf:[email protected]

3J. Marchand:[email protected]

4B. Salvy:[email protected]

5Laboratoire GAGE, ´Ecole Polytechnique, F-91128 Palaiseau, France

6Turbo Evaluation Rapid Algorithms. http://medicis.polytechnique.fr/tera or http://hilbert.matesco.unican.es/tera

(3)

Contents

1 Introduction 2

2 Algorithm 2

2.1 Mathematical description of the algorithm . . . . 2

2.2 Implementation of the algorithm . . . . 3

3 The Projective Noether Package 6 3.1 berkowitz. . . . 6

3.2 detBerkowitz. . . . 7

3.3 projectiveNoether . . . . 8

3.4 projectiveNullstellensatz . . . . 9

4 The Polynomial System Families Package 10 4.1 hcyclic . . . . 10

4.2 hicyclic . . . . 11

4.3 sacados . . . . 12

5 A full example 13

A Installation guide 14

(4)

1 Introduction

The present paper reports on the implementation done by Marc Giusti, Gr´egoire Lecerf, Jo¨el Marchand and Bruno Salvy at the laboratory GAGE and INRIA Rocquencourt within the TERA project. The package provides some functions to compute upper bounds on the dimension of a projective variety and relies mainly on the algorithm described in [3], section 4.

This package has been written in Maple7 in order to take advantage of its internal data structures: the Directed Acyclic Graphs (DAG).

The main features of this package are:

1. Portability: generic Unix station running Maple.

2. The complete source is readable and quite well-documented. Each function has a full online Maple help and can be used in the same way as Maple’s built in functions.

3. The installation requires almost no knowledge of the Unix system. The distribution provides a full installation guide.

4. The package provides some generators for polynomial system families.

5. The package is available via anonymousftp:

ftp://medicis.polytechnique.fr/pub/tera/soft/pnp/.

This package is an experimental prototype for showing one possible way for a low level implementation.

The manual contains the description of the algorithm implemented and a full documentation on each function. It also describes some families of polynomial systems which have been used to test it.

First, we recall the theoretical results of [3], then describe the different imple- mentations. The description of each function of the package is given in section 3 and 4. In section 5 we show a full example session using the package. Appendix A is devoted to the installation procedure.

Acknowledgment: I thank K. H¨agele8, for his comments on this text. Any comment, bug report or proposition will be considered with great attention.

2 Algorithm

2.1 Mathematical description of the algorithm

Letk be an entire9, infinite and commutative ring, k0 be its field of fractions.

Letk0 bet an algebraic closure ofk0. Letf1, . . . , fsbe a system of non constant

7Maple is a trademark of Waterloo Maple Software.

8Departamento de Matem´aticas, Estad´ıstica y Computaci´on, Facultad de Ciencias, Univer- sidad de Cantabria, E-39071 SANTANDER, Spain, email: [email protected]

9An entire ring is also called an integral domain.

(5)

homogeneous polynomials ink[x0, . . . , xn]. We denote byV =V(f1, . . . , fs) the projective variety defined by f1, . . . , fs in P =P(k0)n and by dthe maximum of the degrees of the fi. The variables x0, . . . , xm are said to be dependent with respect to V if (f1, . . . , fs)∩k[x0, . . . , xm] is not (0). Otherwise they are independent. xm+1, . . . , xn are said to be in Noetherian position with respect toV andx0, . . . , xmif the canonical homomorphism

k[x0, . . . , xm]−→k[x0, . . . , xn]/(f1, . . . , fs)

is an integral ring extension. And ifx0, . . . , xmare independent we say thatV is in Noetherian position.

We recall the algorithm of [3], section 4, to put the varietyV into Noetherian position with respect to the variablesx0, . . . , xn.

The algorithm is incremental on the variablesx0, . . . , xn. We enter then−mth iteration with the condition: xm+1, . . . , xn are already in Noetherian position with respect toV andx0, . . . , xm. We want to test ifx0, . . . , xmare dependent or not. If they are dependent we want to find a linear change of variables leaving unchanged xm+1, . . . , xn such that in the new coordinates y0, . . . , yn, the variablesym, ym+1, . . . , yn are in Noetherian position.

Letz be a new variable. Let R(m) be k[x0, . . . , xm] andK(m) its field of frac- tions. We denote byfi(m) the polynomial fi(zx0, zx1, . . . , zxm, xm+1, . . . , xn).

The later is an homogeneous polynomial in R(m)[xm+1, . . . , xn, z]. Let W be the projective variety in Pn−m(Km) defined by f1(m), . . . , fs(m). We have the criterium for dependency:

Assume thatxm+1, . . . , xn are in Noetherian position with respect to V. The variablesx0, . . . , xmare dependent with respect toV if and only ifW is empty.

We recall the main statement of [3], p.27:

Theorem 1: After a suitable preprocessing, one can compute the dimensionr of V in time sO(1)dO(n) with a well parallelizable algorithm without divisions.

Moreover, one can find a non singular(n+ 1, n+ 1)matrixM with coefficients ink such that, ify0, . . . , yn are the new variables M(x0, . . . , xn),y0, . . . , yr are independent with respect toV. The new variablesyi are in Noetherian position.

The next part of this section shows the implementations of this algorithm.

2.2 Implementation of the algorithm

Here is the practical description of the algorithm implemented in Maple. Ac- cording to the above notations,kequals toZfrom now.

Input:

– sys: a list of homogeneous polynomialsf1, . . . , fs.

– lvars: the list of the variables of the above polynomialsx0, x1, . . . , xn. – smax: an integer bound on the height of the random points used.

(6)

– atmax: an integer specifying the maximum number of random points used to decide whether a polynomial is zero or not (discussed below).

– strategy: a string choosing the method used to determine the di- mension: BDE, EDor EG(discussed below).

– chvars: (optional) a global variable passed by reference.

Output: An upper bound on the dimension of the projective variety V given bysys. chvarscontains the change of variables.

Algorithm:

projectiveNoether:= proc(sys,lvar,smax,atmax,strategy,chvars)

# Initialisation step localsys:= sys chvars:= lvars

# Iteration step

for m from n by -1 to 0 do localpar:= [x0,...,xm]

localvar:= [x.(m+1),...,xn]

pivot:= findPivot[strategy](localsys, localpar, localvar, smax, atmax);

if pivot=FAIL then RETURN(m) fi

localsys:= changeOfVariables(localsys, localpar, pivot) chvars:= changeOfVariables(chvars, localpar, pivot) od

RETURN(-1) end

Following the above algorithm, which consists just of one main loop, we have the following situation: At each step of the looplocalvaris a set of variables already in Noetherian position with respect to the variables oflocalpar. The question is: are the variables oflocalparindependent or not ? This is decided by the functionfindPivot.

The Subroutines

Letf1, . . . , fs be the homogeneous polynomials of localsys. At themth step localparisx0, . . . , xmandlocalvarisxm+1, . . . , xn. fi(m)=fi(x0·z, . . . , xm· z, xm+1, . . . , xn). Following the criterium for dependency, the dependency of

(7)

localparcan be checked applying the projective Nullstellensatz to thefi(m). Ifais the point (a0, a1, . . . , am),spec(fi(m), a) denotes the polynomial

fi(a0z, a1z, . . . , amz, xm+1, . . . , xn) It is the specialization offi(m) ona.

The criterium for dependency becomes:

The variableslocalparare dependent if and only if there exists a point(a0, . . . ,- am−1,1)such that the spec(fi(m), a)defines an empty projective variety.

So, findPivot gives such a point, called pivot. It is found by successively choosing a point in [0..smax1]m×1 at random. The first point tested is always (0, . . . ,0,1). If such a point can not be found within atmax attempts, the variables inlocalparare assumed to be independent and the dimension is bounded bym. Otherwise the resulting change of variables is modified to take the point found to (0, . . . ,0,1), thus leaving the other coordinates unchanged, namely

xi←xi+ai·xm, for 0≤i≤m−1 Strategies for finding a good pivot

We have implemented four different strategies, namely:

[BDE] The pure SLP strategy

This is the implementation which follows closest the strategy proposed in [3].

[B] LetN = 1 +Ps

i=1(deg(fi)1). Create Q, the matrix of the linear application h1f1(m)+. . .+hsfs(m). Its coefficients are some polyno- mials over localpar. hi is an homogeneous polynomial of degree N−deg(fi).

[D] Use Berkowitz-Mulmuley linear algebra ([2], [5]) to construct the arithmetic network (DAG) corresponding to the algorithm deciding whether the linear application associated withQis surjective or not.

This is done by considering the determinant of the product matrix QtQ, the resulting DAG takeslocalparas input.

[E] Using the Maple functions optimize and makeproc, the resulting DAG is transformed into aMapleprocedure which can be evaluated on the input, which are the points chosen at random.

[ED] The evaluation and determinant strategy

Here we swap the steps [E] and [D] stated in the previous strategy. The variableslocalparare first specialized before performing the linear alge- bra. These two steps are repeated for each set of values forlocalpar.

[E] Specialize thefi(m) for a given set of values forlocalpar.

(8)

[D] Again, build the matrixQas before, but then use the Maple deter- minant function to decide whether the linear application associated withQis surjective or not.

[EG] The evaluation and Gr¨obner basis strategy

Here we replace the determinant step [D] of the previous strategy by a Gr¨obner basis computation.

[E] Specialize thefi(m) for a given set of values forlocalpar.

[G] Apply a Gr¨obner basis algorithm with total degree ordering to the specializedfi(m) to compute a basis of the projective variety.

[EGb] The same as EG, Gr¨obner basis computation beeing handled by gb(See [4]).

3 The Projective Noether Package

We now describe the available functions of the package. The interested reader is invited to read the sources, which are in the filenoether.mpl. Before using the package, typewith(noether):.

3.1 berkowitz

Function: Characteristic polynomial of a matrix Calling Sequence:

berkowitz(A) Parameters:

A- a square matrix Synopsis:

The function berkowitzcomputes the characteristic polynomial of A. It returns a vectorv of the coefficients of the characteristic polynomial. Ifn is the dimension ofAthenv[i] is the coefficient of degree n+ 1−i.

Reference: [1].

Complexity: The time complexity isO(n3logn).

Implementation: Non recursive. The elementary linear algebra functions have been rewritten in order to ensure the correct DAG structure.

Example:

(9)

> with(noether):with(linalg):

> A:=matrix([[a,b,c],[d,e,f],[g,h,i]]);

[ a b c ]

[ ]

A := [ d e f ]

[ ]

[ g h i ]

> berkowitz(A);print(");

Vect

[ -1, i + e + a, g c + h f + i (- e - a) + d b - e a,

g (a c + b f) + h (d c + e f) + (g c + h f) (- e - a) + i (- d b + e a) ]

See also: detBerkowitz

3.2 detBerkowitz

Function: Matrix Determinant, based on Berkowitz’s algorithm.

Calling Sequence:

detBerkowitz(A) Parameters:

A- a square matrix Synopsis:

The functionsdetBerkowitz computes the determinant of a square ma- trix. It uses the Berkowitz algorithm, implemented in the berkowitz function.

Reference: [1].

Complexity: The time complexity isO(n3logn).

Implementation: Seeberkowitz Example:

> with(noether):with(linalg):

> A:=matrix([[a,b,c],[d,e,f],[g,h,i]]);

[ a b c ]

[ ]

A := [ d e f ]

[ ]

(10)

[ g h i ]

> detBerkowitz(A);

g (a c + b f) + h (d c + e f) + (g c + h f) (- e - a) + i (- d b + e a)

See also: berkowitz

3.3 projectiveNoether

Function: Finds a Noetherian position for a projective variety Calling Sequence:

projectiveNoether(sys,lvar,smax,atmax,strategy)

projectiveNoether(sys,lvar,smax,atmax,strategy,’chvars’) Parameters:

sys- a list of homogeneous polynomials

lvars- a list of variables

smax- a strictly positive integer

atmax- a strictly positive integer

strategy- a string

chvars- (optional) an unevaluated names Synopsis:

The function returns an upper bound on the dimension of the projective variety defined bysys, over the variableslvar.

chvars is an optional argument. If the upper bound on the dimension is exact, it returns the change of variables found to put the variety in Noetherian position. The change of variables is : lvars[i]←−chvars[i]

for alli.

Letabe the dimension returned. After the previous change of coordinates ofsys, the variableslvars[a+2]. . . lvars[#(lvars)]are in Noetherian position with respect tolvars[1]. . . lvars[a+ 1].

The strategy is one of the following strings : BDE,ED,EG,EGb.

One can set the global variable infolevel[noether]to 2 to see the list of points chosen at random.

(11)

The returned upper bound on the dimension may exactly be the dimen- sion. Indeed there exists sufficiently effective big values forsmaxandatmax such that the result is correct for a given variety.

For more precisions please consult the references.

Reference: [3], [4].

Complexity: time sO(1)dO(n), whered=degree(lpol), n= #(lvar) and s=

#(sys).

Example:

> with(noether):

> with(syspoly):

> sys:= [hcyclic(2,x)];

2

sys := [x1 x2 - x0 , x1 + x2]

> var:= [x0,x1,x2];

var := [x0, x1, x2]

> projectiveNoether(sys,var,10,3,’EG’);

0

See also: projectiveNullstellensatz

3.4 projectiveNullstellensatz

Function: projectiveNullstellensatz Calling Sequence:

projectiveNullstellensatz[B](lpol,lvar)

projectiveNullstellensatz[D](lpol,lvar)

projectiveNullstellensatz[Gb](lpol,lvar) Parameters:

lpol- a list of homogeneous polynomial expressions

lvar- a list of variables Synopsis:

The functionprojectiveNullstellensatz returns a polynomial expres- sion. This expression is zero if and only if the projective variety described bylpolis non empty.

(12)

The argument in [ ] specifies the strategy : [B] : uses Berkowitz to generate a DAG depending on the parameters of lpol, the result is this DAG, [D] : uses Maple’s determinant, it is used when the polynomials have integer coefficients, [G] : uses Maple’s Gr¨obner, the polynomials must have integer coefficients. And it returns either 0 or 1. [Gb] : uses gb’s Gr¨obner, via gblink package. The polynomials must have integer coefficients. And it returns either 0 or 1.

Reference: [3], [4].

Complexity: timesO(1)dO(n), whered=degree(lpol) andn=cardinal(lvar).

In the case[B]the DAG returned has sizedO(n) and depthO(n2∗log2(sd)).

Example:

> with(noether):

> lvar:=[x0,x1,x2];

lvar := [x0, x1, x2]

> lpol:= [x1^2-x0*x1,x2^2-x0*x2,x1+2*x2-4*x0];

2 2

lpol := [x1 - x0 x1, x2 - x0 x2, x1 + 2 x2 - 4 x0]

> projectiveNullstellensatz[’B’](lpol,lvar);

304704

See also: projectiveNoether

4 The Polynomial System Families Package

We have tried to find some interesting families of polynomial equations in order to test our code. Here are the families we have chosen. To use this package type with(syspoly):.

4.1 hcyclic

Function: Homogeneous cyclic system Calling Sequence:

hcyclic(n,x) Parameters:

n- a strictly positive integer

x- an unevaluated name

(13)

Synopsis:

Generates the homogeneous cyclic polynomial system over the variables x0, . . . , xn :letσ be the cycle (1,2, . . . , n) of the nth permutation group.

We define theith equation of thenth system as :

Hni =

n−1X

k=0

σk(Mi) for 1≤i≤n−1 andHnn =Mn−xn0

Example:

> with(syspoly):

> sys:= hcyclic(4,x);

x1 x2 x3 x4 - x0**4,

x1 x2 x3 + x2 x3 x4 + x3 x4 x1 + x4 x1 x2, x1 x2 + x2 x3 + x3 x4 + x4 x1,

x1 + x2 + x3 + x4

See also: cyclic,hicyclic,sacados

4.2 hicyclic

Function: Homogeneous cyclic system Calling Sequence:

hicyclic(n,x) Parameters:

n- a strictly positive integer

x- an unevaluated name.

Synopsis:

Generates the homogeneous cyclic polynomial system over the variables x1, . . . , xn: let σbe the cycle (1,2, . . . , n) of the nth permutation group.

We define theith equation of thenth system as:

Hni =

n−1X

k=0

σk(Mi) for 1≤i≤n−1 andHnn=Mn

Example:

(14)

> with(syscpoly):

> sys:= hicyclic(4,x);

x1 x2 x3 x4,

x1 x2 x3 + x2 x3 x4 + x3 x4 x1 + x4 x1 x2, x1 x2 + x2 x3 + x3 x4 + x4 x1,

x1 + x2 + x3 + x4

See also: cyclic,hcyclic,sacados

4.3 sacados

Function: Sac a Dos (French for knapsack) polynomial system Calling Sequence:

sacados(n,k,x) Parameters:

n- a strictly positive integer

k- a strictly positive integer

x- an unevaluated name Synopsis:

This function generates the homogeneous polynomial system:

forj= 1 tokdofj =x2j−xj∗x0

fk+1=−x0+ Xn j=1

2j−1xj

Example:

> with(syspoly):

> sys:= [sacados(3,2,x)];

2 2

sys := [x1 - x1 x0, x2 - x2 x0, - x0 + x1 + 2 x2 + 4 x3]

See also: hcyclic,hicyclic

(15)

5 A full example

# Loading the projective Noether Package

> with(noether):with(syspoly):

>

# Let us study the following system

> sys:=[sacados(2,2,x)];

2 2

sys := [x1 - x1 x0, x2 - x2 x0, - x0 + x1 + 2 x2]

> lvar:=[x0,x1,x2];

lvar := [x0, x1, x2]

>

# We want to see the list of points picked up at random.

> infolevel[noether]:=2;

infolevel[noether] := 2

>

# Let’s us now compute the dimension through the

# probabilistic method EG.

>

> d:=projectiveNoether(sys,lvar,10,3,‘EG‘,chvars);

noether/findPivot[EG] Checking the point : 0, 0, 1 noether/findPivot[EG] Checking the point : 0, 1 noether/findPivot[EG] Checking the point : 1

d := 0

>

# Here is the change of variable found to put the

# variety into Noetherian position.

> chvars;

[x0, x1, x2]

>

# Let us now compute the new system

> sys:=subs([seq(x.i=chvars[i+1],i=0..2)],sys);

2 2

sys := [x1 - x1 x0, x2 - x2 x0, - x0 + x1 + 2 x2]

> sys:=expand(sys);

2 2

sys := [x1 - x1 x0, x2 - x2 x0, - x0 + x1 + 2 x2]

>

# x1, x2 are thus in noetherian position

# with respect to x0. We want to prove

# that x0 is independant.

>

> blow:= seq(x.i=z*x.i,i=0..d);

(16)

blow := x0 = z x0

>

> localsys:= subs([blow],sys);

2 2

localsys := [x1 - x1 z x0, x2 - x2 z x0, - z x0 + x1 + 2 x2]

>

> p:= projectiveNullstellensatz[‘B‘](localsys,[x1,x2,z]):

bytes used=1000076, alloc=786288, time=0.41 bytes used=2051248, alloc=1441528, time=6.28 bytes used=3066752, alloc=1638100, time=8.44

>

# Now we need to prove that p is zero.

> simplify(p);

0

>

> quit;

bytes used=3653756, alloc=1638100, time=11.80

A Installation guide

The current distribution supports: only Unix, Maple V, release 3 and 4.

To find and install the package do:

1. Go via ftp into ftp://medicis.polytechnique.fr/pub/tera/soft/pnp/. Ei- ther using the Unix commandftpor via your favoritewebbrowser.

2. Read theREADMEfile and follow the instructions.

3. Updated documentation is also available in thisftpsite.

If you run into problems, report to [email protected]: fill up the formregistrationformand send it with your favorite mailer.

(17)

References

[1] J. Abdeljoued. Sur l’algorithm de Berkowitz pour le calcul du d´etermi- nant dans un anneau conmutatif arbitraire. preprint, Universit´e de Franche Compte, Besancon, 1995.

[2] S. J. Berkowitz. On Computing the determinant in small parallel time using a small number of processors. Information Processing Letters, vol. 18:pp. 147–150, 1984.

[3] M. Giusti and J. Heintz. La d´etermination des points isol´es et de la di- mension d’une vari´et´e alg´ebrique peut se faire en temps polynomial. In D. Eisenbud and L. Robbiano, eds.,Computational Algebraic Geometry and Commutative Algebra, vol. XXXIV of Symposia Matematica, pp. 216–256.

Cambridge University Press, 1993.

[4] G. Lecerf and E. Schost. Maple Package:GB link. GAGE laboratory, ftp://medicis.polytechnique.fr/pub/tera/soft/gblink, 1997.

[5] K. Mulmuley. A Fast Parallel Algorithm to Compute the Rank of a Matrix over an Arbitrary Field. Combinatorica,vol. 7 (1):pp. 101–104, 1987.

Références

Documents relatifs

The sentometrics package implements an intuitive framework to efficiently compute sentiment scores of numerous texts, to aggregate the scores into multiple time series, and to use

The so-called shiny applications provide access to most of the plotting functions of the R package ’Luminescence’ as well as to the functions for calculating the cosmic dose rate

Figure 6 shows that the packages Re- moteDirectory and TelNetWordNet are referencing together the same set of packages within Network: both refer to classes into Kernel, Protocols

The nlme package provides functions to estimate a variety of mixed-effects models for both data nested in groups and for repeated measures data collected over time (growth

in particular, there is a well defined intersection cohomology signature; – there are well-defined and nontrivial Witt bordism groups ΩWitt T for example, these are

When a surface (or a variety) varies in a family, the Picard number takes various values in general, and it is usually not easy to determine which values are actually taken.. In

stepnumber (integer) : interval at which line numbers are printed (Default: 1 — all lines are numbered)5. First

On the basis of partial results on this conjecture obtained by Eisenbud and Harris we establish an upper bound for the genus and the Clifford index of curves