• Aucun résultat trouvé

La composition des séries

Dans le document Algorithmes Efficaces en Calcul Formel (Page 73-82)

Polynômes et séries

3. Calculs rapides sur les séries

3.4 La composition des séries

Si F(X) et G(X) sont des séries, avec G(0) = 0, il s’agit de calculer efficacement la série F(G(X)). À la différence des algorithmes vus dans les sections précédentes, il s’avère que les algorithmes connus n’atteignent pas une complexité quasi-optimale (c’est-à-dire linéaire en N, à des facteurs logarithmiques près).

Méthode naïve

La composition peut être calculée par la méthode de Horner. Si F(X) =P

i≥0fiXi+ O(XN), le calcul utilise alors

F(G(X)) = f0+ G × (f1+ G × (f2+ · · · )) + O(GN) et O(GN) = O(XN).

Exercice 3.7 Montrer que cette formule amène à un coût O(NM(N)). 

Pas de bébés, pas de géants

Une technique dite « pas de bébés, pas de géants » réduit ce coût à O( √ N(M(N) + MM( √ N))) = O( √

N(M(N) + Nθ/2)), où θ est un exposant réalisable pour la complexité du produit de matrices, présenté au Chapitre 8. La série F est d’abord écrite

3.4 La composition des séries 73

où les polynômes Fi, en nombre 1 + dN/ke, ont un degré au plus k − 1. Ensuite, on calcule les puissances G2, . . . , Gkde G en kM(N) opérations. Soient fi,j les coefficients des Fiet gi,jceux des Gi. Le développement

Fi(G) = N−1 X j=0        k−1 X `=0 fi,`g`,j        Xj+ O(XN)

montre que les coefficients des Fi(G) sont les coefficients du produit de la matrice (fi,j) de taille (dN/ke + 1) × k par la matrice (gi,j) de taille k × N. En découpant chacune de ces matrices en blocs de taille k × k — la première devient un vecteur colonne d’environ N/k2blocs, la seconde un vecteur ligne d’environ N/k blocs —, ce produit est effectué en au plus O(N2kθ−3) opérations. Ensuite, il ne reste plus qu’à effectuer dN/ke produits à précision N suivis d’autant d’additions pour un coût total de O(NM(N)/k). Le coût total est minimisé par le choix k = b

Nc qui mène à la complexité annoncée. L’algorithme de Brent–Kung

Bien qu’il n’y ait pas d’algorithme permettant d’abaisser la complexité de la com-position au même ordre que M(N), il est possible de faire sensiblement mieux que la méthode précédente, en évitant la multiplication matricielle, grâce à l’Algorithme 3.8 sophistiqué, dû à Brent et Kung.

Théorème 3.15 Si 2, 3, . . . , dpN log Ne sont inversibles dans A et si F(X) et G(X) sont deux séries de A[[X]] avec G(0) = 0 et G0(0) inversible, alors l’Algorithme 3.8 calcule la série F(G(X)) mod XNen O(pN log NM(N)) opérations arithmétiques, ou en O(

NM(N)) opérations arithmétiques si log M(N)/ log N → γ > 1.

L’idée de départ de l’algorithme permettant d’aboutir à cette complexité est d’utiliser la formule de développement de Taylor, sous la forme

F(G1+ XmG2) = F(G1) + F0(G1)XmG2+ F00(G1)X

2mG22

2! + · · · , (3.6) où G1est un polynôme de degré inférieur à m ; le choix de m est ajusté plus loin pour minimiser la complexité. Le premier gain de complexité par rapport à la méthode naïve provient de l’observation suivante.

Lemme 3.16 Étant données les séries G et F ◦ G, avec G0(0) inversible, la série F0◦G peut être calculée en O(M(N)) opérations arithmétiques.

Démonstration. La dérivation de séries a une complexité linéaire, et la division est en

O(M(N)). Le résultat provient alors de la formule de dérivation d’une composée (déjà utilisée en page 71) :

F0◦G =(F ◦ G)

0

G0 .

Entrée Deux séries tronquées F(X) mod XNet G(X) mod XN avec G(0) = 0 et G0(0) inversible.

Sortie Leur composition F(G(X)) mod XN. 1. Soit m = [

N] si la multiplication utilisée emploie la FFT,

m = [pN/ log N] sinon.

2. Découper G en G1= G mod Xmet G2= G − G1, poser H := 1. 3. Calculer U = 1/G01mod XN.

4. Calculer R = S0:= F(G1) mod XNpar la méthode récursive suivante :

a. Si deg F = 1 renvoyer F(0) + (F − F(0))G1mod XN, b. sinon

i. soit k = ddeg(F)/2e,

ii. découper F en A := F mod Xk et B := (F − A)/Xk, iii. calculer récursivement Gd1k/2e, A(G1), et B(G1)

mo-dulo XN,

iv. renvoyer A(G1) + Gk1B(G1) mod XN. 5. Pour i = 1, . . . , dN/me faire

a. H := HG2mod XN, b. Si:= S0i−1U/i mod XN,

c. R := R + SiH mod XN. 6. Renvoyer R.

Algorithme 3.8 – Algorithme de composition de Brent–Kung. L’utilisation répétée de cette idée dans la formule (3.6) mène à une complexité

C(F(G1)) +N

mO(M(N))

pour l’ensemble de la composition, où C(F(G1)) représente la complexité du calcul de la première composition avec unpolynôme, donnée par le lemme suivant.

Lemme 3.17 Soient F et G deux polynômes de degrés k et m, avec G(0) = 0.

Alors, le calcul des N premiers coefficients de la série F ◦ G peut être effectué en O(km log NM(N)/N) opérations arithmétiques, ou en O(kmM(N)/N) opérations si log M(N)/ log N → γ > 1.

Démonstration du théorème à l’aide de ce lemme. Ce lemme fournit l’estimation

C(F(G1)) = O(mM(N) log N). La complexité totale est donc bornée par

O(mM(N) log N) +N mO(M(N)) = O  M(N)  m log N +N m  .

Cette dernière somme est minimisée par le choix de m =pN/ log N qui donne le résultat du théorème. Le cas sans le facteur log N est laissé en exercice. 

3.4 La composition des séries 75

Démonstration du lemme. Comme d’habitude, on commence par traiter le cas où le

degré k est une puissance de 2. Ensuite, quitte à considérer que les coefficients de F pour les degrés allant de k + 1 jusqu’à la puissance de 2 immédiatement supérieure sont nuls, la perte de complexité est d’au plus un facteur 2, absorbé dans la constante du O(·).

L’idée est d’effectuer ce calcul par « diviser pour régner » en récrivant le poly-nôme F sous la forme

F = F1+ Xk/2F2,

où F1et F2sont deux polynômes de degré au plus k/2. Dans la composition F(G) = F1(G) + Gk/2F2(G),

les deux polynômes du second sommant ont degré au plus km/2. La complexité Cmk découlant de l’utilisation de cette formule vérifie donc

Cmk ≤2Cmk/2+ 2M(min(N, km/2)) + O(N).

C’est dans cette prise de minimum que réside toute la subtilité : tant que k est grand, les calculs sont tronqués à l’ordre N, et dès que k devient suffisamment petit, on exploite l’arithmétique polynomiale. Il vient donc

Cmk ≤2M(N) + 4M(N) + · · · + 2`−1M(N) + 2` M km 2` ! + 2M km 2`+1 ! + · · · ! , ≤2`M(N) + 2`M km 2` ! log km 2` ! ,

où la valeur de `, qui conclut la preuve du lemme, est déterminé par

km

2` < N ≤ km

2`−1. 

Exercices

Exercice 3.8 — Exponentielle de série. Soit s une série de terme constant nul et

n = 2p. On étudie l’itération définie par y0= z0= 1 et pour k > 0

zk= zk−1+ zk−1(1 − yk−1zk−1) mod X2k−1, yk= yk−1yk−1

Z

zk(yk−10s0yk−1) mod X2k.

1. Montrer que ypexp(s) = O(Xn) ;

2. Estimer la complexité du calcul des n premiers coefficients de la série exp(s) par cette itération ;

3. (Plus difficile) Interpréter cette itération comme l’itération de Newton associée à l’opérateur Y 7→ Y0s0Y.

Exercice 3.9 — Composition avec l’exponentielle. Soit f (X) ∈ Q[[X]] une série à coefficients rationnels. Le but de cet exercice est de montrer que les N premiers coeffi-cients de la série S(X) = f (eX−1) peuvent être calculés en OM(N) log Nopérations arithmétiques dans Q.

1. Montrer que S(X) − A(eX−1) = O(XN), où A(X) est l’unique polynôme de degré inférieur à N tel que f (X) = A(X) + O(XN).

2. On pose B(X) = A(X − 1) ; donner un algorithme pour calculer les coefficients de B à partir de ceux de A en OM(N) log Nopérations dans Q.

3. La transformée de Laplace formelle L est définie sur Q[[X]] comme l’application Q-linéaire telle que L(Xk) = k! Xk, k ∈ N. Si B(X) = b0+ b1X + · · · + bN−1XN−1, montrer que LB(eX)= N−1 X i=0 bi 1 − iX.

4. Donner un algorithme pour calculer les N premiers coefficients de B(eX) à partir de ceux de B(X) en OM(N) log Nopérations dans Q.

5. Donner finalement un algorithme calculant les N premiers coefficients de S à partir de ceux de f en OM(N) log Nopérations dans Q.



Exercice 3.10 — Composition de séries avec arcsinus. Soit K un corps de carac-téristique nulle, et soit F ∈ K[X] une série formelle de terme constant nul. Écrire un algorithme à base d’itérations de Newton permettant de calculer les N premiers termes de la série composée (arcsin ◦F), à partir des N premiers termes de la série F, en O(M(N)) opérations arithmétiques dans K. 

Exercice 3.11 — Composition de séries formelles en petite caractéristique. Soit K = Fple corps fini à p éléments, où p est un nombre premier. On rappelle que tout élément a de K vérifie l’égalité ap = a. Le but de cet exercice est de concevoir un algorithme pour la composition des séries dans K[[X]], de complexité asymptotique quasi-optimale en la précision. Soient f et g deux séries dans K[[X]] tronquées à précision N, avec g(0) = 0, et soit h leur composée h = f ◦ g mod XN. On suppose N ≥ p.

1. Montrer que g(X)p mod XN s’écrit s(Xp) pour une certaine série s ∈ K[[X]] connue à précision dN/pe.

2. Montrer que le calcul de h se ramène à p compositions de séries à précision dN/pe.

3. En déduire un algorithme récursif pour le calcul de h, et estimer sa complexité.



Notes

La méthode de Newton remonte à 1669, et se trouve bien décrite dans son traité des fluxions [New40]. Cette méthode a ensuite été raffinée et étendue de nombreuses façons [Yam00 ; Ypm95].

3.4 La composition des séries 77

de matrice de la Section 3.2 remonte à Schulz [Sch33] pour des matrices réelles. L’importance de la méthode de Newton pour le calcul rapide avec des séries formelles a été soulignée par Lipson [Lip76] : «In a symbolic mathematics system setting, we feel that Newton’s method offers a unified and easily implemented algorithm for solving a wide variety of power series manipulation problems that can be cast into a root-finding mold. Our experience attests to the practicality of Newton’s method. We feel that it is a great algebraic algorithm. »

Du point de vue de la complexité, Sieveking [Sie72] a donné l’Algorithme 3.2 d’inversion rapide de séries. Kung [Kun74] a observé qu’il s’agissait d’une itération de Newton et a amélioré la constante dans la complexité. Ensuite, Brent [Bre76] a montré comment l’exponentielle et le logarithme s’obtiennent également en O(M(N)) opéra-tions. Les algorithmes de la Section 3.3 sont dus à Schönhage [Sch82] ; l’application aux sommes et produits composés en Section 3.3 est beaucoup plus récente [Bos+06b]. La méthode de Newton permet également la résolution de systèmes linéaires à coefficients polynomiaux (Chapitre 11) et la résolution d’équations ou de systèmesdifférentiels

(Chapitre 13). L’idée d’incorporer le dividende dans la dernière itération de Newton, afin de gagner un facteur constant pour la division de séries (Section 3.2), est due à Karp et Markstein [KM97].

Les algorithmes non triviaux de composition décrits en Section 3.4 sont dus à Brent et Kung [BK78]. Une version optimisée est décrite dans l’article de Johansson [Joh15], qui utilise la formule d’inversion de Lagrange (3.5). L’idée de l’algorithme « pas de bébés, pas de géants » en Section 3.4 remonte à Paterson et Stockmeyer [PS73]. La com-position F◦G mod XNpeut s’effectuer en coût quasi-optimal O(M(N)log N) si G est un polynôme [BK78], ou plus généralement lorsque G est une série algébrique [Hoe02c]. Des compositions avec d’autres fonctions particulières peuvent aussi être calculées en O(M(N) log N), ou parfois O(M(N)) [BSS08]. Savoir si cela est encore possible pour des séries quelconques est un grand problème ouvert. La formule d’inversion évoquée en page 72 a été découverte par Lagrange en 1768 [Lag68].

Dans le cas où la caractéristique p de A est finie, Bernstein [Ber98] a montré qu’il est possible de descendre la composition à une complexité quasi-optimale en la précision N des séries, pour le prix d’une dépendance linéaire en p. Cet algorithme est intéressant lorsque la caractéristique p est petite. L’exercice 3.11 présente l’idée de l’algorithme dans un cas particulier. Une avancée récente importante est due à Kedlaya et Umans [KU08], qui ont donné le premier algorithme de complexité binaire quasi-linéaire à la fois en N et en log p, pour le calcul de F ◦ G mod XN, lorsque F et G sont des séries à coefficients dans le corps fini Fp.

Ritzmann [Rit86] a montré que la composition des séries entières peut s’effectuer en complexitébinaire quasi-optimale : si F, G ∈ Z[X] ont des coefficients bornés par ` en

valeur absolue, alors il est possible de calculer F ◦ G mod XNen O(MZ(N2log N log `)) opérations binaires. Il montre aussi que le problème de la composition de séries à coefficients dans un corps K est d’une difficulté équivalente à celui du calcul du N-ième coefficient de F◦G. Le problème de l’inverse compositionnel leur est également équivalent [BK78].

En présence d’une structure supplémentaire, il est possible de calculer la composi-tion ou l’inverse composicomposi-tionnel en complexité arithmétique optimale par rapport à la précision. C’est le cas par exemple pour l’inverse compositionnel d’un polynôme,

ou plus généralement d’une série algébrique. C’est également le cas pour la composi-tion F ◦ G d’une série différentiellement finie F par une série algébrique G. Dans tous ces cas de figure, la série calculée est différentiellement finie, et les techniques des cha-pitres sur ces séries (Corollaire 14.10 et Théorème 15.1) s’appliquent : les N premiers termes peuvent se calculer en O(N) opérations arithmétiques, et le N-ième terme en un nombre d’opérations arithmétiques quasi-linéaire en

N. Il n’est actuellement pas connu si une complexité linéaire en N peut être obtenue pour d’autres types de struc-tures, comme par exemple pour le calcul de l’inverse compositionnel F(−1)(X) mod XN d’une série différentiellement finie F, ou de la composition F ◦ G mod XNde deux séries différentiellement finies F et G.

En pratique, les constantes cachées dans les O(·) jouent un grand rôle, et nécessitent généralement l’implantation à la fois des algorithmes asymptotiquement meilleurs et des algorithmes plus classiques, souvent plus efficaces en petite taille. Dans le modèle de multiplication polynomiale par FFT, les meilleurs constantes devant M(N) sont dues à Harvey [Har10 ; Har11] : 139 pour l’inverse, 43 pour la racine carrée, 136 pour l’exponentielle. Ces problèmes ont aussi été étudiés par van der Hoeven [Hoe10]. Des articles de synthèse dus à Bernstein [Berb ; Ber08] décrivent diverses techniques utilisées pour éliminer certains calculs redondants dans la méthode de Newton.

L’Exercice 3.8 est inspiré par [HZ], et l’Exercice 3.9 est tiré de [BSS08].

D’autres modèles, appelésparesseux et détendus, permettent de manipuler les

séries de façon plus naturelle sans se soucier de la précision, qui est gérée de façon automatique. Chaque série est vue comme le vecteur des coefficients déjà calculés et une fonction permettant de calculer un coefficient de degré N en fonction des précédents [BHL11 ; Hoe02c ; Hoe03 ; Hoe07].

Bibliographie

Berb Bernstein, Daniel J. (2001).Removing redundancy in high-precision Newton iteration. url : http://cr.yp.to/fastnewton.html (visible en 2001).

Ber08 — (2008). « Fast multiplication and its applications ». In : Al-gorithmic number theory : lattices, number fields, curves and cryptography.

Vol. 44. Publications of the Research Institute for Mathematical Sciences. Cambridge University Press, p. 325–384.

Ber98 — (1998). « Composing power series over a finite ring in essen-tially linear time ». In : Journal of Symbolic Computation, vol. 26, n

3, p. 339–341.

BHL11 Berthomieu, Jérémy, Joris van der Hoeven et Grégoire Lecerf (2011). « Relaxed algorithms for p-adic numbers ». In : Journal de Théorie des

Nombres de Bordeaux, vol. 23, n

3, p. 541–577.

BK78 Brent, R. P. et H. T. Kung (1978). « Fast algorithms for manipulating formal power series ». In :Journal of the ACM, vol. 25, n4, p. 581–595. Bos+06b Bostan, Alin, Philippe Flajolet, Bruno Salvy et Éric Schost (2006). « Fast

computation of special resultants ». In :Journal of Symbolic Computation,

3.4 La composition des séries 79

Bre76 Brent, Richard P. (1976). « Multiple-precision zero-finding methods and the complexity of elementary function evaluation ». In :Analytic computa-tional complexity. Proceedings of a Symposium held at Carnegie-Mellon

University, Pittsburgh, PA, 1975. Academic Press, p. 151–176.

BSS08 Bostan, Alin, Bruno Salvy et Éric Schost (2008). « Power series compo-sition and change of basis ». In :ISSAC’08 : International Symposium on Symbolic and Algebraic Computation. Éd. par David J. Jeffrey. ACM Press,

p. 269–276.

Har10 Harvey, David (2010). « Faster exponentials of power series ». url : https: //arxiv.org/abs/0911.3110.

Har11 — (2011). « Faster algorithms for the square root and reciprocal of power series ». In :Mathematics of Computation, vol. 80, p. 387–394.

Hoe02c Hoeven, Joris van der (2002). « Relax, but don’t be too lazy ». In :Journal of Symbolic Computation, vol. 34, n

6, p. 479–542.

Hoe03 — (2003). « Relaxed multiplication using the middle product ». In :ISSAC’03 : International Symposium on Symbolic and Algebraic Compu-tation. Éd. par Manuel Bronstein. Philadelphia, USA : ACM Press, p. 143–

147.

Hoe07 — (2007). « New algorithms for relaxed multiplication ». In : Jour-nal of Symbolic Computation, vol. 42, n8, p. 792–802.

Hoe10 — (2010). « Newton’s method and FFT trading ». In :Journal of Symbolic Computation, vol. 45, n8, p. 857–878.

HZ Hanrot, Guillaume et Paul Zimmermann (2004).Newton iteration revisited.

url: http://www.loria.fr/~zimmerma/papers (visible en 2004). Joh15 Johansson, Fredrik (2015). « A fast algorithm for reversion of power

se-ries ». In :Mathematics of Computation, vol. 84, n291, p. 475–484. KM97 Karp, A. H. et P. Markstein (1997). « High-precision division and square

root ». In :ACM Transactions on Mathematical Software, vol. 23, n4, p. 561– 589.

KU08 Kedlaya, Kiran S. et Christopher Umans (2008). « Fast modular composi-tion in any characteristic ». In :FOCS’08 : IEEE Conference on Foundations of Computer Science. Washington, DC, USA : IEEE Computer Society, p. 146–

155.

Kun74 Kung, H. T. (1974). « On computing reciprocals of power series ». In :

Numerische Mathematik, vol. 22, p. 341–348.

Lag68 Lagrange, Joseph Louis, comte de (1768). « Nouvelle méthode pour ré-soudre les équations littérales par le moyen des séries ». In :Mémoires de l’Académie Royale des Sciences et Belles-Lettres de Berlin, vol. 24, p. 251–326.

Lip76 Lipson, J. D. (1976). « Newton’s method : a greatalgebraic algorithm ».

In :SYMSAC’76 : ACM Symposium on Symbolic and Algebraic Computation.

ACM Press, p. 260–270.

New40 Newton, Isaac (1740).La méthode des fluxions, et les suites infinies.

Traduc-tion française par G. Buffon du texte de 1671 de Newton. de Bure. url : http://www.gallica.fr.

PS73 Paterson, M. S. et L. J. Stockmeyer (1973). « On the number of nonscalar multiplications necessary to evaluate polynomials ». In :SIAM Journal on Computing, vol. 2, n

1, p. 60–66.

Rit86 Ritzmann, P. (1986). « A fast numerical algorithm for the composition of power series with complex coefficients ». In : Theoretical Computer Science, vol. 44, p. 1–16.

Sch33 Schulz, G. (1933). « Iterative Berechnung der reziproken Matrix ». In :

Zeitschrift für angewandte Mathematik und Physik, vol. 13, p. 57–59.

Sch82 Schönhage, A. (1982).The fundamental theorem of algebra in terms of com-putational complexity. Preliminary Report. 73 pages. Tübingen, Germany :

Mathematisches Institut der Universität.

Sie72 Sieveking, M. (1972). « An algorithm for division of powerseries ». In :

Computing, vol. 10, p. 153–156.

Yam00 Yamamoto, Tetsuro (2000). « Historical developments in convergence ana-lysis for Newton’s and Newton-like methods ». In :Journal of Computational and Applied Mathematics, vol. 124, n

1-2, p. 1–23.

Ypm95 Ypma, Tjalling J. (1995). « Historical development of the Newton–Raphson method ». In :SIAM Review, vol. 37, n

Dans le document Algorithmes Efficaces en Calcul Formel (Page 73-82)