リード・マラー符号 (リード・マラーふごう、英 : Reed–Muller code )は、通信で使われる線型 な誤り訂正符号 の1つの種類である。発見者は Irving S. Reed と D. E. Muller である。リード・マラー符号は、R(r , m ) で表され、r は符号の次数、m は符号語の長さ n = 2m である。リード・マラー符号は、元が {0, 1} である有限体 GF(2m ) におけるバイナリ関数 に関連する。
符号 R(0, m ) は反復符号 、符号 R(1, m ) はアダマール符号 、符号 R(m − 1, m ) はパリティチェック符号 である。リード・マラー符号は直交性があるために興味深い特性を持ち、ブール関数 空間と見なせる。
長さ n = 2m のリード・マラー符号は以下のように構成される。
まず
F
2
m
=
{
x
1
,
…
,
x
n
}
{\displaystyle \mathbb {F} _{2}^{m}=\{x_{1},\ldots ,x_{n}\}}
とおく。このとき、部分集合
A
⊂
F
2
m
{\displaystyle A\subset \mathbb {F} _{2}^{m}}
に対して、指示ベクトル
I
A
∈
F
2
n
{\displaystyle \mathbb {I} _{A}\in \mathbb {F} _{2}^{n}}
を次で定義する。
(
I
A
)
j
=
{
1
(
x
j
∈
A
)
0
(
x
j
∉
A
)
{\displaystyle \left(\mathbb {I} _{A}\right)_{j}={\begin{cases}1&(x_{j}\in A)\\0&(x_{j}\notin A)\end{cases}}}
また
F
2
n
{\displaystyle \mathbb {F} _{2}^{n}}
における次の二項演算 を「楔積 ; wedge product」と呼ぶ。
w
∧
z
=
(
w
1
×
z
1
,
…
,
w
n
×
z
n
)
{\displaystyle w\wedge z=(w_{1}\times z_{1},\ldots ,w_{n}\times z_{n})}
F
2
m
{\displaystyle \mathbb {F} _{2}^{m}}
は、体
F
2
{\displaystyle \mathbb {F} _{2}}
上の m 次元ベクトル空間 ゆえ、次のように記述できる。
F
2
m
=
{
(
y
1
,
…
,
y
m
)
∣
y
i
∈
F
2
}
{\displaystyle \mathbb {F} _{2}^{m}=\{\,(y_{1},\dotsc ,y_{m})\mid y_{i}\in \mathbb {F} _{2}\,\}}
このとき、n -次元空間
F
2
n
{\displaystyle \mathbb {F} _{2}^{n}}
において次のベクトルを定義する。
v
0
=
I
F
2
m
,
v
i
=
I
H
i
(
1
≤
i
≤
m
)
{\displaystyle v_{0}=\mathbb {I} _{\mathbb {F} _{2}^{m}},\quad v_{i}=\mathbb {I} _{H_{i}}\quad (1\leq i\leq m)}
ここで、H i は
F
2
m
{\displaystyle \mathbb {F} _{2}^{m}}
における超平面
H
i
=
{
y
∈
F
2
m
∣
y
i
=
0
}
{\displaystyle H_{i}=\{\,y\in \mathbb {F} _{2}^{m}\mid y_{i}=0\,\}}
である。リード・マラー 符号 R(r , m ) とは、長さ n = 2m 、 次数 0 ≤ r ≤ m であり、
{
v
0
}
∪
{
v
i
1
∧
⋯
∧
v
i
p
∣
1
≤
i
1
<
⋯
<
i
p
≤
m
,
p
≤
r
}
{\displaystyle \{v_{0}\}\cup \{\,v_{i_{1}}\wedge \dotsb \wedge v_{i_{p}}\mid 1\leq i_{1}<\dotsb <i_{p}\leq m,\quad p\leq r\,\}}
によって生成 される符号のことである。
m = 3 とする。すると n = 8 であり、次のようになる。
F
2
3
=
{
(
0
,
0
,
0
)
,
(
0
,
0
,
1
)
,
…
,
(
1
,
1
,
1
)
}
{\displaystyle \mathbb {F} _{2}^{3}=\{(0,0,0),(0,0,1),\ldots ,(1,1,1)\}}
そして、上の構成 と同様に、次のようにおく。
v
0
=
(
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
)
v
1
=
(
1
,
0
,
1
,
0
,
1
,
0
,
1
,
0
)
v
2
=
(
1
,
1
,
0
,
0
,
1
,
1
,
0
,
0
)
v
3
=
(
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
)
{\displaystyle {\begin{aligned}v_{0}&=(1,1,1,1,1,1,1,1)\\v_{1}&=(1,0,1,0,1,0,1,0)\\v_{2}&=(1,1,0,0,1,1,0,0)\\v_{3}&=(1,1,1,1,0,0,0,0)\end{aligned}}}
r = 1 とすると、符号 R(1, 3) は次の集合から生成される。
{
v
0
,
v
1
,
v
2
,
v
3
}
{\displaystyle \{v_{0},v_{1},v_{2},v_{3}\}\,}
あるいは、次の行列を生成行列 とする符号である。
(
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
)
{\displaystyle {\begin{pmatrix}1&1&1&1&1&1&1&1\\1&0&1&0&1&0&1&0\\1&1&0&0&1&1&0&0\\1&1&1&1&0&0&0&0\\\end{pmatrix}}}
r = 2 とすると、符号 R(2, 3) は次の集合から生成される。
{
v
0
,
v
1
,
v
2
,
v
3
,
v
1
∧
v
2
,
v
1
∧
v
3
,
v
2
∧
v
3
}
{\displaystyle \{v_{0},v_{1},v_{2},v_{3},v_{1}\wedge v_{2},v_{1}\wedge v_{3},v_{2}\wedge v_{3}\}}
あるいは、次の行列を生成行列とする符号である。
(
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
)
{\displaystyle {\begin{pmatrix}1&1&1&1&1&1&1&1\\1&0&1&0&1&0&1&0\\1&1&0&0&1&1&0&0\\1&1&1&1&0&0&0&0\\1&0&0&0&1&0&0&0\\1&0&1&0&0&0&0&0\\1&1&0&0&0&0&0&0\\\end{pmatrix}}}
リード・マラー符号 R (r , m ) は次の特性をもつ。
m 番目までの v i がとりうる全ての楔積の集合は、
F
2
n
{\displaystyle \mathbb {F} _{2}^{n}}
の基底である。
ランクは次の通り[ 2] 。
∑
s
=
0
r
(
m
s
)
{\displaystyle \textstyle \sum _{s=0}^{r}{m \choose s}}
R (r , m ) = R (r , m − 1) | R (r − 1, m − 1) ここで、'|' は2つの符号の bar product を表している。
最小距離 は 2m − r である。