Cours G Flashcards

1
Q

Qu’est-ce qu’un code correcteur ?

A

Un ensemble de vecteurs (mots) et un couples de fonction (Enc, Dec) qui gèrent la transmission des mots sur un canal de communication bruité

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qu’est ce qu’un bruit additif ?

A

Un bruit qui transforme un vecteur c en vecteur c’ où il existe e tel que c’ = c + e

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Rapport entre la taille d’un vecteur c et la taille de Enc(c)

A

Soit c un vecteur de dimension k, c’est-à-dire que c ∈ ({F}2)k, alors Enc(c) ({F}2)n, il est donc de taille n avec n ≥ k

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

À quoi sert un code correcteur ?

A
  • À récupérer de l’information mal transmise
  • À concevoir des systèmes de stockage de données distribués
  • À concevoir des algorithmes tolérants aux erreurs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cas des codes correcteurs dans le cadre des transmissions

A

On veut pouvoir assurer l’intégrité de l’information pour les communications importants, ou alors pouvoir corriger un message bruité lors de sa transmission sous forme de signal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cas des codes correcteurs dans le cadre du stockage de données

A

On veut savoir combien de fois on a besoin de stocker une information pour être sûrs de pouvoir la retrouver en cas d’aléa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cas des codes correcteurs dans le cadre des algorithmes tolérants aux fautes

A

On veut pouvoir par exemple faire du calcul distribué et retrouver le résultat même si une partie des machine a transmis le mauvais résultat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’est-ce qu’un BSC ?

A

un “Bynary Symmetric Channel” est un canal de transmission sans mémoire dans lequel le bruit agit indépendamment sur chaque bit : la probabilité que le i-ème bit de x soit différent du i-ème bit de y, où x est le message envoyé et y le message reçu, est la même que leur (i+1)-ème bits soient différents

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qu’est-ce qu’une matrice de transition binaire ?

A

Une matrice Mx,y = Pr(y | x), c’est-à-dire qui calcule la probabilité que y soit reçu sachant que x est envoyé :

0 –(1 - p)–> 0
1 –(1 - p)–> 1
et sur les diagonales de 0 vers 1 et de 1 vers 0, p

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Que signifie la symétrie de la matrice de transition binaire ?

A

La symétrie de la matrice de transition binaire représente la symétrie de l’erreur : il y a la même probabilité qu’un 0 devienne un 1 et qu’un 1 devienne un 0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Matrice de transition dans le cas q-aire

A

M(x, y) =
- 1-p si x = y
- p/(q-1) si x != y

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Étapes d’une communication

A
  • Message m
  • Encodage Enc(m) = c avec Enc : {0, 1}k → {0, 1}n injective (n ≥ k)
  • Transmission y = Channel(c) où y = c + e avec e l’erreur additive ∈ {0, 1}n (et y ∈ {0, 1}n)
  • Décodage Dec(y) = Dec(c) = m (dans le cas idéal)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Théorème de Shannon (énoncé en formules)

A
  • Soit 0 ≤ p ≤ 1/2, ϵ ≤ 1/2 - p et n&raquo_space; 0, alors
    • ∃ δ > 0 tel qu’il existe
      • Enc : {0, 1}k → {0, 1}n
      • Dec : {0, 1}n → {0, 1}n
      • avec k ≤ ⌊(1 - H(p) + ϵ) × n⌋ tel que ∀ m ∈ {0, 1}k, Pr(Dec(Enc(m) + e) != m) ≤ 2-δn
    • Pour k > ⌈(1 - H(p) + ϵ) × n ⌉, pour n’importe quel (Enc, Dec)+ ϵ) × n, ∃ m ∈ {0, 1}k tel que Pr(Dec(Enc(m) + e) != m) ≥ 1/2
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Théorème de Shannon (énoncé en langage naturel)

A

Soit 1 - H(p) la capacité du canal, alors si un code (ou son rendement) ne dépasse pas cette capacité, il est possible de trouver une fonction de code qui corrige autant d’erreur qu’on veut, c’est-à-dire que la probabilité de mal décoder tend vers 0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qu’est-ce que le rendement du code c ?

A

n / k avec n la taille de c et k la taille de m tel que Enc(m) = c, il mesure la redondance du message m (de taille k) dans c (de taille n) et indique la capacité de correction

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qu’est-ce que la capacité d’un canal ?

A

Soit p la probabilité liée à un canal, alors la capacité de ce canal est 1 - H(p)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Qu’est-ce que la linéarité de fonction ?

A

Le fait que ces fonctions puissent être vues comme des matrices

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Exemples de fonctions linéaires

A

Enc et Dec sont des fonctions linéaires : Enc(m) = vm × MEnc = vc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Qu’est-ce que la matrice génératrice du code ?

A

MEnc telle que Enc(m) = vm × MEnc = vc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Qu’est-ce que la matrice de parité du code ?

A

La matrice orthogonale à la matrice génératrice du code, de dimensions (n × n - k)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Définition de la distance de Hamming

A

La distance de Hamming est le nombre de bits qui sépare deux vecteurs : dH(x, y) = |{i | xi != yi}|

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Caractérisation de la distance de hamming (schéma de preuve)

A

La distance de Hamming est bien une distance puisqu’elle respecte les trois critères d’une distance :
- dH(x, y) ≥ 0 avec égalité si et seulement si x = y
- dH(x, y) = dH(y, x)
- dH(x, z) ≤ dH(x, y) + dH(y, z) (inégalité triangulaire), car xi != zi ⇔ xi != yi XOR zi != yi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Qu’est-ce que le poids d’un vecteur ?

A

Poids(x) = |{i | xi != 0}|

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Lien entre le poids et la distance de Hamming

A

dH(x, y) = Poids(x - y)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Distance de Hamming d’un code

A

dH(C) = minC1 != C2 ∈ CdH(C1, C2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Qu’est-ce qu’un code linéaire ?

A

Le code C est linéaire si Enc(m1) + Enc(m2) = Enc(m1 + m2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Distance de hamming pour un code linéaire (énoncé)

A

Si C est linéaire dH(C) est le mot de plus petit poids != (0, 0, …, 0)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Distance de hamming pour un code linéaire (schéma de preuve)

A

On veut montrer que pour C linéaire, minD = minc1 != c2 ∈ CdH(c1, c2) = minc ∈ C w(c) = minW :
- Si dH(c1, c2) = L, il existe c3 = c1 + c2 tel que w(c3) = L, donc minD ≥ minW
- Si w(c) = L, il existe c1 = (0, 0, …, 0) et c2 = c tels que dH(c1, c2) = L, donc minW ≥ minD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Qu’est-ce que le code de parité ?

A

C : Enc(m) = (m, ⊕) donc n = k + 1 → très bon rendement, mais trop bon car on ne peut corriger quasiment aucune erreur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Quelle est la distance de Hamming du code de parité ?

A

dH(C) = 2 car le plus petit mot non nul de C est (1, 1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Le code de parité est-il linéaire ?

A

Oui, car 0 ∈ C et Enc(c1) + Enc(c2)
= m1, 1, m1, 2, …, m1, k, Σm1, i
+
m2, 1, m2, 2, …, m2, k, Σm2, i
= m1, 1 + m2, 1, m1, 2 + m2, 2, …, m1, k + m2, k, Σm1, i + Σm2, i
= Enc(c1 + c2)

32
Q

Qu’est-ce que le code de répétition ?

A

Cr, rep : Enc(m) =(m, m, …, m) donc n = r × k → rendement r

33
Q

Le code de répétition est-il linéaire ?

A

Oui, car 0 ∈ Cr, rep et Enc(c1) + Enc(c2)
= c1, c1, …, c1
+
c2, c2, …, c2
= c1 + c2, c1 + c2, …, c1 + c2
= Enc(c1 + c2)

34
Q

Quelle est la distance de Hamming du code de r répétition ?

A

dH(Cr, rep) = r car le plus petit mot non nul de Cr, rep est (1, 1, …, 1)

35
Q

Qu’est-ce qu’un MLD ?

A

Un Maximum Likehood Decoder : il s’agit de corriger avec le mot qui a le plus de probabilité d’avoir été envoyé

36
Q

Lien entre MLD et BSC (énoncé)

A

Sur un canal BSC, un décodage MLD équivaut à chercher le mot de code à distance la plus proche

37
Q

Lien entre MLD et BSC (schéma de preuve)

A

Pr(y reçu | c transmis)
= Πi=1..n Pr(yi reçu | ci transmis)
= (1 - p) × … × (1 - p) × p × … × p (autant que de non-erreurs puis autant que d’erreurs)
= (1 - p)n - dH(y, c) × pdH(y, c)
= (1 - p)n/(1 - p)dH(y, c) × pdH(y, c)
= (1 - p)n × (p/(1 - p))dH(y, c) donc en prenant dH(y, c) le plus petit possible, on a bien la meilleure probabilité de recevoir le bon mot

38
Q

Avantage du MLD décodeur

A

On sait que la bonne chose à faire est de trouver le mot à plus proche distance

39
Q

Inconvénient du MLD décodeur

A

Trouver le mot à plus proche distance est un problème NP-difficile, même dans les codes linéaires

40
Q

Qu’est-ce qu’un BDD ?

A

Un Bounded Distance Decoder prend en entrée le mot y reçu, le code C donné et t une borne sur le nombre d’erreurs faites, et renvoie c ∈ C tel que dH(y, c) ≤ t

41
Q

Dans quel cas un BDD est-il particulièrement efficace ?

A

S’il y a un seul mot de code c ∈ C tel que dH(y, c) ≤ t la borne sur le nombre d’erreurs, alors on sait que c est forcément le bon mot

42
Q

Évaluation du code de 3-répétition

A

Le code de 3-répétition peut corriger 1 erreur, puisqu’il n’y a pas d’ambiguïté pour le décoder : il existe un unique mot à distance 1 pour un y donné

43
Q

Évaluation du code de parité

A

Le code de parité peut détecter un nombre impair d’erreurs

44
Q

Quatre assertions équivalentes pour évaluer un code C

A
  • C a distance minimale d ≥ 2
  • C peut corriger ⌊(d - 1) / 2⌋ erreurs
  • C peut détecter d - 1 erreurs
  • C peut corriger d - 1 effacements
45
Q

C a distance minimale d ≥ 2 si et seulement si C peut détecter d - 1 erreurs (schéma de preuve)

A

Si d ≥ 2, qu’on reçoit y et qu’on sait qu’il y a eu e ≤ d - 1 erreurs, on peut déterminer quel mot c a été envoyé car dH(c, y) ≤ d - 1, mais s’il y a eu plus de d erreurs, alors y peut appartenir aux boules de plusieurs mots différents et on ne peut pas savoir de laquelle il vient

46
Q

C a distance minimale d ≥ 2 si et seulement si C peut corriger d - 1 effacements (schéma de preuve)

A

Si d ≥ 2 et que C ne peut pas corriger d - 1 effacements, c’est-à-dire qu’il hésite entre c1 et c2, alors c’est que dH(c1, c2) ≤ d -1, ce qui est contradiction avec la distance d de C

47
Q

C a distance minimale d ≥ 2 si et seulement si C peut corriger ⌊(d - 1) / 2⌋ erreurs (schéma de preuve)

A

Si d ≥ 2 et qu’on reçoit y, on cherche c unique tel que dH(y, c) ≤ t = ⌊(d - 1) / 2⌋ : si c1 et c2 sont candidats, alors c’est que dH(c1, y) = dH(c2, y) ≤ t, donc dH(c1, c2) ≤ dH(c1, y) + (y, c2) (par inégalités triangulaires) ≤ 2t = d - 1, ce qui n’est pas possible car C a distance d

48
Q

Qu’est-ce que Bt(x) ?

A

Bt(x) est la boule de centre x et de rayon t qui contient tous les mots y tels que dh(x, y) ≤ t

49
Q

Quelles sont les trois espérances pour un bon code ?

A
  • Ne pas avoir trop de redondance : R = n / k doit être le plus proche de 1 possible
  • Corriger beaucoup d’erreurs (donc avoir une grande distance)
  • Avoir des algorithmes efficaces d’encodage et de décodage
50
Q

Comment se comporte les codes de Hamming vis-à-vis des trois espérances pour un bon code ?

A

Ils sont un bon compromis entre un rendement de code faible et des algorithmes efficaces

51
Q

Comment se comporte les codes de Reede-Solomon vis-à-vis des trois espérances pour un bon code ?

A

Ils sont un bon compromis pour les trois espérances à la fois

52
Q

Comment évaluer si un code donné respecte les trois espérances pour un bon code ?

A

Pour les deux premières espérances sur le rendement et le nombre d’erreurs corrigées, on utilise des bornes sur les paramètres pour les étudier

53
Q

Qu’est-ce que que le code de Hamming pour k = 4 ?

A

CH : Enc(m = (x1, x2, x3, x4)) = (x1, x2, x3, x4, x1 + x2 + x4, x1 + x3 + x4, x2 + x3 + x4)

54
Q

Le code de Hamming pour est-il linéaire pour k = 4 ?

A

Oui, car 0 ∈ CH et pour c1 et c2 ∈ CH, c1 + c2 ∈ CH, Enc(c1) + Enc(c2) =
c1, 1, c1, 2, c1, 3, c1, 4, c1, 1 + c1, 2 + c1, 4, c1, 1 + c1, 3 + c1, 4, c1, 2 + c1, 3 + c1, 4
+
c2, 1, c2, 2, c2, 3, c2, 4, c2, 1 + c2, 2 + c2, 4, c2, 1 + c2, 3 + c2, 4, c2, 2 + c2, 3 + c2, 4
= c1, 1 + c2, 1, c1, 2 + c2, 2, c1, 3 + c2, 3, c1, 4 + c2, 4, c1, 1 + c2, 1 + c1, 2 + c2, 2 + c1, 4 + c2,4, c1, 1 + c2, 1 + c1, 3 + c2, 3 + c1, 4 + c2, 4, c1, 1 + c2, 1 + c1, 3 + c2, 3 + c1, 4 + c2, 4
= Enc(c1 + c2)

55
Q

Quelle est la distance de Hamming du code de Hamming pour k = 4 ?

A

dH(CH) = 3

56
Q

Évaluation du code de Hamming pour les 3 critères d’évaluation d’un bon code

A
  • R = 4/7, c’est mieux que le 1/3 de C3, rep
  • t = ⌊(d - 1) / 2⌋ = 1
  • ?
57
Q

Matrice génératrice du code de parité

A

[1 0 0 … 0]
[0 1 0 … 0]
[0 0 1 … 0]
[…………….]
[0 0 0 … 1]
[1 1 1 … 1]

58
Q

Matrice génératrice du code de répétition

A

[Idk]
[Idk]
[……………………….]
[Idk] r fois

59
Q

Matrice génératrice du code de Hamming pour k = 4

A

[1 0 0 0 1 1 0]
[0 1 0 0 1 0 1]
[0 0 1 0 0 1 1]
[0 0 0 0 1 1 1]

60
Q

Matrice de parité du code de Hamming pour k = 4

A

[0 0 0 1 1 1 1]
[0 1 1 0 0 1 1]
[1 0 1 0 1 0 1]

61
Q

Propriété de la matrice de parité H par rapport à la matrice génératrice G

A

Hy = 0 si et seulement si c ∈ C, c’est-à-dire si y est bien engendré par G

62
Q

Évaluation de l’encodage du code de Hamming

A

Encodage efficace car on a une matrice génératrice (Hamming linéaire) donc on peut juste effectuer un produti matrice-vecteur-

63
Q

Évaluation de la détection d’erreurs du code de Hamming

A

Efficace avec l’utilisation de la matrice de parité

64
Q

Évaluation du décodage du code de Hamming

A

Le décodage d’un code linéaire est NP-difficile

65
Q

Qu’est-ce qu’un code parfait ?

A

Un code de paramètres (n, k, d) tels que 2kΣi=0..t (n i) = 2n (borne d’empilement de sphères atteinte)

66
Q

Propriété d’un code parfait

A

Si C est parfait, alors pour tout y, il existe un unique c tel que dH(y, c) ≤ t

67
Q

Nombre de mots dans une même boule Bt

A

2kΣi=0..t (n i)

68
Q

Exemple de code parfait

A

Le code de Hamming est parfait, et c’est le seul à l’être sur {F}2 en dehors des codes triviaux

69
Q

Comment corriger une erreur avec les codes de Hamming ?

A
  • Détecter une erreur en se servant de la matrice de parité : Hy = b != 0
  • Calculer la valeur binaire du vecteur b
  • Changer le b-ième bit du vecteur y
70
Q

Paramètres du code de Hamming généralisé

A

Pour un paramètre r, (n = 2r - 1, k = 2r - r - 1, d = 3)

71
Q

Qu’est-ce qu’un code MDS (Maximum Distance Separable) ?

A

Un code de paramètres (n, k, d) tels que d = n - k + 1 (borne singleton atteinte)

72
Q

Lien entre la linéarité et la borne singleton

A

Tous les codes linéaires atteignent la borne singleton

73
Q

Encodage des codes de Reede-Solomon

A
  • On considère f ∈ {F}q[X]<k l’espace des polynômes à coefficients dans {F}q et de degré < k}
  • Encodage : A = {α1, …, αn} un ensemble de n points disjoints dans {F}q, et f → (f(α1), …, f(α1))
74
Q

Reede-Solomon atteint la borne singleton (schéma de preuve)

A
  • Prendre f et g différents et fA et gA les vecteurs d’évaluations de f et g en A = {α1, …, αn}
  • dH(f, g) = |{i | f(αi) != g(αi)}| et n - d = |{i | f(αi) = g(αi)}| = |{i | (f - g)(αi) = 0}| ≤ k - 1 sinon f = g, et d ≤ n - k + 1 par définition, donc d = n - k + 1
75
Q

Évaluation du décodage des codes de Reede-Solomon

A
  • Si aucune erreur, on calcule Lagrange(αi, yi)
  • S’il y a des effacements (d - 1), il nous reste n - (d - 1) = n - d + 1 = k évaluations et f est de degré < k, donc on peut aussi utiliser Lagrange(αi, yi)
76
Q

Polynôme locateur d’erreur

A

Πi tel que yi!=f(αi) (X - αi), ainsi Πi=1..ni)(f(αi) - yi) = 0