• Aucun résultat trouvé

Un nouvel algorithme de calcul d une Base de Gröbner

N/A
N/A
Protected

Academic year: 2022

Partager "Un nouvel algorithme de calcul d une Base de Gröbner"

Copied!
22
0
0

Texte intégral

(1)

Base de Gr¨ obner

H. Lombardi Janvier 98

Equipe de Math´´ ematiques de Besan¸con. UMR CNRS 6623.

UFR des Sciences et Techniques. Universit´e de Franche-Comt´e. 25030 Besan¸con Cedex email : henri.lombardi@univ-fcomte.fr

esum´e

Nous donnons un nouvel algorithme de calcul d’une base de Gr¨obner d’un id´eal dans un anneau de polynomes. Cet algorithme est de conception radicalement diff´erente de l’al- gorithme de Buchberger. Il n’utilise ni divisions niS-polynomes. Il est bas´e sur le controle de la croissance du rang de matrices de Sylvester g´en´eralis´ees successives. Ces matrices sont efinies de mani`ere incr´ementale en rajoutant `a chaque ´etape de nouvelles colonnes et les lignes n´ecessaires. L’id´ee principale est de borner inf´erieurement et sup´erieurement les rangs des futures matrices en tant que fonctions du num´ero de l’´etape en cours, jusqu’`a ce que ces fonctions co¨ıncident.

Classification AMS : 13P10, 12Y05, 15A03, 65F50

Mots cl´es : Bases de Gr¨obner, Alg`ebre lin´eaire, Matrices de Sylvester, Math´ematiques Construc- tives.

Introduction

Nous donnons un nouvel algorithme de calcul d’une base de Gr¨obner d’un id´eal dans un anneau de polynomes. Cet algorithme est de conception radicalement diff´erente de l’algorithme de Buchberger (cf. [3], [4], [1]). Il n’utilise ni divisions niS-polynomes. Il est bas´e sur le controle de la croissance du rang de “matrices de Sylvester” successives.

Si A est une partie finie de k[x1, . . . , xr] nous d´efinissons A[1] = A∪x1A∪. . .∪xrA and A[n+1]= (A[n])[1].

Si G0 = [f1, . . . , fs] est une liste de polynomes de k[x1, . . . , xr] nous d´efinissons Gn =G[n]0 . Ceci peut ˆetre consid´er´e comme une matrice de Sylvester associ´ee `a G0. Nous notons En le k-espace vectoriel engendr´e par Gn.

A partir de Gn nous d´efinissons dans la section 2 une fonction SMICG0(n, m) qui v´erifie SMIC(n, m)≤dim(Em) pour toutm≥n. Nous appelons cette fonction minimum structurel de croissance, pr´evisible `a l’´etape npour l’´etape m.

Nous d´efinissons dans la section 3 une fonction SMACG0(n, m) qui v´erifie SMAC(n, m) ≥ dim(Em) pour tout m ≥ n. Nous appelons cette fonction maximum structurel de croissance, pr´evisible `a l’´etape npour l’´etape m.

1

(2)

2 1 PR ´ELIMINAIRES Nous indiquons comment calculer ces fonctions et comment tester leur ´egalit´e en utilisant une triangulation sans ´echange de colonnes de la matrice Gn.

L’algorithme SMIC-SMAC est donn´e `a la section 4. Il se r´esume en la triangulation des matrices Gn successives jusqu’`a ce que le SMIC devienne ´egal au SMAC.

Le fait que ceci se produit bien est prouv´e dans les sections5and7. La deuxi`eme preuve est constructive et pourrait donc fournir des bornes pour le temps d’ex´ecution de l’algorithme.

Diff´erentes questions techniques sont discut´ee dans la section6.

A priori notre algorithme pourrait r´eduire l’espace utilis´e en m´emoire lorsqu’on le compare

`

a l’algorithme de Buchberger.

Notre approche est bas´ee sur l’alg`ebre lin´eraire bien control´ee. Il est donc possible qu’elle soit en rapport ´etroit avec le travail de J.-C. Faug`ere qui a d´evelopp´e un nouvel algorithme efficace (FGB) pour calculer les bases de Gr¨obner et qui s’appuie sur des techniques d’alg`ebre lin´eaire et de gestion de la m´emoire. Ces liens possibles seront plus clairs lorsque J.-C. Faug`ere publiera ses r´esultats.

1 Pr´ eliminaires

Nous introduisons d’abord quelques notations.

Notations 1 Soit kun corps.

– Mr d´esigne l’ensemble des monomes xα =xα11. . . xαrr en r variables. L’ensemble Mr est muni de l’ordre partiel naturel de la divisibilit´e. On notera xα|xβ pour xα divise xβ. Le degr´e totalα1+· · ·+αr de xα est not´e|α|. Le degr´e total d’un polynomef (le maximum des degr´es totaux de ses termes) est not´e totdeg(f).

– Un ordre admissible (i.e. un ordre total raffinant la divisibilit´e et compatible avec la multi- plication des monomes) surMr est fix´e une fois pour toutes. On notera xα ≤xβ ou aussi α≤β cet ordre admissible.

– Si f est un polynome en r variables dont le terme de tˆete est cxα, on note Lm(f) :=xα le monome de tˆete de f. Rappelons qu’une base de Gr¨obner d’un id´eal de polynomes I =I(f1, . . . , fs) est une famille finie (g1, . . . , gt) d’´el´ements de I telle que le monome de tˆete de tout ´el´ementf 6= 0 deI soit un multiple de l’un des Lm(gj).

– Si A est une partie dek[x1, . . . , xr] on note A[0] = A

A[1] = A∪x1A∪. . .∪xrA A[n+1] = (A[n])[1]

– On a A⊂B ⇒A[1]⊂B[1] (A⊂B d´esigne l’inclusion au sens large).

– On note deg(A) := max{totdeg(f);f ∈ A} le degr´e total maximum des ´el´ements de A.

On a donc deg(A[n]) =n+ deg(A). Par convention, si A est vide deg(A) =−∞.

On suppose d´esormais queA est une partie finie deMr.

– On note Fri(A) lafronti`ere inf´erieurede A, c.-`a-d. la partie deA form´ee par les monomes minimaux pour la divisibilit´e. On a naturellement Fri(A) = Fri(A[1]).

– On note val(A) := inf{|α|;xα ∈ A} le degr´e total minimum des ´el´ements de A. On a val(A[n]) = val(A). Par convention, si Aest vide val(A) = +∞.

– On note FA(n) := #(A[n]) le nombre d’´el´ements de A[n]. La fonction n 7→ FA(n) est appel´ee la fonction de croissancede A.

Le lemme suivant est intuitivement assez naturel.

(3)

Lemme 1 Si A est une partie finie non vide de Mr, alors `a partir d’un rang n0 ≤ deg(ppcm(A))−val(A) −r la fonction n 7→ FA(n) est ´egale `a un polynome en n, que nous noterons HA(n). Lorsque n tend vers l’infini, HA(n) est ´equivalent `a n+rr

c.-`a-d. encore `a nr/r!.

Le polynome HA(n) est appel´e le polynome de croissance deA. D’apr`es le lemme1, la fonction de croissance deA peut ˆetre d´ecrite de mani`ere enti`erement explicite.

Nous allons donner une preuve combinatoire du lemme mais auparavant nous montrons un exemple.

Exemple 1 Nous donnons un exemple avec A⊂ M2 A : #A= 53

11 . . . 0 0 . . . . 10 . . . 0 0 . . . . 9 . 0 0 . . . . 0 0 . . . . . 8 . 0 0 0 . . . 0 0 0 . . . . 7 . 0 0 0 0 . . 0 0 0 0 0 0 . 6 . 0 0 0 . . 0 . 0 0 0 0 0 . 5 . 0 0 0 . . . . 0 0 0 0 0 . 4 . 0 0 0 0 . . . 0 . . . . 0 3 . . . . 0 0 . 0 . . . . 2 . . . . 0 0 0 . . . . 1 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13

A[1] : #(A[1]) = 53 + 28 = 81

12 . . . • • . . . . . 11 . . . 0 0 • . . . . 10 . • • . . . . • 0 0 • . . . . 9 . 0 0 • . . . 0 0 • . . . . . 8 . 0 0 0 • . . 0 0 0 • • • . . 7 . 0 0 0 0 • • 0 0 0 0 0 0 • . 6 . 0 0 0 • . 0 • 0 0 0 0 0 • . 5 . 0 0 0 • . . . 0 0 0 0 0 • . 4 . 0 0 0 0 • . • 0 • . . . 0 • 3 . . . . 0 0 • 0 • . . . . 2 . . . . 0 0 0 • . . . . 1 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

(4)

4 1 PR ´ELIMINAIRES

A[2] : #(A[2]) = 81 + 27 = 108

13 . . . • • . . . . 12 . . . 1 1 • . . . . . 11 . • • . . . . • 0 0 1 • . . . . 10 . 1 1 • . . . 1 0 0 1 • . . . . 9 . 0 0 1 • . . 0 0 1 • • • . . . 8 . 0 0 0 1 • • 0 0 0 1 1 1 • . . 7 . 0 0 0 0 1 1 0 0 0 0 0 0 1 • . 6 . 0 0 0 1 • 0 1 0 0 0 0 0 1 • . 5 . 0 0 0 1 • . • 0 0 0 0 0 1 • . 4 . 0 0 0 0 1 • 1 0 1 • . . 0 1 • 3 . . . . 0 0 1 0 1 • . . . . 2 . . . . 0 0 0 1 • . . . . 1 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

A[3] : #(A[3]) = 108 + 23 = 131

14 . . . • • . . . . 13 . . . 2 2 • . . . . 12 . • • . . . . • 1 1 2 • . . . . . 11 . 2 2 • . . . 2 0 0 1 2 • . . . . 10 . 1 1 2 • . . 1 0 0 1 2 • . . . . 9 . 0 0 1 2 • • 0 0 1 2 2 2 • . . . 8 . 0 0 0 1 2 2 0 0 0 1 1 1 2 • . . 7 . 0 0 0 0 1 1 0 0 0 0 0 0 1 2 • . 6 . 0 0 0 1 2 0 1 0 0 0 0 0 1 2 • . 5 . 0 0 0 1 2 • 2 0 0 0 0 0 1 2 • . 4 . 0 0 0 0 1 2 1 0 1 2 • . 0 1 2 • 3 . . . . 0 0 1 0 1 2 • . . . . 2 . . . . 0 0 0 1 2 • . . . . 1 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

La partie A[3] contient “le trou” x121 x42 (la notion de trou sera discut´ee dans la section7).

(5)

A[4] : #(A[4]) = 131 + 23 = 154

15 . . . • • . . . . 14 . . . 3 3 • . . . . 13 . • • . . . . • 2 2 3 • . . . . 12 . 3 3 • . . . 3 1 1 2 3 • . . . . . 11 . 2 2 3 • . . 2 0 0 1 2 3 • . . . . 10 . 1 1 2 3 • • 1 0 0 1 2 3 • . . . . 9 . 0 0 1 2 3 3 0 0 1 2 2 2 3 • . . . 8 . 0 0 0 1 2 2 0 0 0 1 1 1 2 3 • . . 7 . 0 0 0 0 1 1 0 0 0 0 0 0 1 2 3 • . 6 . 0 0 0 1 2 0 1 0 0 0 0 0 1 2 3 • . 5 . 0 0 0 1 2 3 2 0 0 0 0 0 1 2 3 • . 4 . 0 0 0 0 1 2 1 0 1 2 3 • 0 1 2 3 • 3 . . . . 0 0 1 0 1 2 3 • . . . . 2 . . . . 0 0 0 1 2 3 • . . . . 1 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

La partie B =A[4] a son polynome de croissance ´egal `a sa fonction de croissance : pour tout n≥4 on a

FA(n) = HA(n) = (n+1)(n+2)2 + 8n+ 9n+ 71 = n(n−1)2 + 19n+ 72 FA(n+ 1)−FA(n) =n+ 19

comme on peut le voir avec la proc´edure de comptage ci-dessous A[4]

15 . . . x | o . . . . 14 . . . x | o o . . . . 13 . x x . . . . x x | o o o . . . . 12 . x x x . . . x x | o o o o . . . . . 11 . x x x x . . x x | o o o o o . . . . --- 10 . + + + + + + + + + + + + + . . . .

9 . + + + + + + + + + + + + + + . . . 8 . + + + + + + + + + + + + + + + . . 7 . + + + + + + + + + + + + + + + + . 6 . + + + + + + + + + + + + + + + + . 5 . + + + + + + + + + + + + + + + + . 4 . + + + + + + + + + + + + + + + + + 3 . . . . + + + + + + + + . . . . 2 . . . . + + + + + + + . . . . 1 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

(6)

6 2 LE SMIC Une preuve combinatoire du lemme 1 NotonsX un singleton form´e d’un monome xα = xα11. . . xαrr. Nous remarquons que pour une partie finieAde Mr on peut ´ecrire

A[m]= [

Xsingleton⊂A

X[m]

Par ailleurs, il est facile de d´eterminer le nombre d’´el´ements d’une intersectionX1[m]∩X2[m] ou plus g´en´eralementX1[m]∩X2[m]∩ · · · ∩Xs[m]. En effet

X1[m]∩X2[m]∩ · · · ∩Xs[m]={xβ ; ppcm(X1, X2, . . . , Xs)|xβ et|β| ≤m+ inf

i=1,...,s(deg(Xi))}

Donc, en posant p:= deg(ppcm(X1, X2, . . . , Xs)) et v= infi=1,...,s(deg(Xi)) on obtient

#(X1[m]∩X2[m]∩ · · · ∩Xs[m]) =

0 si v+m < p

v+m−p+r r

si v+m≥p et donc aussi, puisque u+rr

= 0 pour u=−r, . . . ,−1

#(X1[m]∩X2[m]∩ · · · ∩Xs[m]) =

0 si m < p−v−r

v+m−p+r r

si m≥p−v−r

Enfin on conclut en se rappelant la formule qui donne le nombre d’´el´ements d’une r´eunion finie d’ensembles finis en fonction des nombres d’´el´ements des intersections (cf. [8] p. ). Par exemple, en notantAij :=Ai∩Aj,Aijk :=Ai∩Aj∩Ak etc.

#(A1∪A2∪A3∪A4) = X

1≤i≤4

#(Ai)− X

1≤i≤j≤4

#(Aij) + X

1≤i≤j≤k≤4

#(Aijk)−#(A1234)

2 Le SMIC

Dans toute la suite on consid`ere un corpskfix´e et une liste non vide fix´eeG0 = [f1, . . . , fs] de polynomes de k[x1, . . . , xr]. On fixe les notations suivantes

Notations 2 – d= deg(G0) – Gn=G[n]0

– En= Vect(Gn) lek-espace vectoriel engendr´e parGn.

– Exp(n) := {Lm(f);f 6= 0, f ∈ En} l’ensemble des monomes de tˆete des polynomes non nuls deEn. Notez qu’on a n´ecessairement Exp(n)[1] ⊂Exp(n+ 1).

– en:= #(Exp(n) = dim(En) est la dimension duk-espace vectorielEn= Vect(Gn).

– I(f1, . . . , fs) est l’id´eal engendr´e par f1, . . . , fs. D´efinition 3 Pour tout m≥non note

SMICG0(n, m) := SMIC(n, m) := FExp(n)(m−n).

On l’appelle le minimum structurel de croissance, pr´evisible `a l’´etapenpour l’´etapem.

On a imm´ediatement.

(7)

Fait 1 Pour tout n≤n0 ≤m on a

SMIC(n, m)≤SMIC(n0, m)≤em = SMIC(m, m).

Lorsque m tend vers l’infini SMIC(n, m) et em sont ´equivalents `a mr/r!.

En effet SMIC(n, m)≤em ≤FP(m) siP est l’ensemble des monomes pr´esents dansG0.

D´efinition 4 Nous appelons triangulation selon les colonnes d’une matrice M toute m´ethode algorithmique qui remplace la matriceM par une autre matriceM0 qui engendre le mˆeme espace de vecteurs colonnes et qui, pour chaque ligne poss`ede au plus une colonne dont le coefficient de tˆete est sur cette ligne.

Une mani`ere de d´eterminer Exp(n) est de trianguler selon les colonnes la matrice dont les vecteurs colonnes sont les ´el´ements de Gn ´ecrits sur la base des monomes pr´esents `a l’´etapen (c.-`a-d. les monomes dansP[n]) ordonn´ee en d´ecroissant selon l’ordre admissible.

Nous serons particuli`erement int´eress´es par des triangulations selon les colonnes etsans ´echange de colonnes . Dans ce cas, il faut remarquer que les num´eros de ligne des pivots successifs ne vont pas en d´ecroissant, ce qui nuit un peu `a l’aspect “triangulaire” de la matrice obtenue. Voir la figure ci-dessous.

• . . . . x . . . • . . x . • . . . . x . x . . . x . . x . x • . . . . x . x x . . . • . . . x • . . . . x x x x . . . x x • . x x x x . . . x x x . x x x x . . • . . . . x x x x • . . . . x x x x x . x x x x . x x x x x . x x x x . x x x x x • . . . . . x x x x x x x x x x • x x x x x x x x x x x

Exemple d’une matrice produite par une triangulation selon les colonnes sans ´echange de colonne.

Nous avons supprim´e les colonnes r´eduites `a 0.

Nous mettons.pour 0,•pour les pivots, xpour une entr´ee arbitraire.

Mais l’important pour nous est de bien g´erer l’´evolution de Exp(n), et ceci est beaucoup plus facile avec une triangulation sans ´echange de colonnes.

Lorsque nous parlons d’une triangulation sans ´echange de colonnes, nous sous-entendons toujours qu’il s’agit d’une triangulation selon les colonnes.

3 Le SMAC

Nous d´efinissons maintenant Gn comme une liste ordonn´ee. Le polynome xαfi pr´ec`ede le polynomexβfj dans la listeGnsi α=β eti < j ou si β pr´ec`edeαpour l’ordre lexicographique

(8)

8 3 LE SMAC des monomes avec x1 >· · ·> xr. Ceci implique que si xαfi pr´ec`edexβfj dans la liste Gn alors cela reste vrai dans la liste Gn+1, et en outre xhxαfi pr´ec`ede xhxβfj (pourh = 1, . . . , r) dans la liste Gn+1.

La liste Gn peut ˆetre ´egalement construite selon la r`egle r´ecursive suivante, o`u • repr´esente la concat´enation des listes.

Nous nous contentons d’expliquer le cas r= 3. On pose

G10 =G20 =G30 =G0 puis G3n+1=x3G3n•G0

G2n+1 =x2G2n•G3n+1 et enfin Gn+1 =G1n+1=x1G1n•G2n+1

Si nous consid´erons Gn comme une liste de vecteurs colonnes, donc comme une matrice, nous avons l`a une variante ou une g´en´eralisation des matrices de Sylvester usuelles. On a imm´ediatement.

Lemme 2 Si xαfi est combinaison lin´eaire des vecteurs qui le pr´ec`edent dans la liste Gn alors cela reste vrai dans la liste Gn+1, et en outre xhxαfi est combinaison lin´eaire des vecteurs qui le pr´ec`edent dans la listeGn+1(pour h= 1, . . . , r) .

Remarque 1 Le polynome xαfi est combinaison lin´eaire des vecteurs qui le pr´ec`edent dans la liste Gn si et seulement si il est tu´e (r´eduit `a 0) dans une triangulation deGn sans ´echange de colonnes.

Notation 5 La liste finie G0 = [f1, . . . , fs] de polynomes de k[x1, . . . , xr] ´etant fix´ee, pour j= 1, . . . , son noteMj,n la partie suivante deMr.

Mj,n :={xα;xαfj est combinaison lin´eaire des vecteurs qui le pr´ec`edent dans la listeGn} Un corollaire imm´ediat du lemme2 est le suivant.

Corollaire 1 Pour j= 1, . . . , s et pour tout m≥n∈Non a Mj,n[1] ⊂Mj,n+1 et Mj,n[m−n]⊂Mj,m

Remarquons maintenant que la dimension en de En est ´egale au nombre de vecteurs non tu´es dans une triangulation deGn. Autrement dit :

en= dim(En) =

s

X

j=1

n+r n

−#(Mj,n)

.

Ceci nous conduit naturellement `a la d´efinition du SMAC.

D´efinition 6 Pour tout m≥non note

SMACG0(n, m) := SMAC(n, m) :=Ps j=1

m+r m

−FMj,n(m−n) . On l’appelle le maximum structurel de croissance, pr´evisible `a l’´etapenpour l’´etapem.

Vues les remarques et le corollaire qui pr´ec`edent la d´efinition on a imm´ediatement.

Fait 2 Pour tout n≤n0 ≤m on a

SMAC(n, m)≥SMAC(n0, m)≥em = SMAC(m, m).

Voici un autre fait, simple et crucial.

(9)

Fait 3 Supposons que SMIC(n, n+ 1) = SMAC(n, n+ 1).

Alors en+1 = SMIC(n, n+ 1) = SMAC(n, n+ 1), Exp(n+ 1) =Exp(n)[1] et pour j= 1, . . . , s, Mj,n+1 =Mj,n[1]. En particulier Fri(Exp(n)) = Fri(Exp(n+ 1)) et pour m≥n+ 1, SMIC(n+ 1, m) = SMIC(n, m) et SMAC(n+ 1, m) = SMAC(n, m).

A contrario lorsqueSMIC(n, n+ 1)<SMAC(n, n+ 1)alorsSMIC(n+ 1, n+ 1)>SMIC(n, n+ 1) ou SMAC(n+ 1, n+ 1)<SMAC(n, n+ 1), et Exp(n)[1] 6=Exp(n+ 1)ou Mj,n[1] 6=Mj,n+1 pour l’un desj = 1, . . . , s.

On en d´eduit le th´eor`eme suivant.

Th´eor`eme 1 Si pour un entier n on a

∀m≥n SMIC(n, m) = SMAC(n, m) alors

— pour tout m≥n, em = SMIC(n, m)

— Fri(Exp(n)) = Fri({Lm(I(f1, . . . , fs))})

— les polynomes de la triangul´ee de Gn dont le monome de tˆete est un ´el´ement de la fronti`ere inf´erieure Fri(Exp(n))forment une base de Gr¨obner minimale de l’id´ealI(f1, . . . , fs)

Enfin, le rapprochement des fonctions SMIC et SMAC est inexorable comme l’affirme le th´eor`eme suivant, dont nous donnerons deux preuves dans les sections 5 et7.

Th´eor`eme 2 Pour tout syst`eme G0 = [f1, . . . , fs] dansk[x1, . . . , xr]on a

∃n∈N ∀m≥n SMIC(n, m) = SMAC(n, m)

Remarque 2 Si pour un entier n tous les Mj,n ´etaient non vides, alors la fonction m 7→

SMAC(n, m) serait, pourmassez grand, un polynome de degr´e< r, ce qui est incompatible avec le fait que SMAC(n, m) majore em qui est ´equivalent `a mr/r!. Il reste donc toujours au moins un indice j pour lequel Mj,n est vide. Par ailleurs, tant qu’il reste au moins deux Mj,n vides la croissance `a l’infini de m 7→SMAC(n, m) est trop forte pour que les fonctions SMIC(n, .) et SMAC(n, .) puissent co¨ıncider.

4 L’algorithme SMIC–SMAC

Les r´esultats pr´ec´edents conduisent `a l’algorithme suivant.

Entr´ee Une liste non videG0 = (f1, . . . , fs) de polynomes non nuls dek[x1, . . . , xr].

Sortie Une base de Gr¨obner minimaleGde I(f1, . . . , fs).

Variables

Mj : (pourj= 1, . . . , s) la liste des monomes xα tels que xαfj est tu´e par la triangulation sans ´echange de colonnes deGn,

V : liste des vecteurs non nuls obtenus dans cette triangulation, E : la liste des monomes de tˆete des ´el´ements de V,

F ri : une liste de monomes (la fronti`ere inf´erieure deE), G: la liste des polynomes de V correspondants `aF ri, F ini: variable bool´eenne,

n: num´ero de l’´etape en cours D´ebut

G:= [ ], F ri:= [ ], Mj := [ ] (pour j= 1, . . . , s), E:= [ ], F ini:=Faux,n:= 0, R´ep´eter

(10)

10 5 UNE PREUVE DE TERMINAISON DE L’ALGORITHME SMIC–SMAC Calculer V le r´esultat de la triangulation sans ´echange de colonnes de la

liste Gn (en profitant des calculs faits `a l’´etape pr´ec´edente si n >0), Actualiser les listes G,F ri,E (`a partir de V) et Mj pourj = 1, . . . , s (`a partir des vecteurs tu´es dans la triangulation),

Si F ri= [0] alors F ini=V rai % (I(f1, . . . , fs) =I(1)) sinon Si un seul des Mj est vide alors

Si SMIC(n, n+ 1) = SMAC(n, n+ 1) alors

Si ∀m≥n SMIC(n, m) = SMAC(n, m) alors F ini=Vrai, Si F ini=Faux alors n:=n+ 1,

Jusqu’`a ce que F ini Retourner G

Fin

Notez que le test

∀m≥n SMIC(n, m) = SMAC(n, m) ?

est de nature algorithmique en vertu du lemme 1. Cette question sera discut´ee en d´etail dans la section 6.

Et que l’algorithme termine en vertu du th´eor`eme 2.

Si on note Vn le r´esultat de la triangulation sans ´echange de colonnes de la liste Gn, on voit que lorsqu’on passe `a l’´etape suivante la liste x1Vn repr´esente le d´ebut de la triangulation sans ´echange de colonnes de la liste Gn+1, c.-`a-d. la triangulation du d´ebut de la listeGn+1 qui est justement ´egale `a x1Gn. Par ailleurs dans le reste de la liste Gn+1, qui est ´egal `a G2n+1 il est inutile de faire figurer les ´el´ements des Mj,n[1]. Une bonne gestion des choses permet donc d’´economiser une part substantitelle du calcul dans les triangulations successives.

La base de Gr¨obner minimale qui est calcul´ee par cet algorithme est optimale en ce sens qu’elle est donn´ee par des combinaisons lin´eaires de plus bas degr´e possible des polynomes de d´epart. Lorsqu’on actualise G etF ri on garde chaque ´el´ement f de G provenant de l’ancienne triangulation jusqu’au moment o`u il est rendu inutile par l’apparition d’un nouveau monome de tˆete dans F ri, divisant strictement celui def, ce qui chassef deG.

5 Une preuve de terminaison de l’algorithme SMIC–SMAC

Les deux preuves de terminaison que nous donnons dans cette section et dans la section 7 sont inspir´ees des preuves du lemme de Dickson (dans sa version classique [7] et dans sa version constructive [11]). N´eanmoins, nous sommes oblig´es d’introduire des notions ad hoc de suites croissantes, suites stationnaires, suites qui pausent, sans arriver `a faire rentrer ceci dans le moule usuel des ensembles partiellement ordonn´es v´erifiant les conditions de chaine ascendante.

La preuve que nous donnons dans cette section est assez simple, mais non constructive.

Nous avons tout d’abord besoin d’introduire un ensemble particulier.

Notation 7 On note Mr,δ l’ensemble des couples (n, A) o`u n∈NetA est une partie finie de Mr v´erifiant deg(A)≤n+δ.

Il est clair, avec les notations des sections pr´ec´edentes que chaque couple (n, Exp(n)) est un

´

el´ement deMr,d et chaque couple (n, Mj,n) est un ´el´ement de Mr,0.

D´efinition 8 Une suiten7→(n, An)`a valeurs dans Mr,δ est ditecroissantesi pour toutnon a An[1]⊂An+1. Elle est dite stationnaire(au del`a de n0) si pour tout n≥n0 on a An[1] =An+1.

(11)

Il est clair que la suite n 7→ (n, Exp(n)) est croissante dans Mr,d et que les suites n 7→

(n, Mj,n) sont croissantes dans Mr,0. On ´etablit alors tout d’abord le

Lemme 3 (Lemme `a la Dickson, non constructif )Pour tous entiers r ≥1 etd≥0, toute suite croissante n7→(n, An) dansMr,d est stationnaire.

Preuve La preuve se fait par r´ecurence sur l’entier r.

Pour r = 1.

Ici, nous utilisons une notion de “trou” dans une partie finie de M1 (c.-`a-d. de N) qui est claire par elle mˆeme, puisque l’ordre est total. Ou bien An est vide pour tout n et la suite est stationnaire. Ou bien il existe un premier entiern1pour lequelAn1 est non vide. Pourn≥n1 les deux suites d’entiers naturelsn7→Fri(An) et n7→n+d−deg(An) sont des suites d´ecroissantes donc stationnaires `a partir d’un certain rang n2 ≥ n1. Si δ est la largeur du plus grand trou dansAn2, la suite n7→(n, An) est surement stationnaire `a partir du rangn2+δ.

Passage de r−1 `ar (r≥2).

Soitn7→(n, An) une suite croissante dansMr,d. Ou bienAnest vide pour toutnet la suite est stationnaire. Ou bien il existe un premier entiern1 pour lequelAn1 est non vide. Pourn≥n1 la suite d’entiers naturelsn7→n+d−deg(An) est d´ecroissante donc stationnaire `a partir d’un rang n2 ≥n1. Soit xa avec a= (a1, . . . , ar) un monome de plus haut degr´e dans An2 et B = {xa}.

Pour n≥n2 on a

An=B[n−n2]∪ [

b,j

(Hb,j ∩An)

o`u les Hb,j (avec j ∈ {1, . . . , r}) forment une famille finie d’“hyperplans affines” dans Mr,d. Pr´ecis´ement chaque Hb,j est form´e des monomes xα o`u αj = b avec b l’un des entiers < aj. Chaque suiten 7→(n, Hb,j ∩An) peut alors ˆetre vue comme une suite croissante dans Mr−1,d. Par hypoth`ese de r´ecurrence, toutes ces suites stationnent (dans leurs espaces respectifs) `a partir d’un rangn3 ≥n2. PosonsBn:=B[n−n2](d’o`uBn[1] =Bn+1) etCn,b,j :=Hb,j∩An. Il n’est pas difficile de voir que pourn≥n2 on a

An[1] =Bn[1] ∪ [

b,j

Cn,b,j[1]r−1

(on a mis un indice r−1 `a l’exposant [1] pour indiquer que chaque Cn,b,j[1]r−1 est consid´er´e dans son espaceMr−1,d). En effet il n’est pas possible qu’un (Cn,b,j)[1]consid´er´e dansMr,d avec b=aj −1 contienne un ´el´ement qui soit “au dessus” de Bn+1. Ceci ach`eve la preuve.

Preuve non constructive du th´eor`eme 2 D’apr`es le lemme pr´ec´edent la suite n 7→

(n, Exp(n)) est stationnaire dans Mr,d et les suitesn7→(n, Mj,n) sont stationnaires dansMr,0, tout ceci `a partir d’un rang n0. On a donc pour m ≥ n ≥ n0, SMIC(n, m) = SMIC(n0, m) et SMAC(n, m) = SMAC(n0, m). Alors, vu le fait 3 les fonctions m 7→ SMIC(n0, m) et

m7→SMIC(n0, m) (pourm≥n0) sont ´egales.

6 Pour une implantation de l’algorithme

Pour une bonne gestion des triangulations des matrices Gn successives

Une premi`ere affaire importante dans l’implantation de l’algorithme est la bonne gestion des triangulations des matrices Gn successives. Sur ce point, nous ne pouvons que renvoyer au savoir faire des experts des matrices creuses structur´ees (voir par exemple le livre [2] pour les matrices Toeplitz par blocs et les articles [5], [6] et [13] pour les matrices quasi-Toeplitz).

(12)

12 6 POUR UNE IMPLANTATION DE L’ALGORITHME Quelques exemples pour y voir plus clair La partie la plus d´elicate dans l’implantation de l’algorithme est le test

∀m≥n SMIC(n, m) = SMAC(n, m) ?

qui doit ˆetre effectu´e dans le cas o`u il reste exactement un seul desMj,n vide et o`u SMIC(n, n+ 1) = SMAC(n, n+ 1) (qui sont faciles `a tester).

A vrai dire, il semble tr`` es improbable que les deux premi`eres questions aient re¸cu une r´eponse positive et que le test d’´egalit´e des fonctions SMIC et SMAC re¸coive une r´eponse n´egative. Dans la mesure o`u le test n’a pas `a ˆetre effectu´e bien souvent, on pourrait donc se contenter, en appliquant le lemme1, d’une proc´edure na¨ıve qui serait de compter chacun desB[m]jusqu’`am= ppcm(B)−val(B). Mais cette proc´edure na¨ıve semble inutilement coˆuteuse. Nous proposerons dans le paragraphe suivant les esquisses de deux autres proc´edures apr`es avoir examin´e deux nouveaux exemples.

Intuitivement, et en suivant la preuve du lemme 1, on peut penser que la fonction de crois- sance deA[n]est ´egale `a son polynome de croissance d`es queA[n]a rempli les “trous” qui doivent l’ˆetre entre la fronti`ere inf´erieure et le ppcm des monomes dansA. Ceci est confirm´e sur les deux exemples suivants, o`u la mˆeme proc´edure de comptage qu’`a l’exemple1peut ˆetre mise en place.

Exemple 2 Avec la partie B suivante, val(B) = 3, ppcm(B) = x61x52, deg(ppcm(B)) = 11, deg(B) = 8, et la fonction de croissance de B[n] devient ´egale `a son polynome de croissance, `a l’´etape 6, exactement au moment pr´evu par le lemme 1.

6 . . . . 5 . 0 . . . . 4 . . . . 3 . . . . 2 . . . 0 . . . 1 . . 0 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9

B[6]

11 . • . . . . 10 . 5 • . . . . 9 . 4 5 • . . . . 8 . 3 4 5 • . • . . . . 7 . 2 3 4 5 • 5 • . . . . 6 . 1 2 3 4 5 4 5 • . . . . . 5 . 0 1 2 3 4 3 4 5 • . . . . 4 . . 3 4 5 • 2 3 4 5 • . . . 3 . . 2 3 4 5 1 2 3 4 5 • . . 2 . . 1 2 3 4 0 1 2 3 4 5 • . 1 . . 0 1 2 3 4 5 • . . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13

On obtient HB(n) = (n−1)(n−2)2 + 5n+ 4n+ 8 = n(n−1)2 + 8n+ 9 avec la proc´edure de comptage suivante (le ppcm est en O).

(13)

11 . x . . . . | . . . . 10 . x x . . . | . . . . 9 . x x x . . | . . . . 8 . x x x x . | o . . . . 7 . x x x x x | o o . . . . 6 . x x x x x | o o o . . . . . 5 . x x x x x | O o o o . . . . --- 4 . . + + + + + + + + + . . . 3 . . + + + + + + + + + + . . 2 . . + + + + + + + + + + + . 1 . . + + + + + + + . . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13

Exemple 3 Avec la partie C suivante, val(C) = 3, ppcm(C) = x71x72, deg(ppcm(C)) = 14, deg(C) = 10, et la fonction de croissance de C[n]devient ´egale `a son polynome de croissance, `a l’´etape 4, bien avant le moment pr´evu par le lemme 1

7 . . 0 . . . . 6 . . . 0 . . . . 5 . . 0 . . . . 4 . . . . 3 . . . 0 . . 2 . 0 0 . . . . 1 . . . 0 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9

C[4]

11 . . • . . . . 10 . . 3 • . . . . 9 . . 2 3 • . . . . 8 . . 1 2 3 • . . . . 7 . . 0 1 2 3 • • . . . . . 6 . • 1 0 1 2 3 3 • . . . . 5 . 3 0 1 2 3 • 2 3 • . . . 4 . 2 2 3 • 3 • 1 2 3 • . . 3 . 1 1 2 3 2 3 0 1 2 3 • . 2 . 0 0 1 2 1 2 3 • . . . . 1 . . . 0 1 2 3 • . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12

On obtient HC(n) = (n+1)(n+2)2 + 6n+ 2n+ 11 = n(n−1)2 + 10n+ 12 avec la proc´edure de comptage suivante, (le ppcm est enO).

(14)

14 6 POUR UNE IMPLANTATION DE L’ALGORITHME 11 . . x . . . . | . . . .

10 . . x x . . . | . . . . 9 . . x x x . . | . . . . 8 . . x x x x . | . . . . 7 . x x x x x x | O . . . . . 6 . x x x x x x | o o . . . . 5 . x x x x x x | o o o . . . 4 . x x x x x x | o o o o . . 3 . x x x x x x | o o o o o . --- 2 . + + + + + + + + . . . . 1 . . . + + + + + . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12

Enfin le lecteur ou la lectrice n’aura pas de mal `a fournir un exemple o`u la proc´edure de comptage donn´ee dans ces dessins peut ˆetre mise en place avant queA[n]contienne le ppcm de A.

Des suggestions pour d´eterminer algorithmiquement les fonctions de croissance qui nous int´eressent

Notre premi`ere suggestion est d’essayer de d´ecrire le plus ´economiquement possible, ou du moins, de mani`ere relativement ´economique, une partieA sous forme d’une r´eunion de partiesXi[mi]o`u les Xi sont des singletons :

A=[

i∈I

Xi[mi]

Le nombre d’´el´ements deA[m]qui est la r´eunion desXi[m+mi]est alors calcul´e selon la proc´edure donn´ee dans la preuve du lemme 1 (avec les petites modifications ´evidentes n´ecessaires).

Si on a obtenu une ´ecriture ´economique pour Aet si on passe `a une partieA0 contenantA[1]

(ce qui est le cas lors de l’ex´ecution de l’algorithme SMIC–SMAC) on commence par remarquer que si A0 est la r´eunion disjointe deA[1] et de C alors

A0 =[

i∈I

Xi[mi+1] ∪ [

Xsingleton⊂C

X

Ensuite, il faut examiner si une proc´edure de simplification de l’´ecriture ci-dessus peut ˆetre mise en oeuvre, sinon `a chaque ´etape, du moins de mani`ere suffisamment fr´equente pour ´eviter l’explosion combinatoire redout´ee.

Une deuxi`eme proposition est d’utiliser une proc´edure de comptage analogue `a celle que nous avons montr´ee sur nos dessins en 2 variables. Une telle proc´edure consiste `a d´ecouper

“intelligemment” l’espaceMren une r´eunion disjointe de “sous espace affines”Hu de diff´erentes dimensions de mani`ere que les intersectionsHu∩A[m]aient rapidement un comportement facile

`

a d´ecrire. Par exemple chacune de ces intersections pourrait ˆetre un ensemble du type “ensemble des monomes multiples d’un monome donn´e et de degr´e inf´erieur `a max(0, m+m0) (o`um0 ∈Z)

`

a l’int´erieur du sous espace affine Hu”.

On peut sans doute proc`eder de mani`ere r´ecursive par rapport `a la dimension de ces sous espaces.

Tout d’abord, on cherche un monome xα de profondeur maximum dans A, c.-`a-d. un monome de degr´e le plus petit possible parmi ceux pour lesquels l’ensemble

(15)

{xβ : α|β et|β| ≤deg(A)}

est contenu dansA. Le premier sous espace affineHu est alorsH1 :={xβ : α|β}. On consid`ere ensuite les sous espaces affines de dimension r−1 convenables Hb,j, et on d´efinit

Hb,j :=Hb,j∩ {xβ : ∀k < j βk ≥αk}={xβ : βjj , ∀k < j βk≥αk}

de sorte que le compl´ementaire deH1 est consid´er´e comme la r´eunion disjointedes sous espaces affinesHb,j.

On dit alors quela situation est convexe si on a :

∀j ∀b < αj Hb,j∩A6=∅ ⇒ ∀b0∈[b, αj[Hb0,j∩A6=∅ Ceci n´ecessite peut-ˆetre d’attendre unA[m] convenable.

Une fois un tel m atteint, on traite chaque Hb,j∩A[m] non vide en commen¸cant par chercher dansHb,j un monome deprofondeur maximum par rapport `a Hb,j∩A[m], c.-`a-d. un monome de degr´e le plus petit possible dansHb,j parmi ceux pour lesquels l’ensemble

Hb,j∩ {xβ : α|βet|β| ≤deg(A[m]∩Hb,j)}

est non vide et contenu dans A[m]∩ Hb,j. Et ainsi de suite.

7 Une preuve de terminaison constructive

Nous commen¸cons par une notation.

Notation 9 Si A est une partie finie de Mr et k un entier >0 on note A[−k] l’ensemble des monomes xα tels que{xα}[k]⊂A.

La partieA[−k] est donc la plus grande partieB telle que B[k]⊂A. On a les inclusions A[−k][k]⊂A⊂A[k][−k], A[−k][−`]=A[−k−`](` >0, k≥0)

A⊂B ⇒ A[−k]⊂B[−k]

de sorte que

A[−k]=A[−k][k][−k] et A[k]=A[k][−k][k]

Cette section est divis´ee en trois sous-sections. Dans la premi`ere, nous discutons la notion de trou dans une partie finie A de Mr. Cette discussion nous sert `a introduire la deuxi`eme sous- section dans laquelle nous donnons les d´efinitions n´ecessaires pour notre preuve constructive de terminaison.

Qu’est-ce qu’un trou, et qu’est-ce qu’une partie sans trou ?

Dans l’exemple1, en posantC=A[4][−4], on obtientC[4] =A[4]avec la fonction de croissance de C ´egale au polynome de croissance de A. Dans le dessin ci-dessous, nous avons indiqu´e A avec des 0 et C\A avec des croix.

(16)

16 7 UNE PREUVE DE TERMINAISON CONSTRUCTIVE 11 . . . 0 0 . . . .

10 . . . 0 0 . . . . 9 . 0 0 . . . . 0 0 • • . . . 8 . 0 0 0 . . . 0 0 0 • • . . 7 . 0 0 0 0 . . 0 0 0 0 0 0 . 6 . 0 0 0 • • 0 • 0 0 0 0 0 . 5 . 0 0 0 • • • • 0 0 0 0 0 . 4 . 0 0 0 0 • • • 0 • • • • 0 3 . . . . 0 0 • 0 . . . . 2 . . . . 0 0 0 . . . . 1 . . . . 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13

Sur cet exemple, il semble raisonnable de consid´erer que les “trous” deA sont les ´el´ements de C\A. On voit que la fonction de croissance deA minore son polynome de croissance. Mais ce ph´enom`ene est loin d’ˆetre g´en´eral.

Exemple 4 Avec la partieDci-dessous par exemple 5 . . . .

4 . 0 . . . . 3 . . . . 2 . . . . 1 . . . 0 0 . . . .

0 1 2 3 4 5 6

on obtient HD(n) = n(n−1)2 + 6n−1 de sorte que HD(1) = 5 et HD(0) = −1, donc HD(0) = FD(0)−3 et HD(1) = FD(1)−1.

7 . 3 . . . . 6 . 2 3 . . . . 5 . 1 2 3 . . . . . 4 . 0 1 2 3 3 . . . 3 . . . 2 3 . . 2 . . . 1 2 3 . 1 . . . 0 1 2 3 0 . . . . 0 1 2 3 4 5 6 7 8

La fonction de croissance de D majore son polynome de croissance. On pourrait peut-ˆetre d´esigner des “antitrous” o de D dans M2 comme suit, dans la mesure o`u, si on affectait les antitrous d’un poids ´egal `a −1 tant qu’ils n’ont pas ´et´e remplis, on trouverait la fonction de croissance ´egale au polynome de croissance.

5 . . . . 4 . 0 o o . . . 3 . . . . 2 . . . o . 1 . . . 0 . 0 . . . . 0 1 2 3 4 5 6

(17)

Exemple 5 Plus inqui´etant, on peut trouver une partieE combinant un trou en positif et un antitrou, si bien que son polynome de croissance co¨ıncide avec la fonction de croissance mais qu’il ne serait pas raisonnable d’affirmer queE est sans trou. Avec l’exemple ci-dessous,

4 . . . . 3 . 0 . . . . 0 . . . 2 . . 0 . . . 0 0 . . 1 . . 0 0 . . 0 . 0 . 0 . . . .

0 1 2 3 4 5 6 7 8

on obtient pour toutnFE(n) = HE(n) = n(n−1)2 + 9n+ 9 comme on peut le voir en consid´erant A[2].

5 . 2 . . . . 2 . . . . 4 . 1 2 . . . 1 2 . . . 3 . 0 1 2 . . 0 1 2 . . 2 . . 0 1 2 . 0 0 1 2 . 1 . . 0 0 1 2 0 1 0 1 2 0 . . . . 0 1 2 3 4 5 6 7 8 9 10 On peut d´esigner un trou xet peut-ˆetre un antitrouo.

4 . . . . 3 . 0 . . . . 0 . . . 2 . . 0 . . . 0 0 . . 1 . . 0 0 o . 0 x 0 . 0 . . . . 0 1 2 3 4 5 6 7 8 9

N´eanmoins, il semble difficile de donner une d´efinition satisfaisante des trous et des antitrous dans le cas g´en´eral.

Trois d´efinitions utiles

Dans cette sous-section, nous essayons de rendre en partie compte des intuitions donn´ees pr´ec´edemment en deux variables. Plutot que d´efinir pr´ecis´ement les trous et les antitrous, nous proposons des d´efinitions correspondant `a l’absence de trou et d’antitrou. Ces d´efinitions sont surtout adapt´ees pour faire fonctionner notre preuve constructive de terminaison. Dans la d´efinition 10 l’absence de trou ne controle intuitivement que les trous en positif.

D´efinition 10 Une partie finie A de Mr est ditesans trou si pour tous entiersk≥0 et ` >0 on a A[k]=A[k+`][−`].

De la d´efinition r´esulte que si A est sans trou, il en va de mˆeme pour tous lesA[k] (k≥0). En outre on a imm´ediatement le fait suivant.

Fait 4 Supposons A sans trou, A[k]⊂B et A[k+`]=B[`]. Alors A[k]=B.

Dit sous une autre forme : siA est sans trou,A[k]⊂B etA[k]6=B alors pour tout entier` >0, A[k+`]6=B[`] et FA(k+`)<FB(`).

(18)

18 7 UNE PREUVE DE TERMINAISON CONSTRUCTIVE En effet (pour le premier cas) on aB ⊂B[`][−`]=A[k+`][−`]=A[k].

Nous donnons maintenant une d´efinition d’en ensemble stable, correspondant `a l’intuition d’un ensemble sans trou ni antitrou.

D´efinition 11 Une partie finie A de Mr est dite stable si elle est sans trou et si sa fonction de croissance co¨ıncide avec son polynome de croissance.

De la d´efinition r´esulte imm´ediatement que si A est stable, il en va de mˆeme pour tous les A[k] (k≥ 0). Il semble probable, mais nous n’avons pas r´eussi `a le d´emontrer, que pour toute partieA, la partie A[cA] est stable, o`u cAest l’entier deg(ppcm(A))−val(A)−r donn´e dans le lemme 1.

D´efinition 12 Une suite k 7→ (nk, Ak) `a valeurs dans Mr,δ est dite croissante si pour tout k < ` on a nk < n` et A[nk`−nk]⊂ A`. On dit que la suite pause entrek et ` > k si d’une part Ak est stable, et d’autre partA[nk`−nk]=A`.

En appliquant le fait4on voit que la suite pause entre ket`si et seulement si elle pause entre k etk+ 1, k+ 1 et k+ 2, . . .,`−1 et`. Notez `a ce sujet qu’il est important que Ak soit sans trou.

Il est clair, avec les notations des sections pr´ec´edentes que toute suite extraite de la suite n7→ (n, Exp(n)) est croissante dans Mr,d et que tout suite extraite d’une suite n 7→ (n, Mj,n) est croissante dansMr,0.

Lemme `a la Dickson, constructif, et preuve de terminaison On ´etablit maintenant le

Lemme 4 (Lemme `a la Dickson, constructif )Pour tous entiersr ≥1etd≥0, toute suite croissante k7→(nk, Ak) dansMr,d pause entre deux indices successifs.

Preuve La preuve se fait par r´ecurence sur l’entier r.

Pour r = 1. Ici, une partie de M1 est stable si et seulement si l’ensemble des degr´es est un intervalle de N. On consid`ere une suite croissante k7→ (nk, Ak) dans M1,d. Si A0 =A1 est vide, la suite pause entre 0 et 1. Sinon, par exemple A0 est non vide. Posons fk := (nk+d)− deg(Ak) + deg(Fri(Ak)). La suite k 7→ fk est d´ecroissante dans N. Soit δk la largeur du plus grand trou dansAk.

Siδk= 0 etfk+1 < fkalors le plus grand trou dansAk+1(s’il y en a un) se trouve tout au d´ebut ou tout `a la fin et sa largeur est inf´erieure ou ´egale `afk−fk+1−1 doncfk+1k+1 < fk=fkk. Siδk >0 et fk+1=fk alors δk+1k−1 etfk+1k+1< fkk.

Si δk > 0 et fk+1 < fk alors le plus grand trou dans Ak+1 est ou bien de largeur δk−1 (s’il est `a l’int´erieur de Ak) ou bien de largeur inf´erieure ou ´egale `a fk−fk+1 −1 (s’il est `a une des extr´emit´es). Dans le premier cas fk+1k+1 < fkk+1 < fkk. dans le deuxi`eme cas fk+1k+1 < fk< fkk.

Dans ces trois premiers cas, on a doncfk+1k+1< fkk.

Enfin la suite pause entre ket k+ 1 si et seulement siδk= 0 et fk+1 =fk. Ceci se produit au maximum apr`esf00< n0+d´etapes.

Passage de r−1 `ar (r≥2).

Remarquons d’abord que puisque “toute suite croissante pause dans dansMr−1,d” (au sens de la d´efinition12) alors “toute liste finie de suites croissantes pausent simultan´ement dansMr−1,d”.

(19)

Il suffit en effet de le voir pour deux suites k 7→ (nk, Ak) et k 7→ (mk, Bk). Si ki est la i–`eme valeur pour laquelle k 7→ (nk, Ak) pause entre ki et ki+1, on consid`ere la suitei 7→ (mki, Bki), qui pause par exemple t et t+ 1. Alors on voit facilement quek 7→ (nk, Ak) et k 7→ (mk, Bk) pausent simultan´ement entrektetkt+ 1.

On consid`ere maintenant une suite croissante k7→(nk, Ak) dans Mr,d. Si A0 =A1 est vide, la suite pause entre 0 et 1. Sinon, par exempleA0 est non vide. Posonsfk:= (nk+d)−deg(Ak). La suitek7→fk est d´ecroissante dansN. On notek0 = 0, puis k1, . . ., ku, . . . les indices successifs pour lesquels fku < fku−1. La suite u7→ ku est une suite qui ne peut avoir plus quef0 termes, et ces termes sont d´ecouverts au cours du d´eroulement de la suitek7→(nk, Ak).

Pour une valeur de u fix´ee, on consid`ere un monome xa(u) avec a(u) = (a1(u), . . . , ar(u)), de plus haut degr´e dansAku. On noteB(u) ={xa(u)}. Pour k≥ku on ´ecrit

Ak=B(u)[nk−nku] ∪ [

b,j

(Hb,j∩Ak)

o`u les Hb,j (avec j ∈ {1, . . . , r}) forment une famille finie d’“hyperplans affines” dans Mr,d. Pr´ecis´ement chaque Hb,j est form´e des monomes xα o`u αj =b avec b l’un des entiers< aj(u).

Si nous posons pourk≥ku

Bu,k :=B(u)[nk−nku] et Cu,k,b,j :=Hb,j∩Ak

la suite k 7→ (nk, Bu,k) est stationnaire dans Mr,d et les suites k 7→ (nk, Cu,k,b,j) sont des suites croissantes dansMr−1,d. Par hypoth`ese de r´ecurrence, ces derni`eres suites pausent simul- tan´ement entrehu ethu+ 1 pour un certain hu ≥ku.

Sifhu+1=fku alors en posant `=hu on a

A`[n`+1−n`]=Bu,`[n`+1−n`] ∪ [

b,j

Cu,`,b,j[n`+1−n`]r−1

(on a mis un indicer−1 `a l’exposant [n`+1−n`] pour indiquer que chaqueCu,`,b,j[n`+1−n`]r−1 est consid´er´e dans son espace Mr−1,d). En effet il n’est pas possible qu’unCu,`,b,j[n`+1−n`] consid´er´e dans l’espace entier Mr,d avec b = aj(u)−1 contienne un ´el´ement qui soit “au dessus” de Bu,`[n`+1−n`]. En cons´equence, la suite k 7→ (nk, Ak) pause entre ` et `+ 1. On d´efinit alors hv =hu pour toutv > u.

Sifhu+1 < fku alorsku+1 est d´efini et se trouve entre ku ethu+ 1. Dans ce cas, on recommence avec u+ 1 et on obtient hu+1.

Ainsi, la suiteu7→hu est une suite infinie bien d´efinie, croissante au sens large. Comme elle ne peut pas ˆetre strictement croissante pendant plus que f0 termes, elle pause certainement. Ceci

ach`eve la preuve.

Fait 5 Supposons queExp(n) soit stable avec Exp(n+r) =Exp(n)[r] et que pour j= 1, . . . , s, Mj,n soit stable avec Mj,n+r=Mj,n[r].

Alors ∀m≥n SMIC(n, m) = SMAC(n, m).

Preuve En effet, pour h = 1, . . . , r on a alorsExp(n+h) =Exp(n)[h] et (pour j = 1, . . . , s) Mj,n+h = Mj,n[h]. D’apr`es les faits 3 (page 9) et 4 (page 17), cela donne de proche en proche SMIC(n, n+h) = SMAC(n, n+h) et les deux polynomes de degr´e r sont donc ´egaux.

Preuve constructive du th´eor`eme 2 D’apr`es le lemme 4 la suite n 7→ (nr, Exp(nr)) et les suitesn7→(nr, Mj,nr) pausent simultan´ement dansMr,d. On conclut en appliquant le fait 5.

On notera que cette preuve du th´eor`eme 2 fournit une nouvelle preuve constructive de l’existence d’une base de Gr¨obner pour un id´eal de type fini dans k[x1, . . . , xr] et donc aussi du Hilbert basis theorem (voir [14], [15], [12], [11]).

(20)

20 7 UNE PREUVE DE TERMINAISON CONSTRUCTIVE

Conclusion

Dans cette section nous donnons d’abord quelques arguments pour ´etayer l’id´ee que notre algorithme pourrait ˆetre plus performant que l’agorithme de Buchberger. Ensuite nous indiquons des axes de recherche future.

L’algorithme SMIC–SMAC est une g´en´eralisation d´ecisive de l’algorithme expos´e en deux variables dans la th`ese de 3`eme cycle [9] de A. Kanber : Algorithme de calcul d’une base de Gr¨obner d’un Id´eal de K[X, Y] par Triangulation de “Matrices de Sylvester”, soutenue sous la direction de l’auteur et de S. Labhalla.

Ce dernier algorithme ´etait lui-mˆeme une g´en´eralisation d´ecisive de l’algorithme [10] de r´eduction de Hermite d’une matrice `a coefficients polynomiaux.

Dans la mise au point pr´ecise de l’algorithme en deux variables, lequel n’´etait pas r´efl´echi di- rectement en termes SMIC–SMAC, A. Kanber a utilis´e une d´efinition tr`es subtile d’une “fronti`ere sup´erieure” de Exp(n) dont nous ne savons pas si elle peut ˆetre g´en´eralis´ee en plus que deux variables, et qui simplifie le test d’arrˆet, d’ailleurs l´eg`erement diff´erent de celui de l’algorithme SMIC–SMAC. Une premi`ere implantation rudimentaire semble indiquer une ´economie substan- tielle de l’espace m´emoire utilis´e en comparaison avec l’algorithme de Buchberger.

L’algorithme SMIC–SMAC et les algorithmes qui l’ont pr´ec´ed´e ont ´et´e en bonne partie mo- tiv´es par la comparaison entre l’algorithme d’Euclide et l’agorithme des sous-r´esultants. Dans l’algorithme des sous-r´esultants, on ´evite de calculer des restes de restes . . . de restes, et cela permet de mieux controler la taille des coefficients lorsque les entr´ees sont dansZpar exemple.

L’exp´erimentation faite par G. Villard au sujet de l’algorithme Hermipol donn´e en [10] a montr´e une ´economie spectaculaire d’espace m´emoire en comparaison de l’agorithme na¨ıf. Notre espoir est qu’une ´econmie de mˆeme type soit r´ealis´ee dans notre algorithme en comparaison de l’al- gorithme de Buchberger. Il semble possible qu’une ´economie soit ´egalement r´ealis´ee en ce qui concerne les degr´es des polynomes manipul´es. En revanche, il est possible que notre algorithme soit conduit `a cr´eer un beaucoup plus grand nombre de polynomes que ne le fait l’algorithme de Buchberger.

De nombreuses variantes et extensions de l’algorithme SMIC–SMAC peuvent ˆetre envisag´ees.

Primo il serait int´eressant d’examiner en d´etail le cas homog`ene. Secundo, il faudrait donner une g´en´eralisation de l’algorithme pour calculer d’autres types de bases de Gr¨obner par exemple pour les modules. Tertio, il faudrait ´etudier les rapports ´etroits qui semblent exister entre le SMAC et le module des relations entre les g´en´erateurs de d´epart.

Nous terminons sur une question que nous laissons ouverte et qui nous intrigue au plus haut point.

La fonctionm7→em= dim(Em) est ´egale `a partir d’un certain rangn0 au polynomeH(m) = SMIC(∞, m) = SMAC(∞, m) qui est par d´efinition la valeur des fonctionsm7→SMIC(n, m) et m7→SMAC(n, m) pour netm assez grand.

Notons que la fonction SMIC d´epend a priori l’ordre admissible consid´er´e. Par contre la fonction SMAC et la fonction m 7→ em = dim(Em), donc a fortiori la fonction H(m) = SMIC(∞, m) = SMAC(∞, m) sont tout `a fait ind´ependantes de l’ordre admissible.

N’est-on pas pourtant assur´e (cela semble intuitivement extrˆemement plausible) que, aux environs de l’´etapen0 (entre l’´etapen0/r et l’´etape rn0 par exemple) l’ensemble G calcul´e par l’algorithme SMIC–SMAC est en fait une base de Gr¨obner de l’id´eal consid´er´e ?

Un tel r´esultat malgr´e sa plausibilit´e semblerait impliquer un ´ecart relativement faible entre les degr´es de diff´erentes bases de Gr¨obner minimales pour diff´erents ordres admissibles, en contra- dition avec les id´ees couramment admises en la mati`ere.

(21)

Ceci nous semble m´eriter une ´etude attentive qui pourrait prendre la forme suivante : si l’ensemble G calcul´e `a l’´etape n1 par l’algorithme SMIC–SMAC est une base de Gr¨obner de l’id´eal (et rappelons que ceci se produit de mani`ere optimale), `a quelles ´etapes peut on ˆetre assur´e d’une part que l’algorithme s’arrˆete, et d’autre part queem devient ´egal `a H(m) ? Remerciements Nous remercions tout particuli`erement A. Galligo, M.-F. Roy, L. Gonz´alez- Vega, L. Pottier, H. Perdry, A. Kanber, B. Sadik, M. El Kahoui et S. Labhalla pour toutes les discussions, suggestions et encouragements qui ont permis d’´elaborer et d’am´eliorer l’agorithme expos´e ici.

R´ ef´ erences

[1] Becker T., Weispfening V. : Gr¨obner Bases. Springer 1993. 1

[2] Bini D., Pan V. : Polynomial and matrix computations, vol 1 : Fundamental Algorithms.

Birkha¨user, 1994. 11

[3] Buchberger B. :Gr¨obner Bases : an algorithmic method in polynomial ideal theoryin Mul- tidimensional Systems Theory, ed. Bose N. K., D. Reidel Publishing Company, Dordrecht, 1985, 184–232. 1

[4] Cox Q., Little J, O’Shea D. : Ideals, Varieties, and Algorithms. (Springer Verlag UTM) (1992). 1

[5] Emiris I., Pan V. :The structure of sparse resultant matrices. Proceedings ISSAC 97. ACM Publications, 1997. 11

[6] Emiris I., Pan V. : Symbolic and numeric methods for exploiting structure in constructing resultant matrices. Preprint. 11

[7] Galligo A. :Algorithmes de calcul de Bases Standard. Technical Report. Universit´e de Nice.

1983. 10

[8] Hardy G., Wright E. : An introduction to the theory of numbers. 5th edition, Clarendon Press, 1979. 6

[9] Kanber A. : Algorithme de calcul d’une base de Gr¨obner d’un Id´eal de K[X, Y] par Trian- gulation de “Matrices de Sylvester”.Th`ese de 3`eme cycle, novembre 97, Marrakech. 20 [10] Labhalla S., Lombardi H., Marlin R. : Algorithmes de calcul de la r´eduction de Hermite

d’une matrice `a coefficients polynomiaux.Theoretical Computer Science,161, 1996, 69–92.

20

[11] Lombardi H., Perdry H. :The Buchberger Algorithm as a Tool for Ideal Theory of Polyno- mial Rings in Constructive Mathematics. In ”Gr¨obner Bases and Applications (Proc. of the Conference 33 Years of Gr¨obner Bases)”. B. Buchberger and F. Winkler (eds.), Cambridge University Press, London Mathematical Society Lecture Notes Series, vol. 251 (1998). 10, 20

[12] Mines R., Richman F., Ruitenburg W. A Course in Constructive Algebra. Universitext.

Springer-Verlag, 1988. 20

[13] Mourrain B., Pan V. :Solving special polynomial systems by using structured matrices and algebraic residues. Proc. Workshop on Foundations of Computational Mathematics, Cucker F., Shub M. (eds). Springer LNCS 1997. 11

[14] Richman F. :Constructive aspects of Noetherian rings.In : Proc. Amer. Mat. Soc. 4. 436–

441.(1974) 20

(22)

22 TABLE DES MATI `ERES [15] Seidenberg A. :What is Noetherian ? In : Rend. Sem. Mat. e Fis. di Milano 44. 55–61(1974)

20

Table des mati` eres

Introduction 1

1 Pr´eliminaires 2

2 Le SMIC 6

3 Le SMAC 7

4 L’algorithme SMIC–SMAC 9

5 Une preuve de terminaison de l’algorithme SMIC–SMAC 10

6 Pour une implantation de l’algorithme 11

7 Une preuve de terminaison constructive 15

Conclusion 20

Références

Documents relatifs

dynamique pour réaliser l'alignement entre deux blos. ou entre un blo et

L’algorithme appelé RecursiveCorvering dans [6] décrit le calcul récursif de la distance maximale entre un noeud donné et une feuille quelconque.. Cet algorithme prend en entrée

Connaissant la position de chaque capteur à une erreur de position près, et leur rayon d’émission r , nous proposons dans cette section une fonction permettant d’estimer la

Dans la section 3, nous utilisons la mv- d´ecomposition pour proposer des solutions avec garantie de performances au probl`eme de diffusion `a dis- tance 2 : ce probl`eme est la

Nous proposons aussi un algorithme en une passe ( FIASCO 1), pour les flots de données, permettant de mettre à jour incrémentale- ment le FIAθ , item par item, avec une phase

Construire le tableau de variation de la fonction f sur [0 ; 1]... CALCUL INTEGRAL

Deux approches sont utilisées pour classer les techniques mathématiques non- supervisée et non-paramétriques pour la réduction de la dimensionnalité : celles basées sur la

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des