Download Reed-Muller codes

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Matrix calculus wikipedia , lookup

Euclidean vector wikipedia , lookup

Four-vector wikipedia , lookup

Covariance and contravariance of vectors wikipedia , lookup

Vector space wikipedia , lookup

Exterior algebra wikipedia , lookup

Lp space wikipedia , lookup

Transcript
Chapter 8
Reed-Muller codes
Synopsis. The minimum distance of a perfect code cannot exceed 7 unless the code is a
repetition code. This is disappointingly low. In this final section of the course, we construct Reed-Muller codes, a family of codes with large minimum distance. Unfortunately,
they are not perfect. First, we cover the necessary material on the Boolean algebra. We
then define the Reed-Muller codes R(r, m) as certain subspaces of the Boolean algebra
on V m . We calculate the parameters of R(r, m). In the exercises to this chapter, some
of the previously known codes are realised as Reed-Muller codes.
The first notion we will need to define Reed-Muller codes is that of a Boolean function.
We fix m ≥ 1.
Definition (Boolean functions)
Denote by V m the set of all binary words of length m. (It is the same as Fm
2 but viewed
without any vector space structure). A Boolean function is a (set-theoretical) function
f : V m → F2 .
Remark (the number of Boolean functions)
m
The total number of all Boolean functions on V m is |F2 ||Vm | = 22 .
Remark (Boolean functions as rows of a truth table)
One has certainly met Boolean functions when constructing truth tables for statements
in basic logic. To give an illustration, let m = 3. Consider statements which involve
variables x1 , x2 , x3 , each of which can take values 0 (false) or 1 (true).
1
Reed-Muller codes
2
We will represent a logical statement by a row (not column) in a truth table. (We use
rows because it is common in Coding Theory to think of codewords as of row vectors;
and we will see that in Reed-Muller codes, the role of codewords is played by certain
Boolean functions.) In our example (m = 3), the table will have 8 columns:
x1
x2
x3
(x1 and x2 ) =⇒ x3
0
1
v2 v3
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
In this table, (x1 and x2 ) =⇒ x3 is a statement whose truth value depends on the
values of x1 , x2 and x3 . Therefore, it can be viewed as a Boolean function: its value at
the binary word 000 is 1, at the word 100 the value is 1, and so on. The only binary
word where this function takes the value 0 is the word 110: indeed, if x1 and x2 are
true, then x1 and x2 is true, but x3 is false, and the value of the implication “true
=⇒ false” is false.
(The other rows in the table will be explained below.)
The Boolean algebra
Because Boolean functions take values in F2 = {0, 1} which is a field, Boolean functions
can be added and multiplied pointwise: if f, g : V m → F2 , one has the functions
f + g, f g : V m → F2 ;
(f + g)(x) = f (x) + g(x),
(f g)(x) = f (x)g(x),
∀x ∈ V m .
Also, there are constant functions 0 and 1. (They are shown in the 2nd, respectively 3rd,
row of the truth table above.) The Boolean function 1 is often called the tautological
truth.
We conclude that Boolean functions form a commutative ring.
The traditional logical operations can be written in terms of the ring operations + and
×. Clearly, multiplication is the same as AND:
f g = f and g.
The addition obeys the rule 0 + 0 = 0, 0 + 1 = 1 + 0 = 1, 1 + 1 = 0. The logical operation
which corresponds to addition is called the exclusive OR:
f + g = f xor g = (f or g) and not(f and g).
The ring of Boolean functions on V m is also a vector space over F2 .
Reed-Muller codes
3
Definition
The ring/vector space of Boolean functions on V m is called the Boolean algebra on
V m.
Claim (dimension of the Boolean algebra)
m
Because the Boolean algebra on V m has 22 elements, it is of dimension 2m over F2 .
We will now introduce two special kinds of elements of the Boolean algebra: coordinate
functions and, more generally, monomial functions.
Definition (coordinate function, monomial)
The Boolean function vi : V m → F2 defined by vi (x1 , x2 , . . . , xm ) = xi is called the ith
coordinate function.
To each subset {i1 , . . . , ir } ⊆ {1, . . . , m} there corresponds the monomial function
(or monomial ) vi1 . . . vir , of degree r.
Also, 1 is the monomial function corresponding to the set ∅, of degree 0.
Remark (properties of monomials)
• Observation: because the values of any Boolean function are 0 and 1, one has
vi = vi2 = vi3 = . . .. This is the reason why there are no higher powers of the vi in
the definition of a monomial.
• There are 2m monomials in the Boolean algebra on V m (because there are 2m
subsets of {1, . . . , m}).
8.1
Lemma
Monomials are a basis of the Boolean algebra.
Proof. There are 2m (= the dimension of the Boolean algebra on V m ) monomials. We
will use the following fact from linear algebra: if a spanning set in a finite dimensional
vector space has cardinality equal to the dimension of the space, then this set is a basis.
Therefore, it is enough to prove that the monomials span the Boolean algebra.
Reed-Muller codes
4
To each point x ∈ V m there is associated a delta-function:
(
0
if y 6= x,
m
δx : V → F2 ,
δx (y) =
1
if y = x.
There are 2m delta-functions on V m . Their value vectors are exactly the vectors of
m
weight 1 in F22 . We know that vectors of weight 1 span the whole space, thus the
delta-functions span the Boolean algebra.
It is therefore enough to show that each delta-function lies in the linear span of monomials. Let x = (x1 , . . . , xm ) be a binary word. Observe that
Y
Y
δx =
vi
(1 + vj ).
i:xi =1
j:xj =0
Indeed, the product on right-hand side becomes 1 if it is evaluated at the word x, and
0 if it is evaluated at a word which differs from x in at least one bit.
Now open the brackets and expand the product to see that δx is a sum of products of
some of the vi , i.e., a sum of several monomials.
Definition (Reed-Muller code)
The rth order Reed-Muller code on V m , denoted R(r, m), is the subspace of the Boolean
algebra on V m spanned by monomials of degree at most r.
(Here 0 ≤ r ≤ m.)
m
How to write codewords of R(r, m) as row vectors in F22 ?
Order all binary words of length m as y0 , . . . , y2m −1 . The standard ordering is obtained
by interpreting the word x1 x2 . . . xm as a number written in base 2, i.e., the number
2m−1 x1 + . . . + 2xm−1 + xm . Thus, the binary words of length 3 appear in the following
order: 000, 001, 010, 011, 100, 101, 110, 111.
Let f : V m → F2 be a Boolean function. To f we associate the value vector of f , which
is the binary vector f = (f (y0 ), . . . , f (y2m −1 )), of length 2m .
We can say that R(r, m) is spanned by the value vectors of all monomials of degree at
most r in the Boolean algebra on V m .
8.2
Lemma
R(r, m) has length 2m , dimension
m
0
+
m
1
+ ... +
m
r
.
Reed-Muller codes
5
Proof. Length = 2m by construction; dimension is the number of monomials of degree
0, 1, . . . , r, which are a basis of R(r, m). The number of monomials of degree d is the same
as the number of d-element subsets of {1, . . . , m}, which is m
d ; hence the result.
To find the minimum distance of R(r, m), we need the following auxiliary construction.
The bar product (the [ u | u + v ] construction)
If u, v ∈ Fnq , the vector [ u | v ] ∈ F2n
q is formed by u followed by v.
Definition
Let C1 , C2 ⊆ Fnq be two linear codes. The linear code
|C1 |C2 | = {[ u | u + v ] : u ∈ C1 , v ∈ C2 }.
of length 2n is called the bar product of C1 and C2 .
8.3
Proposition
d(|C1 |C2 |) = min{ 2d(C1 ), d(C2 ) }.
Proof. The minimum distance of |C1 |C2 | is the smallest weight of a non-zero vector
[ u | u + v ] where u ∈ C1 and v ∈ C2 ; that is, the minimum of w(u) + w(u + v).
If v = 0, this is 2w(u) ≥ 2d(C1 ). The value 2d(C1 ) is attained when w(u) = d(C1 ),
v = 0.
If v 6= 0, one has w(u) + w(u + v) = d(u + v, 0) + d(0, u) ≥ d(u + v, u) = w(u + v − u) =
w(v) ≥ d(C2 ). The value d(C2 ) is attained when u = 0, w(v) = d(C2 ).
Hence the minimum of w(u) + w(u + v) over all possible non-zero [ u | u + v ] is indeed
min{ 2d(C1 ), d(C2 ) }.
8.4
Proposition
R(r + 1, m + 1) = |R(r + 1, m)|R(r, m)|.
Explanation. A function f ∈ R(r + 1, m + 1) corresponds to linear combination of
monomials in v1 , . . . , vm+1 , of degree at most r + 1. Each monomial contains a copy of
v1 or none. Hence
f (v1 , . . . , vm+1 ) = g(v2 , . . . , vm+1 ) + v1 h(v2 , . . . , vm+1 ),
Reed-Muller codes
6
where g ∈ R(r + 1, m) and h ∈ R(r, m). Observe that our numbering of binary words
of length m + 1 is such that the value vector of v1 is
h
i
m+1
v1 = 0 0 . . . 0 | 1 1 . . . 1 ∈ F22
,
and that g has value vector [ g | g ] and v1 h has value vector [ 0 | h ]. Thus, f has value
vector [ g | g + h ], and any g, h as above yield f = g + v1 h ∈ R(r + 1, m + 1).
8.5
Theorem
The Reed-Muller code R(r, m) is a [2m , k, 2m−r ]2 -code where k =
m
0
+
m
1
+. . .+
m
r
.
Proof. The length n = 2m and dimension k are by Lemma 8.2. We calculate d.
If r = 0, R(0, m) is spanned by the value vector of the monomial 1. Hence it is the
binary repetition code of length 2m . So d = 2m , as claimed.
If r = m, R(m, m) is the trivial code and has d = 1 = 20 , as claimed.
Now let us use induction in m. The case m = 1 is done (here either r = 0 or r = 1).
Inductive step: R(r + 1, m + 1) = |R(r + 1, m)|R(r, m)|, hence, using the inductive
hypothesis, d(R(r + 1, m + 1)) = min{2 × 2m−r−1 , 2m−r } = 2m−r , as claimed.