Cyclic Codes and Cellular Automata Journées Calculabilités 2016 Luca Mariot 1 , 2 1 Dipartimento di Informatica, Sistemistica e Comunicazione (DISCo) Università degli Studi Milano - Bicocca 2 Laboratoire d’Informatique, Signaux et Systèmes de Sophia Antipolis (I3S) Université Nice Sophia Antipolis luca.mariot@disco.unimib.it April 12, 2016
Part 1: Error-Correcting Codes Basics
Communication Model Noise e µ µ c z Alice Encoder Channel Decoder Bob ◮ µ ∈ { 0 , 1 } m : message ◮ e ∈ { 0 , 1 } n : error pattern ◮ c ∈ { 0 , 1 } n : codeword ( n > m ) ◮ z = c ⊕ e (received word) Luca Mariot Cyclic Codes and Cellular Automata
Communication Model Noise e µ µ c z Alice Encoder Channel Decoder Bob ◮ µ ∈ { 0 , 1 } m : message ◮ e ∈ { 0 , 1 } n : error pattern ◮ c ∈ { 0 , 1 } n : codeword ( n > m ) ◮ z = c ⊕ e (received word) � n � errors ⇒ w H ( e ) ≤ t ASSUMPTION : at most t < 2 Luca Mariot Cyclic Codes and Cellular Automata
Linear Codes Definition A ( n , m , d ) binary linear code C of minimum distance d is an m -dimensional subspace of F n 2 , such that for all distinct c 1 , c 2 ∈ C d H ( c 1 , c 2 ) ≥ d Luca Mariot Cyclic Codes and Cellular Automata
Linear Codes Definition A ( n , m , d ) binary linear code C of minimum distance d is an m -dimensional subspace of F n 2 , such that for all distinct c 1 , c 2 ∈ C d H ( c 1 , c 2 ) ≥ d g 1 . g 1 , ··· , g m ∈ F n 2 basis of C ⇔ G = . m × n generator matrix of C . g m Luca Mariot Cyclic Codes and Cellular Automata
Linear Codes Definition A ( n , m , d ) binary linear code C of minimum distance d is an m -dimensional subspace of F n 2 , such that for all distinct c 1 , c 2 ∈ C d H ( c 1 , c 2 ) ≥ d g 1 . g 1 , ··· , g m ∈ F n 2 basis of C ⇔ G = . m × n generator matrix of C . g m Encoding : vector-matrix multiplication µ �→ c = µ G Luca Mariot Cyclic Codes and Cellular Automata
Error Correction (Sphere Shrinking – SS) � d − 1 � ◮ t = ⇔ Error-correction capability of C 2 ◮ Sphere of c ∈ C ⇔ S c = { z ∈ F n 2 : d H ( z , c ) ≤ t } c 9 c 10 c 8 c 4 c 5 c 6 c 7 t c 1 c 2 c 3 Luca Mariot Cyclic Codes and Cellular Automata
Error Correction (Sphere Shrinking – SS) � d − 1 � ◮ t = ⇔ Error-correction capability of C 2 ◮ Sphere of c ∈ C ⇔ S c = { z ∈ F n 2 : d H ( z , c ) ≤ t } c 9 c 10 c 8 c 4 c 5 c 6 c 7 t c 1 c 2 c 3 SS-Decoding : return the nearest codeword c ∈ C to z ∈ F n 2 Luca Mariot Cyclic Codes and Cellular Automata
Error Correction – Syndrome Decoding ◮ Parity Check Matrix: a ( n − m ) × n matrix H such that s = Hz ⊤ = 0 ⇔ z ∈ C s : Syndrome of z Luca Mariot Cyclic Codes and Cellular Automata
Error Correction – Syndrome Decoding ◮ Parity Check Matrix: a ( n − m ) × n matrix H such that s = Hz ⊤ = 0 ⇔ z ∈ C s : Syndrome of z ◮ Suppose z = c ⊕ e , c ∈ C and e ∈ F n 2 . Then Hz ⊤ = H ( c ⊕ e ) ⊤ = ✟✟ Hc ⊤ ⊕ He ⊤ = He ⊤ ✟ Luca Mariot Cyclic Codes and Cellular Automata
Error Correction – Syndrome Decoding ◮ Parity Check Matrix: a ( n − m ) × n matrix H such that s = Hz ⊤ = 0 ⇔ z ∈ C s : Syndrome of z ◮ Suppose z = c ⊕ e , c ∈ C and e ∈ F n 2 . Then Hz ⊤ = H ( c ⊕ e ) ⊤ = ✟✟ Hc ⊤ ⊕ He ⊤ = He ⊤ ✟ Syndrome Decoding : find e ∈ F n 2 and return c = z ⊕ e Luca Mariot Cyclic Codes and Cellular Automata
Cyclic Codes Definition A ( n , m , d ) linear code is cyclic if it is closed under cyclic shifts, i.e. for all c = ( c 0 , c 1 , ··· , c n − 1 ) ∈ C σ ( c ) = ( c 1 , ··· , c n − 1 , c 0 ) ∈ C ◮ Polynomial representation: µ = ( µ 0 , ··· ,µ m − 1 ) �→ µ ( X ) = µ 0 + µ 1 X + ··· + µ m − 1 X m − 1 Luca Mariot Cyclic Codes and Cellular Automata
Generator and Parity Check Polynomials ◮ Generator polynomial: g ( X ) = g 0 + g 1 X + ··· + g n − m X n − m Encoding : µ ( X ) �→ c ( X ) = µ ( X ) g ( X ) Luca Mariot Cyclic Codes and Cellular Automata
Generator and Parity Check Polynomials ◮ Generator polynomial: g ( X ) = g 0 + g 1 X + ··· + g n − m X n − m Encoding : µ ( X ) �→ c ( X ) = µ ( X ) g ( X ) ◮ Parity-check polynomial: h ( X ) = ( X n − 1 ) / g ( X ) Syndrome : s ( X ) = z ( X ) h ( X ) = 0 ⇔ z ∈ C Luca Mariot Cyclic Codes and Cellular Automata
Generator and Parity Check Polynomials ◮ Generator polynomial: g ( X ) = g 0 + g 1 X + ··· + g n − m X n − m Encoding : µ ( X ) �→ c ( X ) = µ ( X ) g ( X ) ◮ Parity-check polynomial: h ( X ) = ( X n − 1 ) / g ( X ) Syndrome : s ( X ) = z ( X ) h ( X ) = 0 ⇔ z ∈ C Cyclic codes of length n ⇔ Divisors of X n − 1 Luca Mariot Cyclic Codes and Cellular Automata
Generator and Parity Check Matrices of Cyclic Codes ◮ Generator polynomial: g ( X ) = g 0 + g 1 X + ··· + g n − m X n − m g 0 g n − m 0 0 ··· ··· ··· ··· ··· 0 g 0 ··· g n − m 0 ··· ··· ··· 0 G = . . . . . . . ... ... . . . . . . . . . . . . . . 0 0 g 0 g n − m ··· ··· ··· ··· ··· Luca Mariot Cyclic Codes and Cellular Automata
Generator and Parity Check Matrices of Cyclic Codes ◮ Generator polynomial: g ( X ) = g 0 + g 1 X + ··· + g n − m X n − m g 0 g n − m 0 0 ··· ··· ··· ··· ··· 0 g 0 ··· g n − m 0 ··· ··· ··· 0 G = . . . . . . . ... ... . . . . . . . . . . . . . . 0 0 g 0 g n − m ··· ··· ··· ··· ··· ◮ Parity-check polynomial: h ( X ) = h 0 + h 1 X + ··· + h m X m h m ··· h 0 0 ··· ··· ··· ··· 0 0 h m h 0 0 0 ··· ··· ··· ··· H = . . . . . . . ... ... . . . . . . . . . . . . . . 0 ··· ··· ··· ··· 0 h m ··· h 0 Luca Mariot Cyclic Codes and Cellular Automata
Systematic Encoding through LFSR [McEl85] ◮ Parity-check polynomial: h ( X ) = h 0 + h 1 X + ··· + h m X m ◮ Reciprocal: h ∗ ( X ) = X m h ( 1 / X ) = h m + h m − 1 X + ··· + h 0 X m Luca Mariot Cyclic Codes and Cellular Automata
Systematic Encoding through LFSR [McEl85] ◮ Parity-check polynomial: h ( X ) = h 0 + h 1 X + ··· + h m X m ◮ Reciprocal: h ∗ ( X ) = X m h ( 1 / X ) = h m + h m − 1 X + ··· + h 0 X m + ··· + + h m − 1 h m h 1 h 0 µ 0 µ 1 ··· µ m − 2 µ m − 1 c Luca Mariot Cyclic Codes and Cellular Automata
Systematic Encoding through LFSR [McEl85] ◮ Parity-check polynomial: h ( X ) = h 0 + h 1 X + ··· + h m X m ◮ Reciprocal: h ∗ ( X ) = X m h ( 1 / X ) = h m + h m − 1 X + ··· + h 0 X m + ··· + + h m − 1 h m h 1 h 0 µ 0 µ 1 ··· µ m − 2 µ m − 1 c c = ( µ 0 , ··· ,µ m − 1 , p 0 , ··· , p n − m − 1 ) � ��������� �� ��������� � � ������������ �� ������������ � original message parity check bits Luca Mariot Cyclic Codes and Cellular Automata
Part 2: Cellular Automata
One-Dimensional Cellular Automata (CA) Definition One-dimensional cellular automaton: triple � n ,δ, f � where n ∈ N is the number of cells arranged on a one-dimensional array, r ∈ N is the diameter and f : { 0 , 1 } δ → { 0 , 1 } is the local rule. Luca Mariot Cyclic Codes and Cellular Automata
One-Dimensional Cellular Automata (CA) Definition One-dimensional cellular automaton: triple � n ,δ, f � where n ∈ N is the number of cells arranged on a one-dimensional array, r ∈ N is the diameter and f : { 0 , 1 } δ → { 0 , 1 } is the local rule. Example: n = 8, δ = 3, f ( s i − 1 , s i , s i + 1 ) = s i − 1 ⊕ s i ⊕ s i + 1 ··· 0 ··· 0 1 1 0 1 0 0 0 0 1 0 1 ⇓ Parallel update Global rule F ↓ f ( 1 , 1 , 0 ) = 1 ⊕ 1 ⊕ 0 0 1 0 0 1 1 0 Luca Mariot Cyclic Codes and Cellular Automata
One-Dimensional Cellular Automata (CA) Definition One-dimensional cellular automaton: triple � n ,δ, f � where n ∈ N is the number of cells arranged on a one-dimensional array, r ∈ N is the diameter and f : { 0 , 1 } δ → { 0 , 1 } is the local rule. Example: n = 8, δ = 3, f ( s i − 1 , s i , s i + 1 ) = s i − 1 ⊕ s i ⊕ s i + 1 ··· 0 ··· 0 1 1 0 1 0 0 0 0 1 0 1 ⇓ Parallel update Global rule F ↓ f ( 1 , 1 , 0 ) = 1 ⊕ 1 ⊕ 0 0 1 0 0 1 1 0 Remark : No boundary conditions ⇒ The array “shrinks” Luca Mariot Cyclic Codes and Cellular Automata
Linear CA ◮ Local rule: linear combination of the neighborhood cells f ( x 0 , ··· , x δ − 1 ) = a 0 x 0 ⊕···⊕ a δ − 1 x δ − 1 , a i ∈ F 2 Luca Mariot Cyclic Codes and Cellular Automata
Recommend
More recommend