108 2. Algorithmes de base en alg`ebre lin´eaire
2.8.2 Algorithme de Berlekamp/Massey
On donne dans un corps Kles 2npremiers ´el´ements d’une suite
r´ecurrente lin´eaire (ak)kNpour laquelle on sait qu’il existe un poly-
ome g´en´erateur de degr´e n. Le probl`eme est de calculer le polynˆome
g´en´erateur minimal gde la suite.
Une telle solution est donn´ee par l’algorithme de Berlekamp/Massey
[27] qui donne en sortie le degr´e dainsi que les coefficients d’un poly-
ome f=cdgassoci´e au polynˆome g. Ce polynˆome gest alors obtenu
en divisant par cd.
L’algorithme de Berlekamp/Massey utilise les propri´et´es de la suite
des triplets (Ri, Ui, Vi) form´ee des restes et des multiplicateurs de B´ezout
successifs dans l’algorithme d’Euclide ´etendu pour le couple de polynˆo-
mes (R1, R0) o`u R1=X2net R0=!2n1
i=0 aiXi.
Posant V1=U0= 0 et U1=V0= 1, ces triplets v´erifient, pour
tout i0, les relations :
Ri1=RiQi+Ri+1 o`u doRi+1 <doRi
Ui+1 =Ui1QiUi,
Vi+1 =Vi1QiVi,d’o`u :
Ri=UiR1+ViR0,
de plus : UiVi1ViUi1= (1)iet doRi<2ndoVi.
Les deux derni`eres relations se v´erifient facilement par r´ecurrence
sur i.
On arrˆete le processus au premier reste, disons Rm, de degr´e plus
bas que n, pour obtenir :
UmX2n+VmR0=Rmavec doRm< n.
Posons d= sup(doVm,1+doRm) et P=XdVm(1/X). Alors on peut
montrer que Pdivis´e par son coefficient dominant est le polynˆome g´e-
n´erateur minimal de la suite (ak) (cf. [GG] et [27]). Par exemple dans
le cas o`u doVm=net Vm(0) #= 0, en ´ecrivant que les termes de degr´e
compris entre net 2n1 du polynˆome Vm(X)R0(X) sont nuls, on
constate que P(X) est bien un polynˆome g´en´erateur de la suite (ak).
Ceci donne pr´ecis´ement l’algorithme 2.16 page suivante (dans lequel
cd(P) d´esigne le coefficient dominant de P).
Cet algorithme est dˆu `a Berlekamp, mais sous une forme o`u la rela-
tion avec l’algorithme d’Euclide ´etendu ´etait invisible. C’est Massey qui
a fait le rapprochement. Pour plus de d´etails sur la relation entre cet
algorithme et l’algorithme d’Euclide ´etendu, on pourra consulter [27].
2.8. M´ethodes reli´ees aux suites r´ecurrentes lin´eaires 109
Algorithme 2.16 Algorithme de Berlekamp-Massey
Entr´ee : Un entier n1. Une liste non nulle d’´el´ements du corps K,
[a0, a1, . . . , a2n1]: les 2npremiers termes d’une suite r´ecurrente lin´eaire,
sous l’hypoth`ese qu’elle admet un polynˆome g´en´erateur de degr´e n.
Sortie : Le polynˆome g´en´erateur minimal Pde la suite r´ecurrente lin´eaire.
ebut
Variables locales : R, R0, R1, V, V0, V1, Q : polynˆomes en X
# initialisation
R0:= X2n;R1:= !2n1
i=0 aiXi;V0:= 0 ;V1:= 1 ;
# boucle
tant que ndeg(R1)faire
(Q, R) := quotient et reste de la division de R0par R1;
V:= V0QV1;
V0:= V1;V1:= V;R0:= R1;R1:= R;
fin tant que
# sortie
d:= sup(deg(V1),1 + deg(R1)) ;P:= XdV1(1/X);
Retourner P:= P/cd(P).
Fin.
2.8.3 M´ethode de Wiedemann
L’algorithme de Wiedemann [96] pour la r´esolution des syst`emes li-
n´eaires sur un corps Kest un algorithme probabiliste, avec divisions,
qui est bas´e sur la th´eorie des suites r´ecurrentes lin´eaires. Il est parti-
cul`erement ecace dans le cas des matrices creuses sur les corps finis.
Il utilise le fait que si le polynˆome minimal PAd’une matrice A
Kn×nest de degr´e n(donc ´egal, `a un signe pr`es, au polynˆome caract´e-
ristique PAde A) , alors il existe toujours un vecteur vKn×1pour
lequel le polynˆome g´en´erateur minimal de la suite r´ecurrente lin´eaire
(Akv)kNest ´egal `a PA. Il sut en eet, comme nous l’avons vu dans
la section 1.3 (corollaire 1.3.3), de prendre un vecteur de Knen dehors
d’une r´eunion finie de sous-espaces de Kn.
L’algorithme de Wiedemann choisit au hasard une forme lin´eaire
π:KnKet un vecteur vKnpuis il calcule les 2npremiers
termes de la suite r´ecurrente lin´eaire (π(Akv)) kNdans K. Enfin le
polynˆome g´en´erateur minimal de cette suite est obtenu par l’algorithme
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !