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



Documents pareils
Une forme générale de la conjecture abc

Image d un intervalle par une fonction continue


Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Programmation linéaire

Le produit semi-direct

Fonctions de plusieurs variables

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Chapitre 2 Le problème de l unicité des solutions

Introduction à l étude des Corps Finis

Continuité en un point

Université Paris-Dauphine DUMI2E 1ère année, Applications

Polynômes à plusieurs variables. Résultant

La mesure de Lebesgue sur la droite réelle

Exercices Corrigés Premières notions sur les espaces vectoriels

2 Division dans l anneau des polynômes à plusieurs variables

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

Intégration et probabilités TD1 Espaces mesurés Corrigé

Résolution de systèmes linéaires par des méthodes directes

Suites numériques 3. 1 Convergence et limite d une suite

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Limites finies en un point

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Cours 02 : Problème général de la programmation linéaire

PEUT-ON «VOIR» DANS L ESPACE À N DIMENSIONS?

Cours de mathématiques

Analyse fonctionnelle Théorie des représentations du groupe quantique compact libre O(n) Teodor Banica Résumé - On trouve, pour chaque n 2, la classe

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Programmation linéaire

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Programmation linéaire et Optimisation. Didier Smets

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

chapitre 4 Nombres de Catalan

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Représentation des Nombres

Chapitre VI - Méthodes de factorisation

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

DOCM Solutions officielles = n 2 10.

Principe de symétrisation pour la construction d un test adaptatif

Résolution d équations non linéaires

Fibonacci et les paquerettes

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Chapitre 7. Récurrences

Calcul fonctionnel holomorphe dans les algèbres de Banach

Raisonnement par récurrence Suites numériques

Calcul différentiel sur R n Première partie

1 Définition et premières propriétés des congruences

PRIME D UNE OPTION D ACHAT OU DE VENTE

Les indices à surplus constant

3 Approximation de solutions d équations

Relation d ordre. Manipulation des relations d ordre. Lycée Pierre de Fermat 2012/2013 Feuille d exercices

Probabilités sur un univers fini

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Théorèmes de Point Fixe et Applications 1

Correction de l examen de la première session

Date : Tangram en carré page

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Rappels sur les suites - Algorithme

Développement décimal d un réel

Chapitre 5 : Flot maximal dans un graphe

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Probabilités sur un univers fini

3. Conditionnement P (B)

Chapitre 7. Statistique des échantillons gaussiens. 7.1 Projection de vecteurs gaussiens

Équations d amorçage d intégrales premières formelles

Texte Agrégation limitée par diffusion interne

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Intégration et probabilités TD1 Espaces mesurés

Approximations variationelles des EDP Notes du Cours de M2

Architecture des Systèmes d Information Architecture des Systèmes d Information

Cours d Analyse. Fonctions de plusieurs variables

La persistance des nombres

La fonction exponentielle

Optimisation Discrète

Capes Première épreuve

Cours de Probabilités et de Statistique

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Logique. Plan du chapitre

CHAPITRE 5. Stratégies Mixtes

Corps des nombres complexes, J Paul Tsasa

Définitions. Numéro à préciser. (Durée : )

Continuité d une fonction de plusieurs variables

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Théorème du point fixe - Théorème de l inversion locale

Théorie et codage de l information

Théorie de la Mesure et Intégration

Suites numériques 4. 1 Autres recettes pour calculer les limites

Fonction inverse Fonctions homographiques

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

I. Polynômes de Tchebychev

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Le modèle de Black et Scholes

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Transcription:

Un nouvel algorithme de calcul d une Base de Gröbner H. Lombardi Janvier 98 Équipe de Mathématiques de Besançon. UMR CNRS 6623. UFR des Sciences et Techniques. Université de Franche-Comté. 25030 Besançon Cedex email : henri.lombardi@univ-fcomte.fr Résumé Nous donnons un nouvel algorithme de calcul d une base de Gröbner d un idéal dans un anneau de polynomes. Cet algorithme est de conception radicalement différente de l algorithme de Buchberger. Il n utilise ni divisions ni S-polynomes. Il est basé sur le controle de la croissance du rang de matrices de Sylvester généralisées successives. Ces matrices sont définies de manière incrémentale en rajoutant à chaque étape de nouvelles colonnes et les lignes nécessaires. L idée principale est de borner inférieurement et supérieurement les rangs des futures matrices en tant que fonctions du numéro de l étape en cours, jusqu à ce que ces fonctions coïncident. Classification AMS : 13P10, 12Y05, 15A03, 65F50 Mots clés : Bases de Gröbner, Algèbre linéaire, Matrices de Sylvester, Mathématiques Constructives. Introduction Nous donnons un nouvel algorithme de calcul d une base de Gröbner d un idéal dans un anneau de polynomes. Cet algorithme est de conception radicalement différente de l algorithme de Buchberger (cf. [3], [4], [1]). Il n utilise ni divisions ni S-polynomes. Il est basé sur le controle de la croissance du rang de matrices de Sylvester successives. Si A est une partie finie de k[x 1,..., x r ] nous définissons A [1] = A x 1 A... x r A and A [n+1] = (A [n] ) [1]. Si G 0 = [f 1,..., f s ] est une liste de polynomes de k[x 1,..., x r ] nous définissons G n = G [n] 0. Ceci peut être considéré comme une matrice de Sylvester associée à G 0. Nous notons E n le k-espace vectoriel engendré par G n. A partir de G n nous définissons dans la section 2 une fonction SMIC G0 (n, m) qui vérifie SMIC(n, m) dim(e m ) pour tout m n. Nous appelons cette fonction minimum structurel de croissance, prévisible à l étape n pour l étape m. Nous définissons dans la section 3 une fonction SMAC G0 (n, m) qui vérifie SMAC(n, m) dim(e m ) pour tout m n. Nous appelons cette fonction maximum structurel de croissance, prévisible à l étape n pour l étape m. 1

2 1 PRÉLIMINAIRES Nous indiquons comment calculer ces fonctions et comment tester leur égalité en utilisant une triangulation sans échange de colonnes de la matrice G n. L algorithme SMIC-SMAC est donné à la section 4. Il se résume en la triangulation des matrices G n successives jusqu à ce que le SMIC devienne égal au SMAC. Le fait que ceci se produit bien est prouvé dans les sections 5 and 7. La deuxième preuve est constructive et pourrait donc fournir des bornes pour le temps d exécution de l algorithme. Différentes questions techniques sont discutée dans la section 6. A priori notre algorithme pourrait réduire l espace utilisé en mémoire lorsqu on le compare à l algorithme de Buchberger. Notre approche est basée sur l algèbre linéraire bien controlée. Il est donc possible qu elle soit en rapport étroit avec le travail de J.-C. Faugère qui a développé un nouvel algorithme efficace (FGB) pour calculer les bases de Gröbner et qui s appuie sur des techniques d algèbre linéaire et de gestion de la mémoire. Ces liens possibles seront plus clairs lorsque J.-C. Faugère publiera ses résultats. 1 Préliminaires Nous introduisons d abord quelques notations. Notations 1 Soit k un corps. M r désigne l ensemble des monomes x α = x α 1 1... xαr r en r variables. L ensemble M r est muni de l ordre partiel naturel de la divisibilité. On notera x α x β pour x α divise x β. Le degré total α 1 + + α r de x α est noté α. Le degré total d un polynome f (le maximum des degrés totaux de ses termes) est noté totdeg(f). Un ordre admissible (i.e. un ordre total raffinant la divisibilité et compatible avec la multiplication des monomes) sur M r est fixé 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ête est cx α, on note Lm(f) := x α le monome de tête de f. Rappelons qu une base de Gröbner d un idéal de polynomes I = I(f 1,..., f s ) est une famille finie (g 1,..., g t ) d éléments de I telle que le monome de tête de tout élément f 0 de I soit un multiple de l un des Lm(g j ). Si A est une partie de k[x 1,..., x r ] on note A [0] = A A [1] = A x 1 A... x r A A [n+1] = (A [n] ) [1] On a A B A [1] B [1] (A B désigne l inclusion au sens large). On note deg(a) := max{totdeg(f); f A} le degré total maximum des éléments de A. On a donc deg(a [n] ) = n + deg(a). Par convention, si A est vide deg(a) =. On suppose désormais que A est une partie finie de M r. On note Fri(A) la frontière inférieure de A, c.-à-d. la partie de A formée par les monomes minimaux pour la divisibilité. On a naturellement Fri(A) = Fri(A [1] ). On note val(a) := inf{ α ; x α A} le degré total minimum des éléments de A. On a val(a [n] ) = val(a). Par convention, si A est vide val(a) = +. On note F A (n) := #(A [n] ) le nombre d éléments de A [n]. La fonction n F A (n) est appelée la fonction de croissance de A. Le lemme suivant est intuitivement assez naturel.

3 Lemme 1 Si A est une partie finie non vide de M r, alors à partir d un rang n 0 deg(ppcm(a)) val(a) r la fonction n F A (n) est égale à un polynome en n, que nous noterons H A (n). Lorsque n tend vers l infini, H A (n) est équivalent à ( ) n+r r c.-à-d. encore à n r /r!. Le polynome H A (n) est appelé le polynome de croissance de A. D après le lemme 1, la fonction de croissance de A peut être décrite de manière entièrement explicite. Nous allons donner une preuve combinatoire du lemme mais auparavant nous montrons un exemple. Exemple 1 Nous donnons un exemple avec A M 2 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 1 PRÉLIMINAIRES 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 x 12 1 x4 2 (la notion de trou sera discutée dans la section 7).

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 égal à sa fonction de croissance : pour tout n 4 on a { FA (n) = H A (n) = (n+1)(n+2) 2 + 8n + 9n + 71 = n(n 1) 2 + 19n + 72 F A (n + 1) F A (n) = n + 19 comme on peut le voir avec la procédure 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 2 LE SMIC Une preuve combinatoire du lemme 1 Notons X un singleton formé d un monome x α = x α 1 1... xαr r. Nous remarquons que pour une partie finie A de M r on peut écrire A [m] = X [m] X singleton A Par ailleurs, il est facile de déterminer le nombre d éléments d une intersection X [m] 1 X [m] 2 ou plus généralement X [m] 1 X [m] 2 X s [m]. En effet X [m] 1 X [m] 2 X [m] s = {x β ; ppcm(x 1, X 2,..., X s ) x β et β m + inf i=1,...,s (deg(x i))} Donc, en posant p := deg(ppcm(x 1, X 2,..., X s )) et v = inf i=1,...,s (deg(x i )) on obtient #(X [m] 1 X [m] 2 X [m] s ) = et donc aussi, puisque ( ) u+r r = 0 pour u = r,..., 1 { #(X [m] 1 X [m] 2 X [m] s ) = { 0 ) si v + m < p si v + m p ( v+m p+r r 0 ) si m < p v r si m p v r ( v+m p+r r Enfin on conclut en se rappelant la formule qui donne le nombre d éléments d une réunion finie d ensembles finis en fonction des nombres d éléments des intersections (cf. [8] p. ). Par exemple, en notant A ij := A i A j, A ijk := A i A j A k etc. #(A 1 A 2 A 3 A 4 ) = 1 i 4 #(A i ) 1 i j 4 #(A ij ) + 1 i j k 4 #(A ijk ) #(A 1234 ) 2 Le SMIC Dans toute la suite on considère un corps k fixé et une liste non vide fixée G 0 = [f 1,..., f s ] de polynomes de k[x 1,..., x r ]. On fixe les notations suivantes Notations 2 d = deg(g 0 ) G n = G [n] 0 E n = Vect(G n ) le k-espace vectoriel engendré par G n. Exp(n) := {Lm(f); f 0, f E n } l ensemble des monomes de tête des polynomes non nuls de E n. Notez qu on a nécessairement Exp(n) [1] Exp(n + 1). e n := #(Exp(n) = dim(e n ) est la dimension du k-espace vectoriel E n = Vect(G n ). I(f 1,..., f s ) est l idéal engendré par f 1,..., f s. Définition 3 Pour tout m n on note SMIC G0 (n, m) := SMIC(n, m) := F Exp(n) (m n). On l appelle le minimum structurel de croissance, prévisible à l étape n pour l étape m. On a immédiatement.

7 Fait 1 Pour tout n n m on a SMIC(n, m) SMIC(n, m) e m = SMIC(m, m). Lorsque m tend vers l infini SMIC(n, m) et e m sont équivalents à m r /r!. En effet SMIC(n, m) e m F P (m) si P est l ensemble des monomes présents dans G 0. Définition 4 Nous appelons triangulation selon les colonnes d une matrice M toute méthode algorithmique qui remplace la matrice M par une autre matrice M qui engendre le même espace de vecteurs colonnes et qui, pour chaque ligne possède au plus une colonne dont le coefficient de tête est sur cette ligne. Une manière de déterminer Exp(n) est de trianguler selon les colonnes la matrice dont les vecteurs colonnes sont les éléments de G n écrits sur la base des monomes présents à l étape n (c.-à-d. les monomes dans P [n] ) ordonnée en décroissant selon l ordre admissible. Nous serons particulièrement intéressés par des triangulations selon les colonnes et sans échange de colonnes. Dans ce cas, il faut remarquer que les numéros de ligne des pivots successifs ne vont pas en décroissant, ce qui nuit un peu à 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 échange de colonne. Nous avons supprimé les colonnes réduites à 0. Nous mettons. pour 0, pour les pivots, x pour une entrée arbitraire. Mais l important pour nous est de bien gérer l évolution de Exp(n), et ceci est beaucoup plus facile avec une triangulation sans échange de colonnes. Lorsque nous parlons d une triangulation sans échange de colonnes, nous sous-entendons toujours qu il s agit d une triangulation selon les colonnes. 3 Le SMAC Nous définissons maintenant G n comme une liste ordonnée. Le polynome x α f i précède le polynome x β f j dans la liste G n si α = β et i < j ou si β précède α pour l ordre lexicographique

8 3 LE SMAC des monomes avec x 1 > > x r. Ceci implique que si x α f i précède x β f j dans la liste G n alors cela reste vrai dans la liste G n+1, et en outre x h x α f i précède x h x β f j (pour h = 1,..., r) dans la liste G n+1. La liste G n peut être également construite selon la règle récursive suivante, où représente la concaténation des listes. Nous nous contentons d expliquer le cas r = 3. On pose G 1 0 = G2 0 = G3 0 = G 0 puis G 3 n+1 = x 3G 3 n G 0 G 2 n+1 = x 2G 2 n G 3 n+1 et enfin G n+1 = G 1 n+1 = x 1G 1 n G 2 n+1 Si nous considérons G n comme une liste de vecteurs colonnes, donc comme une matrice, nous avons là une variante ou une généralisation des matrices de Sylvester usuelles. On a immédiatement. Lemme 2 Si x α f i est combinaison linéaire des vecteurs qui le précèdent dans la liste G n alors cela reste vrai dans la liste G n+1, et en outre x h x α f i est combinaison linéaire des vecteurs qui le précèdent dans la liste G n+1 (pour h = 1,..., r). Remarque 1 Le polynome x α f i est combinaison linéaire des vecteurs qui le précèdent dans la liste G n si et seulement si il est tué (réduit à 0) dans une triangulation de G n sans échange de colonnes. Notation 5 La liste finie G 0 = [f 1,..., f s ] de polynomes de k[x 1,..., x r ] étant fixée, pour j = 1,..., s on note M j,n la partie suivante de M r. M j,n := {x α ; x α f j est combinaison linéaire des vecteurs qui le précèdent dans la liste G n } Un corollaire immédiat du lemme 2 est le suivant. Corollaire 1 Pour j = 1,..., s et pour tout m n N on a M [1] j,n M j,n+1 et M [m n] j,n M j,m Remarquons maintenant que la dimension e n de E n est égale au nombre de vecteurs non tués dans une triangulation de G n. Autrement dit : e n = dim(e n ) = s (( ) ) n + r #(M j,n ). n j=1 Ceci nous conduit naturellement à la définition du SMAC. Définition 6 Pour tout m n on note SMAC G0 (n, m) := SMAC(n, m) := s (( m+r ) j=1 m FMj,n (m n) ). On l appelle le maximum structurel de croissance, prévisible à l étape n pour l étape m. Vues les remarques et le corollaire qui précèdent la définition on a immédiatement. Fait 2 Pour tout n n m on a Voici un autre fait, simple et crucial. SMAC(n, m) SMAC(n, m) e m = SMAC(m, m).

9 Fait 3 Supposons que SMIC(n, n + 1) = SMAC(n, n + 1). Alors e n+1 = SMIC(n, n + 1) = SMAC(n, n + 1), Exp(n + 1) = Exp(n) [1] et pour j = 1,..., s, M j,n+1 = M j,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 lorsque SMIC(n, n+1) < SMAC(n, n+1) alors SMIC(n+1, n+1) > SMIC(n, n+1) ou SMAC(n + 1, n + 1) < SMAC(n, n + 1), et Exp(n) [1] Exp(n + 1) ou M j,n [1] M j,n+1 pour l un des j = 1,..., s. On en déduit le théorème suivant. Théorème 1 Si pour un entier n on a m n SMIC(n, m) = SMAC(n, m) alors pour tout m n, e m = SMIC(n, m) Fri(Exp(n)) = Fri({Lm(I(f 1,..., f s ))}) les polynomes de la triangulée de G n dont le monome de tête est un élément de la frontière inférieure Fri(Exp(n)) forment une base de Gröbner minimale de l idéal I(f 1,..., f s ) Enfin, le rapprochement des fonctions SMIC et SMAC est inexorable comme l affirme le théorème suivant, dont nous donnerons deux preuves dans les sections 5 et 7. Théorème 2 Pour tout système G 0 = [f 1,..., f s ] dans k[x 1,..., x r ] on a n N m n SMIC(n, m) = SMAC(n, m) Remarque 2 Si pour un entier n tous les M j,n étaient non vides, alors la fonction m SMAC(n, m) serait, pour m assez grand, un polynome de degré < r, ce qui est incompatible avec le fait que SMAC(n, m) majore e m qui est équivalent à m r /r!. Il reste donc toujours au moins un indice j pour lequel M j,n est vide. Par ailleurs, tant qu il reste au moins deux M j,n vides la croissance à l infini de m 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ésultats précédents conduisent à l algorithme suivant. Entrée Une liste non vide G 0 = (f 1,..., f s ) de polynomes non nuls de k[x 1,..., x r ]. Sortie Une base de Gröbner minimale G de I(f 1,..., f s ). Variables M j : (pour j = 1,..., s) la liste des monomes x α tels que x α f j est tué par la triangulation sans échange de colonnes de G n, V : liste des vecteurs non nuls obtenus dans cette triangulation, E : la liste des monomes de tête des éléments de V, F ri : une liste de monomes (la frontière inférieure de E), G : la liste des polynomes de V correspondants à F ri, F ini : variable booléenne, n : numéro de l étape en cours Début G := [ ], F ri := [ ], M j := [ ] (pour j = 1,..., s), E := [ ], F ini := Faux, n := 0, Répéter

10 5 UNE PREUVE DE TERMINAISON DE L ALGORITHME SMIC SMAC Fin Calculer V le résultat de la triangulation sans échange de colonnes de la liste G n (en profitant des calculs faits à l étape précédente si n > 0), Actualiser les listes G, F ri, E (à partir de V ) et M j pour j = 1,..., s (à partir des vecteurs tués dans la triangulation), Si F ri = [0] alors F ini = V rai % (I(f 1,..., f s ) = I(1)) sinon Si un seul des M j 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 à ce que F ini Retourner G 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ée en détail dans la section 6. Et que l algorithme termine en vertu du théorème 2. Si on note V n le résultat de la triangulation sans échange de colonnes de la liste G n, on voit que lorsqu on passe à l étape suivante la liste x 1 V n représente le début de la triangulation sans échange de colonnes de la liste G n+1, c.-à-d. la triangulation du début de la liste G n+1 qui est justement égale à x 1 G n. Par ailleurs dans le reste de la liste G n+1, qui est égal à G 2 n+1 il est inutile de faire figurer les éléments des M j,n [1]. Une bonne gestion des choses permet donc d économiser une part substantitelle du calcul dans les triangulations successives. La base de Gröbner minimale qui est calculée par cet algorithme est optimale en ce sens qu elle est donnée par des combinaisons linéaires de plus bas degré possible des polynomes de départ. Lorsqu on actualise G et F ri on garde chaque élément f de G provenant de l ancienne triangulation jusqu au moment où il est rendu inutile par l apparition d un nouveau monome de tête dans F ri, divisant strictement celui de f, ce qui chasse f de G. 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ées des preuves du lemme de Dickson (dans sa version classique [7] et dans sa version constructive [11]). Néanmoins, nous sommes obligés d introduire des notions ad hoc de suites croissantes, suites stationnaires, suites qui pausent, sans arriver à faire rentrer ceci dans le moule usuel des ensembles partiellement ordonnés vérifiant 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 M r,δ l ensemble des couples (n, A) où n N et A est une partie finie de M r vérifiant deg(a) n + δ. Il est clair, avec les notations des sections précédentes que chaque couple (n, Exp(n)) est un élément de M r,d et chaque couple (n, M j,n ) est un élément de M r,0. Définition 8 Une suite n (n, A n ) à valeurs dans M r,δ est dite croissante si pour tout n on a A n [1] A n+1. Elle est dite stationnaire (au delà de n 0 ) si pour tout n n 0 on a A n [1] = A n+1.

11 Il est clair que la suite n (n, Exp(n)) est croissante dans M r,d et que les suites n (n, M j,n ) sont croissantes dans M r,0. On établit alors tout d abord le Lemme 3 (Lemme à la Dickson, non constructif) Pour tous entiers r 1 et d 0, toute suite croissante n (n, A n ) dans M r,d est stationnaire. Preuve La preuve se fait par récurence sur l entier r. Pour r = 1. Ici, nous utilisons une notion de trou dans une partie finie de M 1 (c.-à-d. de N) qui est claire par elle même, puisque l ordre est total. Ou bien A n est vide pour tout n et la suite est stationnaire. Ou bien il existe un premier entier n 1 pour lequel A n1 est non vide. Pour n n 1 les deux suites d entiers naturels n Fri(A n ) et n n + d deg(a n ) sont des suites décroissantes donc stationnaires à partir d un certain rang n 2 n 1. Si δ est la largeur du plus grand trou dans A n2, la suite n (n, A n ) est surement stationnaire à partir du rang n 2 + δ. Passage de r 1 à r (r 2). Soit n (n, A n ) une suite croissante dans M r,d. Ou bien A n est vide pour tout n et la suite est stationnaire. Ou bien il existe un premier entier n 1 pour lequel A n1 est non vide. Pour n n 1 la suite d entiers naturels n n+d deg(a n ) est décroissante donc stationnaire à partir d un rang n 2 n 1. Soit x a avec a = (a 1,..., a r ) un monome de plus haut degré dans A n2 et B = {x a }. Pour n n 2 on a A n = B [n n2] (H b,j A n ) b,j où les H b,j (avec j {1,..., r}) forment une famille finie d hyperplans affines dans M r,d. Précisément chaque H b,j est formé des monomes x α où α j = b avec b l un des entiers < a j. Chaque suite n (n, H b,j A n ) peut alors être vue comme une suite croissante dans M r 1,d. Par hypothèse de récurrence, toutes ces suites stationnent (dans leurs espaces respectifs) à partir d un rang n 3 n 2. Posons B n := B [n n2] (d où B [1] n = B n+1 ) et C n,b,j := H b,j A n. Il n est pas difficile de voir que pour n n 2 on a A n [1] = B n [1] b,j C n,b,j [1] r 1 [1] (on a mis un indice r 1 à l exposant [1] pour indiquer que chaque C r 1 n,b,j est considéré dans son espace M r 1,d ). En effet il n est pas possible qu un (C n,b,j ) [1] considéré dans M r,d avec b = a j 1 contienne un élément qui soit au dessus de B n+1. Ceci achève la preuve. Preuve non constructive du théorème 2 D après le lemme précédent la suite n (n, Exp(n)) est stationnaire dans M r,d et les suites n (n, M j,n ) sont stationnaires dans M r,0, tout ceci à partir d un rang n 0. On a donc pour m n n 0, SMIC(n, m) = SMIC(n 0, m) et SMAC(n, m) = SMAC(n 0, m). Alors, vu le fait 3 les fonctions m SMIC(n 0, m) et m SMIC(n 0, m) (pour m n 0 ) sont égales. 6 Pour une implantation de l algorithme Pour une bonne gestion des triangulations des matrices G n successives Une première affaire importante dans l implantation de l algorithme est la bonne gestion des triangulations des matrices G n successives. Sur ce point, nous ne pouvons que renvoyer au savoir faire des experts des matrices creuses structurées (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 6 POUR UNE IMPLANTATION DE L ALGORITHME Quelques exemples pour y voir plus clair de l algorithme est le test m n SMIC(n, m) = SMAC(n, m)? La partie la plus délicate dans l implantation qui doit être effectué dans le cas où il reste exactement un seul des M j,n vide et où SMIC(n, n + 1) = SMAC(n, n + 1) (qui sont faciles à tester). À vrai dire, il semble très improbable que les deux premières questions aient reçu une réponse positive et que le test d égalité des fonctions SMIC et SMAC reçoive une réponse négative. Dans la mesure où le test n a pas à être effectué bien souvent, on pourrait donc se contenter, en appliquant le lemme 1, d une procédure naïve qui serait de compter chacun des B [m] jusqu à m = ppcm(b) val(b). Mais cette procédure naïve semble inutilement coûteuse. Nous proposerons dans le paragraphe suivant les esquisses de deux autres procédures après avoir examiné deux nouveaux exemples. Intuitivement, et en suivant la preuve du lemme 1, on peut penser que la fonction de croissance de A [n] est égale à son polynome de croissance dès que A [n] a rempli les trous qui doivent l être entre la frontière inférieure et le ppcm des monomes dans A. Ceci est confirmé sur les deux exemples suivants, où la même procédure de comptage qu à l exemple 1 peut être mise en place. Exemple 2 Avec la partie B suivante, val(b) = 3, ppcm(b) = x 6 1 x5 2, deg(ppcm(b)) = 11, deg(b) = 8, et la fonction de croissance de B [n] devient égale à son polynome de croissance, à l étape 6, exactement au moment prévu par le lemme 1. 6.......... 5. 0........ 4.......... 3.......... 2...... 0... 1.. 0....... 0.......... 0 1 2 3 4 5 6 7 8 9 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 H B (n) = (n 1)(n 2) 2 + 5n + 4n + 8 = n(n 1) 2 + 8n + 9 avec la procédure 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) = x 7 1 x7 2, deg(ppcm(c)) = 14, deg(c) = 10, et la fonction de croissance de C [n] devient égale à son polynome de croissance, à l étape 4, bien avant le moment prévu 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 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 H C (n) = (n+1)(n+2) 2 +6n+2n+11 = n(n 1) 2 +10n+12 avec la procédure de comptage suivante, (le ppcm est en O).

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 à fournir un exemple où la procédure de comptage donnée dans ces dessins peut être mise en place avant que A [n] contienne le ppcm de A. Des suggestions pour déterminer algorithmiquement les fonctions de croissance qui nous intéressent Notre première suggestion est d essayer de décrire le plus économiquement possible, ou du moins, de manière relativement économique, une partie A sous forme d une réunion de parties X [m i] où les X i sont des singletons : A = i I X [m i] i Le nombre d éléments de A [m] qui est la réunion des X [m+m i] i est alors calculé selon la procédure donnée dans la preuve du lemme 1 (avec les petites modifications évidentes nécessaires). Si on a obtenu une écriture économique pour A et si on passe à une partie A contenant A [1] (ce qui est le cas lors de l exécution de l algorithme SMIC SMAC) on commence par remarquer que si A est la réunion disjointe de A [1] et de C alors A = i I X [m i+1] i X singleton C Ensuite, il faut examiner si une procédure de simplification de l écriture ci-dessus peut être mise en oeuvre, sinon à chaque étape, du moins de manière suffisamment fréquente pour éviter l explosion combinatoire redoutée. Une deuxième proposition est d utiliser une procédure de comptage analogue à celle que nous avons montrée sur nos dessins en 2 variables. Une telle procédure consiste à découper intelligemment l espace M r en une réunion disjointe de sous espace affines H u de différentes dimensions de manière que les intersections H u A [m] aient rapidement un comportement facile à décrire. Par exemple chacune de ces intersections pourrait être un ensemble du type ensemble des monomes multiples d un monome donné et de degré inférieur à max(0, m + m 0 ) (où m 0 Z) à l intérieur du sous espace affine H u. On peut sans doute procèder de manière récursive par rapport à la dimension de ces sous espaces. Tout d abord, on cherche un monome x α de profondeur maximum dans A, c.-à-d. un monome de degré le plus petit possible parmi ceux pour lesquels l ensemble X i

15 {x β : α β et β deg(a)} est contenu dans A. Le premier sous espace affine H u est alors H 1 := {x β : α β}. On considère ensuite les sous espaces affines de dimension r 1 convenables H b,j, et on définit H b,j := H b,j {x β : k < j β k α k } = {x β : β j = α j, k < j β k α k } de sorte que le complémentaire de H 1 est considéré comme la réunion disjointe des sous espaces affines H b,j. On dit alors que la situation est convexe si on a : j b < α j ( Hb,j A b [b, α j [ H b,j A ) Ceci nécessite peut-être d attendre un A [m] convenable. Une fois un tel m atteint, on traite chaque H b,j A [m] non vide en commençant par chercher dans H b,j un monome de profondeur maximum par rapport à H b,j A [m], c.-à-d. un monome de degré le plus petit possible dans H b,j parmi ceux pour lesquels l ensemble H b,j {x β : α β et β deg(a [m] H b,j )} est non vide et contenu dans A [m] H b,j. Et ainsi de suite. 7 Une preuve de terminaison constructive Nous commençons par une notation. Notation 9 Si A est une partie finie de M r et k un entier > 0 on note A [ k] l ensemble des monomes x α tels que {x α } [k] A. La partie A [ k] est donc la plus grande partie B telle que B [k] A. On a les inclusions A [ k][k] A A [k][ k], A [ k][ l] = A [ k l] (l > 0, k 0) de sorte que A B A [ k] B [ k] A [ k] = A [ k][k][ k] et A [k] = A [k][ k][k] Cette section est divisée en trois sous-sections. Dans la première, nous discutons la notion de trou dans une partie finie A de M r. Cette discussion nous sert à introduire la deuxième soussection dans laquelle nous donnons les définitions nécessaires pour notre preuve constructive de terminaison. Qu est-ce qu un trou, et qu est-ce qu une partie sans trou? Dans l exemple 1, en posant C = A [4][ 4], on obtient C [4] = A [4] avec la fonction de croissance de C égale au polynome de croissance de A. Dans le dessin ci-dessous, nous avons indiqué A avec des 0 et C \ A avec des croix.

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érer que les trous de A sont les éléments de C \ A. On voit que la fonction de croissance de A minore son polynome de croissance. Mais ce phénomène est loin d être général. Exemple 4 Avec la partie D ci-dessous par exemple 5...... 4. 0.... 3...... 2...... 1..... 0 0...... 0 1 2 3 4 5 6 on obtient H D (n) = n(n 1) 2 + 6n 1 de sorte que H D (1) = 5 et H D (0) = 1, donc H D (0) = F D (0) 3 et H D (1) = F D (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-être désigner des antitrous o de D dans M 2 comme suit, dans la mesure où, si on affectait les antitrous d un poids égal à 1 tant qu ils n ont pas été remplis, on trouverait la fonction de croissance égale 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étant, on peut trouver une partie E 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 que E 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 tout n F E (n) = H E (n) = n(n 1) 2 + 9n + 9 comme on peut le voir en considérant 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ésigner un trou x et peut-être un antitrou o. 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éanmoins, il semble difficile de donner une définition satisfaisante des trous et des antitrous dans le cas général. Trois définitions utiles Dans cette sous-section, nous essayons de rendre en partie compte des intuitions données précédemment en deux variables. Plutot que définir précisément les trous et les antitrous, nous proposons des définitions correspondant à l absence de trou et d antitrou. Ces définitions sont surtout adaptées pour faire fonctionner notre preuve constructive de terminaison. Dans la définition 10 l absence de trou ne controle intuitivement que les trous en positif. Définition 10 Une partie finie A de M r est dite sans trou si pour tous entiers k 0 et l > 0 on a A [k] = A [k+l][ l]. De la définition résulte que si A est sans trou, il en va de même pour tous les A [k] (k 0). En outre on a immédiatement le fait suivant. Fait 4 Supposons A sans trou, A [k] B et A [k+l] = B [l]. Alors A [k] = B. Dit sous une autre forme : si A est sans trou, A [k] B et A [k] B alors pour tout entier l > 0, A [k+l] B [l] et F A (k + l) < F B (l).

18 7 UNE PREUVE DE TERMINAISON CONSTRUCTIVE En effet (pour le premier cas) on a B B [l][ l] = A [k+l][ l] = A [k]. Nous donnons maintenant une définition d en ensemble stable, correspondant à l intuition d un ensemble sans trou ni antitrou. Définition 11 Une partie finie A de M r est dite stable si elle est sans trou et si sa fonction de croissance coïncide avec son polynome de croissance. De la définition résulte immédiatement que si A est stable, il en va de même pour tous les A [k] (k 0). Il semble probable, mais nous n avons pas réussi à le démontrer, que pour toute partie A, la partie A [c A] est stable, où c A est l entier deg(ppcm(a)) val(a) r donné dans le lemme 1. Définition 12 Une suite k (n k, A k ) à valeurs dans M r,δ est dite croissante si pour tout k < l on a n k < n l et A [n l n k ] k A l. On dit que la suite pause entre k et l > k si d une part A k est stable, et d autre part A [n l n k ] k = A l. En appliquant le fait 4 on voit que la suite pause entre k et l si et seulement si elle pause entre k et k + 1, k + 1 et k + 2,..., l 1 et l. Notez à ce sujet qu il est important que A k soit sans trou. Il est clair, avec les notations des sections précédentes que toute suite extraite de la suite n (n, Exp(n)) est croissante dans M r,d et que tout suite extraite d une suite n (n, M j,n ) est croissante dans M r,0. Lemme à la Dickson, constructif, et preuve de terminaison On établit maintenant le Lemme 4 (Lemme à la Dickson, constructif) Pour tous entiers r 1 et d 0, toute suite croissante k (n k, A k ) dans M r,d pause entre deux indices successifs. Preuve La preuve se fait par récurence sur l entier r. Pour r = 1. Ici, une partie de M 1 est stable si et seulement si l ensemble des degrés est un intervalle de N. On considère une suite croissante k (n k, A k ) dans M 1,d. Si A 0 = A 1 est vide, la suite pause entre 0 et 1. Sinon, par exemple A 0 est non vide. Posons f k := (n k + d) deg(a k ) + deg(fri(a k )). La suite k f k est décroissante dans N. Soit δ k la largeur du plus grand trou dans A k. Si δ k = 0 et f k+1 < f k alors le plus grand trou dans A k+1 (s il y en a un) se trouve tout au début ou tout à la fin et sa largeur est inférieure ou égale à f k f k+1 1 donc f k+1 +δ k+1 < f k = f k +δ k. Si δ k > 0 et f k+1 = f k alors δ k+1 = δ k 1 et f k+1 + δ k+1 < f k + δ k. Si δ k > 0 et f k+1 < f k alors le plus grand trou dans A k+1 est ou bien de largeur δ k 1 (s il est à l intérieur de A k ) ou bien de largeur inférieure ou égale à f k f k+1 1 (s il est à une des extrémités). Dans le premier cas f k+1 + δ k+1 < f k + δ k+1 < f k + δ k. dans le deuxième cas f k+1 + δ k+1 < f k < f k + δ k. Dans ces trois premiers cas, on a donc f k+1 + δ k+1 < f k + δ k. Enfin la suite pause entre k et k + 1 si et seulement si δ k = 0 et f k+1 = f k. Ceci se produit au maximum après f 0 + δ 0 < n 0 + d étapes. Passage de r 1 à r (r 2). Remarquons d abord que puisque toute suite croissante pause dans dans M r 1,d (au sens de la définition 12) alors toute liste finie de suites croissantes pausent simultanément dans M r 1,d.

19 Il suffit en effet de le voir pour deux suites k (n k, A k ) et k (m k, B k ). Si k i est la i ème valeur pour laquelle k (n k, A k ) pause entre k i et k i+1, on considère la suite i (m ki, B ki ), qui pause par exemple t et t + 1. Alors on voit facilement que k (n k, A k ) et k (m k, B k ) pausent simultanément entre k t et k t + 1. On considère maintenant une suite croissante k (n k, A k ) dans M r,d. Si A 0 = A 1 est vide, la suite pause entre 0 et 1. Sinon, par exemple A 0 est non vide. Posons f k := (n k +d) deg(a k ). La suite k f k est décroissante dans N. On note k 0 = 0, puis k 1,..., k u,... les indices successifs pour lesquels f ku < f ku 1. La suite u k u est une suite qui ne peut avoir plus que f 0 termes, et ces termes sont découverts au cours du déroulement de la suite k (n k, A k ). Pour une valeur de u fixée, on considère un monome x a(u) avec a(u) = (a 1 (u),..., a r (u)), de plus haut degré dans A ku. On note B(u) = {x a(u) }. Pour k k u on écrit A k = B(u) [n k n ku ] b,j (H b,j A k ) où les H b,j (avec j {1,..., r}) forment une famille finie d hyperplans affines dans M r,d. Précisément chaque H b,j est formé des monomes x α où α j = b avec b l un des entiers < a j (u). Si nous posons pour k k u B u,k := B(u) [n k n ku ] et C u,k,b,j := H b,j A k la suite k (n k, B u,k ) est stationnaire dans M r,d et les suites k (n k, C u,k,b,j ) sont des suites croissantes dans M r 1,d. Par hypothèse de récurrence, ces dernières suites pausent simultanément entre h u et h u + 1 pour un certain h u k u. Si f hu+1 = f ku alors en posant l = h u on a A l [n l+1 n l ] = B u,l [n l+1 n l ] b,j C u,l,b,j [n l+1 n l ] r 1 [n (on a mis un indice r 1 à l exposant [n l+1 n l ] pour indiquer que chaque C l+1 n l ] r 1 u,l,b,j est [n considéré dans son espace M r 1,d ). En effet il n est pas possible qu un C l+1 n l ] u,l,b,j considéré dans l espace entier M r,d avec b = a j (u) 1 contienne un élément qui soit au dessus de [n B l+1 n l ] u,l. En conséquence, la suite k (n k, A k ) pause entre l et l + 1. On définit alors h v = h u pour tout v > u. Si f hu+1 < f ku alors k u+1 est défini et se trouve entre k u et h u + 1. Dans ce cas, on recommence avec u + 1 et on obtient h u+1. Ainsi, la suite u h u est une suite infinie bien définie, croissante au sens large. Comme elle ne peut pas être strictement croissante pendant plus que f 0 termes, elle pause certainement. Ceci achève la preuve. Fait 5 Supposons que Exp(n) soit stable avec Exp(n + r) = Exp(n) [r] et que pour j = 1,..., s, M j,n soit stable avec M j,n+r = M [r] j,n. Alors m n SMIC(n, m) = SMAC(n, m). Preuve En effet, pour h = 1,..., r on a alors Exp(n + h) = Exp(n) [h] et (pour j = 1,..., s) M j,n+h = M [h] j,n. D après 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é r sont donc égaux. Preuve constructive du théorème 2 D après le lemme 4 la suite n (nr, Exp(nr)) et les suites n (nr, M j,nr ) pausent simultanément dans M r,d. On conclut en appliquant le fait 5. On notera que cette preuve du théorème 2 fournit une nouvelle preuve constructive de l existence d une base de Gröbner pour un idéal de type fini dans k[x 1,..., x r ] et donc aussi du Hilbert basis theorem (voir [14], [15], [12], [11]).

20 7 UNE PREUVE DE TERMINAISON CONSTRUCTIVE Conclusion Dans cette section nous donnons d abord quelques arguments pour étayer l idée que notre algorithme pourrait être plus performant que l agorithme de Buchberger. Ensuite nous indiquons des axes de recherche future. L algorithme SMIC SMAC est une généralisation décisive de l algorithme exposé en deux variables dans la thèse de 3ème cycle [9] de A. Kanber : Algorithme de calcul d une base de Gröbner d un Idéal de K[X, Y ] par Triangulation de Matrices de Sylvester, soutenue sous la direction de l auteur et de S. Labhalla. Ce dernier algorithme était lui-même une généralisation décisive de l algorithme [10] de réduction de Hermite d une matrice à coefficients polynomiaux. Dans la mise au point précise de l algorithme en deux variables, lequel n était pas réfléchi directement en termes SMIC SMAC, A. Kanber a utilisé une définition très subtile d une frontière supérieure de Exp(n) dont nous ne savons pas si elle peut être généralisée en plus que deux variables, et qui simplifie le test d arrêt, d ailleurs légèrement différent de celui de l algorithme SMIC SMAC. Une première implantation rudimentaire semble indiquer une économie substantielle de l espace mémoire utilisé en comparaison avec l algorithme de Buchberger. L algorithme SMIC SMAC et les algorithmes qui l ont précédé ont été en bonne partie motivés par la comparaison entre l algorithme d Euclide et l agorithme des sous-résultants. Dans l algorithme des sous-résultants, on évite de calculer des restes de restes... de restes, et cela permet de mieux controler la taille des coefficients lorsque les entrées sont dans Z par exemple. L expérimentation faite par G. Villard au sujet de l algorithme Hermipol donné en [10] a montré une économie spectaculaire d espace mémoire en comparaison de l agorithme naïf. Notre espoir est qu une éconmie de même type soit réalisée dans notre algorithme en comparaison de l algorithme de Buchberger. Il semble possible qu une économie soit également réalisée en ce qui concerne les degrés des polynomes manipulés. En revanche, il est possible que notre algorithme soit conduit à créer 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 être envisagées. Primo il serait intéressant d examiner en détail le cas homogène. Secundo, il faudrait donner une généralisation de l algorithme pour calculer d autres types de bases de Gröbner par exemple pour les modules. Tertio, il faudrait étudier les rapports étroits qui semblent exister entre le SMAC et le module des relations entre les générateurs de départ. Nous terminons sur une question que nous laissons ouverte et qui nous intrigue au plus haut point. La fonction m e m = dim(e m ) est égale à partir d un certain rang n 0 au polynome H(m) = SMIC(, m) = SMAC(, m) qui est par définition la valeur des fonctions m SMIC(n, m) et m SMAC(n, m) pour n et m assez grand. Notons que la fonction SMIC dépend a priori l ordre admissible considéré. Par contre la fonction SMAC et la fonction m e m = dim(e m ), donc a fortiori la fonction H(m) = SMIC(, m) = SMAC(, m) sont tout à fait indépendantes de l ordre admissible. N est-on pas pourtant assuré (cela semble intuitivement extrêmement plausible) que, aux environs de l étape n 0 (entre l étape n 0 /r et l étape rn 0 par exemple) l ensemble G calculé par l algorithme SMIC SMAC est en fait une base de Gröbner de l idéal considéré? Un tel résultat malgré sa plausibilité semblerait impliquer un écart relativement faible entre les degrés de différentes bases de Gröbner minimales pour différents ordres admissibles, en contradition avec les idées couramment admises en la matière.

RÉFÉRENCES 21 Ceci nous semble mériter une étude attentive qui pourrait prendre la forme suivante : si l ensemble G calculé à l étape n 1 par l algorithme SMIC SMAC est une base de Gröbner de l idéal (et rappelons que ceci se produit de manière optimale), à quelles étapes peut on être assuré d une part que l algorithme s arrête, et d autre part que e m devient égal à H(m)? Remerciements Nous remercions tout particulièrement A. Galligo, M.-F. Roy, L. González- 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 élaborer et d améliorer l agorithme exposé ici. Références [1] Becker T., Weispfening V. : Gröbner Bases. Springer 1993. 1 [2] Bini D., Pan V. : Polynomial and matrix computations, vol 1 : Fundamental Algorithms. Birkhaüser, 1994. 11 [3] Buchberger B. : Gröbner Bases : an algorithmic method in polynomial ideal theory in Multidimensional 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é 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öbner d un Idéal de K[X, Y ] par Triangulation de Matrices de Sylvester. Thèse de 3ème cycle, novembre 97, Marrakech. 20 [10] Labhalla S., Lombardi H., Marlin R. : Algorithmes de calcul de la réduction de Hermite d une matrice à 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 Polynomial Rings in Constructive Mathematics. In Gröbner Bases and Applications (Proc. of the Conference 33 Years of Gröbner 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 TABLE DES MATIÈRES [15] Seidenberg A. : What is Noetherian? In : Rend. Sem. Mat. e Fis. di Milano 44. 55 61(1974) 20 Table des matières Introduction 1 1 Préliminaires 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