
avec ai,j , bi,j et ci,j les coefficients des matrices A, B et C. Pour simplifier, nous ne consid´ererons que des
matrices carr´ees dont la taille nest une puissance de 2. Ainsi, pour des matrices plus grandes, de taille n,
on pourra d´ecouper le probl`eme r´ecursivement :
A= A1,1A1,2
A2,1A2,2!, B = B1,1B1,2
B2,1B2,2!, C =A×B= A1,1B1,1+A1,2B2,1A1,1B1,2+A1,2B2,2
A2,1B1,1+A2,2B2,1A2,1B1,2+A2,2B2,2!
avec Ai,j , Bi,j et Ci,j des sous-matrices des matrices A, B et Cde taille n
2.
Q 3.1 Si on applique la m´ethode r´ecursivement comme d´ecrit ci-dessus, combien d’op´erations de multipli-
cations sont r´ealis´ees `a chaque ´etape ?
Q 3.2 Etablir l’´equation de r´ecurrence donnant le nombre de multiplications n´ecessaires au calcul de la
multiplication de deux matrices de taille n.
Q 3.3 En d´eduire la complexit´e asymptotique en nombre de multiplications de la m´ethode pr´esent´ee.
Nous pr´esentons maintenant une autre m´ethode, propos´ee par Strassen en 1969. Celle-ci est bas´ee sur
le calcul de sept matrices interm´ediaires d´efinies ainsi :
M1= (A1,1+A1,2)(B1,1+B1,2)
M2= (A2,1+A2,2)B1,1
M3=A1,1(B1,2−B2,1)
M4=A2,2(B2,1−B1,1)
M5= (A1,1+A1,2)B2,2
M6= (A2,1−A1,1)(B1,1+B2,1)
M7= (A1,2−A2,2)(B2,1+B2,2)
Et les coefficients de Csont obtenus ainsi :
C=A×B= M1+M4−M5+M7M3+M5
M2+M4M1−M2+M3+M6!
Q 3.4 A chaque ´etape, combien d’op´erations de multiplications sont r´ealis´ees ?
Q 3.5 Etablir l’´equation de r´ecurrence donnant le nombre de multiplications n´ecessaires au calcul de la
multiplication de deux matrices de taille n.
Q 3.6 En d´eduire la complexit´e asymptotique en nombre de multiplications de l’algorithme de Strassen.
Exercice 4 : Palindrome (4 points)
Un mot u=u1u2. . . unde longueur nest un palindrome si pour tout 1 ≤k≤n
2,uk=un−k+1. Par exemple,
bob, kayak, selles sont des palindromes.
On propose d’´ecrire un algorithme de programmation dynamique permettant de localiser, s’il en existe,
les palindromes pr´esents dans une phrase v=v1v2. . . vmde longueur m. La r´ecurrence donnant la r´eponse
`a ce probl`eme est la suivante :
p(i, i) = vrai 1 ≤i≤m
p(m+ 1, m + 1) = faux
p(i, i + 1) = (vrai si vi=vi+1
faux sinon 1≤i≤m−1
p(i, j) = (p(i+ 1, j −1) si vi=vj
faux sinon 1≤i≤m, 1≤j≤m, j ≥i+ 2
On supposera que la longueur de la phrase est contenue dans une variable met que la phrase elle-mˆeme
est contenue dans une variable v.
3