Cours LB partie 2 Flashcards
Définition fonctionnelle des codes de Reede-Solomon
F ∈ {F}q[X]<k→ (F(α1), …, F(αn)) avec αi != αj, n ≥ k et αi ∈ {F}q
Complexité de l’encodage sans erreur naïf
O(k) opérations arithmétiques car n évaluations :
- 2k multiplications et k additions avec l’algorithme naïf
- k multiplications et k additions avec l’algorithmes de Horner
Calcul de F(α) utilisé dans l’algorithme dichotomique
F(α) = F mod (X - α)
Algorithme d’évaluation multipoints rapide (entrée, sortie, algorithme)
- Entrée : P ∈ {K}[X]<k, (α1, …, αn) ∈ {K} avec n ≥ k)
- Sortie : (P(αi))i = 1..n
- Algorithme EMR :
- Si deg(P) = 0 :
- Renvoyer(p1, …, pn)
- P0 ← P mod Πi = 1 → n//2 (X - αi)
- P1 ← P mod Πi = n//2+1 → n (X - αi)
- Renvoyer CONCAT(EMR(P0, (αi)i = 1..n//2), EMR(P1, (αi)i = n//2..n))
- Si deg(P) = 0 :
Complexité du produit polynomial naïf
O(n2)
Complexité du produit polynomial par Karatsuba
O(nlog23)
Complexité du produit polynomial par FFT
S’il y a une racine de l’unité dans le corps, O(nlogn)
Complexité du produit polynomial retenu pour tous les corps (sans condition)
O(nlog2n)
Définition de la super-linéarité
Pour M : M(n) ≥ k × M(n/k)
Complexité de la division polynomiale naÏve
Pour A = B×Q + R, O(deg(B) × deg(Q))
Complexité de la division polynomiale par dichotomie
Pour A = B×Q + R et n = deg(B), O(M(n)logn)
Complexité de la division polynomiale par itération de Newton
Pour A = B×Q + R et n = deg(B), O(M(n))
Cas dans lequel la division polynomiale naïve est plus efficace que la division par itération de Newton
Pour A = B×Q + R, si deg(A) = deg(B) + 1, alors deg(Q) = 1 :
- O(n) avec l’algorithme naïf
- O(M(n)) avec l’itération de Newton
Complexité du calcul naïf de Πi = 1→n (X - αi)
Avec une simple boucle sur n, O(nM(n))
Complexité du calcul non-naïf de Πi = 1 → n (X - αi)
Avec la dichotomie Πi = 1 → n (X - αi) = Πi = 1 → n//2 (X - αi)Πi = n//2+1 → n (X - αi), O(M(n)logn)
Complexité de l’algorithme EMR (Évaluation Multipoints Rapide) sans pré-caclul
O(M(n)log2n)
Complexité de l’algorithme EMR (Évaluation Multipoints Rapide) avec pré-caclul
O(M(n)logn) + O(M(n)logn)
(pré-calcul des Π + algorithme même)
Formule de complexité de l’algorithme EMR avant calcul
C(n) = 2M(n/2)log(n/2) + 2M(n/2) + 2C(n/2)
(pré-calcul + divisions pour le modulo + récursion)
Algorithme de calcul de l’arbre des sous-produits (entrée, sortie, algorithme)
- Entrée : α1, …, αn
- Sortie : arborescence des sous-produits
- Algorithme :
- Utiliser l’algorithme dichotomique pour calculer Πi=1→k (X - αi) et sauvegarder chaque sous-produit au fur et à mesure
Complexité du calcul de l’arbre des sous-produits
O(M(n)logn)
Quand est-ce qu’il est possible d’effectuer un décodage sans erreur ?
Lorsqu’il y a au moins k évaluations sans erreur, où deg(P) < k
Distance de code en fonction du degré et du nombre d’évaluations
Pour deg(P) < k et n évaluations, on sait qu’il faut au plus n - k effacements, donc d - 1 = n - k ⇔ d = n - k + 1
Définition fonctionnelle de l’interpolation de Lagrange
(αi, yi)i=1..k → P ∈ {P}q[X]<k tel que P(αi) = yi pour i=1..k avec deg(P) < k
Formule de Lagrange
P(X) = Σi=1..k yiLi(X) avec Li(X) un polynôme de Lagrange
Formule des polynômes de Lagrange
Li = Ai(X)/Ai(αi) avec Ai(X) = Πi!=j (X - αj) = A(x)/(X - αi)