Algorithmique avanc´ ee 2018-2019
TD5 : Borne de complexit´ e et FFT 1 Borne inf´ erieure de complexit´ e
Definition 1 Un calcul arithm´ etique sur un corps K ` a partir d’un ensemble de param` etres {a
1, . . . , a
n} est une suite d’instructions de type :
f
1← o
1op
1o
01; f
2← o
2op
2o
02; . . . ; f
k← o
kop
ko
0k;
o` u pour tout 1 ≤ i ≤ k, f
iest une variable du calcul, op
i∈ {+, −, ×} et les op´ erandes o
i, o
0isont soit des
´
elements de K soit des param` etres soit l’une des variables {f
1, . . . , f
i−1}.
Le programme ci-dessous calcule le produit de deux nombres complexes (a + ib)(c + id) (le r´ esultat est f
3+ if
6). Ici les param` etres sont a, b, c, d.
f
1← a × c; f
2← b × d; f
3← f
1− f
2; f
4← a × d; f
5← b × c; f
6← f
4+ f
5; Question 1 : Proposer un calcul de ce produit qui n’utilise que 3 multiplications.
Question 2 : Soit un calcul qui renvoie r r´ esultats et qui comprend s multiplications. Montrer que le vecteur des r´ esultats, not´ e v, v´ erifie v = Me + h o` u M est une matrice r × s ` a valeurs dans K, e est un vecteur de dimension s ` a valeurs dans K[a
1, . . . , a
n] (l’anneau des polynˆ omes dont les variables sont a
1, . . . , a
n) et h est un vecteur de dimension r dont les coefficients sont de la forme c
0+ P
ni=1
c
ia
iavec c
i∈ K pour tout i.
Definition 2 Soit v
1, . . . , v
mdes vecteurs de dimension r ` a coefficients dans K[a
1, . . . , a
n], on dit que v
1, . . . , v
msont lin´ eairement ind´ ependants modulo K si :
∀c
1, . . . , c
m∈ K,
m
X
i=1
c
iv
i∈ K
r⇒ ∀1 ≤ i ≤ m, c
i= 0
Le rang ligne (resp. colonne) modulo K d’une matrice ` a coefficients dans K[a
1, . . . , a
n] est le nombre maximal de vecteurs lignes (colonnes) lin´ eairement ind´ ependants modulo K.
Question 3 : Soit un calcul dont les param` etres sont a
1, . . . , a
n, x
1, . . . , x
p. Ce calcul effectue le produit matrice-vecteur Ax o` u A est une matrice r × p ` a coefficients dans K[a
1, . . . , a
n] et x = (x
1, . . . , x
p). On souhaite montrer que le nombre de multiplications de ce calcul est au moins r (dans le pire des cas). On suppose par l’absurde que le rang ligne modulo K vaut r et qu’il est strictement sup´ erieur au nombre de multiplications not´ e s.
1. Montrer qu’il existe y ` a coefficients dans K non tous nuls, et h ` a coefficients de la forme c
0+ P
ni=1
c
ia
i+ P
pi=1
c
0ix
itels que y
TAx = y
Th.
2. Montrer que y
TA est un vecteur ligne ` a valeurs dans K. (hint : y
TA est ` a coefficients dans K[a
1. . . a
n] alors que x = (x
1. . . x
p)).
3. En d´ eduire que l’hypoth` ese ´ etait absurde : le nombre de multiplications de ce calcul est au moins
´ egal au rang ligne module K de A.
Question 4 : En d´ eduire qu’un calcul de ac, bd, ad + bc requiert au moins trois multiplications.
Question 5 : Soit {v
1, . . . , v
m} un ensemble de vecteurs de dimension r ` a coefficients dans K[a
1, . . . , a
n] contenant q vecteurs lin´ eairement ind´ ependants modulo K. On consid` ere les vecteurs v
0i= v
i+ b
iv
1pour i ∈ [2; m] o` u b
i∈ K. On souhaite montrer qu’il existe q − 1 vecteurs v
0ilin´ eairement ind´ ependants modulo K.
1. Conclure dans le cas o` u {v
1, . . . , v
q} sont lin´ eairement ind´ ependants modulo K. On suppose d´ esormais (quite ` a r´ eordonner) que {v
2, . . . , v
q+1} sont lin´ eairement ind´ ependants modulo K.
1
Algorithmique avanc´ ee 2018-2019
2. On suppose (par l’absurde) que ni {v
02. . . v
0q} ni {v
30. . . v
0q+1} ne sont lin´ eairement ind´ ependants modulo K. Montrer qu’il existe c
1. . . c
qdans K tels que P
qi=1
c
iv
i= w ∈ K
rainsi que c
16= 0 et c
2. . . c
qnon tous nuls. On suppose dans la suite c
26= 0 (quitte ` a r´ eordonner). En d´ eduire de mˆ eme qu’il existe z ∈ K
ret d
16= 0, ainsi que d
3. . . d
q+1non tous nuls tels que d
1v
1+ P
q+1i=3
d
iv
i= z 3. Exprimer d
1w − c
1z ` a l’aide des c
i, d
iafin d’obtenir une contradiction.
Soit un calcul dont les param` etres sont a
1, . . . , a
n, x
1, . . . , x
p. Ce calcul effectue le produit matrice-vecteur Ax + y o` u A est une matrice r × p ` a coefficients dans K[a
1, . . . , a
n], x = (x
1, . . . , x
p) et y = (y
1, . . . , y
r) avec les y
1, . . . , y
r∈ K[a
1, . . . , a
n]. Une multiplication de ce calcul est dite active si l’une des op´ erandes contient un x
iet l’autre op´ erande n’est pas un ´ el´ ement de K.
Question 6 : Montrer que le nombre de multiplications actives d’un tel calcul est au moins ´ egal au rang colonne modulo K de A. Indication : Proc´ eder par r´ ecurrence sur le rang colonne modulo K.
Question 7 : En d´ eduire qu’un calcul du produit d’une matrice n × p par un vecteur de dimension p o` u les param` etres sont les coefficients de la matrice et du vecteur requiert au moins np multiplications.
2 Forme Normale Alg´ ebrique d’une fonction bool´ eenne
On s’int´ eresse ` a une fonction bool´ eenne f : {0, 1}
n7→ {0, 1}. On note B = {0, 1}. Cette fonction peut ˆ
etre repr´ esent´ ee par sa table de v´ erit´ e ou bien comme un polynˆ ome ` a plusieurs variables de degr´ e au plus n sur B [x
1, . . . , x
n]. On rappelle que sur le corps B , l’addition est le xor et la multiplication est le and.
Question 1 : Montrer que f s’´ ecrit : f (x
1, . . . , x
n) = P
(a1,...,an)∈Bn
g(a
1, . . . , a
n).x
a11· · · x
ano` u g : B
n7→
B . Cette repr´ esentation est la Forme Normale Alg´ ebrique (FNA) de f .
Question 2 : Exprimer g dans le cas o` u n = 1. Montrez que la proc´ edure qui calcule g en fonction de f est involutive, c’est ` a dire qu’elle permet aussi de calculer f en fonction de g.
Question 3 : Montrer que f peut s’´ ecrire sous la forme f (x
1, . . . , x
n) = f
0(x
1, . . . , x
n−1)+x
n·f
1(x
1, . . . , x
n−1).
Question 4 : Soit g
0et g
1les FNA de f
0et f
1respectivement. Exprimer g en fonction de g
0et g
1. Question 5 : En d´ eduire un algorithme de calcul de g et donner sa complexit´ e.
3 Application de FFT : filtrage
Question 1 : Un dispositif physique tel qu’un microphone, un oscilloscope, etc. est utilis´ e pour acqu´ erir constitu´ e par une suite de r´ eels x
0, . . . , x
nassez longue. Lorsque le dispositif n’est pas de tr` es bonne qualit´ e et que les ´ echantillons contiennent du ”bruit”, une mesure rudimentaire pour lutter contre ce ph´ enom` ene consiste ` a appliquer un lissage gaussien, c’est ` a dire ` a remplacer chaque ´ echantillon par une moyenne pond´ er´ ee de ses voisins :
y
i= 1 Z
k
X
j=−k