通信や記録で起きる誤りを見つけて直すための「符号」について、符号語を重み(0 でない成分の個数)ごとに数えた表がどんな性質をもつかを調べます。ある符号の表から、その双対符号の表が計算だけで決まる、という驚くほど便利な関係を証明します。後半では、その関係を使って、23 ビットの語のうち 12 ビット分を情報にでき、しかも 3 か所までの誤りを必ず直せる Golay 符号の表を完全に求めます。
符号 C C C の重みごとの符号語の個数 A i A_i A i を係数に並べた斉次多項式 W C ( x , y ) = ∑ i A i x n − i y i W_C(x, y) = \sum_i A_i x^{n-i}y^i W C ( x , y ) = ∑ i A i x n − i y i を重み多項式 といいます。MacWilliams 恒等式 W C ⊥ ( x , y ) = ∣ C ∣ − 1 W C ( x + ( q − 1 ) y , x − y ) W_{C^{\perp}}(x, y) = |C|^{-1}W_C(x + (q-1)y,\ x - y) W C ⊥ ( x , y ) = ∣ C ∣ − 1 W C ( x + ( q − 1 ) y , x − y ) は、C C C の重み分布だけから双対符号 の重み分布が決まることを述べます。
証明は、F q n \mathbb{F}_q^n F q n の上の離散 Fourier 変換についての Poisson 和公式 ∑ u ∈ C ⊥ f ( u ) = ∣ C ∣ − 1 ∑ c ∈ C f ^ ( c ) \sum_{u \in C^{\perp}} f(u) = |C|^{-1}\sum_{c \in C}\hat f(c) ∑ u ∈ C ⊥ f ( u ) = ∣ C ∣ − 1 ∑ c ∈ C f ^ ( c ) に、f ( v ) = x n − wt ( v ) y wt ( v ) f(v) = x^{n - \operatorname{wt}(v)}y^{\operatorname{wt}(v)} f ( v ) = x n − wt ( v ) y wt ( v ) を代入するだけです。f ^ \hat f f ^ は座標ごとの積に分かれて計算できます。
MDS 符号 の重み分布は n , k , q n, k, q n , k , q だけで決まります(包除原理)。Hamming 符号 の重み多項式は、双対の単体符号 から MacWilliams 恒等式で求まります。
二元 Golay 符号 G 23 G_{23} G 23 は x 23 − 1 x^{23} - 1 x 23 − 1 の 11 次の既約因子が生成する巡回符号 で、[ 23 , 12 , 7 ] 2 [23, 12, 7]_2 [ 23 , 12 , 7 ] 2 の完全符号 (符号語を中心とする同じ半径の球で、空間を重なりも隙間もなく埋める符号)です。パリティ拡大 した G 24 G_{24} G 24 は [ 24 , 12 , 8 ] 2 [24, 12, 8]_2 [ 24 , 12 , 8 ] 2 の自己双対な重偶符号で、重み多項式は 1 + 759 y 8 + 2576 y 12 + 759 y 16 + y 24 1 + 759y^8 + 2576y^{12} + 759y^{16} + y^{24} 1 + 759 y 8 + 2576 y 12 + 759 y 16 + y 24 です。
三元 Golay 符号 G 11 G_{11} G 11 は [ 11 , 6 , 5 ] 3 [11, 6, 5]_3 [ 11 , 6 , 5 ] 3 の完全符号、G 12 G_{12} G 12 は [ 12 , 6 , 6 ] 3 [12, 6, 6]_3 [ 12 , 6 , 6 ] 3 の自己双対符号です。
符号が完全であることは、被覆半径(どの語も、どれかの符号語から距離いくつ以内にあるかの最小値)が ⌊ ( d − 1 ) / 2 ⌋ \lfloor (d-1)/2 \rfloor ⌊( d − 1 ) /2 ⌋ に等しいことと同値です。距離分布の Krawtchouk 変換は非負で(Delsarte の不等式)、これは線形でない符号にも使える限界式の出発点になります。
この記事で使う事前知識
符号と最小距離 : 符号語どうしの距離(異なる成分の個数)の最小値が最小距離で、これが大きいほど多くの誤りを直せる。→ 符号
双対符号 : 符号 C C C のすべての語と直交する語の全体。→ 双対符号
巡回符号 : 符号語を巡回的にずらしても符号語になる符号。多項式 x n − 1 x^n - 1 x n − 1 の約数で作る。→ 巡回符号
平方剰余 : 素数 p p p を法として、ある整数の 2 乗と合同な数。→ 平方剰余
完全符号 : 半径 t t t の球が重ならずに空間全体を覆う符号。→ 完全符号
第 3 章 では符号の性能を最小距離 d d d という 1 つの数で測りました。しかし、誤りを見逃す確率や復号を誤る確率を計算するには、「重み i i i の符号語が何個あるか」という分布全体が必要です。たとえば二元対称通信路(誤り率 p p p )で誤りが検出されないのは、誤りパターンがちょうど 0 0 0 でない符号語に一致するときで、その確率は ∑ i ≥ 1 A i p i ( 1 − p ) n − i \sum_{i \ge 1} A_i p^i(1-p)^{n-i} ∑ i ≥ 1 A i p i ( 1 − p ) n − i です。
重み分布を符号語の列挙で求めるには q k q^k q k 個の語を調べる必要があります。ところが MacWilliams(1963)は、C C C の重み分布と C ⊥ C^{\perp} C ⊥ の重み分布が、符号の詳細によらない 1 つの線形変換で結ばれていることを発見しました。次元の大きい符号の重み分布を、次元の小さい双対符号から計算できるわけです。さらに、C = C ⊥ C = C^{\perp} C = C ⊥ となる自己双対符号では、この恒等式が重み多項式に強い制約を課します。
その制約がもっとも劇的に効くのが Golay 符号 です。Golay(1949)は、1 + ( 23 1 ) + ( 23 2 ) + ( 23 3 ) = 2 11 1 + \binom{23}{1} + \binom{23}{2} + \binom{23}{3} = 2^{11} 1 + ( 1 23 ) + ( 2 23 ) + ( 3 23 ) = 2 11 という数の一致に気づき、半径 3 3 3 の球で F 2 23 \mathbb{F}_2^{23} F 2 23 を隙間なく埋める符号を見つけました。この章では、第 4 章 の巡回符号の理論でこの符号を構成し、最小距離を決め、MacWilliams 恒等式で重み分布を完全に求めます。
この章が前の章のどの定理に乗っているかを先にまとめます。
この章の定理 使う前の章の定理 加法指標(補題 2.3 ) 第 2 章のトレースの線形性・全射性、トレース形式の非退化性 MacWilliams 恒等式(定理 3.3 ) 第 3 章の ( C ⊥ ) ⊥ = C (C^{\perp})^{\perp} = C ( C ⊥ ) ⊥ = C と dim C ⊥ = n − k \dim C^{\perp} = n - k dim C ⊥ = n − k MDS 符号の重み分布(定理 4.1 ) 第 4 章の MDS 符号の特徴づけ Golay 符号(定理 5.7 、定理 5.11 ) 第 2 章の x n − 1 x^n - 1 x n − 1 の分解、第 4 章の BCH 限界と双対符号の定義集合、第 3 章の Hamming 限界
定義 2.1 (有限アーベル群の指標と双対群 ) ↗
有限アーベル群 A A A (演算を加法で書く)の指標 とは、A A A から乗法群 C × \mathbb{C}^{\times} C × への群準同型 χ \chi χ 、すなわち χ ( a + b ) = χ ( a ) χ ( b ) \chi(a + b) = \chi(a)\chi(b) χ ( a + b ) = χ ( a ) χ ( b ) を満たす写像 χ : A → C × \chi : A \to \mathbb{C}^{\times} χ : A → C × をいう。指標の全体は、値ごとの積で群をなす。これを A A A の双対群 といい A ^ \widehat{A} A と書く。つねに 1 1 1 を取る指標を自明な指標 という。
∣ A ∣ = N |A| = N ∣ A ∣ = N とすると χ ( a ) N = χ ( N a ) = χ ( 0 ) = 1 \chi(a)^{N} = \chi(Na) = \chi(0) = 1 χ ( a ) N = χ ( N a ) = χ ( 0 ) = 1 なので、指標の値は 1 1 1 の N N N 乗根で、絶対値は 1 1 1 、χ ( a ) ‾ = χ ( a ) − 1 = χ ( − a ) \overline{\chi(a)} = \chi(a)^{-1} = \chi(-a) χ ( a ) = χ ( a ) − 1 = χ ( − a ) です。
F q \mathbb{F}_q F q の標数を p p p とし、Tr = Tr F q / F p : F q → F p \operatorname{Tr} = \operatorname{Tr}_{\mathbb{F}_q/\mathbb{F}_p} : \mathbb{F}_q \to \mathbb{F}_p Tr = Tr F q / F p : F q → F p を第 2 章のトレースとします。F p = Z / p Z \mathbb{F}_p = \mathbb{Z}/p\mathbb{Z} F p = Z / p Z の元 t t t に対して e 2 π i t / p e^{2\pi i t/p} e 2 π i t / p は代表元の取り方によらずに定まります。
定義 2.2 (F q F_q F q の加法指標 ) ↗
a ∈ F q a \in \mathbb{F}_q a ∈ F q に対し
ψ a ( x ) = exp ( 2 π i p Tr ( a x ) ) ( x ∈ F q ) \psi_a(x) = \exp\!\Bigl(\frac{2\pi i}{p}\operatorname{Tr}(ax)\Bigr) \qquad (x \in \mathbb{F}_q) ψ a ( x ) = exp ( p 2 π i Tr ( a x ) ) ( x ∈ F q ) と定める。ψ = ψ 1 \psi = \psi_1 ψ = ψ 1 を F q \mathbb{F}_q F q の標準的な加法指標 という。ψ a ( x ) = ψ ( a x ) \psi_a(x) = \psi(ax) ψ a ( x ) = ψ ( a x ) である。
補題 2.3 (加法指標の分類と直交関係 ) ✓
各 ψ a \psi_a ψ a は加法群 ( F q , + ) (\mathbb{F}_q, +) ( F q , + ) の指標である。
a ∈ F q a \in \mathbb{F}_q a ∈ F q について
∑ x ∈ F q ψ ( a x ) = { q ( a = 0 ) 0 ( a ≠ 0 ) \sum_{x \in \mathbb{F}_q}\psi(ax) = \begin{cases} q & (a = 0) \\ 0 & (a \ne 0) \end{cases} x ∈ F q ∑ ψ ( a x ) = { q 0 ( a = 0 ) ( a = 0 )
が成り立つ。とくに a ≠ 0 a \ne 0 a = 0 なら ∑ x ≠ 0 ψ ( a x ) = − 1 \sum_{x \ne 0}\psi(ax) = -1 ∑ x = 0 ψ ( a x ) = − 1 。
a ↦ ψ a a \mapsto \psi_a a ↦ ψ a は単射で、( F q , + ) (\mathbb{F}_q, +) ( F q , + ) の指標は ψ a \psi_a ψ a (a ∈ F q a \in \mathbb{F}_q a ∈ F q )の q q q 個で尽くされる。
証明(補題 2.3) (1) トレースは加法的なので(定理 4.2[有限体上の多項式] )Tr ( a ( x + y ) ) = Tr ( a x ) + Tr ( a y ) \operatorname{Tr}(a(x+y)) = \operatorname{Tr}(ax) + \operatorname{Tr}(ay) Tr ( a ( x + y )) = Tr ( a x ) + Tr ( a y ) で、指数関数の性質から ψ a ( x + y ) = ψ a ( x ) ψ a ( y ) \psi_a(x + y) = \psi_a(x)\psi_a(y) ψ a ( x + y ) = ψ a ( x ) ψ a ( y ) です。
(2) a = 0 a = 0 a = 0 なら各項が 1 1 1 です。a ≠ 0 a \ne 0 a = 0 とします。トレース形式 ( x , y ) ↦ Tr ( x y ) (x, y) \mapsto \operatorname{Tr}(xy) ( x , y ) ↦ Tr ( x y ) は非退化なので(命題 4.5[有限体上の多項式] )、Tr ( a y 0 ) ≠ 0 \operatorname{Tr}(ay_0) \ne 0 Tr ( a y 0 ) = 0 となる y 0 ∈ F q y_0 \in \mathbb{F}_q y 0 ∈ F q があり、ψ ( a y 0 ) ≠ 1 \psi(ay_0) \ne 1 ψ ( a y 0 ) = 1 です。x ↦ x + y 0 x \mapsto x + y_0 x ↦ x + y 0 は F q \mathbb{F}_q F q の全単射なので
∑ x ψ ( a x ) = ∑ x ψ ( a ( x + y 0 ) ) = ψ ( a y 0 ) ∑ x ψ ( a x ) \sum_{x}\psi(ax) = \sum_{x}\psi(a(x + y_0)) = \psi(ay_0)\sum_{x}\psi(ax) x ∑ ψ ( a x ) = x ∑ ψ ( a ( x + y 0 )) = ψ ( a y 0 ) x ∑ ψ ( a x ) で、( 1 − ψ ( a y 0 ) ) ∑ x ψ ( a x ) = 0 (1 - \psi(ay_0))\sum_x\psi(ax) = 0 ( 1 − ψ ( a y 0 )) ∑ x ψ ( a x ) = 0 から和は 0 0 0 です。x = 0 x = 0 x = 0 の項 1 1 1 を除けば − 1 -1 − 1 です。
(3) ψ a = ψ b \psi_a = \psi_b ψ a = ψ b なら ψ a − b ( x ) = ψ a ( x ) ψ b ( x ) ‾ = 1 \psi_{a-b}(x) = \psi_a(x)\overline{\psi_b(x)} = 1 ψ a − b ( x ) = ψ a ( x ) ψ b ( x ) = 1 がすべての x x x で成り立ち、(2) の和が q ≠ 0 q \ne 0 q = 0 になるので a = b a = b a = b です。よって ψ a \psi_a ψ a は相異なる q q q 個の指標です。
指標が q q q 個以下であることを示します。χ ≠ χ ′ \chi \ne \chi' χ = χ ′ を ( F q , + ) (\mathbb{F}_q, +) ( F q , + ) の指標とすると、θ = χ χ ′ ‾ \theta = \chi\overline{\chi'} θ = χ χ ′ は自明でない指標で、θ ( y 0 ) ≠ 1 \theta(y_0) \ne 1 θ ( y 0 ) = 1 となる y 0 y_0 y 0 を取って (2) と同じ計算をすると ∑ x χ ( x ) χ ′ ( x ) ‾ = 0 \sum_x\chi(x)\overline{\chi'(x)} = 0 ∑ x χ ( x ) χ ′ ( x ) = 0 です。また ∑ x χ ( x ) χ ( x ) ‾ = q \sum_x\chi(x)\overline{\chi(x)} = q ∑ x χ ( x ) χ ( x ) = q です。相異なる指標 χ 1 , … , χ r \chi_1, \ldots, \chi_r χ 1 , … , χ r が ∑ j λ j χ j = 0 \sum_j\lambda_j\chi_j = 0 ∑ j λ j χ j = 0 (λ j ∈ C \lambda_j \in \mathbb{C} λ j ∈ C )を満たせば、χ l ( x ) ‾ \overline{\chi_l(x)} χ l ( x ) を掛けて x x x について和を取ると q λ l = 0 q\lambda_l = 0 q λ l = 0 なので、指標は F q \mathbb{F}_q F q 上の複素数値関数の空間(q q q 次元)の中で一次独立です。したがって r ≤ q r \le q r ≤ q です。
∎
一般の有限アーベル群でも ∣ A ^ ∣ = ∣ A ∣ |\widehat{A}| = |A| ∣ A ∣ = ∣ A ∣ が成り立ち(補題 5.3[S 単数と Kummer 理論] がその形です)、指標の直交関係は 有限群の表現 の一般論の特別な場合です。有限体では、トレース形式のおかげで双対群 F q ^ \widehat{\mathbb{F}_q} F q が F q \mathbb{F}_q F q 自身と a ↔ ψ a a \leftrightarrow \psi_a a ↔ ψ a で同一視できる点が重要です。
u , v ∈ F q n u, v \in \mathbb{F}_q^n u , v ∈ F q n に対し u ⋅ v = ∑ i u i v i u \cdot v = \sum_i u_iv_i u ⋅ v = ∑ i u i v i とします。v ↦ ψ ( u ⋅ v ) v \mapsto \psi(u \cdot v) v ↦ ψ ( u ⋅ v ) は F q n \mathbb{F}_q^n F q n の指標です。
補題 2.4 (部分空間の上の指標和 ) ✓
C ⊆ F q n C \subseteq \mathbb{F}_q^n C ⊆ F q n を部分空間、u ∈ F q n u \in \mathbb{F}_q^n u ∈ F q n とすると
∑ c ∈ C ψ ( c ⋅ u ) = { ∣ C ∣ ( u ∈ C ⊥ ) 0 ( u ∉ C ⊥ ) \sum_{c \in C}\psi(c \cdot u) = \begin{cases} |C| & (u \in C^{\perp}) \\ 0 & (u \notin C^{\perp}) \end{cases} c ∈ C ∑ ψ ( c ⋅ u ) = { ∣ C ∣ 0 ( u ∈ C ⊥ ) ( u ∈ / C ⊥ ) が成り立つ。
証明(補題 2.4) u ∈ C ⊥ u \in C^{\perp} u ∈ C ⊥ なら各項が ψ ( 0 ) = 1 \psi(0) = 1 ψ ( 0 ) = 1 です。u ∉ C ⊥ u \notin C^{\perp} u ∈ / C ⊥ とすると、c 1 ⋅ u = β ≠ 0 c_1 \cdot u = \beta \ne 0 c 1 ⋅ u = β = 0 となる c 1 ∈ C c_1 \in C c 1 ∈ C があります。補題 2.3 の 2 の証明で見たとおり ψ ( β y 0 ) ≠ 1 \psi(\beta y_0) \ne 1 ψ ( β y 0 ) = 1 となる y 0 ∈ F q y_0 \in \mathbb{F}_q y 0 ∈ F q があるので、c 0 = y 0 c 1 ∈ C c_0 = y_0c_1 \in C c 0 = y 0 c 1 ∈ C とおくと ψ ( c 0 ⋅ u ) = ψ ( y 0 β ) ≠ 1 \psi(c_0 \cdot u) = \psi(y_0\beta) \ne 1 ψ ( c 0 ⋅ u ) = ψ ( y 0 β ) = 1 です。c ↦ c + c 0 c \mapsto c + c_0 c ↦ c + c 0 は C C C の全単射なので
∑ c ∈ C ψ ( c ⋅ u ) = ∑ c ∈ C ψ ( ( c + c 0 ) ⋅ u ) = ψ ( c 0 ⋅ u ) ∑ c ∈ C ψ ( c ⋅ u ) \sum_{c \in C}\psi(c \cdot u) = \sum_{c \in C}\psi((c + c_0)\cdot u) = \psi(c_0 \cdot u)\sum_{c \in C}\psi(c \cdot u) c ∈ C ∑ ψ ( c ⋅ u ) = c ∈ C ∑ ψ (( c + c 0 ) ⋅ u ) = ψ ( c 0 ⋅ u ) c ∈ C ∑ ψ ( c ⋅ u ) となり、和は 0 0 0 です。
∎
定義 2.5 (F q n F_q^n F q n の上の離散 Fourier 変換 ) ↗
V V V を複素ベクトル空間とする。関数 f : F q n → V f : \mathbb{F}_q^n \to V f : F q n → V の離散 Fourier 変換 (q = 2 q = 2 q = 2 のときは Hadamard 変換 という)f ^ : F q n → V \hat f : \mathbb{F}_q^n \to V f ^ : F q n → V を
f ^ ( u ) = ∑ v ∈ F q n ψ ( u ⋅ v ) f ( v ) \hat f(u) = \sum_{v \in \mathbb{F}_q^n}\psi(u \cdot v)\,f(v) f ^ ( u ) = v ∈ F q n ∑ ψ ( u ⋅ v ) f ( v ) で定める。
命題 2.6 (離散版の Poisson 和公式 ) ✓
C ⊆ F q n C \subseteq \mathbb{F}_q^n C ⊆ F q n を部分空間、f : F q n → V f : \mathbb{F}_q^n \to V f : F q n → V を複素ベクトル空間 V V V に値をもつ関数とすると
∑ u ∈ C ⊥ f ( u ) = 1 ∣ C ∣ ∑ c ∈ C f ^ ( c ) \sum_{u \in C^{\perp}} f(u) = \frac{1}{|C|}\sum_{c \in C}\hat f(c) u ∈ C ⊥ ∑ f ( u ) = ∣ C ∣ 1 c ∈ C ∑ f ^ ( c ) が成り立つ。
証明(命題 2.6) 有限和の順序を交換し、補題 2.4 を使います。
∑ c ∈ C f ^ ( c ) = ∑ c ∈ C ∑ v ∈ F q n ψ ( c ⋅ v ) f ( v ) = ∑ v ∈ F q n f ( v ) ∑ c ∈ C ψ ( c ⋅ v ) = ∣ C ∣ ∑ v ∈ C ⊥ f ( v ) . \sum_{c \in C}\hat f(c) = \sum_{c \in C}\sum_{v \in \mathbb{F}_q^n}\psi(c \cdot v)f(v) = \sum_{v \in \mathbb{F}_q^n}f(v)\sum_{c \in C}\psi(c \cdot v) = |C|\sum_{v \in C^{\perp}}f(v). c ∈ C ∑ f ^ ( c ) = c ∈ C ∑ v ∈ F q n ∑ ψ ( c ⋅ v ) f ( v ) = v ∈ F q n ∑ f ( v ) c ∈ C ∑ ψ ( c ⋅ v ) = ∣ C ∣ v ∈ C ⊥ ∑ f ( v ) . ∎
実数直線の Poisson 和公式 ∑ n ∈ Z f ( n ) = ∑ m ∈ Z f ^ ( m ) \sum_{n \in \mathbb{Z}}f(n) = \sum_{m \in \mathbb{Z}}\hat f(m) ∑ n ∈ Z f ( n ) = ∑ m ∈ Z f ^ ( m ) (定理 6.1[ℝⁿ 上のフーリエ変換] )と見比べてください。格子 Z \mathbb{Z} Z の役割を部分空間 C C C が、双対格子の役割を C ⊥ C^{\perp} C ⊥ が果たしています。有限の場合は収束の問題がなく、証明は和の交換だけです。
定義 3.1 (重み分布と重み多項式 ) ↗
符号 C ⊆ F q n C \subseteq \mathbb{F}_q^n C ⊆ F q n に対し、A i = # { c ∈ C : wt ( c ) = i } A_i = \#\{ c \in C : \operatorname{wt}(c) = i \} A i = # { c ∈ C : wt ( c ) = i } (0 ≤ i ≤ n 0 \le i \le n 0 ≤ i ≤ n )とおく。列 ( A 0 , A 1 , … , A n ) (A_0, A_1, \ldots, A_n) ( A 0 , A 1 , … , A n ) を C C C の重み分布 、
W C ( x , y ) = ∑ c ∈ C x n − wt ( c ) y wt ( c ) = ∑ i = 0 n A i x n − i y i W_C(x, y) = \sum_{c \in C}x^{n - \operatorname{wt}(c)}y^{\operatorname{wt}(c)} = \sum_{i=0}^{n}A_i\,x^{n-i}y^i W C ( x , y ) = c ∈ C ∑ x n − wt ( c ) y wt ( c ) = i = 0 ∑ n A i x n − i y i を C C C の重み多項式 という。
線形符号では A 0 = 1 A_0 = 1 A 0 = 1 、A i = 0 A_i = 0 A i = 0 (1 ≤ i < d 1 \le i < d 1 ≤ i < d )、W C ( 1 , 1 ) = ∣ C ∣ W_C(1, 1) = |C| W C ( 1 , 1 ) = ∣ C ∣ です。x = 1 x = 1 x = 1 とおいた W C ( 1 , y ) = ∑ i A i y i W_C(1, y) = \sum_iA_iy^i W C ( 1 , y ) = ∑ i A i y i を使うこともあります。
次の補題は、MacWilliams 恒等式の証明に必要な計算を先に済ませておくものです。重みは座標ごとの 0 か 0 でないかで決まり、指標 ψ ( u ⋅ v ) \psi(u \cdot v) ψ ( u ⋅ v ) も座標ごとの積なので、全体の和が座標ごとの和の積に分かれます。たとえば n = 2 n = 2 n = 2 なら ∑ a , b F ( a ) G ( b ) = ( ∑ a F ( a ) ) ( ∑ b G ( b ) ) \sum_{a, b}F(a)G(b) = \bigl(\sum_aF(a)\bigr)\bigl(\sum_bG(b)\bigr) ∑ a , b F ( a ) G ( b ) = ( ∑ a F ( a ) ) ( ∑ b G ( b ) ) という、展開の逆向きの変形を n n n 個の座標に使うだけです。
証明(補題 3.2) a ∈ F q a \in \mathbb{F}_q a ∈ F q に対し、ϕ ( a ) = x \phi(a) = x ϕ ( a ) = x (a = 0 a = 0 a = 0 )、ϕ ( a ) = y \phi(a) = y ϕ ( a ) = y (a ≠ 0 a \ne 0 a = 0 )とおくと、x n − wt ( u ) y wt ( u ) = ∏ i = 1 n ϕ ( u i ) x^{n - \operatorname{wt}(u)}y^{\operatorname{wt}(u)} = \prod_{i=1}^{n}\phi(u_i) x n − wt ( u ) y wt ( u ) = ∏ i = 1 n ϕ ( u i ) です。ψ ( u ⋅ v ) = ∏ i ψ ( u i v i ) \psi(u \cdot v) = \prod_i\psi(u_iv_i) ψ ( u ⋅ v ) = ∏ i ψ ( u i v i ) なので、左辺は座標ごとの和の積に分かれます。
∑ u ∈ F q n ∏ i = 1 n ψ ( u i v i ) ϕ ( u i ) = ∏ i = 1 n ( ∑ a ∈ F q ψ ( a v i ) ϕ ( a ) ) . \sum_{u \in \mathbb{F}_q^n}\prod_{i=1}^n\psi(u_iv_i)\phi(u_i) = \prod_{i=1}^{n}\Bigl(\sum_{a \in \mathbb{F}_q}\psi(av_i)\phi(a)\Bigr). u ∈ F q n ∑ i = 1 ∏ n ψ ( u i v i ) ϕ ( u i ) = i = 1 ∏ n ( a ∈ F q ∑ ψ ( a v i ) ϕ ( a ) ) . 各因子は、v i = 0 v_i = 0 v i = 0 なら ∑ a ϕ ( a ) = x + ( q − 1 ) y \sum_a\phi(a) = x + (q-1)y ∑ a ϕ ( a ) = x + ( q − 1 ) y 、v i ≠ 0 v_i \ne 0 v i = 0 なら x + y ∑ a ≠ 0 ψ ( a v i ) = x − y x + y\sum_{a \ne 0}\psi(av_i) = x - y x + y ∑ a = 0 ψ ( a v i ) = x − y (補題 2.3 の 2)です。v i ≠ 0 v_i \ne 0 v i = 0 となる i i i は wt ( v ) \operatorname{wt}(v) wt ( v ) 個です。
∎
定理 3.3 (MacWilliams 恒等式 ) ✓
線形符号 C ⊆ F q n C \subseteq \mathbb{F}_q^n C ⊆ F q n について
W C ⊥ ( x , y ) = 1 ∣ C ∣ W C ( x + ( q − 1 ) y , x − y ) W_{C^{\perp}}(x, y) = \frac{1}{|C|}\,W_C\bigl(x + (q-1)y,\ x - y\bigr) W C ⊥ ( x , y ) = ∣ C ∣ 1 W C ( x + ( q − 1 ) y , x − y ) が成り立つ。
証明(定理 3.3) f : F q n → C [ x , y ] f : \mathbb{F}_q^n \to \mathbb{C}[x, y] f : F q n → C [ x , y ] を f ( v ) = x n − wt ( v ) y wt ( v ) f(v) = x^{n - \operatorname{wt}(v)}y^{\operatorname{wt}(v)} f ( v ) = x n − wt ( v ) y wt ( v ) とします。補題 3.2 は
f ^ ( u ) = ( x + ( q − 1 ) y ) n − wt ( u ) ( x − y ) wt ( u ) \hat f(u) = \bigl(x + (q-1)y\bigr)^{n - \operatorname{wt}(u)}(x - y)^{\operatorname{wt}(u)} f ^ ( u ) = ( x + ( q − 1 ) y ) n − wt ( u ) ( x − y ) wt ( u ) を述べています(補題の u u u と v v v の役割を入れ替えたもの)。Poisson 和公式(命題 2.6 )の左辺は ∑ u ∈ C ⊥ f ( u ) = W C ⊥ ( x , y ) \sum_{u \in C^{\perp}}f(u) = W_{C^{\perp}}(x, y) ∑ u ∈ C ⊥ f ( u ) = W C ⊥ ( x , y ) 、右辺は
1 ∣ C ∣ ∑ c ∈ C ( x + ( q − 1 ) y ) n − wt ( c ) ( x − y ) wt ( c ) = 1 ∣ C ∣ W C ( x + ( q − 1 ) y , x − y ) \frac{1}{|C|}\sum_{c \in C}\bigl(x + (q-1)y\bigr)^{n - \operatorname{wt}(c)}(x - y)^{\operatorname{wt}(c)} = \frac{1}{|C|}W_C\bigl(x + (q-1)y,\ x - y\bigr) ∣ C ∣ 1 c ∈ C ∑ ( x + ( q − 1 ) y ) n − wt ( c ) ( x − y ) wt ( c ) = ∣ C ∣ 1 W C ( x + ( q − 1 ) y , x − y ) です。
∎
恒等式を係数で書くために、次の多項式を導入します。
定義 3.4 (Krawtchouk 多項式 ) ↗
n ≥ 1 n \ge 1 n ≥ 1 、q ≥ 2 q \ge 2 q ≥ 2 を固定する。0 ≤ k ≤ n 0 \le k \le n 0 ≤ k ≤ n に対し、Krawtchouk 多項式 K k K_k K k を
K k ( i ) = ∑ j = 0 k ( − 1 ) j ( q − 1 ) k − j ( i j ) ( n − i k − j ) ( 0 ≤ i ≤ n ) K_k(i) = \sum_{j=0}^{k}(-1)^j(q-1)^{k-j}\binom{i}{j}\binom{n-i}{k-j} \qquad (0 \le i \le n) K k ( i ) = j = 0 ∑ k ( − 1 ) j ( q − 1 ) k − j ( j i ) ( k − j n − i ) ( 0 ≤ i ≤ n ) で定める(( a b ) \binom{a}{b} ( b a ) は b > a b > a b > a のとき 0 0 0 )。
系 3.5 (MacWilliams 恒等式の係数表示 ) ✓
線形符号 C ⊆ F q n C \subseteq \mathbb{F}_q^n C ⊆ F q n の重み分布を ( A i ) (A_i) ( A i ) 、C ⊥ C^{\perp} C ⊥ の重み分布を ( A k ⊥ ) (A_k^{\perp}) ( A k ⊥ ) とすると
A k ⊥ = 1 ∣ C ∣ ∑ i = 0 n A i K k ( i ) ( 0 ≤ k ≤ n ) A_k^{\perp} = \frac{1}{|C|}\sum_{i=0}^{n}A_i\,K_k(i) \qquad (0 \le k \le n) A k ⊥ = ∣ C ∣ 1 i = 0 ∑ n A i K k ( i ) ( 0 ≤ k ≤ n ) が成り立つ。また、v ∈ F q n v \in \mathbb{F}_q^n v ∈ F q n に対し ∑ u : wt ( u ) = k ψ ( u ⋅ v ) = K k ( wt ( v ) ) \sum_{u :\, \operatorname{wt}(u) = k}\psi(u \cdot v) = K_k(\operatorname{wt}(v)) ∑ u : wt ( u ) = k ψ ( u ⋅ v ) = K k ( wt ( v )) である。
証明(系 3.5) 二項定理(定理 7.3[数え上げと母関数] )で展開すると
( x + ( q − 1 ) y ) n − i ( x − y ) i = ∑ l ( n − i l ) ( q − 1 ) l x n − i − l y l ⋅ ∑ j ( i j ) ( − 1 ) j x i − j y j \bigl(x + (q-1)y\bigr)^{n-i}(x - y)^{i} = \sum_{l}\binom{n-i}{l}(q-1)^{l}x^{n-i-l}y^{l}\cdot\sum_{j}\binom{i}{j}(-1)^jx^{i-j}y^{j} ( x + ( q − 1 ) y ) n − i ( x − y ) i = l ∑ ( l n − i ) ( q − 1 ) l x n − i − l y l ⋅ j ∑ ( j i ) ( − 1 ) j x i − j y j で、x n − k y k x^{n-k}y^{k} x n − k y k の係数は l + j = k l + j = k l + j = k となる項の和 ∑ j ( − 1 ) j ( q − 1 ) k − j ( i j ) ( n − i k − j ) = K k ( i ) \sum_j(-1)^j(q-1)^{k-j}\binom{i}{j}\binom{n-i}{k-j} = K_k(i) ∑ j ( − 1 ) j ( q − 1 ) k − j ( j i ) ( k − j n − i ) = K k ( i ) です。定理 3.3 の両辺の x n − k y k x^{n-k}y^k x n − k y k の係数を比べると第 1 の式が、補題 3.2 の両辺の x n − k y k x^{n-k}y^k x n − k y k の係数を比べると第 2 の式が得られます。
∎
K 0 ( i ) = 1 K_0(i) = 1 K 0 ( i ) = 1 、K 1 ( i ) = ( q − 1 ) ( n − i ) − i = ( q − 1 ) n − q i K_1(i) = (q-1)(n - i) - i = (q-1)n - qi K 1 ( i ) = ( q − 1 ) ( n − i ) − i = ( q − 1 ) n − q i です。k = 0 k = 0 k = 0 の式は 1 = ∣ C ∣ − 1 ∑ i A i 1 = |C|^{-1}\sum_iA_i 1 = ∣ C ∣ − 1 ∑ i A i 、つまり符号語の総数の勘定です。
例 3.6 ([7, 4] Hamming 符号と双対を両側から確かめる )
二元 [ 7 , 4 , 3 ] [7, 4, 3] [ 7 , 4 , 3 ] Hamming 符号 C C C の双対は [ 7 , 3 , 4 ] [7, 3, 4] [ 7 , 3 , 4 ] 単体符号で、0 0 0 でない 7 語の重みはすべて 4 4 4 です(定理 6.2[線形符号] )。つまり W C ⊥ = x 7 + 7 x 3 y 4 W_{C^{\perp}} = x^7 + 7x^3y^4 W C ⊥ = x 7 + 7 x 3 y 4 です。( C ⊥ ) ⊥ = C (C^{\perp})^{\perp} = C ( C ⊥ ) ⊥ = C なので、恒等式を C ⊥ C^{\perp} C ⊥ に使って
W C = 1 8 [ ( x + y ) 7 + 7 ( x + y ) 3 ( x − y ) 4 ] W_C = \frac{1}{8}\Bigl[(x+y)^7 + 7(x+y)^3(x-y)^4\Bigr] W C = 8 1 [ ( x + y ) 7 + 7 ( x + y ) 3 ( x − y ) 4 ] です。( x + y ) 3 ( x − y ) 4 = ( x 2 − y 2 ) 3 ( x − y ) = x 7 − x 6 y − 3 x 5 y 2 + 3 x 4 y 3 + 3 x 3 y 4 − 3 x 2 y 5 − x y 6 + y 7 (x+y)^3(x-y)^4 = (x^2 - y^2)^3(x - y) = x^7 - x^6y - 3x^5y^2 + 3x^4y^3 + 3x^3y^4 - 3x^2y^5 - xy^6 + y^7 ( x + y ) 3 ( x − y ) 4 = ( x 2 − y 2 ) 3 ( x − y ) = x 7 − x 6 y − 3 x 5 y 2 + 3 x 4 y 3 + 3 x 3 y 4 − 3 x 2 y 5 − x y 6 + y 7 と ( x + y ) 7 (x+y)^7 ( x + y ) 7 の二項展開を足すと、x 6 y x^6y x 6 y 、x 5 y 2 x^5y^2 x 5 y 2 、x 2 y 5 x^2y^5 x 2 y 5 、x y 6 xy^6 x y 6 の係数はそれぞれ 7 − 7 7 - 7 7 − 7 、21 − 21 21 - 21 21 − 21 、21 − 21 21 - 21 21 − 21 、7 − 7 7 - 7 7 − 7 で消え、
W C = 1 8 ( 8 x 7 + 56 x 4 y 3 + 56 x 3 y 4 + 8 y 7 ) = x 7 + 7 x 4 y 3 + 7 x 3 y 4 + y 7 W_C = \frac{1}{8}\bigl(8x^7 + 56x^4y^3 + 56x^3y^4 + 8y^7\bigr) = x^7 + 7x^4y^3 + 7x^3y^4 + y^7 W C = 8 1 ( 8 x 7 + 56 x 4 y 3 + 56 x 3 y 4 + 8 y 7 ) = x 7 + 7 x 4 y 3 + 7 x 3 y 4 + y 7 です。重み 3 3 3 の語が 7 7 7 個、重み 4 4 4 が 7 7 7 個、全 1 1 1 の語が 1 1 1 個で、合計 16 = 2 4 16 = 2^4 16 = 2 4 です。
逆向きも確かめます。W C W_C W C から出発すると、係数表示で A 1 ⊥ = 1 16 ∑ i A i K 1 ( i ) A_1^{\perp} = \frac{1}{16}\sum_iA_iK_1(i) A 1 ⊥ = 16 1 ∑ i A i K 1 ( i ) 、K 1 ( i ) = 7 − 2 i K_1(i) = 7 - 2i K 1 ( i ) = 7 − 2 i なので 1 16 ( 7 + 7 ⋅ 1 + 7 ⋅ ( − 1 ) + ( − 7 ) ) = 0 \frac{1}{16}(7 + 7\cdot 1 + 7\cdot(-1) + (-7)) = 0 16 1 ( 7 + 7 ⋅ 1 + 7 ⋅ ( − 1 ) + ( − 7 )) = 0 で、単体符号に重み 1 1 1 の語がないことと合います。
系 3.7 (Hamming 符号の重み多項式 ) ✓
r ≥ 2 r \ge 2 r ≥ 2 、n = ( q r − 1 ) / ( q − 1 ) n = (q^r - 1)/(q - 1) n = ( q r − 1 ) / ( q − 1 ) とする。[ n , n − r , 3 ] q [n, n-r, 3]_q [ n , n − r , 3 ] q Hamming 符号 C C C の重み多項式は
W C ( x , y ) = 1 q r [ ( x + ( q − 1 ) y ) n + ( q r − 1 ) ( x + ( q − 1 ) y ) n − q r − 1 ( x − y ) q r − 1 ] W_C(x, y) = \frac{1}{q^r}\Bigl[\bigl(x + (q-1)y\bigr)^{n} + (q^r - 1)\bigl(x + (q-1)y\bigr)^{n - q^{r-1}}(x - y)^{q^{r-1}}\Bigr] W C ( x , y ) = q r 1 [ ( x + ( q − 1 ) y ) n + ( q r − 1 ) ( x + ( q − 1 ) y ) n − q r − 1 ( x − y ) q r − 1 ] である。
証明(系 3.7) C ⊥ C^{\perp} C ⊥ は単体符号で、0 0 0 でない q r − 1 q^r - 1 q r − 1 個の符号語の重みはすべて q r − 1 q^{r-1} q r − 1 です(定理 6.2[線形符号] )。よって W C ⊥ = x n + ( q r − 1 ) x n − q r − 1 y q r − 1 W_{C^{\perp}} = x^n + (q^r - 1)x^{n - q^{r-1}}y^{q^{r-1}} W C ⊥ = x n + ( q r − 1 ) x n − q r − 1 y q r − 1 です。( C ⊥ ) ⊥ = C (C^{\perp})^{\perp} = C ( C ⊥ ) ⊥ = C (定理 3.5[線形符号] )なので、定理 3.3 を C ⊥ C^{\perp} C ⊥ (元の個数 q r q^r q r )に使えば主張の式になります。
∎
例 3.8 ([8, 4, 4] 符号の重み多項式は MacWilliams 変換で不変 )
[ 7 , 4 , 3 ] [7, 4, 3] [ 7 , 4 , 3 ] Hamming 符号にパリティ検査ビットを足した [ 8 , 4 , 4 ] [8, 4, 4] [ 8 , 4 , 4 ] 拡大 Hamming 符号 C ^ \widehat{C} C は自己双対です(第 3 章)。重み 3 3 3 の語は重み 4 4 4 に、重み 7 7 7 の語は重み 8 8 8 になるので W C ^ = x 8 + 14 x 4 y 4 + y 8 W_{\widehat C} = x^8 + 14x^4y^4 + y^8 W C = x 8 + 14 x 4 y 4 + y 8 です。自己双対なので、恒等式は W ( x , y ) = 1 16 W ( x + y , x − y ) W(x, y) = \frac{1}{16}W(x + y, x - y) W ( x , y ) = 16 1 W ( x + y , x − y ) という不変性を要求します。確かめると
( x + y ) 8 + ( x − y ) 8 = 2 ( x 8 + 28 x 6 y 2 + 70 x 4 y 4 + 28 x 2 y 6 + y 8 ) , 14 ( x 2 − y 2 ) 4 = 14 ( x 8 − 4 x 6 y 2 + 6 x 4 y 4 − 4 x 2 y 6 + y 8 ) (x+y)^8 + (x-y)^8 = 2\bigl(x^8 + 28x^6y^2 + 70x^4y^4 + 28x^2y^6 + y^8\bigr), \qquad 14(x^2 - y^2)^4 = 14\bigl(x^8 - 4x^6y^2 + 6x^4y^4 - 4x^2y^6 + y^8\bigr) ( x + y ) 8 + ( x − y ) 8 = 2 ( x 8 + 28 x 6 y 2 + 70 x 4 y 4 + 28 x 2 y 6 + y 8 ) , 14 ( x 2 − y 2 ) 4 = 14 ( x 8 − 4 x 6 y 2 + 6 x 4 y 4 − 4 x 2 y 6 + y 8 ) の和は 16 x 8 + 224 x 4 y 4 + 16 y 8 16x^8 + 224x^4y^4 + 16y^8 16 x 8 + 224 x 4 y 4 + 16 y 8 で、16 16 16 で割ると元に戻ります。
MDS 符号では、重み分布が符号の作り方によらず、パラメータだけで決まります。
定理 4.1 (MDS 符号の重み分布 ) ✓
1 ≤ k ≤ n − 1 1 \le k \le n-1 1 ≤ k ≤ n − 1 とし、C C C を [ n , k , d ] q [n, k, d]_q [ n , k , d ] q MDS 符号(d = n − k + 1 d = n - k + 1 d = n − k + 1 )とする。d ≤ w ≤ n d \le w \le n d ≤ w ≤ n に対し
A w = ( n w ) ∑ j = 0 w − d ( − 1 ) j ( w j ) ( q w − d + 1 − j − 1 ) A_w = \binom{n}{w}\sum_{j=0}^{w-d}(-1)^j\binom{w}{j}\bigl(q^{\,w-d+1-j} - 1\bigr) A w = ( w n ) j = 0 ∑ w − d ( − 1 ) j ( j w ) ( q w − d + 1 − j − 1 ) が成り立つ。とくに A d = ( n d ) ( q − 1 ) A_d = \binom{n}{d}(q - 1) A d = ( d n ) ( q − 1 ) 。
証明の方針は次のとおりです。まず、台(0 でない成分の位置の集合)が座標の集合 S S S に含まれる符号語の個数を、MDS の性質から S S S の大きさだけで書きます。次に、台がちょうど S S S になる語の個数を、包除原理で「含まれる」個数から引き算して求めます。
証明(定理 4.1) 座標の集合 S ⊆ { 1 , … , n } S \subseteq \{1, \ldots, n\} S ⊆ { 1 , … , n } に対し、C ( S ) = { c ∈ C : c i = 0 ( i ∉ S ) } C(S) = \{ c \in C : c_i = 0\ (i \notin S) \} C ( S ) = { c ∈ C : c i = 0 ( i ∈ / S )} とおきます。これは C C C の部分空間です。
∣ C ( S ) ∣ |C(S)| ∣ C ( S ) ∣ の計算。 ∣ S ∣ = s |S| = s ∣ S ∣ = s とし、C C C から S S S の外の n − s n - s n − s 個の座標への射影を ρ S : C → F q n − s \rho_S : C \to \mathbb{F}_q^{n-s} ρ S : C → F q n − s とすると、C ( S ) = ker ρ S C(S) = \ker\rho_S C ( S ) = ker ρ S です。生成行列 G G G のどの k k k 列も一次独立です(定理 5.5[巡回符号・BCH 符号・Reed–Solomon 符号] )。n − s ≥ k n - s \ge k n − s ≥ k なら、S S S の外の座標から k k k 個を選ぶと、そこで 0 0 0 になる符号語 u G uG u G は u = 0 u = 0 u = 0 だけなので C ( S ) = { 0 } C(S) = \{0\} C ( S ) = { 0 } です。n − s ≤ k n - s \le k n − s ≤ k なら、S S S の外の n − s n - s n − s 列は一次独立なので ρ S \rho_S ρ S (u ↦ u G u \mapsto uG u ↦ u G を S S S の外に制限した写像)の階数は n − s n - s n − s で、次元定理(定理 7.3[ベクトル空間と線形変換] )から dim C ( S ) = k − ( n − s ) = s − d + 1 \dim C(S) = k - (n - s) = s - d + 1 dim C ( S ) = k − ( n − s ) = s − d + 1 です。まとめると
∣ C ( S ) ∣ = q max ( 0 , ∣ S ∣ − d + 1 ) . |C(S)| = q^{\max(0,\ |S| - d + 1)}. ∣ C ( S ) ∣ = q m a x ( 0 , ∣ S ∣ − d + 1 ) . 台がちょうど S S S の符号語の個数。 ∣ S ∣ = w ≥ d |S| = w \ge d ∣ S ∣ = w ≥ d とします。X = C ( S ) X = C(S) X = C ( S ) 、i ∈ S i \in S i ∈ S に対し X i = { c ∈ C ( S ) : c i = 0 } = C ( S ∖ { i } ) X_i = \{ c \in C(S) : c_i = 0 \} = C(S \setminus \{i\}) X i = { c ∈ C ( S ) : c i = 0 } = C ( S ∖ { i }) とおくと、U ⊆ S U \subseteq S U ⊆ S に対し ⋂ i ∈ U X i = C ( S ∖ U ) \bigcap_{i \in U}X_i = C(S \setminus U) ⋂ i ∈ U X i = C ( S ∖ U ) です。台がちょうど S S S である符号語の集合は X ∖ ⋃ i ∈ S X i X \setminus \bigcup_{i \in S}X_i X ∖ ⋃ i ∈ S X i なので、包除原理(定理 4.1[半順序集合と Möbius 反転] )により、その個数は
∑ U ⊆ S ( − 1 ) ∣ U ∣ ∣ C ( S ∖ U ) ∣ = ∑ j = 0 w ( − 1 ) j ( w j ) q max ( 0 , w − j − d + 1 ) \sum_{U \subseteq S}(-1)^{|U|}\,|C(S \setminus U)| = \sum_{j=0}^{w}(-1)^j\binom{w}{j}q^{\max(0,\ w - j - d + 1)} U ⊆ S ∑ ( − 1 ) ∣ U ∣ ∣ C ( S ∖ U ) ∣ = j = 0 ∑ w ( − 1 ) j ( j w ) q m a x ( 0 , w − j − d + 1 ) です。w ≥ 1 w \ge 1 w ≥ 1 なので ∑ j = 0 w ( − 1 ) j ( w j ) = ( 1 − 1 ) w = 0 \sum_{j=0}^w(-1)^j\binom{w}{j} = (1 - 1)^w = 0 ∑ j = 0 w ( − 1 ) j ( j w ) = ( 1 − 1 ) w = 0 で、各項から 1 1 1 を引いても和は変わりません。j > w − d j > w - d j > w − d の項は q 0 − 1 = 0 q^0 - 1 = 0 q 0 − 1 = 0 になるので、和は ∑ j = 0 w − d ( − 1 ) j ( w j ) ( q w − d + 1 − j − 1 ) \sum_{j=0}^{w-d}(-1)^j\binom{w}{j}(q^{w-d+1-j} - 1) ∑ j = 0 w − d ( − 1 ) j ( j w ) ( q w − d + 1 − j − 1 ) です。
w w w 元集合 S S S は ( n w ) \binom{n}{w} ( w n ) 個あり、上の個数は S S S によらないので、主張の式が得られます。w = d w = d w = d では j = 0 j = 0 j = 0 の項だけで q − 1 q - 1 q − 1 です。
∎
A d = ( n d ) ( q − 1 ) A_d = \binom{n}{d}(q-1) A d = ( d n ) ( q − 1 ) は、「どの d d d 個の座標を選んでも、そこをちょうど台とする符号語が定数倍を除いて 1 つある」ことを意味します。
例 4.2 (F₈ 上の [7, 3, 5] Reed–Solomon 符号の重み分布 )
n = 7 n = 7 n = 7 、k = 3 k = 3 k = 3 、d = 5 d = 5 d = 5 、q = 8 q = 8 q = 8 です。
A 5 = ( 7 5 ) ( 8 − 1 ) = 21 ⋅ 7 = 147 , A 6 = ( 7 6 ) [ ( 8 2 − 1 ) − 6 ( 8 − 1 ) ] = 7 ⋅ 21 = 147 , A 7 = ( 8 3 − 1 ) − 7 ( 8 2 − 1 ) + 21 ( 8 − 1 ) = 511 − 441 + 147 = 217. \begin{aligned}
A_5 &= \binom{7}{5}(8 - 1) = 21 \cdot 7 = 147, \\
A_6 &= \binom{7}{6}\bigl[(8^2 - 1) - 6(8 - 1)\bigr] = 7 \cdot 21 = 147, \\
A_7 &= (8^3 - 1) - 7(8^2 - 1) + 21(8 - 1) = 511 - 441 + 147 = 217.
\end{aligned} A 5 A 6 A 7 = ( 5 7 ) ( 8 − 1 ) = 21 ⋅ 7 = 147 , = ( 6 7 ) [ ( 8 2 − 1 ) − 6 ( 8 − 1 ) ] = 7 ⋅ 21 = 147 , = ( 8 3 − 1 ) − 7 ( 8 2 − 1 ) + 21 ( 8 − 1 ) = 511 − 441 + 147 = 217. 合計は 1 + 147 + 147 + 217 = 512 = 8 3 1 + 147 + 147 + 217 = 512 = 8^3 1 + 147 + 147 + 217 = 512 = 8 3 で、符号語の総数と合います。
定義 5.1 (偶符号・重偶符号 ) ↗
二元符号 C C C は、すべての符号語の重みが偶数のとき偶符号 、すべての符号語の重みが 4 4 4 の倍数のとき重偶符号 という。
二元の語 u , v u, v u , v について、u u u と v v v がともに 1 1 1 である座標の個数を ∣ u ∩ v ∣ |u \cap v| ∣ u ∩ v ∣ と書くと、wt ( u + v ) = wt ( u ) + wt ( v ) − 2 ∣ u ∩ v ∣ \operatorname{wt}(u + v) = \operatorname{wt}(u) + \operatorname{wt}(v) - 2|u \cap v| wt ( u + v ) = wt ( u ) + wt ( v ) − 2∣ u ∩ v ∣ で、u ⋅ v = ∣ u ∩ v ∣ m o d 2 u \cdot v = |u \cap v| \bmod 2 u ⋅ v = ∣ u ∩ v ∣ mod 2 です。とくに u ⋅ u = wt ( u ) m o d 2 u \cdot u = \operatorname{wt}(u) \bmod 2 u ⋅ u = wt ( u ) mod 2 なので、二元の自己直交符号(C ⊆ C ⊥ C \subseteq C^{\perp} C ⊆ C ⊥ )は偶符号です。
補題 5.2 (生成元の重みが 4 の倍数なら重偶 ) ✓
二元符号 C C C が v 1 , … , v k v_1, \ldots, v_k v 1 , … , v k で張られ、すべての i , j i, j i , j について v i ⋅ v j = 0 v_i \cdot v_j = 0 v i ⋅ v j = 0 、すべての i i i について wt ( v i ) ≡ 0 ( m o d 4 ) \operatorname{wt}(v_i) \equiv 0 \pmod 4 wt ( v i ) ≡ 0 ( mod 4 ) ならば、C C C は自己直交な重偶符号である。
証明(補題 5.2) 双線形性から、v i v_i v i の一次結合どうしの ⋅ \cdot ⋅ も 0 0 0 なので C ⊆ C ⊥ C \subseteq C^{\perp} C ⊆ C ⊥ です。C C C の元は v i 1 + ⋯ + v i s v_{i_1} + \cdots + v_{i_s} v i 1 + ⋯ + v i s と書けます。項の数 s s s についての帰納法で重みが 4 4 4 の倍数であることを示します。s = 0 , 1 s = 0, 1 s = 0 , 1 は仮定です。u = v i 1 + ⋯ + v i s − 1 u = v_{i_1} + \cdots + v_{i_{s-1}} u = v i 1 + ⋯ + v i s − 1 の重みが 4 4 4 の倍数だとすると、u ⋅ v i s = 0 u \cdot v_{i_s} = 0 u ⋅ v i s = 0 から ∣ u ∩ v i s ∣ |u \cap v_{i_s}| ∣ u ∩ v i s ∣ は偶数で、
wt ( u + v i s ) = wt ( u ) + wt ( v i s ) − 2 ∣ u ∩ v i s ∣ ≡ 0 ( m o d 4 ) \operatorname{wt}(u + v_{i_s}) = \operatorname{wt}(u) + \operatorname{wt}(v_{i_s}) - 2|u \cap v_{i_s}| \equiv 0 \pmod 4 wt ( u + v i s ) = wt ( u ) + wt ( v i s ) − 2∣ u ∩ v i s ∣ ≡ 0 ( mod 4 ) です。
∎
Golay 符号は、次の系列の最初の例として現れます。p p p を奇素数、q q q を p p p と異なる素数で p p p を法として平方剰余であるもの(定義 3.1[原始根と平方剰余の相互法則] )とします。Q ⊆ ( Z / p Z ) × \mathcal{Q} \subseteq (\mathbb{Z}/p\mathbb{Z})^{\times} Q ⊆ ( Z / p Z ) × を平方剰余の全体、N \mathcal{N} N を平方非剰余の全体とすると、∣ Q ∣ = ∣ N ∣ = ( p − 1 ) / 2 |\mathcal{Q}| = |\mathcal{N}| = (p-1)/2 ∣ Q ∣ = ∣ N ∣ = ( p − 1 ) /2 です。Legendre 記号は乗法的なので(系 3.4[原始根と平方剰余の相互法則] )、Q \mathcal{Q} Q は q q q 倍で閉じています。つまり Q \mathcal{Q} Q と N \mathcal{N} N は p p p を法とする q q q -円分剰余類の合併です。α \alpha α を F q \mathbb{F}_q F q の拡大体の中の 1 の原始 p p p 乗根とします。
定義 5.3 (平方剰余符号 ) ↗
上の設定で、定義集合 Q \mathcal{Q} Q の長さ p p p の F q \mathbb{F}_q F q 上の巡回符号を平方剰余符号 という。次元は p − ∣ Q ∣ = ( p + 1 ) / 2 p - |\mathcal{Q}| = (p+1)/2 p − ∣ Q ∣ = ( p + 1 ) /2 である。
補題 5.4 (平方剰余符号の双対と拡大符号 ) ✓
定義 5.3 の平方剰余符号を Q Q Q とし、p ≡ 3 ( m o d 4 ) p \equiv 3 \pmod 4 p ≡ 3 ( mod 4 ) とする。
Q ⊥ = Q 0 Q^{\perp} = Q_0 Q ⊥ = Q 0 、ただし Q 0 = { c ∈ Q : ∑ i c i = 0 } Q_0 = \{ c \in Q : \sum_ic_i = 0 \} Q 0 = { c ∈ Q : ∑ i c i = 0 } は定義集合 Q ∪ { 0 } \mathcal{Q} \cup \{0\} Q ∪ { 0 } の巡回符号である。とくに Q ⊥ ⊆ Q Q^{\perp} \subseteq Q Q ⊥ ⊆ Q 。
さらに p ≡ − 1 ( m o d q ) p \equiv -1 \pmod q p ≡ − 1 ( mod q ) とする。拡大符号 Q ^ = { ( c 0 , … , c p − 1 , c ∞ ) : c ∈ Q , c ∞ = − ∑ i c i } \widehat{Q} = \{ (c_0, \ldots, c_{p-1}, c_{\infty}) : c \in Q,\ c_{\infty} = -\sum_ic_i \} Q = {( c 0 , … , c p − 1 , c ∞ ) : c ∈ Q , c ∞ = − ∑ i c i } は自己双対な [ p + 1 , ( p + 1 ) / 2 ] q [p+1, (p+1)/2]_q [ p + 1 , ( p + 1 ) /2 ] q 符号である。
証明(補題 5.4) (1) p ≡ 3 ( m o d 4 ) p \equiv 3 \pmod 4 p ≡ 3 ( mod 4 ) なので − 1 -1 − 1 は平方非剰余で(定理 3.3[原始根と平方剰余の相互法則] )、Legendre 記号の乗法性から − N = Q -\mathcal{N} = \mathcal{Q} − N = Q です。Q Q Q の定義集合の補集合は { 0 } ∪ N \{0\} \cup \mathcal{N} { 0 } ∪ N なので、Q ⊥ Q^{\perp} Q ⊥ の定義集合は { 0 } ∪ ( − N ) = { 0 } ∪ Q \{0\} \cup (-\mathcal{N}) = \{0\} \cup \mathcal{Q} { 0 } ∪ ( − N ) = { 0 } ∪ Q です(系 4.3[巡回符号・BCH 符号・Reed–Solomon 符号] )。指数 0 0 0 が零点であることは c ( α 0 ) = c ( 1 ) = ∑ i c i = 0 c(\alpha^0) = c(1) = \sum_ic_i = 0 c ( α 0 ) = c ( 1 ) = ∑ i c i = 0 を意味するので(命題 4.2[巡回符号・BCH 符号・Reed–Solomon 符号] )、Q ⊥ = Q 0 Q^{\perp} = Q_0 Q ⊥ = Q 0 です。
(2) 全成分が 1 1 1 の語 j \boldsymbol{j} j は多項式 1 + x + ⋯ + x p − 1 = ( x p − 1 ) / ( x − 1 ) 1 + x + \cdots + x^{p-1} = (x^p - 1)/(x - 1) 1 + x + ⋯ + x p − 1 = ( x p − 1 ) / ( x − 1 ) に対応し、α i \alpha^i α i (i ≠ 0 i \ne 0 i = 0 )で 0 0 0 なので j ∈ Q \boldsymbol{j} \in Q j ∈ Q です。∑ i j i = p ≡ − 1 ≠ 0 \sum_i\boldsymbol{j}_i = p \equiv -1 \ne 0 ∑ i j i = p ≡ − 1 = 0 (F q \mathbb{F}_q F q の中で)なので j ∉ Q 0 \boldsymbol{j} \notin Q_0 j ∈ / Q 0 で、dim Q 0 = ( p − 1 ) / 2 = dim Q − 1 \dim Q_0 = (p-1)/2 = \dim Q - 1 dim Q 0 = ( p − 1 ) /2 = dim Q − 1 から Q = Q 0 ⊕ ⟨ j ⟩ Q = Q_0 \oplus \langle\boldsymbol{j}\rangle Q = Q 0 ⊕ ⟨ j ⟩ です。よって Q ^ \widehat{Q} Q は、( c , 0 ) (c, 0) ( c , 0 ) (c ∈ Q 0 c \in Q_0 c ∈ Q 0 )と ( j , − p ) = ( j , 1 ) (\boldsymbol{j}, -p) = (\boldsymbol{j}, 1) ( j , − p ) = ( j , 1 ) で張られます。これらの間の ⋅ \cdot ⋅ を計算します。
c , c ′ ∈ Q 0 c, c' \in Q_0 c , c ′ ∈ Q 0 なら ( c , 0 ) ⋅ ( c ′ , 0 ) = c ⋅ c ′ = 0 (c, 0)\cdot(c', 0) = c \cdot c' = 0 ( c , 0 ) ⋅ ( c ′ , 0 ) = c ⋅ c ′ = 0 (c ∈ Q ⊥ c \in Q^{\perp} c ∈ Q ⊥ 、c ′ ∈ Q c' \in Q c ′ ∈ Q だから)。
c ∈ Q 0 c \in Q_0 c ∈ Q 0 なら ( c , 0 ) ⋅ ( j , 1 ) = ∑ i c i = 0 (c, 0)\cdot(\boldsymbol{j}, 1) = \sum_ic_i = 0 ( c , 0 ) ⋅ ( j , 1 ) = ∑ i c i = 0 。
( j , 1 ) ⋅ ( j , 1 ) = p + 1 = 0 (\boldsymbol{j}, 1)\cdot(\boldsymbol{j}, 1) = p + 1 = 0 ( j , 1 ) ⋅ ( j , 1 ) = p + 1 = 0 (p ≡ − 1 ( m o d q ) p \equiv -1 \pmod q p ≡ − 1 ( mod q ) だから)。
よって Q ^ ⊆ Q ^ ⊥ \widehat{Q} \subseteq \widehat{Q}^{\perp} Q ⊆ Q ⊥ です。dim Q ^ = dim Q = ( p + 1 ) / 2 \dim\widehat{Q} = \dim Q = (p+1)/2 dim Q = dim Q = ( p + 1 ) /2 、dim Q ^ ⊥ = ( p + 1 ) − ( p + 1 ) / 2 = ( p + 1 ) / 2 \dim\widehat{Q}^{\perp} = (p + 1) - (p+1)/2 = (p+1)/2 dim Q ⊥ = ( p + 1 ) − ( p + 1 ) /2 = ( p + 1 ) /2 (定理 3.5[線形符号] )なので、Q ^ = Q ^ ⊥ \widehat{Q} = \widehat{Q}^{\perp} Q = Q ⊥ です。
∎
次の補題は、G 23 G_{23} G 23 の最小距離を決めるための道具です。語 c c c とその「逆向きの語」c ~ \tilde c c ~ の積を考えると、c c c の零点と c ~ \tilde c c ~ の零点を合わせて 1 , … , p − 1 1, \ldots, p-1 1 , … , p − 1 のすべてが零点になり、積は全成分が等しい語に限られます。その積の係数が w 2 w^2 w 2 個の項から作られることを数えると、w w w の下からの評価が出ます。
補題 5.5 (平方剰余符号の最小重み語の評価 ) ✓
定義 5.3 の平方剰余符号 Q Q Q で p ≡ 3 ( m o d 4 ) p \equiv 3 \pmod 4 p ≡ 3 ( mod 4 ) とする。c ∈ Q c \in Q c ∈ Q が ∑ i c i ≠ 0 \sum_ic_i \ne 0 ∑ i c i = 0 を満たせば、w = wt ( c ) w = \operatorname{wt}(c) w = wt ( c ) は
w 2 − w + 1 ≥ p w^2 - w + 1 \ge p w 2 − w + 1 ≥ p を満たす。
証明(補題 5.5) R p = F q [ x ] / ( x p − 1 ) R_p = \mathbb{F}_q[x]/(x^p - 1) R p = F q [ x ] / ( x p − 1 ) の中で c ~ ( x ) = c ( x − 1 ) = ∑ i c i x p − i \tilde c(x) = c(x^{-1}) = \sum_ic_ix^{p-i} c ~ ( x ) = c ( x − 1 ) = ∑ i c i x p − i とおきます(x − 1 = x p − 1 x^{-1} = x^{p-1} x − 1 = x p − 1 )。c ~ ( α i ) = c ( α − i ) \tilde c(\alpha^{i}) = c(\alpha^{-i}) c ~ ( α i ) = c ( α − i ) なので、c ~ \tilde c c ~ は − i ∈ Q -i \in \mathcal{Q} − i ∈ Q 、すなわち i ∈ − Q = N i \in -\mathcal{Q} = \mathcal{N} i ∈ − Q = N となる α i \alpha^i α i で 0 0 0 です。したがって積 c c ~ ∈ R p c\tilde c \in R_p c c ~ ∈ R p は、i ∈ Q ∪ N = { 1 , … , p − 1 } i \in \mathcal{Q} \cup \mathcal{N} = \{1, \ldots, p-1\} i ∈ Q ∪ N = { 1 , … , p − 1 } のすべてで α i \alpha^i α i を零点にもちます。定義集合 { 1 , … , p − 1 } \{1, \ldots, p-1\} { 1 , … , p − 1 } の巡回符号は生成多項式 ∏ i = 1 p − 1 ( x − α i ) = 1 + x + ⋯ + x p − 1 \prod_{i=1}^{p-1}(x - \alpha^i) = 1 + x + \cdots + x^{p-1} ∏ i = 1 p − 1 ( x − α i ) = 1 + x + ⋯ + x p − 1 の 1 1 1 次元の符号なので(命題 4.2[巡回符号・BCH 符号・Reed–Solomon 符号] )、c c ~ = λ ( 1 + x + ⋯ + x p − 1 ) c\tilde c = \lambda(1 + x + \cdots + x^{p-1}) c c ~ = λ ( 1 + x + ⋯ + x p − 1 ) となる λ ∈ F q \lambda \in \mathbb{F}_q λ ∈ F q があります。
x ↦ 1 x \mapsto 1 x ↦ 1 は R p R_p R p から F q \mathbb{F}_q F q への環準同型を定めます(x p − 1 x^p - 1 x p − 1 が 0 0 0 に写るから)。両辺を写すと c ( 1 ) c ~ ( 1 ) = c ( 1 ) 2 = λ p c(1)\tilde c(1) = c(1)^2 = \lambda p c ( 1 ) c ~ ( 1 ) = c ( 1 ) 2 = λ p で、仮定 c ( 1 ) = ∑ i c i ≠ 0 c(1) = \sum_ic_i \ne 0 c ( 1 ) = ∑ i c i = 0 から λ ≠ 0 \lambda \ne 0 λ = 0 です。よって c c ~ c\tilde c c c ~ の p p p 個の係数はすべて 0 0 0 でありません。
一方、c c ~ = ∑ i , j c i c j x i − j c\tilde c = \sum_{i, j}c_ic_jx^{i-j} c c ~ = ∑ i , j c i c j x i − j で、c i c j ≠ 0 c_ic_j \ne 0 c i c j = 0 となる組 ( i , j ) (i, j) ( i , j ) は w 2 w^2 w 2 個、そのうち i = j i = j i = j の w w w 個はすべて指数 0 0 0 に寄与します。現れうる指数は高々 w 2 − w + 1 w^2 - w + 1 w 2 − w + 1 種類なので、p ≤ w 2 − w + 1 p \le w^2 - w + 1 p ≤ w 2 − w + 1 です。
∎
この節の流れは、(1) x 23 − 1 x^{23} - 1 x 23 − 1 を F 2 \mathbb{F}_2 F 2 上で因数分解し、(2) 11 次の因子 g g g を生成多項式とする巡回符号を作り、(3) 最小距離と完全性を調べる、の 3 段です。(1) では、23 を法として指数を 2 倍する操作で互いに移り合う指数の組(円分剰余類)が、因数分解の既約因子に 1 つずつ対応することを使います。
p = 23 p = 23 p = 23 、q = 2 q = 2 q = 2 とします。2 11 = 2048 = 23 ⋅ 89 + 1 2^{11} = 2048 = 23 \cdot 89 + 1 2 11 = 2048 = 23 ⋅ 89 + 1 で、23 23 23 を法とする 2 2 2 の位数は 11 11 11 です。2 2 2 -円分剰余類は
{ 0 } , Q = { 1 , 2 , 3 , 4 , 6 , 8 , 9 , 12 , 13 , 16 , 18 } , N = { 5 , 7 , 10 , 11 , 14 , 15 , 17 , 19 , 20 , 21 , 22 } \{0\}, \qquad \mathcal{Q} = \{1, 2, 3, 4, 6, 8, 9, 12, 13, 16, 18\}, \qquad \mathcal{N} = \{5, 7, 10, 11, 14, 15, 17, 19, 20, 21, 22\} { 0 } , Q = { 1 , 2 , 3 , 4 , 6 , 8 , 9 , 12 , 13 , 16 , 18 } , N = { 5 , 7 , 10 , 11 , 14 , 15 , 17 , 19 , 20 , 21 , 22 }
の 3 つで、Q \mathcal{Q} Q は 1 1 1 の剰余類 { 1 , 2 , 4 , 8 , 16 , 9 , 18 , 13 , 3 , 6 , 12 } \{1, 2, 4, 8, 16, 9, 18, 13, 3, 6, 12\} { 1 , 2 , 4 , 8 , 16 , 9 , 18 , 13 , 3 , 6 , 12 } であり、23 23 23 を法とする平方剰余の全体でもあります(2 2 2 は 23 ≡ 7 ( m o d 8 ) 23 \equiv 7 \pmod 8 23 ≡ 7 ( mod 8 ) を法として平方剰余です。命題 4.3[原始根と平方剰余の相互法則] )。したがって x 23 − 1 x^{23} - 1 x 23 − 1 は F 2 \mathbb{F}_2 F 2 上で次数 1 , 11 , 11 1, 11, 11 1 , 11 , 11 の既約多項式の積に分解します(定理 2.4[有限体上の多項式] )。具体的には
x 23 − 1 = ( x + 1 ) g ( x ) g ∗ ( x ) , g ( x ) = x 11 + x 9 + x 7 + x 6 + x 5 + x + 1 , g ∗ ( x ) = x 11 + x 10 + x 6 + x 5 + x 4 + x 2 + 1 x^{23} - 1 = (x + 1)\,g(x)\,g^{*}(x), \qquad g(x) = x^{11} + x^9 + x^7 + x^6 + x^5 + x + 1, \quad g^{*}(x) = x^{11} + x^{10} + x^6 + x^5 + x^4 + x^2 + 1 x 23 − 1 = ( x + 1 ) g ( x ) g ∗ ( x ) , g ( x ) = x 11 + x 9 + x 7 + x 6 + x 5 + x + 1 , g ∗ ( x ) = x 11 + x 10 + x 6 + x 5 + x 4 + x 2 + 1
です(右辺を展開して確かめられます。g ∗ g^{*} g ∗ は g g g の係数を逆順にしたもの)。分解の一意性から、g g g と g ∗ g^{*} g ∗ が 2 つの 11 次の既約因子です。α \alpha α を g g g の根とすると、α 23 = 1 \alpha^{23} = 1 α 23 = 1 、α ≠ 1 \alpha \ne 1 α = 1 (g ( 1 ) = 1 g(1) = 1 g ( 1 ) = 1 )で 23 23 23 は素数なので α \alpha α は 1 の原始 23 23 23 乗根で、g g g の根は α \alpha α の共役 α 2 j \alpha^{2^j} α 2 j 、すなわち α i \alpha^i α i (i ∈ Q i \in \mathcal{Q} i ∈ Q )です(定理 2.2[有限体上の多項式] )。
定義 5.6 (二元 Golay 符号 ) ↗
g ( x ) = x 11 + x 9 + x 7 + x 6 + x 5 + x + 1 g(x) = x^{11} + x^9 + x^7 + x^6 + x^5 + x + 1 g ( x ) = x 11 + x 9 + x 7 + x 6 + x 5 + x + 1 を生成多項式とする F 2 \mathbb{F}_2 F 2 上の長さ 23 23 23 の巡回符号を二元 Golay 符号 G 23 G_{23} G 23 という。これは定義集合 Q \mathcal{Q} Q の平方剰余符号である。G 23 G_{23} G 23 にパリティ検査ビット c ∞ = ∑ i c i c_{\infty} = \sum_ic_i c ∞ = ∑ i c i を付け加えた長さ 24 24 24 の符号を拡大 Golay 符号 G 24 G_{24} G 24 という。
定理 5.7 (二元 Golay 符号 ) ✓
G 24 G_{24} G 24 は [ 24 , 12 , 8 ] 2 [24, 12, 8]_2 [ 24 , 12 , 8 ] 2 の自己双対な重偶符号である。
G 23 G_{23} G 23 は [ 23 , 12 , 7 ] 2 [23, 12, 7]_2 [ 23 , 12 , 7 ] 2 符号で、完全符号である。
証明(定理 5.7) dim G 23 = 23 − deg g = 12 \dim G_{23} = 23 - \deg g = 12 dim G 23 = 23 − deg g = 12 です。
第 1 段: BCH 限界。 定義集合 Q \mathcal{Q} Q は連続する指数 1 , 2 , 3 , 4 1, 2, 3, 4 1 , 2 , 3 , 4 を含むので、d ( G 23 ) ≥ 5 d(G_{23}) \ge 5 d ( G 23 ) ≥ 5 です(定理 4.4[巡回符号・BCH 符号・Reed–Solomon 符号] )。
第 2 段: G 24 G_{24} G 24 は自己双対で重偶。 23 ≡ 3 ( m o d 4 ) 23 \equiv 3 \pmod 4 23 ≡ 3 ( mod 4 ) 、23 ≡ − 1 ( m o d 2 ) 23 \equiv -1 \pmod 2 23 ≡ − 1 ( mod 2 ) なので、補題 5.4 により G 24 G_{24} G 24 は自己双対な [ 24 , 12 ] 2 [24, 12]_2 [ 24 , 12 ] 2 符号です(F 2 \mathbb{F}_2 F 2 では − ∑ i c i = ∑ i c i -\sum_ic_i = \sum_ic_i − ∑ i c i = ∑ i c i )。g , x g , … , x 11 g g, xg, \ldots, x^{11}g g , xg , … , x 11 g は G 23 G_{23} G 23 の基底で(定理 3.3[巡回符号・BCH 符号・Reed–Solomon 符号] )、どれも g g g の巡回シフトなので重みは g g g の項の数 7 7 7 です。これらを拡大した 12 個の語は G 24 G_{24} G 24 の基底で、重みは 8 8 8 です。自己双対なので互いの ⋅ \cdot ⋅ は 0 0 0 で、補題 5.2 により G 24 G_{24} G 24 は重偶符号です。
第 3 段: 最小距離。 c ∈ G 23 c \in G_{23} c ∈ G 23 、c ≠ 0 c \ne 0 c = 0 、w = wt ( c ) w = \operatorname{wt}(c) w = wt ( c ) とします。第 1 段から w ≥ 5 w \ge 5 w ≥ 5 です。
w w w が偶数のとき。拡大しても重みは w w w のままで、第 2 段から w w w は 4 4 4 の倍数です。w ≥ 5 w \ge 5 w ≥ 5 なので w ≥ 8 w \ge 8 w ≥ 8 です。
w w w が奇数のとき。∑ i c i = 1 ≠ 0 \sum_ic_i = 1 \ne 0 ∑ i c i = 1 = 0 なので、補題 5.5 から w 2 − w + 1 ≥ 23 w^2 - w + 1 \ge 23 w 2 − w + 1 ≥ 23 です。w = 5 w = 5 w = 5 では 21 21 21 で足りないので w ≥ 6 w \ge 6 w ≥ 6 、奇数なので w ≥ 7 w \ge 7 w ≥ 7 です。(第 2 段からも、拡大した重み w + 1 w + 1 w + 1 が 4 4 4 の倍数で w ≥ 5 w \ge 5 w ≥ 5 なので w ≥ 7 w \ge 7 w ≥ 7 と分かります。)
よって d ( G 23 ) ≥ 7 d(G_{23}) \ge 7 d ( G 23 ) ≥ 7 です。g g g 自身が重み 7 7 7 の符号語なので d ( G 23 ) = 7 d(G_{23}) = 7 d ( G 23 ) = 7 です。G 24 G_{24} G 24 の 0 0 0 でない語の重みは、もとの重み(7 7 7 以上)以上で 4 4 4 の倍数なので 8 8 8 以上、g g g を拡大した語の重みが 8 8 8 なので d ( G 24 ) = 8 d(G_{24}) = 8 d ( G 24 ) = 8 です。
完全性。 半径 3 3 3 の Hamming 球の体積は
1 + ( 23 1 ) + ( 23 2 ) + ( 23 3 ) = 1 + 23 + 253 + 1771 = 2048 = 2 11 1 + \binom{23}{1} + \binom{23}{2} + \binom{23}{3} = 1 + 23 + 253 + 1771 = 2048 = 2^{11} 1 + ( 1 23 ) + ( 2 23 ) + ( 3 23 ) = 1 + 23 + 253 + 1771 = 2048 = 2 11 で、∣ G 23 ∣ ⋅ 2 11 = 2 12 ⋅ 2 11 = 2 23 |G_{23}| \cdot 2^{11} = 2^{12}\cdot 2^{11} = 2^{23} ∣ G 23 ∣ ⋅ 2 11 = 2 12 ⋅ 2 11 = 2 23 です。t = ⌊ ( 7 − 1 ) / 2 ⌋ = 3 t = \lfloor (7-1)/2 \rfloor = 3 t = ⌊( 7 − 1 ) /2 ⌋ = 3 について Hamming 限界(定理 5.4[線形符号] )の等号が成り立つので、G 23 G_{23} G 23 は完全符号です。
∎
系 5.8 (拡大 Golay 符号の重み多項式 ) ✓
W G 24 ( 1 , y ) = 1 + 759 y 8 + 2576 y 12 + 759 y 16 + y 24 . W_{G_{24}}(1, y) = 1 + 759\,y^8 + 2576\,y^{12} + 759\,y^{16} + y^{24}. W G 24 ( 1 , y ) = 1 + 759 y 8 + 2576 y 12 + 759 y 16 + y 24 .
証明(系 5.8) 定理 5.7 により、重みは 4 4 4 の倍数で、0 0 0 でない語の重みは 8 8 8 以上です。( j , 1 ) (\boldsymbol{j}, 1) ( j , 1 ) (全成分が 1 1 1 の語)は G 24 G_{24} G 24 に属するので(補題 5.4 の証明)、c ↦ c + ( j , 1 ) c \mapsto c + (\boldsymbol{j}, 1) c ↦ c + ( j , 1 ) は重み i i i の語と重み 24 − i 24 - i 24 − i の語の全単射で、A i = A 24 − i A_i = A_{24-i} A i = A 24 − i です。よって A 0 = A 24 = 1 A_0 = A_{24} = 1 A 0 = A 24 = 1 、A 4 = A 20 = 0 A_4 = A_{20} = 0 A 4 = A 20 = 0 で、a = A 8 = A 16 a = A_8 = A_{16} a = A 8 = A 16 、b = A 12 b = A_{12} b = A 12 とおくと、符号語の総数から
2 + 2 a + b = 2 12 = 4096 2 + 2a + b = 2^{12} = 4096 2 + 2 a + b = 2 12 = 4096 です。
もう 1 つの関係式を MacWilliams 恒等式から出します。G 24 G_{24} G 24 は自己双対なので A 2 ⊥ = A 2 = 0 A_2^{\perp} = A_2 = 0 A 2 ⊥ = A 2 = 0 で、系 3.5 から ∑ i A i K 2 ( i ) = 0 \sum_iA_iK_2(i) = 0 ∑ i A i K 2 ( i ) = 0 です。n = 24 n = 24 n = 24 、q = 2 q = 2 q = 2 のとき
K 2 ( i ) = ( 24 − i 2 ) − i ( 24 − i ) + ( i 2 ) = ( 24 − 2 i ) 2 − 24 2 K_2(i) = \binom{24-i}{2} - i(24 - i) + \binom{i}{2} = \frac{(24 - 2i)^2 - 24}{2} K 2 ( i ) = ( 2 24 − i ) − i ( 24 − i ) + ( 2 i ) = 2 ( 24 − 2 i ) 2 − 24 で、K 2 ( 0 ) = K 2 ( 24 ) = 276 K_2(0) = K_2(24) = 276 K 2 ( 0 ) = K 2 ( 24 ) = 276 、K 2 ( 8 ) = K 2 ( 16 ) = 20 K_2(8) = K_2(16) = 20 K 2 ( 8 ) = K 2 ( 16 ) = 20 、K 2 ( 12 ) = − 12 K_2(12) = -12 K 2 ( 12 ) = − 12 です。よって
2 ⋅ 276 + 2 ⋅ 20 a − 12 b = 0 , すなわち 3 b = 138 + 10 a 2 \cdot 276 + 2 \cdot 20\,a - 12\,b = 0, \qquad\text{すなわち}\qquad 3b = 138 + 10a 2 ⋅ 276 + 2 ⋅ 20 a − 12 b = 0 , すなわち 3 b = 138 + 10 a です。第 1 式の 3 3 3 倍 6 a + 3 b = 12282 6a + 3b = 12282 6 a + 3 b = 12282 に代入すると 16 a = 12144 16a = 12144 16 a = 12144 、a = 759 a = 759 a = 759 、b = 4094 − 1518 = 2576 b = 4094 - 1518 = 2576 b = 4094 − 1518 = 2576 です。
∎
0 4 8 12 16 20 24 1 759 2576 759 1 重み
拡大 Golay 符号 G₂₄ の重み分布。重みは 0, 8, 12, 16, 24 だけで、左右対称になる(全成分が 1 の語を足す対称性)。759 個と 2576 個の棒の高さは個数の対数に比例させている(1 個の棒は、見えるように小さな一定の高さで描いた)。
例 5.9 (正二十面体から作る G₂₄ の生成行列 )
正二十面体の 12 個の頂点に番号を付け、A A A を隣接行列(頂点 i i i と j j j が辺で結ばれていれば A i j = 1 A_{ij} = 1 A ij = 1 )、J J J を全成分が 1 1 1 の行列、B = J − A B = J - A B = J − A (F 2 \mathbb{F}_2 F 2 の行列とみる)とします。12 × 24 12 \times 24 12 × 24 行列 G = ( I 12 ∣ B ) G = (I_{12} \mid B) G = ( I 12 ∣ B ) が生成する二元符号 C C C を調べます。
各頂点の次数は 5 5 5 なので、B B B の各行の重みは 12 − 5 = 7 12 - 5 = 7 12 − 5 = 7 で、G G G の各行の重みは 8 8 8 です。B B B の第 i i i 行と第 j j j 行(i ≠ j i \ne j i = j )がともに 1 1 1 である列の個数は、i i i にも j j j にも隣接しない頂点 l l l の個数です(A i i = 0 A_{ii} = 0 A ii = 0 なので B i i = 1 B_{ii} = 1 B ii = 1 で、l = i , j l = i, j l = i , j も条件を満たせば数えます)。i i i の隣接頂点の集合を N ( i ) N(i) N ( i ) とすると、これは 12 − ∣ N ( i ) ∪ N ( j ) ∣ = 12 − 5 − 5 + ( 共通の隣接頂点の数 ) 12 - |N(i) \cup N(j)| = 12 - 5 - 5 + (\text{共通の隣接頂点の数}) 12 − ∣ N ( i ) ∪ N ( j ) ∣ = 12 − 5 − 5 + ( 共通の隣接頂点の数 ) です。共通の隣接頂点は、i , j i, j i , j が隣接するとき 2 2 2 個、距離 2 2 2 のとき 2 2 2 個、対蹠点のとき 0 0 0 個なので、この数は 4 , 4 , 2 4, 4, 2 4 , 4 , 2 でいずれも偶数です。よって G G G の行どうしの ⋅ \cdot ⋅ はすべて 0 0 0 で、補題 5.2 から C C C は自己直交な重偶符号、次元が 12 12 12 なので自己双対です。
最小距離が 8 8 8 であることを確かめます。重偶なので、重み 4 4 4 の語が無いことを示せば十分です。自己双対性 G G T = I + B B T = 0 GG^{\mathsf{T}} = I + BB^{\mathsf{T}} = 0 G G T = I + B B T = 0 と B B B の対称性から B 2 = I B^2 = I B 2 = I で、符号語 ( u ∣ u B ) (u \mid uB) ( u ∣ u B ) の左右を入れ替えた ( u B ∣ u ) = ( v ∣ v B ) (uB \mid u) = (v \mid vB) ( u B ∣ u ) = ( v ∣ v B ) (v = u B v = uB v = u B )も符号語です。重み 4 4 4 の語の左半分の重み s = wt ( u ) s = \operatorname{wt}(u) s = wt ( u ) は、左右の入れ替えにより s ≤ 2 s \le 2 s ≤ 2 としてよく、s = 0 s = 0 s = 0 なら語は 0 0 0 、s = 1 s = 1 s = 1 なら G G G の行で重み 8 8 8 、s = 2 s = 2 s = 2 なら右半分の重みは 7 + 7 − 2 ( 2 + 共通の隣接頂点の数 ) ∈ { 6 , 10 } 7 + 7 - 2(2 + \text{共通の隣接頂点の数}) \in \{6, 10\} 7 + 7 − 2 ( 2 + 共通の隣接頂点の数 ) ∈ { 6 , 10 } で全体の重みは 8 8 8 以上です。よって重み 4 4 4 の語は無く、C C C は [ 24 , 12 , 8 ] 2 [24, 12, 8]_2 [ 24 , 12 , 8 ] 2 の自己双対な重偶符号です。このパラメータの符号は座標の置換を除いて G 24 G_{24} G 24 だけであることが知られています(Pless 1968)。
p = 11 p = 11 p = 11 、q = 3 q = 3 q = 3 とします。3 5 = 243 = 11 ⋅ 22 + 1 3^5 = 243 = 11 \cdot 22 + 1 3 5 = 243 = 11 ⋅ 22 + 1 で、11 11 11 を法とする 3 3 3 の位数は 5 5 5 です(3 , 9 , 5 , 4 , 1 3, 9, 5, 4, 1 3 , 9 , 5 , 4 , 1 )。3 3 3 -円分剰余類は { 0 } \{0\} { 0 } 、Q = { 1 , 3 , 4 , 5 , 9 } \mathcal{Q} = \{1, 3, 4, 5, 9\} Q = { 1 , 3 , 4 , 5 , 9 } 、N = { 2 , 6 , 7 , 8 , 10 } \mathcal{N} = \{2, 6, 7, 8, 10\} N = { 2 , 6 , 7 , 8 , 10 } で、Q \mathcal{Q} Q は 11 11 11 を法とする平方剰余の全体です(3 ≡ 5 2 3 \equiv 5^2 3 ≡ 5 2 )。F 3 \mathbb{F}_3 F 3 上で
x 11 − 1 = ( x − 1 ) g ( x ) g ~ ( x ) , g ( x ) = x 5 + x 4 + 2 x 3 + x 2 + 2 , g ~ ( x ) = x 5 + 2 x 3 + x 2 + 2 x + 2 x^{11} - 1 = (x - 1)\,g(x)\,\tilde g(x), \qquad g(x) = x^5 + x^4 + 2x^3 + x^2 + 2, \quad \tilde g(x) = x^5 + 2x^3 + x^2 + 2x + 2 x 11 − 1 = ( x − 1 ) g ( x ) g ~ ( x ) , g ( x ) = x 5 + x 4 + 2 x 3 + x 2 + 2 , g ~ ( x ) = x 5 + 2 x 3 + x 2 + 2 x + 2
です(展開して確かめられます)。二元の場合と同じ理由で、g g g と g ~ \tilde g g ~ が 5 次の既約因子で、g g g の根 α \alpha α は 1 の原始 11 11 11 乗根(g ( 1 ) = 7 ≡ 1 ≠ 0 g(1) = 7 \equiv 1 \ne 0 g ( 1 ) = 7 ≡ 1 = 0 )、g g g の根は α i \alpha^i α i (i ∈ Q i \in \mathcal{Q} i ∈ Q )です。
定義 5.10 (三元 Golay 符号 ) ↗
g ( x ) = x 5 + x 4 + 2 x 3 + x 2 + 2 g(x) = x^5 + x^4 + 2x^3 + x^2 + 2 g ( x ) = x 5 + x 4 + 2 x 3 + x 2 + 2 を生成多項式とする F 3 \mathbb{F}_3 F 3 上の長さ 11 11 11 の巡回符号を三元 Golay 符号 G 11 G_{11} G 11 という。G 11 G_{11} G 11 に座標 c ∞ = − ∑ i c i c_{\infty} = -\sum_ic_i c ∞ = − ∑ i c i を付け加えた長さ 12 12 12 の符号を拡大三元 Golay 符号 G 12 G_{12} G 12 という。
定理 5.11 (三元 Golay 符号 ) ✓
G 12 G_{12} G 12 は [ 12 , 6 , 6 ] 3 [12, 6, 6]_3 [ 12 , 6 , 6 ] 3 の自己双対符号で、すべての符号語の重みは 3 3 3 の倍数である。
G 11 G_{11} G 11 は [ 11 , 6 , 5 ] 3 [11, 6, 5]_3 [ 11 , 6 , 5 ] 3 符号で、完全符号である。
証明(定理 5.11) dim G 11 = 11 − 5 = 6 \dim G_{11} = 11 - 5 = 6 dim G 11 = 11 − 5 = 6 です。
自己双対性。 11 ≡ 3 ( m o d 4 ) 11 \equiv 3 \pmod 4 11 ≡ 3 ( mod 4 ) 、11 ≡ − 1 ( m o d 3 ) 11 \equiv -1 \pmod 3 11 ≡ − 1 ( mod 3 ) なので、補題 5.4 により G 12 G_{12} G 12 は自己双対な [ 12 , 6 ] 3 [12, 6]_3 [ 12 , 6 ] 3 符号です。c ∈ G 12 c \in G_{12} c ∈ G 12 について c ⋅ c = 0 c \cdot c = 0 c ⋅ c = 0 です。F 3 \mathbb{F}_3 F 3 の 0 0 0 でない元 ± 1 \pm 1 ± 1 の平方は 1 1 1 なので c ⋅ c = ∑ i c i 2 = wt ( c ) ⋅ 1 c \cdot c = \sum_ic_i^2 = \operatorname{wt}(c)\cdot 1 c ⋅ c = ∑ i c i 2 = wt ( c ) ⋅ 1 で、wt ( c ) ≡ 0 ( m o d 3 ) \operatorname{wt}(c) \equiv 0 \pmod 3 wt ( c ) ≡ 0 ( mod 3 ) です。
最小距離。 Q \mathcal{Q} Q は連続する指数 3 , 4 , 5 3, 4, 5 3 , 4 , 5 を含むので、BCH 限界(定理 4.4[巡回符号・BCH 符号・Reed–Solomon 符号] 、b = 3 b = 3 b = 3 、δ = 4 \delta = 4 δ = 4 )から d ( G 11 ) ≥ 4 d(G_{11}) \ge 4 d ( G 11 ) ≥ 4 です。c ∈ G 11 c \in G_{11} c ∈ G 11 、c ≠ 0 c \ne 0 c = 0 、w = wt ( c ) w = \operatorname{wt}(c) w = wt ( c ) とします。拡大した語の重みは w w w か w + 1 w + 1 w + 1 で、3 3 3 の倍数で 4 4 4 以上なので 6 6 6 以上です。よって w ≥ 5 w \ge 5 w ≥ 5 で、d ( G 11 ) ≥ 5 d(G_{11}) \ge 5 d ( G 11 ) ≥ 5 、d ( G 12 ) ≥ 6 d(G_{12}) \ge 6 d ( G 12 ) ≥ 6 です。g g g は項が 5 5 5 個の符号語なので d ( G 11 ) = 5 d(G_{11}) = 5 d ( G 11 ) = 5 です。g ( 1 ) ≠ 0 g(1) \ne 0 g ( 1 ) = 0 なので g g g を拡大した語の重みは 6 6 6 で、d ( G 12 ) = 6 d(G_{12}) = 6 d ( G 12 ) = 6 です。
完全性。 t = 2 t = 2 t = 2 で、半径 2 2 2 の球の体積は
1 + ( 11 1 ) ⋅ 2 + ( 11 2 ) ⋅ 2 2 = 1 + 22 + 220 = 243 = 3 5 1 + \binom{11}{1}\cdot 2 + \binom{11}{2}\cdot 2^2 = 1 + 22 + 220 = 243 = 3^5 1 + ( 1 11 ) ⋅ 2 + ( 2 11 ) ⋅ 2 2 = 1 + 22 + 220 = 243 = 3 5 です。∣ G 11 ∣ ⋅ 3 5 = 3 6 ⋅ 3 5 = 3 11 |G_{11}| \cdot 3^5 = 3^{6}\cdot 3^{5} = 3^{11} ∣ G 11 ∣ ⋅ 3 5 = 3 6 ⋅ 3 5 = 3 11 で Hamming 限界(定理 5.4[線形符号] )の等号が成り立つので、G 11 G_{11} G 11 は完全符号です。
∎
系 5.12 (拡大三元 Golay 符号の重み多項式 ) ✓
W G 12 ( 1 , y ) = 1 + 264 y 6 + 440 y 9 + 24 y 12 . W_{G_{12}}(1, y) = 1 + 264\,y^6 + 440\,y^9 + 24\,y^{12}. W G 12 ( 1 , y ) = 1 + 264 y 6 + 440 y 9 + 24 y 12 .
証明(系 5.12) 定理 5.11 により、0 0 0 でない語の重みは 6 , 9 , 12 6, 9, 12 6 , 9 , 12 のいずれかです。a = A 6 a = A_6 a = A 6 、b = A 9 b = A_9 b = A 9 、c = A 12 c = A_{12} c = A 12 とおくと a + b + c = 3 6 − 1 = 728 a + b + c = 3^6 - 1 = 728 a + b + c = 3 6 − 1 = 728 です。自己双対なので A 1 ⊥ = A 1 = 0 A_1^{\perp} = A_1 = 0 A 1 ⊥ = A 1 = 0 、A 2 ⊥ = A 2 = 0 A_2^{\perp} = A_2 = 0 A 2 ⊥ = A 2 = 0 で、系 3.5 から ∑ i A i K 1 ( i ) = 0 \sum_iA_iK_1(i) = 0 ∑ i A i K 1 ( i ) = 0 、∑ i A i K 2 ( i ) = 0 \sum_iA_iK_2(i) = 0 ∑ i A i K 2 ( i ) = 0 です。n = 12 n = 12 n = 12 、q = 3 q = 3 q = 3 のとき K 1 ( i ) = 24 − 3 i K_1(i) = 24 - 3i K 1 ( i ) = 24 − 3 i 、K 2 ( i ) = 4 ( 12 − i 2 ) − 2 i ( 12 − i ) + ( i 2 ) K_2(i) = 4\binom{12-i}{2} - 2i(12-i) + \binom{i}{2} K 2 ( i ) = 4 ( 2 12 − i ) − 2 i ( 12 − i ) + ( 2 i ) で、
i i i 0 0 0 6 6 6 9 9 9 12 12 12 K 1 ( i ) K_1(i) K 1 ( i ) 24 24 24 6 6 6 − 3 -3 − 3 − 12 -12 − 12 K 2 ( i ) K_2(i) K 2 ( i ) 264 264 264 3 3 3 − 6 -6 − 6 66 66 66
です。よって 24 + 6 a − 3 b − 12 c = 0 24 + 6a - 3b - 12c = 0 24 + 6 a − 3 b − 12 c = 0 、264 + 3 a − 6 b + 66 c = 0 264 + 3a - 6b + 66c = 0 264 + 3 a − 6 b + 66 c = 0 、すなわち
b = 8 + 2 a − 4 c , 88 + a − 2 b + 22 c = 0 b = 8 + 2a - 4c, \qquad 88 + a - 2b + 22c = 0 b = 8 + 2 a − 4 c , 88 + a − 2 b + 22 c = 0 です。第 1 式を第 2 式に代入すると 72 − 3 a + 30 c = 0 72 - 3a + 30c = 0 72 − 3 a + 30 c = 0 、a = 24 + 10 c a = 24 + 10c a = 24 + 10 c で、b = 56 + 16 c b = 56 + 16c b = 56 + 16 c です。a + b + c = 80 + 27 c = 728 a + b + c = 80 + 27c = 728 a + b + c = 80 + 27 c = 728 から c = 24 c = 24 c = 24 、a = 264 a = 264 a = 264 、b = 440 b = 440 b = 440 です。
∎
定義 6.1 (被覆半径 ) ↗
符号 C ⊆ F q n C \subseteq \mathbb{F}_q^n C ⊆ F q n の被覆半径 を
ρ ( C ) = max x ∈ F q n min c ∈ C d ( x , c ) \rho(C) = \max_{x \in \mathbb{F}_q^n}\ \min_{c \in C}\ d(x, c) ρ ( C ) = x ∈ F q n max c ∈ C min d ( x , c ) で定める。すなわち、符号語を中心とする半径 ρ \rho ρ の球が全空間を覆うような最小の ρ \rho ρ である。
最小距離が「球が重ならない最大の半径」を決めるのに対し、被覆半径は「球が全体を覆う最小の半径」です。第 3 章では、符号語を中心とする半径 t = ⌊ ( d − 1 ) / 2 ⌋ t = \lfloor (d-1)/2 \rfloor t = ⌊( d − 1 ) /2 ⌋ の球が全空間を覆う符号を完全符号と呼び、これが Hamming 限界の等号と同値であることを示しました(半径 t t t の球は互いに交わらないので、覆うことと体積の合計が q n q^n q n であることが同じになります)。
命題 6.2 (完全符号と被覆半径 ) ✓
C ⊆ F q n C \subseteq \mathbb{F}_q^n C ⊆ F q n を 2 2 2 個以上の語からなる符号、d d d を最小距離、t = ⌊ ( d − 1 ) / 2 ⌋ t = \lfloor (d-1)/2 \rfloor t = ⌊( d − 1 ) /2 ⌋ とする。このとき ρ ( C ) ≥ t \rho(C) \ge t ρ ( C ) ≥ t で、等号が成り立つことと C C C が完全符号であることは同値である。
証明(命題 6.2) d ( c , c ′ ) = d d(c, c') = d d ( c , c ′ ) = d となる符号語 c , c ′ c, c' c , c ′ を取り、c c c と c ′ c' c ′ が異なる d d d 個の座標のうち t t t 個で c c c の成分を c ′ c' c ′ の成分に取り替えた語を x x x とします。d ( x , c ) = t d(x, c) = t d ( x , c ) = t です。c c c と異なる符号語 c ′ ′ c'' c ′′ については、三角不等式(命題 2.2[線形符号] )から d ( x , c ′ ′ ) ≥ d ( c , c ′ ′ ) − d ( c , x ) ≥ d − t ≥ t + 1 d(x, c'') \ge d(c, c'') - d(c, x) \ge d - t \ge t + 1 d ( x , c ′′ ) ≥ d ( c , c ′′ ) − d ( c , x ) ≥ d − t ≥ t + 1 です(d ≥ 2 t + 1 d \ge 2t + 1 d ≥ 2 t + 1 )。よって min c ′ ′ ∈ C d ( x , c ′ ′ ) = t \min_{c'' \in C}d(x, c'') = t min c ′′ ∈ C d ( x , c ′′ ) = t で、ρ ( C ) ≥ t \rho(C) \ge t ρ ( C ) ≥ t です。
C C C が完全であることは、どの x x x もある符号語から距離 t t t 以内にあること、すなわち ρ ( C ) ≤ t \rho(C) \le t ρ ( C ) ≤ t と同値です。前半と合わせて、これは ρ ( C ) = t \rho(C) = t ρ ( C ) = t と同値です。
∎
MacWilliams 恒等式は線形符号についての等式でしたが、その背後にある指標和の計算は、線形でない符号にも不等式として残ります。
命題 6.5 (Delsarte の不等式 ) ✓
C ⊆ F q n C \subseteq \mathbb{F}_q^n C ⊆ F q n を空でない符号(線形とは限らない)、M = ∣ C ∣ M = |C| M = ∣ C ∣ とし、距離分布 を
B i = 1 M # { ( c , c ′ ) ∈ C × C : d ( c , c ′ ) = i } ( 0 ≤ i ≤ n ) B_i = \frac{1}{M}\,\#\{\, (c, c') \in C \times C : d(c, c') = i \,\} \qquad (0 \le i \le n) B i = M 1 # { ( c , c ′ ) ∈ C × C : d ( c , c ′ ) = i } ( 0 ≤ i ≤ n ) で定める。このとき、すべての 0 ≤ k ≤ n 0 \le k \le n 0 ≤ k ≤ n について
∑ i = 0 n B i K k ( i ) ≥ 0 \sum_{i=0}^{n}B_i\,K_k(i) \ge 0 i = 0 ∑ n B i K k ( i ) ≥ 0 が成り立つ。
証明(命題 6.5) u ∈ F q n u \in \mathbb{F}_q^n u ∈ F q n に対し Σ ( u ) = ∑ c ∈ C ψ ( u ⋅ c ) \Sigma(u) = \sum_{c \in C}\psi(u \cdot c) Σ ( u ) = ∑ c ∈ C ψ ( u ⋅ c ) とおきます。ψ ( u ⋅ c ′ ) ‾ = ψ ( − u ⋅ c ′ ) \overline{\psi(u \cdot c')} = \psi(-u \cdot c') ψ ( u ⋅ c ′ ) = ψ ( − u ⋅ c ′ ) なので
∣ Σ ( u ) ∣ 2 = ∑ c , c ′ ∈ C ψ ( u ⋅ c ) ψ ( u ⋅ c ′ ) ‾ = ∑ c , c ′ ∈ C ψ ( u ⋅ ( c − c ′ ) ) |\Sigma(u)|^2 = \sum_{c, c' \in C}\psi(u \cdot c)\overline{\psi(u \cdot c')} = \sum_{c, c' \in C}\psi\bigl(u \cdot (c - c')\bigr) ∣Σ ( u ) ∣ 2 = c , c ′ ∈ C ∑ ψ ( u ⋅ c ) ψ ( u ⋅ c ′ ) = c , c ′ ∈ C ∑ ψ ( u ⋅ ( c − c ′ ) ) です。重み k k k の u u u について和を取り、系 3.5 の第 2 の式 ∑ wt ( u ) = k ψ ( u ⋅ v ) = K k ( wt ( v ) ) \sum_{\operatorname{wt}(u) = k}\psi(u \cdot v) = K_k(\operatorname{wt}(v)) ∑ wt ( u ) = k ψ ( u ⋅ v ) = K k ( wt ( v )) を v = c − c ′ v = c - c' v = c − c ′ に使うと
0 ≤ ∑ u : wt ( u ) = k ∣ Σ ( u ) ∣ 2 = ∑ c , c ′ ∈ C K k ( d ( c , c ′ ) ) = M ∑ i = 0 n B i K k ( i ) 0 \le \sum_{u :\, \operatorname{wt}(u) = k}|\Sigma(u)|^2 = \sum_{c, c' \in C}K_k\bigl(d(c, c')\bigr) = M\sum_{i=0}^{n}B_iK_k(i) 0 ≤ u : wt ( u ) = k ∑ ∣Σ ( u ) ∣ 2 = c , c ′ ∈ C ∑ K k ( d ( c , c ′ ) ) = M i = 0 ∑ n B i K k ( i ) です。
∎
C C C が線形なら B i = A i B_i = A_i B i = A i で、左辺は M ⋅ A k ⊥ M \cdot A_k^{\perp} M ⋅ A k ⊥ に等しく(系 3.5 )、不等式は「双対符号の重み k k k の語の個数は非負」という当たり前の事実になります。線形でない符号には双対符号がありませんが、「双対の重み分布にあたる量」が非負であることだけは残る、というのがこの命題の内容です。
最小距離 d d d の符号の距離分布は B 0 = 1 B_0 = 1 B 0 = 1 、B i = 0 B_i = 0 B i = 0 (1 ≤ i < d 1 \le i < d 1 ≤ i < d )、B i ≥ 0 B_i \ge 0 B i ≥ 0 、∑ i B i = M \sum_iB_i = M ∑ i B i = M を満たします。これらと Delsarte の不等式のもとで ∑ i B i \sum_iB_i ∑ i B i を最大化する線形計画問題の最適値は、符号の語数 M M M の上界です(線形計画限界 )。もっとも簡単な場合が Plotkin 限界で、演習 7.4 で確かめます。
例 6.7 (誤りを見逃す確率を重み分布で書く )
誤り率 p p p の二元対称通信路で線形符号 C C C の符号語を送り、受信語が符号語かどうかだけを調べる(誤り検出)とします。誤りパターン e e e が起こる確率は p wt ( e ) ( 1 − p ) n − wt ( e ) p^{\operatorname{wt}(e)}(1-p)^{n - \operatorname{wt}(e)} p wt ( e ) ( 1 − p ) n − wt ( e ) で、誤りが見逃されるのは e e e が 0 0 0 でない符号語のときなので、見逃す確率は
P u d ( p ) = ∑ i = 1 n A i p i ( 1 − p ) n − i = W C ( 1 − p , p ) − ( 1 − p ) n P_{\mathrm{ud}}(p) = \sum_{i=1}^{n}A_i\,p^i(1-p)^{n-i} = W_C(1 - p,\ p) - (1-p)^n P ud ( p ) = i = 1 ∑ n A i p i ( 1 − p ) n − i = W C ( 1 − p , p ) − ( 1 − p ) n です。[ 7 , 4 ] [7, 4] [ 7 , 4 ] Hamming 符号では 7 p 3 ( 1 − p ) 4 + 7 p 4 ( 1 − p ) 3 + p 7 7p^3(1-p)^4 + 7p^4(1-p)^3 + p^7 7 p 3 ( 1 − p ) 4 + 7 p 4 ( 1 − p ) 3 + p 7 で、p = 0.01 p = 0.01 p = 0.01 のとき約 6.8 × 10 − 6 6.8 \times 10^{-6} 6.8 × 1 0 − 6 です。MacWilliams 恒等式を使うと W C ( 1 − p , p ) = ∣ C ⊥ ∣ − 1 W C ⊥ ( 1 , 1 − 2 p ) W_C(1-p, p) = |C^{\perp}|^{-1}W_{C^{\perp}}(1, 1 - 2p) W C ( 1 − p , p ) = ∣ C ⊥ ∣ − 1 W C ⊥ ( 1 , 1 − 2 p ) とも書け、次元の大きい符号では双対符号の重み分布から計算するほうが楽です。
演習 7.1 易
二元の長さ n n n の反復符号 C = { 00 ⋯ 0 , 11 ⋯ 1 } C = \{00\cdots0, 11\cdots1\} C = { 00 ⋯ 0 , 11 ⋯ 1 } の重み多項式と、MacWilliams 恒等式から得られる C ⊥ C^{\perp} C ⊥ の重み多項式を求め、C ⊥ C^{\perp} C ⊥ が偶数重みの語全体であることと合うことを確かめよ。
解答 W C = x n + y n W_C = x^n + y^n W C = x n + y n です。定理 3.3 から
W C ⊥ = 1 2 [ ( x + y ) n + ( x − y ) n ] = ∑ i 偶数 ( n i ) x n − i y i W_{C^{\perp}} = \frac12\bigl[(x+y)^n + (x-y)^n\bigr] = \sum_{i\ \text{偶数}}\binom{n}{i}x^{n-i}y^i W C ⊥ = 2 1 [ ( x + y ) n + ( x − y ) n ] = i 偶数 ∑ ( i n ) x n − i y i です(奇数次の項は打ち消し合い、偶数次の項は 2 倍になる)。一方 C ⊥ C^{\perp} C ⊥ は全 1 1 1 の語と直交する語、つまり偶数重みの語の全体で、重み i i i (偶数)の語は ( n i ) \binom{n}{i} ( i n ) 個です。両者は一致します。
演習 7.2 標準
G 23 G_{23} G 23 が完全符号であることを使って、G 23 G_{23} G 23 の重み 7 7 7 の符号語が 253 253 253 個であることを示せ。また 系 5.8 と合わせて、重み 8 8 8 の符号語が 506 506 506 個であることを示せ。
解答 重み 4 4 4 の語 x ∈ F 2 23 x \in \mathbb{F}_2^{23} x ∈ F 2 23 は ( 23 4 ) = 8855 \binom{23}{4} = 8855 ( 4 23 ) = 8855 個あります。完全性から、各 x x x は距離 3 3 3 以内にちょうど 1 つの符号語 c c c をもちます。wt ( c ) ≤ 4 + 3 = 7 \operatorname{wt}(c) \le 4 + 3 = 7 wt ( c ) ≤ 4 + 3 = 7 で、c = 0 c = 0 c = 0 は距離が 4 4 4 なので不適、0 0 0 でない符号語の重みは 7 7 7 以上なので wt ( c ) = 7 \operatorname{wt}(c) = 7 wt ( c ) = 7 、d ( x , c ) = 3 d(x, c) = 3 d ( x , c ) = 3 です。これは x x x の台が c c c の台に含まれることを意味します(d ( x , c ) = 7 + 4 − 2 ∣ x ∩ c ∣ = 3 d(x, c) = 7 + 4 - 2|x \cap c| = 3 d ( x , c ) = 7 + 4 − 2∣ x ∩ c ∣ = 3 から ∣ x ∩ c ∣ = 4 |x \cap c| = 4 ∣ x ∩ c ∣ = 4 )。逆に、重み 7 7 7 の符号語 c c c の台に含まれる重み 4 4 4 の語は ( 7 4 ) = 35 \binom{7}{4} = 35 ( 4 7 ) = 35 個で、どれも c c c から距離 3 3 3 です。よって重み 7 7 7 の符号語の個数は 8855 / 35 = 253 8855/35 = 253 8855/35 = 253 です。
G 24 G_{24} G 24 の重み 8 8 8 の語は、G 23 G_{23} G 23 の重み 7 7 7 の語(パリティビットが 1 1 1 )と重み 8 8 8 の語(パリティビットが 0 0 0 )を拡大したものです。759 − 253 = 506 759 - 253 = 506 759 − 253 = 506 です。
演習 7.3 標準
F 3 \mathbb{F}_3 F 3 上の [ 4 , 2 , 3 ] [4, 2, 3] [ 4 , 2 , 3 ] 符号(tetracode)C C C を生成行列 ( 1 0 1 1 0 1 1 2 ) \begin{pmatrix}1&0&1&1\\0&1&1&2\end{pmatrix} ( 1 0 0 1 1 1 1 2 ) で定める。C C C が自己双対であることを示し、重み多項式を求め、MacWilliams 変換で不変であることを直接確かめよ。
解答 行を r 1 , r 2 r_1, r_2 r 1 , r 2 とすると r 1 ⋅ r 1 = 1 + 1 + 1 = 0 r_1 \cdot r_1 = 1 + 1 + 1 = 0 r 1 ⋅ r 1 = 1 + 1 + 1 = 0 、r 2 ⋅ r 2 = 1 + 1 + 4 = 0 r_2 \cdot r_2 = 1 + 1 + 4 = 0 r 2 ⋅ r 2 = 1 + 1 + 4 = 0 、r 1 ⋅ r 2 = 1 + 2 = 0 r_1 \cdot r_2 = 1 + 2 = 0 r 1 ⋅ r 2 = 1 + 2 = 0 (F 3 \mathbb{F}_3 F 3 で)なので C ⊆ C ⊥ C \subseteq C^{\perp} C ⊆ C ⊥ 、次元がともに 2 2 2 なので C = C ⊥ C = C^{\perp} C = C ⊥ です。定理 5.11 の証明と同じく重みは 3 3 3 の倍数で、0 0 0 でない 8 8 8 語の重みは 3 3 3 です(重み 4 4 4 ではないから)。よって W C = x 4 + 8 x y 3 W_C = x^4 + 8xy^3 W C = x 4 + 8 x y 3 です。不変性を確かめます。
( x + 2 y ) 4 = x 4 + 8 x 3 y + 24 x 2 y 2 + 32 x y 3 + 16 y 4 , ( x + 2 y ) ( x − y ) 3 = x 4 − x 3 y − 3 x 2 y 2 + 5 x y 3 − 2 y 4 (x + 2y)^4 = x^4 + 8x^3y + 24x^2y^2 + 32xy^3 + 16y^4, \qquad (x + 2y)(x - y)^3 = x^4 - x^3y - 3x^2y^2 + 5xy^3 - 2y^4 ( x + 2 y ) 4 = x 4 + 8 x 3 y + 24 x 2 y 2 + 32 x y 3 + 16 y 4 , ( x + 2 y ) ( x − y ) 3 = x 4 − x 3 y − 3 x 2 y 2 + 5 x y 3 − 2 y 4 なので、1 9 [ ( x + 2 y ) 4 + 8 ( x + 2 y ) ( x − y ) 3 ] = 1 9 ( 9 x 4 + 72 x y 3 ) = x 4 + 8 x y 3 \frac19\bigl[(x+2y)^4 + 8(x+2y)(x-y)^3\bigr] = \frac19\bigl(9x^4 + 72xy^3\bigr) = x^4 + 8xy^3 9 1 [ ( x + 2 y ) 4 + 8 ( x + 2 y ) ( x − y ) 3 ] = 9 1 ( 9 x 4 + 72 x y 3 ) = x 4 + 8 x y 3 です。
演習 7.4 難
二元符号 C ⊆ F 2 n C \subseteq \mathbb{F}_2^n C ⊆ F 2 n (線形とは限らない)の語数を M M M 、最小距離を d d d とし、2 d > n 2d > n 2 d > n とする。Delsarte の不等式の k = 1 k = 1 k = 1 の場合から、Plotkin 限界 M ≤ 2 d 2 d − n M \le \dfrac{2d}{2d - n} M ≤ 2 d − n 2 d を導け。
解答 q = 2 q = 2 q = 2 のとき K 1 ( i ) = n − 2 i K_1(i) = n - 2i K 1 ( i ) = n − 2 i です。距離分布は B 0 = 1 B_0 = 1 B 0 = 1 、B i = 0 B_i = 0 B i = 0 (1 ≤ i < d 1 \le i < d 1 ≤ i < d )、∑ i ≥ d B i = M − 1 \sum_{i \ge d}B_i = M - 1 ∑ i ≥ d B i = M − 1 を満たします。i ≥ d i \ge d i ≥ d では K 1 ( i ) = n − 2 i ≤ n − 2 d < 0 K_1(i) = n - 2i \le n - 2d < 0 K 1 ( i ) = n − 2 i ≤ n − 2 d < 0 なので、命題 6.5 から
0 ≤ ∑ i B i K 1 ( i ) = n + ∑ i ≥ d B i ( n − 2 i ) ≤ n + ( M − 1 ) ( n − 2 d ) 0 \le \sum_iB_iK_1(i) = n + \sum_{i \ge d}B_i(n - 2i) \le n + (M - 1)(n - 2d) 0 ≤ i ∑ B i K 1 ( i ) = n + i ≥ d ∑ B i ( n − 2 i ) ≤ n + ( M − 1 ) ( n − 2 d ) です。( M − 1 ) ( 2 d − n ) ≤ n (M - 1)(2d - n) \le n ( M − 1 ) ( 2 d − n ) ≤ n を整理すると M ( 2 d − n ) ≤ 2 d M(2d - n) \le 2d M ( 2 d − n ) ≤ 2 d 、すなわち M ≤ 2 d / ( 2 d − n ) M \le 2d/(2d - n) M ≤ 2 d / ( 2 d − n ) です。これは二元符号の Plotkin 限界(定理 5.6[線形符号] )と同じ形の評価で、線形計画限界のもっとも簡単な場合になっています。
F. J. MacWilliams, N. J. A. Sloane, The Theory of Error-Correcting Codes , North-Holland, 1977 — 第 5 章(双対符号と重み分布)、第 11 章(MDS 符号)、第 16 章(平方剰余符号)、第 20 章(Golay 符号)。
F. J. MacWilliams, “A theorem on the distribution of weights in a systematic code”, Bell System Technical Journal 42 (1963), 79–94.
M. J. E. Golay, “Notes on digital coding”, Proceedings of the IRE 37 (1949), 657.
A. Tietäväinen, “On the nonexistence of perfect codes over finite fields”, SIAM Journal on Applied Mathematics 24 (1973), 88–96.
J. H. Conway, N. J. A. Sloane, Sphere Packings, Lattices and Groups , 3rd ed., Springer, 1999 — 符号から格子を作る構成と Leech 格子。
P. Delsarte, “An algebraic approach to the association schemes of coding theory”, Philips Research Reports Supplements 10 (1973).
V. Pless, “On the uniqueness of the Golay codes”, Journal of Combinatorial Theory 5 (1968), 215–228.
執筆: Claude Code(Opus 5.5)、Claude Code(Sonnet 5.5)・監査 2 回(Claude Code)・最終 2026-10-12