0% ont trouvé ce document utile (0 vote)
134 vues36 pages

Introduction au Calcul Formel

Ce document présente l'UE de Calcul Formel dispensée à l'Université de Limoges. Il détaille le planning, les modalités d'évaluation, et donne quelques informations sur les outils utilisés comme Maple ou Community.

Transféré par

Jane Chatwin
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
134 vues36 pages

Introduction au Calcul Formel

Ce document présente l'UE de Calcul Formel dispensée à l'Université de Limoges. Il détaille le planning, les modalités d'évaluation, et donne quelques informations sur les outils utilisés comme Maple ou Community.

Transféré par

Jane Chatwin
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Calcul Formel

Master CRYPTIS - 2021/2022


Université de Limoges

Moulay Barkatou
Enseignants de l’UE

Moulay Barkatou - CM et TD
[Link]@[Link]
XLIM Bat G, 4E, bureau X-40?

Mercedes Haiech - TD et TP
[Link]@[Link]
XLIM Bat G, 4E, bureau X-40?
Planning de l’UE

Cours en présentiel (7 ECTS avec Syst. Pol.)

semaines 1-6 : 10/01-18/02


vacances : 21-25/02
semaines 7-13 : 28/02-15/04
vacances : 18-29/04
semaine 14 : 02-06/05

la répartition en CM/TD/TP sera communiqué au fur et à mésure


Modalités de contrôle

Calcul Formel (CF) fait partie de l’UE Algèbre 2 avec Systèmes


Polynomiaux (SP). La note est globale.

Pour CF : note finale 2


3 E 1 + 1 P , où
3 1
• note E1 : épreuve écrite en fin de semestre
• note P1 : participation/projet (modalité à déterminer)

Pour SP : Même chose, avec notes E2 et P2.

Note finale de l’UE Algèbre 2 :

1 (CF) + 1 (SP) = 1(2 E + 1 P ) + 1(2 E + 1 P )


2 2 2 3 1 3 1 2 3 2 3 2
Plateforme en ligne Community

Les notes de cours et les autres sources sont disponibles sur

Community

En particulier, vous allez utiliser les outils suivants


Forum – pour discuter avec les camarades

BBB (BigBlueBotton) – si besoin pour les cours (en ligne)


et les examens (en ligne)

Devoir – éventuellement pour rendre des CR


TD et TP en Maple ou SAGE

Merci de télécharger et installer des maintenant Maple, vous


pouvez trouver une version avec licence étudiants à cet adresse
(voir Community) :

Maple

Le mot de passe pour la page Community/Maple est : MAPLE


Quelques références

Polycopié : “Notes de cours” tapées par T. Cluzeau


Univ. Limoges, 2016.

Livre 1 : “Algorithmes Efficaces en Calcul Formel” par Bostan


et al.
Hal, 2017.

Livre 2 (en anglais) “Modern Computer Algebra” by von zur


Gathen, Gerhard.
Cambridge Univ. Press, 3rd edition 2013.

Mes transparents disponibles sur


Community
Programme (prévisionnel) de l’UE

Rappèls d’algèbre et complexité

Algorithmes rapides pour la multiplication dans K[X] et K n×n

Calcul du PGCD et résultants, applications

Factorisation dans K[X]


Introduction
Calcul formel

Le terme Calcul formel (aka Computer Algebra ou Symbolic


Computation) désigne l’étude de la représentation et de la ma-
nipulation effective d’objets algébriques (nombres, polynômes,
matrices...) par un ordinateur.

En CF nous nous intéressons à montrer des résultats mathéma-


tiques de manière constructive et rigoureuse.

On utilise le terme 00formel00 pour le distinguer du calcul numérique,


qui manipule des représentations tronquées et approchées1. En
CF on s’intéresse à fournir un résultat exact.
1 Par

exemple voici deux représentations différentes de 2 :
1.41421356..

racine positive de q(t) = t2 − 2


Un premier objectif, proposer des algorithmes efficaces pour
les opérations de base et d’autres calculs dans les structures
algébriques principales : algèbres de polynômes, espaces vecto-
riels...

Un autre objectif est de montrer que certains problèmes peu-


vent se reduire (ou encore mieux, sont équivalents) à d’autres
problèmes∗ avec une complexité connue.

∗ Par exemple la multiplication de matrices est un problème universel en


algèbre linéaire.
Exemple : factorisation d’un polynôme (Sage)
Exemple : forme implicite d’une courbe (M2)

Courbe : image de ϕ(t) = (t, t3, t5) dans R3


Exemple : calcul du PGCD de deux polynômes

de “Algorithmes Efficaces en Calcul Formel (Bostan et al.)”


Corps de base et espaces vectoriels

K corps de base, par exemple K = Z/pZ, Q, R, C...

K n : K-espace vectoriel de dimension n

K n×n : K-espace vectoriel des matrices n × n sur K

Opérations dans K, K n et K n×n : addition et multiplication par


scalaire.

Opération ulterieure dans K n×n en tant que K-algèbre : produit.


Clôture algébrique

Soit K un corps et L une extension de K. Un élément a ∈ L est


algébrique sur K s’il existe 0 6= f ∈ K[X] tel que f (a) = 0, sinon
il est dit transcendent. Une extension L de K est dite algébrique
si tout a ∈ L est algébrique sur K.


Exemples : 2 ∈ R est algébrique sur Q, mais π est transcendent.

Les éléments de L qui sont algébriques sur K forment ce qu’on


appelle la clôture algébrique de K dans L, notée K L.

On va noter QR simplement par Q.


Polynômes et fractions rationnelles

A = K[X1, . . . , Xn] algèbre des polynômes en plusieurs indéterminées


à coefficients sur K, qui est une algèbre graduée par le degré :
M
A= Ad et AdAe ⊂ Ad+e
d
avec Ad = polynômes homogènes de degré d.

K(X1, . . . , Xn) corps des fractions de K[X1, . . . , Xn]:


( )
f
K(X1, . . . , Xn) = : f, g ∈ K[X1, . . . , Xn], g 6= 0 .
g
Le Calcul Formel se base sur sur la contrainte suivante:

Par contre, ça ne veut pas dire qu’on ne peut pas tester ces
égalités dans certains cas particuliers, par exemple on peut décider
l’égalité suivante :
Structures effectives

On parle de structure algébrique pour faire réference aux struc-


tures classiques, par exemple anneaux A = (A, +, ×), groupes
A = (G, +), corps, algèbres etc ...

Une structure algébrique A est dite effective si l’on dispose :

• d’une structure de données pour en représenter les éléments

• d’algorithmes pour en effectuer les opérations et pour y


tester l’égalité à zéro.

Rappel : tester pour a, b ∈ A si a = b se ramène à tester a−b = 0A


Exemples

• Les anneaux Z et Z/pZ sont des structures effectives

• Si K est un corps effectifs, alors sa clôture algébrique K,


et les espaces vectoriels K n et K n×n sont effectives

• Si A est un anneau effectif, alors son corps des fractions,


l’anneau A[X1, . . . , Xn], et A[X]/(X d+1) sont effectifs.

• Pour les systèmes polynomiaux : si K est effectif, alors


K[X1, . . . , Xn]/(f1, . . . , fs) est effectif, pour des polynômes
f1, . . . , fs.
Méthodes modulaires

Le fait que Z/pZ est une structure effective nous permet par-
fois de concevoir des algorithmes basés sur le calcul modulo un
nombre premier p (assez grand).

Au lieu d’effectuer les calculs sur Z, nous effectuons les calculs


dans Z/pZ pour un (ou plusieurs) nombres premiers p.

Cela nous permet, par exemple, de contrôler la croissance des


entiers dans les étapes intermediaires (phénomène courant, voir
exemple PGCD).
Méthodes modulaires

• L’algorithme appliqué “modulo p” donne une méthode prob-


abiliste répondant à la question. Si on maitrise les mau-
vais nombres premiers pour lesquels la réponse est fausse,
alors on obtient une méthode déterministe

• Lorsqu’une borne sur la taille des entiers du résultat est con-


nue, on peut alors utiliser une stratégie basée sur le théorème
des restes chinois, qui implique qu’un entier inférieur à un
produit de nombres premiers p1 · · · pk peut être reconstruit à
partir de ses réductions modulo p1, . . . , pk
Méthodes modulaires en Maple

Calculs qu’on peut mener en 1s en Maple (K = Z/67108879Z) :

• produit de deux entiers avec 30000000 chiffres

• factorisation d’un entier de 42 chiffres

• produit de deux polynômes dans K[X] de degré 650000

• produit de deux matrices dans K 850×850


Correction d’un algorithme

Un algorithme est dit correct si

• l’algorithme est constitué d’un nombre fini d’étapes

• chaque étape est bien définie

• le résultat renvoyé est celui que l’on attend.

Dans un papier scientifique qui utilise des méthodes algébriques /


formelles, tout algorithme fait l’objet d’une preuve mathématique
de correction.
Exemple : évaluation dans K[X]

Soit g = i giX i ∈ K[X]≤d et a ∈ K. Évaluer g en a veut dire


P

calculer l’image eva(g) de g par la fonction d’évaluation :

eva : K[X] → K
i i
i fi X 7→
P P
i fi a

c’est-à-dire la fonction eva(f ) = f (a).


• Algorithme naı̈f : on calcule g1a, g2a2, g3a3, . . . , gdad, qui “coûte”
2d − 1 produits, et après on a d additions, donc 3d − 1
opérations.
• Le schéma de Horner est plus efficace :
g(a) = g0 + a(g1 + a(g2 + a(. . . + a(gd−1 + agd) . . .)))

Exercice : montrer que la formule de Horner est correcte.


Complexité d’un algorithme

Pour définir un modèle de complexité (en temps), nous avons


besoin de définir les opérations disponibles et leur coût unitaire.

Nous nous intéresserons au modèle suivant :

Complexité arithmétique. C’est le modèle de complexité qui


compte le nombre d’opérations élémentaires dans la structure
A. Il reflète le coût réel si les opérations dans A ont un coût
constant et prépondérant.

Il y a d’autres modèles importants en CF : complexité binaire,


machines de Turing, etc..
Asymptotiques /1

Nous utilisons la notation classique O(...) pour définir les asymp-


totiques (n → +∞) :

f (n) = O(g(n)) s’il existe C > 0 tel que |f (n)| ≤ C|g(n)|


pour n >> 0.

Nous utilisons pour simplifier la notation Õ(...) pour oublier les


facteurs logarithmiques:

Õ(n) = O(n log(n)k ) pour un certain k.

Par exemple O(n log(n) log log(n)) = Õ(n).


Asymptotiques /2

On dit qu’un algorithme de complexité

• O((log(n))k ) est logarithmique en n

• O(n) est linéaire en n

• Õ(n) est quasi-linéaire en n (soft-linear)

• O(n2) est quadratique, O(n3) cubique en n

• O(nk ) est polynomiale en n

• O(2n) est exponentiel en n

La pluspart des algorithmes dans ce cours seront en O(n3).


Évaluation-intérpolation (prélude)

C’est un principe général souvent utilisé en CF (mais aussi en


numérique), qui se base sur les étapes suivantes.

On suppose vouloir effectuer une certaine opération binaire ,


c’est-à-dire calculer f  g (avec [Link]. f, g ∈ A[X]).

• On choisit des éléments a1, . . . , as ∈ A (par exemple, des


racines de l’unité, ou des valeurs en progression arithmétique)

• On évalue f et g en a1, . . . , as (évaluation)

• On déduit les évaluations (f  g)(a1), . . . , (f  g)(as)

• À partir de ces évaluations, on reconstruit f  g (interpola-


tion)
Diviser-pour-reigner

Plusieurs algorithmes se basent sur le paradigme “diviser-pour-


reigner”, l’idée étant de résoudre un problème en le réduisant à
m instances du même problème sur des entrées de taille n/p.

Soit C(n) la complexité inconnue d’un tel algorithme. Elle va


dépendre:
• du coût κ du même algorithme avec entrée de taille s ≥ p
suffisamment petite
• du coût T (n) de découpage et recombinaison initial
La complexité vérifie alors l’inégalité récurrente
Complexité du diviser-pour-reigner

Théorème.
Soit C(n) une fonction vérifiant l’inégalité récurrente
précédente, avec T telle que qT (n) ≤ T (pn) ≤ rT (n) pour
n assez grand et pour certaines constantes q et r.

Alors pour n → +∞




 O(T (n)) si q > m

C(n) = O(T

(n) log(n))  si q = m
log (m) T (n)

O n p sinon.



nlogp (q)

Preuve : voir AECF, page 27, Lemme 1.12.


Un exemple

Nous verrons que le coût K(n) de l’algorithme de Karatsuba pour


le calcul du produit de deux polynômes de degré au plus n − 1
vérifie :
K(n) ≤ 4 n + 3 K(dn/2e), K(1) = 1.

Avec les notations précédentes, on a donc m = 3, p = s = 2,


κ = 1 et T (n) = 4 n vérifie q T (n) ≤ T (p n) ≤ r T (n) avec q = r =
p = 2.

On a donc q < m de sorte que


4n
 
K(n) = O nlog2(3) = O(nlog2(3)).
nlog2(2)
Représentation (dense) dans K[X1, . . . , Xn]

L’algèbre K[X1, . . . , Xn] a dimension infinie en tant que K−espace


vectoriel (de même pour A[X1, . . . , Xn] en tant que module et
algèbre sur A), mais on peut tronquer en degré d et obtenir des
espaces vec. de dimension finie.

Il y a plusieurs façons de représenter un polynôme f ∈ K[X1, . . . , Xn]


dans un ordinateur, la plus simple étant en base monomiale
Nn
fα X α
X
f = ∼ (fα)α∈Nn ∈K d
d
α
où d = deg(f ) et

Nn
d = {β ∈ N n : β + · · · + β ≤ d}
1 n

α = (α1, . . . , αn) ∈ Nn
d
α α
X α = X1 1 X2 2 · · · Xnαn
Représentation (dense) dans K[X1, . . . , Xn]

Par exemple (n = 1)

f = X 5 + 3X 2 + X + 1 ∼ (1, 0, 0, 3, 1, 1)

Ou encore pour n = 3, on a

f = 1 + X1X2X32 − 3X25 = X (0,0,0) + X (1,1,2) − 3X (0,5,0)

∼ (1, 0, . . . , 0, 1, 0, . . . , 0, −3, 0, . . . , 0)

Pour n = 1, le terme de plus haut degré est dit terme de tête.


En plusieurs variables : ordres monomiaux (voir UE Systèmes
Polynomiaux).
Représentation creuse dans K[X1, . . . , Xn]

Dans certains situations les polynômes qu’on manipule ont très


peu de coefficients différents de zero, ce qui amène à la necessité
d’une représentation plus efficace.

On appelle représentation creuse d’un polynôme f = α fαX α la


P

suite de ses coéfficients différent de zero, ou plus formellement


la suite :
[(fα1 , α1), . . . , (fαt , αt)]
telle que
f α X α = f α1 X α1 + · · · + f αt X αt .
X

α6=0
En représentation creuse, on aurait

f = 1+X1X2X32 −3X25 ∼ [(1, (0, 0, 0)), (1, (1, 1, 2)), (−3, (0, 5, 0))]

Vous aimerez peut-être aussi