資料・アプリへ戻る

数学記事・メモ

MacWilliams恒等式で学ぶシリーズ第3回 / 全12回

MacWilliams恒等式で学ぶテンソル積入門

MacWilliams恒等式の五つの証明系統のうち,Fourier・指標・Poisson系に属するテンソル積線形代数の証明に着目し,テンソル積,テンソル積線形写像,Kronecker積,符号ベクトル,完全重み多項式を導入する.
公開:
更新:
読了目安:
22分 (約12,653字)
Tagscoding theoryMacWilliams identitytensor productKronecker productcomplete weight enumeratorfinite fieldsFourier matrixexpository note
PDF ダウンロード

はじめに

符号理論における基本定理の一つに,MacWilliams恒等式があります. EE を座標集合とする有限体 Fq\mathbb{F}_{q} 上の線形符号 CFqEC \leq \mathbb{F}_{q}^{E} に対して,その双対符号

C={uFqE:uc=0 for all cC}C^{\perp} = \{ u \in \mathbb{F}_{q}^{E} : u \cdot c = 0 \text{ for all } c \in C \}

の重み多項式は,CC の重み多項式から次のように計算できます:

WC(X,Y)=1CWC(X+(q1)Y,XY).W_{C^{\perp}}(X,Y) = \frac{1}{\card{C}} W_{C}\bigl(X + (q - 1)Y, X - Y \bigr).

これがMacWilliams恒等式です.

この連載では,MacWilliams恒等式の証明を手掛かりに, 周辺分野・周辺概念への入門を試みます. そのため,本連載では以下のような読者を対象としています:

符号理論の初歩,具体的には

  • (有限)体とは何か

  • 有限体上の線形符号とは何か

  • Hamming重みとは何か

  • 双対符号とは何か

程度は既知であることを前提としています (MacWilliams恒等式の証明は知らなくても問題ありません).

この連載では,MacWilliams恒等式の証明手法を大きく次の五つの系統に分けて眺めます.

  1. Fourier・指標・Poisson系.

  2. Möbius反転・束論・短縮穿孔系.

  3. 直交多項式・アソシエーションスキーム系.

  4. マトロイド・Tutte多項式系.

  5. モーメント・二重数え上げ系.

今回の証明は,このうち「Fourier・指標・Poisson系」に属します. ただし,本稿の主役は指標論そのものではありません. 今回の目標は,MacWilliams恒等式の証明を案内役として, テンソル積に入門することです.

MacWilliams恒等式の標準的な証明では, 各座標ごとに現れる一つの変換を,長さ nn の空間全体に拡張します. この「一座標の変換を,すべての座標へ同時に広げる」操作を最も自然に書く言葉が, テンソル積です. テンソル積を使うと,長さ nn の語

(c1,,cn)Fqn(c_{1}, \dots, c_{n}) \in \mathbb{F}_{q}^{n}

を,一座標ごとの基底ベクトルの積

ec1ecne_{c_{1}} \tensor \cdots \tensor e_{c_{n}}

として扱えます. そして,一座標の線形写像 HH は,長さ nn の空間上では

Hn=HHn 個H^{\tensor n} = \underbrace{H \tensor \cdots \tensor H}_{n\text{ 個}}

として作用します.

この見方を使うと,MacWilliams恒等式は次のように読めます.

符号 CC を,語に対応する基底ベクトルの和としてベクトル化する. 一座標のHadamard型変換をテンソル積で全座標に作用させると, そのベクトルは双対符号 CC^{\perp} の符号ベクトルの C\card{C} 倍へ移る. その後,各基底ベクトルを単項式へ読み替えると,重み多項式の変数変換が現れる.

今回の流れは次のようになります.

テンソル積 → テンソル積線形写像 → 語のテンソル表示 → 符号ベクトル → 完全重み多項式 → MacWilliams恒等式

テンソル積は,多重線形代数の基本的な道具です. 多重線形代数の標準的な参考文献としては Greub [Gre78] があり, 線形代数の発展的な教科書としては Roman [Rom08] などがあります. 本稿では一般論をすべて展開するのではなく, MacWilliams恒等式の証明に必要な範囲に絞って, 「基底を持つ有限次元ベクトル空間のテンソル積」を具体的に扱います.

一座標の情報から多座標の情報へ

まず,なぜテンソル積が自然に現れるのかを見ておきます.

有限なアルファベット集合 A\mathcal{A} を考えます. 後で A=Fq\mathcal{A} = \mathbb{F}_{q} としますが,今は単なる有限集合だと思ってください. 一座標の値は A\mathcal{A} の元です. 長さ nn の語は

An={(a1,,an):aiA}\mathcal{A}^{n} = \{ (a_{1},\dots,a_{n}) : a_{i} \in \mathcal{A} \}

の元です.

一座標の情報を扱うために,各アルファベット aAa \in \mathcal{A} に対して 基底ベクトル eae_{a} を用意します.つまり,複素ベクトル空間 UCAU \coloneqq \mathbb{C}^{\mathcal{A}} を,基底 {eaU:aA}\{ e_{a} \in U : a \in \mathcal{A} \} を持つベクトル空間として考えます. ここで CA\mathbb{C}^{\mathcal{A}} は, アルファベット集合 A\mathcal{A} 上の複素数値関数全体と見てもよいですが, 本稿では「A\mathcal{A} の元で添字づけられた基底を持つベクトル空間」と見ます.

長さ nn の語 a=(a1,,an)Ana = (a_{1}, \dots, a_{n}) \in \mathcal{A}^{n} に対して,対応する基底ベクトルを ea=ea1eane_{a} = e_{a_{1}} \tensor \dots \tensor e_{a_{n}} と書きたいのですが,このために必要となる空間が

Un=UUn 個U^{\tensor n} = \underbrace{U \tensor \cdots \tensor U}_{n\text{ 個}}

です.

すると,次の対応が得られます.

長さ nn の語 (a1,,an)An(a_{1}, \dots, a_{n}) \in \mathcal{A}^{n}nn 個の基底ベクトルのテンソル積 ea1eanUne_{a_{1}}\tensor \dots \tensor e_{a_{n}} \in U^{\tensor n}.

さらに,一座標の線形変換 H ⁣:UUH \colon U \to U が与えられたとき, それを全座標に同時に作用させる変換は

Hn ⁣:UnUnH^{\tensor n} \colon U^{\tensor n}\to U^{\tensor n}

です. これは純テンソルに対して

Hn(u1un)=H(u1)H(un)H^{\tensor n} (u_{1}\tensor \cdots \tensor u_{n}) = H(u_{1})\tensor \cdots \tensor H(u_{n})

と作用します.

この「一座標のものを nn 座標へ広げる」ための言葉がテンソル積です. MacWilliams恒等式のテンソル積証明では, 一座標のHadamard型変換を nn 回テンソル積し, それを符号全体を表すベクトルに作用させます.

テンソル積の定義:基底で作る

テンソル積には抽象的な定義が比較的主流ですが, 本稿では有限次元ベクトル空間に基底を選んだ具体的な定義から始めます.

定義3.1.

UU, VV を複素数体 C\mathbb{C} 上の有限次元ベクトル空間とする. UU の基底を e1,,ere_{1},\dots,e_{r} とし, VV の基底を f1,,fsf_{1}, \dots, f_{s} とする. このとき,UUVVテンソル積 (tensor product) UVU\tensor V とは, 記号

eifj(1ir,1js)e_{i} \tensor f_{j} \qquad (1 \leq i \leq r,\, 1 \leq j \leq s)

を基底に持つ複素ベクトル空間のことである.

この定義からすぐに

dimC(UV)=dimCUdimCV\dim_{\mathbb{C}}(U\tensor V) = \dim_{\mathbb{C}}U \cdot \dim_{\mathbb{C}}V

が分かります. つまり,rr 次元の空間と ss 次元の空間をテンソル積すると, rsrs 次元の空間ができます.

任意のベクトル

u=i=1rαieiU,v=j=1sβjfjVu=\sum_{i=1}^{r}\alpha_{i}e_{i}\in U, \qquad v=\sum_{j=1}^{s}\beta_{j}f_{j}\in V

に対して,uvUVu\tensor v\in U\tensor V

uv=i=1rj=1sαiβj(eifj)u \tensor v = \sum_{i=1}^{r} \sum_{j=1}^{s} \alpha_{i}\beta_{j} (e_{i}\tensor f_{j})

で定めます.この形の元を純テンソル (pure tensor) と呼びます.

定義から,次の双線形性が成り立ちます:

(u+u)v=uv+uv,u(v+v)=uv+uv,(λu)v=u(λv)=λ(uv).\begin{aligned} (u + u^{\prime}) \tensor v &= u \tensor v + u^{\prime} \tensor v,\\ u \tensor (v + v^{\prime}) &= u \tensor v + u \tensor v^{\prime},\\ (\lambda u) \tensor v &= u \tensor (\lambda v) = \lambda (u\tensor v). \end{aligned}

ここで λC\lambda\in\mathbb{C} です. つまり,テンソル積は各変数について線形です.

ただし,UVU \tensor V の任意の元が一つの純テンソル uvu \tensor v として書けるわけではありません. 一般の元は,純テンソルの有限和として書けます. たとえば

e1f1+e2f2e_{1} \tensor f_{1} + e_{2} \tensor f_{2}

は,通常,一つの純テンソルには分解できません. この点は,テンソル積に慣れるうえで重要です.

例3.2.

U=C2U = \mathbb{C}^{2} の基底を e0,e1e_{0}, e_{1} とし, V=C3V = \mathbb{C}^{3} の基底を f0,f1,f2f_{0}, f_{1}, f_{2} とする. このとき UVU \tensor V は,次の六つの基底を持つ:

e0f0,e0f1,e0f2,e1f0,e1f1,e1f2.e_{0} \tensor f_{0},\, e_{0} \tensor f_{1},\, e_{0} \tensor f_{2}, \, e_{1} \tensor f_{0},\, e_{1} \tensor f_{1},\, e_{1}\tensor f_{2}.

したがって dim(UV)=6\dim(U \tensor V) = 6 である.

上の定義は基底に依存しているように見えます. 実際,具体的な構成では基底を使いました. しかし,基底の取り方を変えても,得られるテンソル積は自然な同型を除いて同じものになります. この基底に依存しない特徴づけが,次の普遍性です.

定義3.3.

UU, VV, WW を複素ベクトル空間とする. 写像 B ⁣:U×VWB \colon U \times V \to W双線形 (bilinear) であるとは, uu を固定すると vB(u,v)v \mapsto B(u,v) が線形であり, vv を固定すると uB(u,v)u \mapsto B(u,v) が線形であることをいう.

定理3.4(テンソル積の普遍性).

UU, VV を上で基底を選んで構成した有限次元ベクトル空間とする. このとき,任意の複素ベクトル空間 WW と任意の双線形写像 B ⁣:U×VWB \colon U \times V \to W に対して, ただ一つの線形写像 B~ ⁣:UVW\widetilde{B} \colon U \tensor V \to W が存在して,

B~(uv)=B(u,v)(uU,vV)\widetilde{B}(u\tensor v)=B(u,v) \qquad (u \in U,\, v \in V)

が成り立つ.

証明

UU の基底を e1,,ere_{1}, \dots, e_{r}VV の基底を f1,,fsf_{1}, \dots, f_{s} とする. UVU \tensor Veifje_{i} \tensor f_{j} を基底に持つので, 線形写像 B~\widetilde{B} を定めるには,基底上の値を決めれば十分である. そこで

B~(eifj)=B(ei,fj)\widetilde{B}(e_{i} \tensor f_{j}) = B(e_{i}, f_{j})

と定め,線形に延長する.

u=iαieiu = \sum_{i} \alpha_{i} e_{i}v=jβjfjv = \sum_{j} \beta_{j} f_{j} と書くと,

B~(uv)=B~(i,jαiβj(eifj))=i,jαiβjB(ei,fj)=B(iαiei,jβjfj)=B(u,v).\begin{aligned} \widetilde{B}(u \tensor v) &= \widetilde{B}\left( \sum_{i,j} \alpha_{i} \beta_{j}(e_{i} \tensor f_{j}) \right)\\ &= \sum_{i, j} \alpha_{i} \beta_{j} B(e_{i}, f_{j}) \\ &= B\left(\sum_{i} \alpha_{i} e_{i}, \sum_{j} \beta_{j} f_{j} \right)\\ &= B(u,v). \end{aligned}

最後の等号では BB の双線形性を使った.

一意性は,eifje_{i} \tensor f_{j}UVU \tensor V の基底であり, それぞれ eifje_{i} \tensor f_{j} が純テンソルであることから従う. つまり,B~(eifj)\widetilde{B}(e_{i} \tensor f_{j})B(ei,fj)B(e_{i}, f_{j}) でなければならない.

証明終わり

この定理は,テンソル積を

双線形な操作を線形な操作として扱えるようにする装置

と見るための基本原理です. 本稿のMacWilliams恒等式の証明では, 座標ごとの積

i=1nZci\prod_{i = 1}^{n} Z_{c_{i}}

をテンソル積上の線形写像として扱います. この「積を線形化する」感覚が,テンソル積の大事な役割です.

多くのベクトル空間のテンソル積

長さ nn の語を扱うには,二つの空間だけでなく,nn 個の空間のテンソル積が必要です.

同じベクトル空間 UUnn 個用意したとき,そのテンソル積を

Un=UUn 個U^{\tensor n} = \underbrace{U\tensor\cdots\tensor U}_{n\text{ 個}}

と書きます. UU の基底が {eaU:aA}\{ e_{a} \in U : a \in \mathcal{A} \} であるとします. このとき UnU^{\tensor n}

ea1ean((a1,,an)An)e_{a_{1}}\tensor \cdots \tensor e_{a_{n}} \qquad ((a_{1},\dots,a_{n})\in \mathcal{A}^{n})

を基底に持ちます. したがって

dimUn=An\dim U^{\tensor n} = \card{\mathcal{A}}^{n}

です.

この基底は,長さ nn の語と一対一に対応しています. そこで,a=(a1,,an)Ana = (a_{1}, \dots, a_{n}) \in \mathcal{A}^{n} に対して

eaea1eane_{a} \coloneqq e_{a_{1}} \tensor \dots \tensor e_{a_{n}}

と略記します.すると {eaUn:aAn}\{ e_{a} \in U^{\tensor n} : a \in \mathcal{A}^{n} \}UnU^{\tensor n} の基底です.

以後,座標集合 EE が一般の有限集合であっても,記法を軽くするため

UE=iEUU^{\tensor E} = \bigotimes_{i \in E} U

と書きます. 厳密にはテンソル積を書くには座標の順序を一つ選びますが, 本稿の計算は座標の並べ方に依存しません. 読者は E={1,,n}E = \{ 1, \dots, n \} と考えて読んで問題ありません.

テンソル積線形写像とKronecker積

テンソル積で重要なのは,ベクトルだけでなく線形写像もテンソル積できることです.

定義5.1.

A ⁣:UUA \colon U \to U^{\prime}B ⁣:VVB \colon V \to V^{\prime} を線形写像とする. このとき,線形写像

AB ⁣:UVUVA \tensor B \colon U \tensor V\to U^{\prime}\tensor V^{\prime}

を,純テンソル上で

(AB)(uv)=A(u)B(v)(A\tensor B)(u\tensor v) = A(u)\tensor B(v)

と定める.これを AABBテンソル積線形写像 (tensor product linear map) という.

この定義が一意的に線形写像を定めるのは, 右辺が (u,v)(u,v) に関して双線形であり, 定理 3.4 が使えるからです.

同じ線形写像 H ⁣:UUH \colon U \to Unn 個テンソル積したものを

Hn=HHn 個H^{\tensor n} = \underbrace{H \tensor \dots \tensor H}_{n\text{ 個}}

と書きます. 純テンソルに対しては

Hn(u1un)=H(u1)H(un)H^{\tensor n}(u_{1} \tensor \dots \tensor u_{n}) = H(u_{1}) \tensor \dots \tensor H(u_{n})

です.

行列で見ると,テンソル積線形写像はKronecker積になります. 例えば

A=(a11a12a21a22),B=(b11b12b21b22)A= \begin{pmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{pmatrix}, \qquad B= \begin{pmatrix} b_{11} & b_{12}\\ b_{21} & b_{22} \end{pmatrix}

なら,

AB=(a11Ba12Ba21Ba22B)A \tensor B = \begin{pmatrix} a_{11}B & a_{12}B\\ a_{21}B & a_{22}B \end{pmatrix}

です.つまり,

AB=(a11b11a11b12a12b11a12b12a11b21a11b22a12b21a12b22a21b11a21b12a22b11a22b12a21b21a21b22a22b21a22b22)A \tensor B = \begin{pmatrix} a_{11}b_{11} & a_{11}b_{12} & a_{12}b_{11} & a_{12}b_{12}\\ a_{11}b_{21} & a_{11}b_{22} & a_{12}b_{21} & a_{12}b_{22}\\ a_{21}b_{11} & a_{21}b_{12} & a_{22}b_{11} & a_{22}b_{12}\\ a_{21}b_{21} & a_{21}b_{22} & a_{22}b_{21} & a_{22}b_{22} \end{pmatrix}

です. 文献によっては,この行列を ABA \otimes B のKronecker積と呼びます.

Kronecker積の行列計算そのものについては, Horn–Johnson [HJ91, Chapter 4] が標準的な参考文献です. また,応用も含めた概観としては Van Loan [Van00] も読みやすいとされています. 本稿で必要なのは,テンソル積線形写像を基底で表示すると Kronecker積になる,という一点です.

例5.2(二元の場合のHadamard行列).

F2={0,1}\mathbb{F}_{2} = \{ 0, 1 \} の一座標変換として

H2=(1111)H_{2} = \begin{pmatrix} 1 & 1\\ 1 & -1 \end{pmatrix}

を考える. 行と列を 00, 11 で添字づけると,これは

(H2)a,b=(1)ab(a,bF2)(H_{2})_{a,b} = (-1)^{ab} \qquad (a, b \in \mathbb{F}_{2})

と書ける.

長さ二の語に対する変換は H2H2H_{2} \tensor H_{2} である. 語を,行も列も 0000, 0101, 1010, 1111 の順に並べ, 行を uu,列を cc で添字づけて見る.

H2H2=(1111111111111111).H_{2}\tensor H_{2} = \begin{pmatrix} 1 & 1 & 1 & 1\\ 1 & -1 & 1 & -1\\ 1 & 1 & -1 & -1\\ 1 & -1 & -1 & 1 \end{pmatrix}.

この行列の (u,c)(u,c) 成分は

(1)uc(-1)^{u \cdot c}

である.つまり,一座標の行列をテンソル平方すると, 長さ 22 の内積に対応する行列が現れる.

この例が,今回の証明の雛形です. 一般の Fq\mathbb{F}_{q} でも,一座標のHadamard型行列を作り, それをテンソル積することで,長さ nn の空間全体に作用する変換を作ります.

有限体の一座標Hadamard型変換

ここから有限体 Fq\mathbb{F}_{q} に戻ります. q=pmq = p^{m} と書きます. 有限体 Fq\mathbb{F}_{q} は,素体 Fp\mathbb{F}_{p} 上の mm 次元ベクトル空間と見ることができます.

そこで,Fp\mathbb{F}_{p} 上における Fq\mathbb{F}_{q} の基底 β1,,βm\beta_{1}, \dots, \beta_{m} を一つ選びます. すると任意の xFqx \in \mathbb{F}_{q} は一意的に

x=x1β1++xmβm(xiFp)x = x_{1}\beta_{1} + \dots + x_{m} \beta_{m} \qquad (x_{i} \in \mathbb{F}_{p})

と書けます.

ζexp(2π1/p)\zeta \coloneqq \exp(2\pi\sqrt{-1}/p) とおき, xx の第1座標 x1x_{1} を用いて

θ(x)ζx1\theta(x) \coloneqq \zeta^{x_1}

と定めます. ここで x1Fpx_{1} \in \mathbb{F}_{p} は,代表元 0,1,,p10, 1, \dots, p-1 と見て指数に入れています.

この関数 θ ⁣:FqC×\theta \colon \mathbb{F}_{q} \to \mathbb{C}^{\times} は, 次の二つの性質を持ちます:

θ(x+y)=θ(x)θ(y),θ(β1)=ζ1.\theta(x + y) = \theta(x)\theta(y), \qquad \theta(\beta_{1}) = \zeta \neq 1.

つまり,θ\theta は足し算を掛け算に変える,非定数関数です 1.本稿で必要なのは,この二つの性質だけです.

MacWilliams恒等式のテンソル積証明で必要になる指標の性質は,次の一つです.

補題6.1.

bFqb \in \mathbb{F}_{q} に対して

aFqθ(ab)={q,b=0,0,b0\sum_{a \in \mathbb{F}_{q}} \theta(ab) = \begin{cases} q, & b=0,\\ 0, & b\neq 0 \end{cases}

が成り立つ.

証明

b=0b = 0 なら,すべての aa に対して θ(ab)=θ(0)=1\theta(ab) = \theta(0) = 1 なので,和は qq である.

b0b\neq 0 とする. このとき aaba\mapsto abFq\mathbb{F}_{q} の全単射なので,

aFqθ(ab)=tFqθ(t)\sum_{a\in\mathbb{F}_{q}}\theta(ab) = \sum_{t\in\mathbb{F}_{q}}\theta(t)

である.右辺を SS とおく.

ttFq\mathbb{F}_{q} 全体を動くとき, t+β1t+\beta_1Fq\mathbb{F}_{q} 全体を動く.したがって

S=tFqθ(t+β1)=tFqθ(t)θ(β1)=θ(β1)S.S = \sum_{t\in\mathbb{F}_{q}}\theta(t+\beta_1) = \sum_{t\in\mathbb{F}_{q}}\theta(t)\theta(\beta_1) = \theta(\beta_1)S.

ところが θ(β1)=ζ1\theta(\beta_{1}) = \zeta \neq 1 なので,S=0S=0 である.

証明終わり

一座標の複素ベクトル空間を U=CFqU = \mathbb{C}^{\mathbb{F}_{q}} とし, 基底を {eaU:aFq}\{ e_{a} \in U :a\in\mathbb{F}_{q} \} とします. 一座標のHadamard型変換 H ⁣:UU\mathcal{H} \colon U \to U を,基底上で

H(eb)aFqθ(ab)ea(bFq)\mathcal{H}(e_{b}) \coloneqq \sum_{a\in\mathbb{F}_{q}}\theta(ab)e_{a} \qquad (b\in\mathbb{F}_{q})

と定めます. 行列で書けば,行と列を Fq\mathbb{F}_{q} の元で添字づけた

Ha,b=θ(ab)\mathcal{H}_{a,b}=\theta(ab)

という q×qq \times q 行列です.

この行列は,有限体上のFourier行列です. ただし本稿では,Fourier解析そのものではなく, この一座標行列をテンソル積で全座標へ拡張する過程に注目します.

命題6.2.

H\mathcal{H} の列は互いに直交し,

HH=qI\mathcal{H}^{\ast} \mathcal{H} = qI

が成り立つ.

証明

bb と列 bb^{\prime} の内積は

aFqθ(ab)θ(ab)=aFqθ(a(bb)).\sum_{a\in\mathbb{F}_{q}} \overline{\theta(ab)}\theta(ab^{\prime}) = \sum_{a\in\mathbb{F}_{q}}\theta(a(b^{\prime}-b)).

ここで,θ(x)=θ(x)\overline{\theta(x)}=\theta(-x) を用いた. 補題 6.1 より,これは

{q,b=b,0,bb\begin{cases} q, & b=b^{\prime},\\ 0, & b\neq b^{\prime} \end{cases}

である. よって HH=qI\mathcal{H}^{\ast} \mathcal{H} = qI である.

証明終わり

この命題は,H\mathcal{H} がHadamard行列の有限体版であることを示しています. 正規化すれば q1/2Hq^{-1/2}\mathcal{H} はユニタリ行列になります. しかし,MacWilliams恒等式そのものには,このユニタリ性よりも, 後で見る「符号ベクトルを双対符号ベクトルへ送る」という性質が重要です.

語と符号をテンソル積の中で見る

以後,EE を有限座標集合とし,n=En = \card{E} とします. 説明を簡単にするため,必要に応じて E={1,,n}E = \{ 1, \dots, n \} と考えてください.

一座標空間 U=CFqU = \mathbb{C}^{\mathbb{F}_{q}} から,多座標空間

UE=iEUU^{\tensor E} = \bigotimes_{i \in E} U

を作ります.語 v=(vi)iEFqEv = (v_{i})_{i\in E} \in \mathbb{F}_{q}^{E} に対して

eviEevie_{v} \coloneqq \bigotimes_{i \in E} e_{v_{i}}

と書きます.すると

{evUE:vFqE}\{ e_{v} \in U^{\tensor E} : v \in \mathbb{F}_{q}^{E}\}

UEU^{\tensor E} の基底です.

定義7.1.

符号 CFqEC \leq \mathbb{F}_{q}^{E} に対して,

γCcCecUE\gamma_{C} \coloneqq \sum_{c\in C}e_c \in U^{\tensor E}

と定める.これを CC符号ベクトル (code vector) と呼ぶことにする.

符号ベクトル γC\gamma_{C} は,符号語をすべて基底ベクトルとして足し合わせたものです. これは符号 CC の指示関数を,基底ベクトルの和として書いたものだと思えます. 例えば C={00,11}F22C = \{ 00, 11 \} \leq \mathbb{F}_{2}^{2} なら

γC=e00+e11=e0e0+e1e1\gamma_{C} = e_{00} + e_{11} = e_{0} \tensor e_{0} + e_{1} \tensor e_{1}

です.

一座標変換 H\mathcal{H} を全座標へ広げたものを

HE=iEH ⁣:UEUE\mathcal{H}^{\tensor E} = \bigotimes_{i \in E} \mathcal{H} \colon U^{\tensor E} \to U^{\tensor E}

と書きます.基底ベクトル ece_{c} への作用を計算すると,

HE(ec)=iEH(eci)=iE(uiFqθ(uici)eui)=uFqE(iEθ(uici))eu=uFqEθ(iEuici)eu=uFqEθ(uc)eu.\begin{aligned} \mathcal{H}^{\tensor E}(e_{c}) &= \bigotimes_{i \in E}\mathcal{H}(e_{c_{i}})\\ &= \bigotimes_{i \in E} \left( \sum_{u_{i} \in \mathbb{F}_{q}}\theta(u_{i} c_{i}) e_{u_{i}} \right)\\ &= \sum_{u \in \mathbb{F}_{q}^{E}} \left( \prod_{i \in E} \theta(u_{i} c_{i}) \right) e_{u}\\ &= \sum_{u\in\mathbb{F}_{q}^{E}} \theta\left(\sum_{i\in E}u_i c_i\right)e_u\\ &= \sum_{u\in\mathbb{F}_{q}^{E}} \theta(u \cdot c) e_{u}. \end{aligned}

ここで uc=iEuiciu \cdot c = \sum_{i \in E} u_{i} c_{i} です.

この式が,テンソル積証明の中心です. 一座標では θ(ab)\theta(ab) という係数が出ていました. テンソル積を取ると,座標ごとの係数が掛け合わされ, 加法指標の性質によって

iEθ(uici)=θ(iEuici)\prod_{i\in E}\theta(u_i c_i) = \theta\left(\sum_{i\in E}u_i c_i\right)

となります. つまり,テンソル積によって座標ごとの係数が掛け合わされ, さらに θ\theta の性質によって,その積が長さ nn の内積 ucu \cdot c を含む係数 θ(uc)\theta(u\cdot c) にまとめられます.

テンソル積変換は符号を双対符号へ送る

前節の計算を符号ベクトル γC\gamma_{C} に適用します. すると

HEγC=cCHEec=cCuFqEθ(uc)eu=uFqE(cCθ(uc))eu.\begin{aligned} \mathcal{H}^{\tensor E}\gamma_{C} &= \sum_{c\in C}\mathcal{H}^{\tensor E} e_{c} \\ &= \sum_{c\in C} \sum_{u \in \mathbb{F}_{q}^{E}}\theta(u \cdot c) e_{u} \\ &= \sum_{u \in \mathbb{F}_{q}^{E}} \left( \sum_{c \in C}\theta(u \cdot c) \right)e_u. \end{aligned}

したがって,係数として

cCθ(uc)\sum_{c \in C} \theta(u \cdot c)

が現れます.この和は,uuCC^{\perp} に入っているかどうかを判定します.

補題8.1.

任意の uFqEu \in \mathbb{F}_{q}^{E} に対して

cCθ(uc)={C,uC,0,uC\sum_{c \in C} \theta(u \cdot c) = \begin{cases} \card{C}, & u \in C^{\perp},\\ 0, & u \notin C^{\perp} \end{cases}

が成り立つ.

証明

uCu \in C^{\perp} なら,任意の cCc\in C に対して uc=0u \cdot c=0 である. したがって各項は θ(0)=1\theta(0) = 1 であり,和は C\card{C} である.

次に uCu\notin C^{\perp} とする. このとき,ある c0Cc_{0} \in C が存在して d=uc00d = u \cdot c_{0} \neq 0 となる. d0d \neq 0 なので,aada \mapsto adFq\mathbb{F}_{q} の全単射である. よって,ある aFqa \in \mathbb{F}_{q} が存在して ad=β1ad = \beta_{1} となる.したがって

θ(ad)=θ(β1)=ζ1.\theta(ad) = \theta(\beta_{1}) = \zeta \neq 1.

和を ScCθ(uc)\displaystyle S \coloneqq \sum_{c\in C}\theta(u\cdot c) とおく. CC は線形符号なので ac0Cac_{0} \in C であり, ccCC 全体を動くとき,c+ac0c+ac_0CC 全体を一度ずつ動く. よって

S=cCθ(u(c+ac0))=cCθ(uc)θ(a(uc0))=θ(ad)S.S = \sum_{c\in C}\theta(u\cdot(c+ac_0)) = \sum_{c\in C}\theta(u\cdot c)\theta(a(u\cdot c_0)) = \theta(ad)S.

いま θ(ad)1\theta(ad) \neq 1 なので,S=0S = 0 である.

証明終わり

定理8.2.

符号ベクトルに対して

HEγC=CγC\mathcal{H}^{\tensor E}\gamma_{C} = \card{C}\,\gamma_{C^{\perp}}

が成り立つ.

証明

上で計算したように,

HEγC=uFqE(cCθ(uc))eu\mathcal{H}^{\tensor E}\gamma_C = \sum_{u\in\mathbb{F}_{q}^{E}} \left( \sum_{c\in C}\theta(u\cdot c) \right)e_u

である. 補題 8.1 より,内側の和は uCu\in C^{\perp} のとき C\card{C},そうでないとき 00 である. したがって

HEγC=CuCeu=CγC\mathcal{H}^{\tensor E}\gamma_C = \card{C} \sum_{u\in C^{\perp}}e_u = \card{C}\,\gamma_{C^{\perp}}

となる.

証明終わり

この定理は,今回の証明の線形代数的な核心です. MacWilliams恒等式を多項式の恒等式として見る前に, テンソル積空間の中では次の単純な等式が成り立っています:

HEγC=CγC.\mathcal{H}^{\tensor E}\gamma_C = \card{C}\,\gamma_{C^{\perp}}.

つまり,一座標のHadamard型変換を全座標にテンソル積で作用させると, 符号 CC を表すベクトルが,双対符号 CC^{\perp} を表すベクトルへ移ります.

完全重み多項式:テンソルを単項式へ読む

ここまでで,符号をテンソル積空間のベクトルとして扱いました. 次に,このベクトルを多項式へ読み替えます. このとき自然に現れるのが完全重み多項式です.

通常のHamming重み多項式では,各座標について

0X,非零元Y0 \mapsto X, \qquad \text{非零元} \mapsto Y

とだけ区別します. 一方,完全重み多項式では,有限体の各元ごとに別々の変数を用意します.

定義9.1.

aFqa\in\mathbb{F}_{q} に対して変数 ZaZ_a を用意する. 符号 CFqEC\leq\mathbb{F}_{q}^{E}完全重み多項式 (complete weight enumerator) を

cweC((Za)aFq)=cCiEZci\cwe_C((Z_a)_{a\in\mathbb{F}_{q}}) = \sum_{c\in C}\prod_{i\in E}Z_{c_i}

で定める.

完全重み多項式とMacWilliams恒等式については, MacWilliams–Sloane [MS77, Chapters 5 and 19] が古典的な標準文献です.

通常のHamming重み多項式は,完全重み多項式の特殊化です. 実際,

Z0=X,Za=Y(a0)Z_0=X, \qquad Z_a=Y\quad(a\neq 0)

と置くと,

iEZci=Xnwt(c)Ywt(c)\prod_{i\in E}Z_{c_i} = X^{n-\wt(c)}Y^{\wt(c)}

です. したがって

WC(X,Y)=cweC((Za))Z0=X, Za=Y (a0)W_C(X,Y) = \cwe_C((Z_a))\bigg|_{Z_0=X,\ Z_a=Y\ (a\neq 0)}

となります.

テンソル積の言葉では,完全重み多項式はとても自然です. 一座標の空間 UU から多項式環

R=C[Za:aFq]R=\mathbb{C}[Z_a:a\in\mathbb{F}_{q}]

への線形写像

m1 ⁣:URm_1\colon U\to R

m1(ea)=Zam_1(e_a)=Z_a

で定めます. すると,テンソル積の普遍性により,EE 座標版の線形写像 mE ⁣:UERm_{E} \colon U^{\tensor E}\to R

mE(iEeci)=iEZcim_{E} \left( \bigotimes_{i \in E} e_{c_{i}} \right) = \prod_{i \in E} Z_{c_i}

で定めることができます. つまり,

mE(ec)=iEZcim_{E}(e_{c}) = \prod_{i \in E}Z_{c_i}

です2.この線形写像が,テンソルを単項式として読む写像です.

この記号を使うと,

cweC((Za))=mE(γC)\cwe_C((Z_a)) = m_E(\gamma_C)

となります. 符号ベクトル γC\gamma_C を,基底ベクトルを単項式へ送る写像 mEm_E で読むと, 完全重み多項式が出てくるわけです.

完全重み多項式版MacWilliams恒等式

定理 8.2 を完全重み多項式に翻訳します.

まず,一座標の変数変換を定義します. bFqb\in\mathbb{F}_{q} に対して

ZbHaFqθ(ab)ZaZ_b^{\mathcal{H}} \coloneqq \sum_{a\in\mathbb{F}_{q}}\theta(ab)Z_a

とおきます. これは,H(eb)\mathcal{H}(e_b)m1m_1 で読んだものです. 実際,

m1(H(eb))=m1(aFqθ(ab)ea)=aFqθ(ab)Za=ZbH.m_1(\mathcal{H}(e_b)) = m_1\left(\sum_{a\in\mathbb{F}_{q}}\theta(ab)e_a\right) = \sum_{a\in\mathbb{F}_{q}}\theta(ab)Z_a = Z_b^{\mathcal{H}}.

今,

HEec=iE(uiFqθ(uici)eui)\mathcal{H}^{\tensor E} e_{c} = \bigotimes_{i \in E} \left(\sum_{u_{i} \in \mathbb{F}_{q}} \theta(u_{i} c_{i}) e_{u_{i}} \right)

なので,これを展開して mEm_{E} で読むと

mE(HEec)=uFqE(iEθ(uici))iEZui=iE(uiFqθ(uici)Zui)=iEZciH\begin{aligned} m_{E}(\mathcal H^{\tensor E}e_{c}) &= \sum_{u \in \mathbb{F}_{q}^{E}} \left(\prod_{i \in E}\theta(u_{i}c_{i})\right) \prod_{i \in E}Z_{u_{i}}\\ &= \prod_{i \in E} \left(\sum_{u_{i} \in \mathbb{F}_{q}} \theta(u_{i}c_{i})Z_{u_{i}}\right)\\ &= \prod_{i\in E}Z_{c_{i}}^{\mathcal{H}} \end{aligned}

が成り立ちます.

定理10.1(完全重み多項式版MacWilliams恒等式).

CFqEC\leq\mathbb{F}_{q}^{E} を線形符号とする. このとき

cweC((Za)aFq)=1CcweC((ZbH)bFq)\cwe_{C^{\perp}}((Z_a)_{a\in\mathbb{F}_{q}}) = \frac{1}{\card{C}} \cwe_C((Z_b^{\mathcal{H}})_{b\in\mathbb{F}_{q}})

が成り立つ. ここで

ZbH=aFqθ(ab)ZaZ_b^{\mathcal{H}} = \sum_{a\in\mathbb{F}_{q}}\theta(ab)Z_a

である.

証明

定理 8.2 より

HEγC=CγC\mathcal{H}^{\tensor E}\gamma_C = \card{C}\gamma_{C^{\perp}}

である.両辺に mEm_E を適用すると,

mE(HEγC)=CmE(γC)=CcweC((Za)).m_E(\mathcal{H}^{\tensor E}\gamma_C) = \card{C}\,m_E(\gamma_{C^{\perp}}) = \card{C}\,\cwe_{C^{\perp}}((Z_a)).

一方,

mE(HEγC)=cCmE(HEec)=cCiEZciH=cweC((ZbH)bFq).\begin{aligned} m_E(\mathcal{H}^{\tensor E}\gamma_C) &= \sum_{c\in C}m_E(\mathcal{H}^{\tensor E}e_c)\\ &= \sum_{c\in C}\prod_{i\in E}Z_{c_i}^{\mathcal{H}}\\ &= \cwe_C((Z_b^{\mathcal{H}})_{b\in\mathbb{F}_{q}}). \end{aligned}

よって

CcweC((Za))=cweC((ZbH)bFq)\card{C}\,\cwe_{C^{\perp}}((Z_a)) = \cwe_C((Z_b^{\mathcal{H}})_{b\in\mathbb{F}_{q}})

であり,両辺を C\card{C} で割ればよい.

証明終わり

これはHamming重み多項式のMacWilliams恒等式より少し強い形です. 完全重み多項式の変数変換を,テンソル積線形写像 HE\mathcal{H}^{\tensor E} から得ています.

Hamming重み多項式への特殊化

完全重み多項式版の恒等式を,Hamming重み多項式へ特殊化します. 変数を

Z0=X,Za=Y(a0)Z_0=X, \qquad Z_a=Y\quad(a\neq 0)

と置きます.

まず b=0b=0 の場合を計算します.

Z0H=aFqθ(a0)Za=aFqZa=X+(q1)Y.\begin{aligned} Z_0^{\mathcal{H}} &= \sum_{a\in\mathbb{F}_{q}}\theta(a\cdot 0)Z_a\\ &= \sum_{a\in\mathbb{F}_{q}}Z_a\\ &= X+(q-1)Y. \end{aligned}

次に b0b\neq 0 とします. このとき

ZbH=aFqθ(ab)Za=X+YaFq×θ(ab).\begin{aligned} Z_b^{\mathcal{H}} &= \sum_{a\in\mathbb{F}_{q}}\theta(ab)Z_a\\ &= X + Y\sum_{a\in\mathbb{F}_{q}^{\times}}\theta(ab). \end{aligned}

補題 6.1 より

aFqθ(ab)=0\sum_{a\in\mathbb{F}_{q}}\theta(ab)=0

なので,

aFq×θ(ab)=θ(0)=1.\sum_{a\in\mathbb{F}_{q}^{\times}}\theta(ab) = -\theta(0) = -1.

したがって

ZbH=XY(b0)Z_b^{\mathcal{H}}=X-Y \qquad (b\neq 0)

です.

したがって,完全重み多項式版MacWilliams恒等式

cweC((Za))=1CcweC((ZbH))\cwe_{C^{\perp}}((Z_a)) = \frac{1}{\card{C}}\cwe_C((Z_b^{\mathcal{H}}))

に特殊化を施すと, 左辺は

WC(X,Y)W_{C^{\perp}}(X,Y)

となり,右辺は

1CWC(X+(q1)Y,XY)\frac{1}{\card{C}} W_C\bigl(X+(q-1)Y,X-Y\bigr)

となります.

これで通常のHamming重み多項式に対するMacWilliams恒等式

WC(X,Y)=1CWC(X+(q1)Y,XY)W_{C^{\perp}}(X,Y) = \frac{1}{\card{C}} W_C\bigl(X+(q-1)Y,X-Y\bigr)

が得られました.

小さな例:符号長 22 の二元反復符号

テンソル積証明が何をしているかを, 符号長 22 の二元反復符号で確認します.

C={00,11}F22C=\{00,11\}\leq\mathbb{F}_{2}^{2}

とします. F2\mathbb{F}_{2} の非自明加法指標は

θ(a)=(1)a\theta(a)=(-1)^a

です. 一座標のHadamard型行列は

H2=(1111)H_2= \begin{pmatrix} 1 & 1\\ 1 & -1 \end{pmatrix}

です.

符号ベクトルは

γC=e00+e11=e0e0+e1e1\gamma_C=e_{00}+e_{11} = e_0\tensor e_0+e_1\tensor e_1

です. この符号は自己双対なので,C=CC^{\perp}=C です. 実際,u=(u1,u2)u=(u_1,u_2)1111 と直交する条件は

u1+u2=0u_1+u_2=0

であり,これは u=00u=00 または u=11u=11 を意味します.

H2H2H_2\tensor H_2γC\gamma_C に作用させます. まず

(H2H2)e00=(e0+e1)(e0+e1)=e00+e01+e10+e11,\begin{aligned} (H_2\tensor H_2)e_{00} &= (e_0+e_1)\tensor(e_0+e_1)\\ &= e_{00}+e_{01}+e_{10}+e_{11}, \end{aligned}

また

(H2H2)e11=(e0e1)(e0e1)=e00e01e10+e11.\begin{aligned} (H_2\tensor H_2)e_{11} &= (e_0-e_1)\tensor(e_0-e_1)\\ &= e_{00}-e_{01}-e_{10}+e_{11}. \end{aligned}

したがって

(H2H2)γC=2e00+2e11=2γC=CγC.\begin{aligned} (H_2\tensor H_2)\gamma_C &= 2e_{00}+2e_{11}\\ &= 2\gamma_C\\ &= \card{C}\gamma_{C^{\perp}}. \end{aligned}

これは 定理 8.2 の具体例です.

完全重み多項式は

cweC(Z0,Z1)=Z02+Z12\cwe_C(Z_0,Z_1)=Z_0^2+Z_1^2

です. 一座標の変数変換は

Z0H=Z0+Z1,Z1H=Z0Z1Z_0^{\mathcal{H}}=Z_0+Z_1, \qquad Z_1^{\mathcal{H}}=Z_0-Z_1

です. したがって

1CcweC(Z0H,Z1H)=12((Z0+Z1)2+(Z0Z1)2)=Z02+Z12=cweC(Z0,Z1).\begin{aligned} \frac{1}{\card{C}}\cwe_C(Z_0^{\mathcal H},Z_1^{\mathcal H}) &= \frac{1}{2}\left((Z_0+Z_1)^2+(Z_0-Z_1)^2\right)\\ &= Z_0^2+Z_1^2\\ &= \cwe_{C^{\perp}}(Z_0,Z_1). \end{aligned}

最後に Z0=XZ_0=X, Z1=YZ_1=Y とすれば

WC(X,Y)=X2+Y2W_C(X,Y)=X^2+Y^2

に対するMacWilliams恒等式が得られます.

この証明でテンソル積は何をしていたか

証明の中でテンソル積が担っていた役割を整理しておきます.

第一に,テンソル積は語を基底ベクトルとして表しました. 一座標の基底を

{ea:aFq}\{e_a:a\in\mathbb{F}_{q}\}

とすると,長さ nn の語 c=(ci)c=(c_i)

ec=iEecie_c=\bigotimes_{i\in E}e_{c_i}

として表されます. これにより,符号 CC

γC=cCec\gamma_C=\sum_{c\in C}e_c

という一つのベクトルになります.

第二に,テンソル積は一座標の変換を全座標へ広げました. 一座標のHadamard型変換

H(eb)=aFqθ(ab)ea\mathcal{H}(e_b)=\sum_{a\in\mathbb{F}_{q}}\theta(ab)e_a

を,長さ nn の空間上では

HE\mathcal{H}^{\tensor E}

として作用させました. その結果,

HEec=uFqEθ(uc)eu\mathcal{H}^{\tensor E}e_c = \sum_{u\in\mathbb{F}_{q}^{E}}\theta(u\cdot c)e_u

が得られました. 座標ごとの係数 θ(uici)\theta(u_i c_i) が掛け合わされることで, 全体の内積 ucu\cdot c が現れます.

第三に,テンソル積は完全重み多項式を自然に作りました. 一座標で

eaZae_a\mapsto Z_a

と読めば,テンソル積上では

ec1ecnZc1Zcne_{c_1}\tensor\cdots\tensor e_{c_n} \mapsto Z_{c_1}\cdots Z_{c_n}

となります. これにより,符号ベクトル γC\gamma_C を完全重み多項式

cweC((Za))=cCiEZci\cwe_C((Z_a))=\sum_{c\in C}\prod_{i\in E}Z_{c_i}

として読めました.

つまり,今回の証明ではテンソル積が

  1. 語をベクトル化する,

  2. 一座標変換を多座標変換へ持ち上げる,

  3. 座標ごとの単項式の積を線形写像として扱う,

という三つの役割を果たしていました.

この回で見た概念

この回では,MacWilliams恒等式の証明を目標にしながら, テンソル積線形代数の基本的な道具を導入しました. 整理すると次のようになります.

テンソル積

ベクトル空間 U,VU,V から作るベクトル空間 UVU\tensor V です. 基底 eie_ifjf_j を選ぶと,eifje_i\tensor f_j が基底になります.

純テンソル

uUu\in UvVv\in V から作られる元 uvUVu\tensor v\in U\tensor V です. 一般のテンソルは純テンソルの和として書けますが, 一つの純テンソルとして書けるとは限りません.

普遍性

テンソル積は,双線形写像を線形写像として扱うための装置です. 双線形写像 B ⁣:U×VWB\colon U\times V\to W は, 一意的な線形写像 B~ ⁣:UVW\widetilde B\colon U\tensor V\to W に対応します.

テンソル積線形写像

線形写像 A ⁣:UUA\colon U\to U'B ⁣:VVB\colon V\to V' から, 線形写像 AB ⁣:UVUVA\tensor B\colon U\tensor V\to U'\tensor V' が得られます. 純テンソル上では

(AB)(uv)=A(u)B(v)(A\tensor B)(u\tensor v)=A(u)\tensor B(v)

と作用します.

Kronecker積

基底を選んで行列で表したテンソル積線形写像です. 一座標の行列を nn 回Kronecker積すると,長さ nn の語全体に作用する行列が得られます.

符号ベクトル

符号 CC

γC=cCec\gamma_C=\sum_{c\in C}e_c

というテンソル積空間のベクトルとして表したものです.

完全重み多項式

有限体の各元 aFqa\in\mathbb{F}_{q} に変数 ZaZ_a を割り当てた重み多項式です. テンソル積上では,ece_ciZci\prod_i Z_{c_i} に送る線形写像から得られます.

Hadamard型変換

非自明加法指標 θ\theta を用いて

H(eb)=aFqθ(ab)ea\mathcal{H}(e_b)=\sum_{a\in\mathbb{F}_{q}}\theta(ab)e_a

で定まる一座標の線形変換です. そのテンソル積 HE\mathcal{H}^{\tensor E} が,符号ベクトルを双対符号ベクトルの C\card{C} 倍へ送ります.

テンソル積は,抽象的に見えることも多い道具ですが, 今回の証明ではかなり具体的に現れました. 一座標の基底,一座標の変換,一座標の変数読み替えを, すべての座標へ同時に拡張するためにテンソル積を使った,ということです.

今回の系統の振り返り

冒頭で述べたように,今回の証明は

Fourier・指標・Poisson系

に属します. 表面的には,テンソル積とKronecker積を使った線形代数的証明です. しかし,深いところでは,一座標のHadamard型変換

Ha,b=θ(ab)\mathcal{H}_{a,b}=\theta(ab)

を使っており,これは有限体上のFourier変換の行列表示です. 有限Fourier変換と符号の重み多項式恒等式との関係を より発展的な立場から見る文献としては, Tolimieri [Tol85] が挙げられます. 本稿ではその全体には立ち入らず, 一座標のFourier行列をテンソル積で多座標化する部分だけを 初等的に取り出しています.

今回の証明の要点は,次の一文にまとめられます.

一座標のFourier行列をテンソル積で全座標に作用させると, 符号ベクトル γC\gamma_C は双対符号ベクトル CγC\card{C}\gamma_{C^\perp} へ写る.

この見方では,MacWilliams恒等式は

HEγC=CγC\mathcal{H}^{\tensor E}\gamma_C = \card{C}\gamma_{C^{\perp}}

というテンソル積空間上の線形代数的な等式を, 完全重み多項式へ読み替えたものです. 通常のHamming重み多項式に対する恒等式は, 完全重み多項式版の恒等式を

Z0=X,Za=Y(a0)Z_0=X, \qquad Z_a=Y\quad(a\neq 0)

で特殊化した結果です.

したがって,今回の証明は指標論的証明と非常に近い位置にあります. 違いは,指標和を直接計算するのではなく, 一座標の指標和を行列 H\mathcal{H} として包み込み, それをテンソル積によって多座標化した点です. 同じFourier的な原理であっても, テンソル積の言葉で書くと, 「局所的な変換を全体へ持ち上げる」という構造がはっきり見えます.

次回へ

次回は,MacWilliams恒等式をKrawtchouk多項式の言葉で見直します.

今回のテンソル積証明では,完全重み多項式を使いました. つまり,有限体の各元 aFqa\in\mathbb{F}_{q} ごとに変数 ZaZ_a を用意し, 一座標のFourier行列をそのまま変数変換として使いました.

一方,通常のHamming重み多項式では,非零元をすべて同じ変数 YY でまとめます. その結果,完全重み多項式の細かな情報は忘れられ, 重み

0,1,,n0,1,\dots,n

ごとの係数だけが残ります. この「重みだけを見た係数変換」として現れるのがKrawtchouk多項式です.

次回は,MacWilliams恒等式を

Aj(C)=1Ci=0nAi(C)Kj(i)A_j(C^\perp) = \frac{1}{\card{C}}\sum_{i=0}^{n}A_i(C)K_j(i)

という係数レベルの変換として眺め, Krawtchouk多項式に入門します.

脚注

  1. ここでは,θ\theta を基底の第1座標から具体的に作りました. 指標論の言葉では,このような θ(x+y)=θ(x)θ(y)\theta(x + y) = \theta(x)\theta(y) を満たす非定数関数を,Fq\mathbb{F}_{q} の非自明な加法指標と呼びます. 通常の教科書では,トレース写像を用いて同じ種類の関数を作ることも多いです. 本稿ではテンソル積の働きを見たいので,指標論そのものには深入りしません. 加法指標や指標の直交関係を体系的に見たい場合は, 第2回を参照してください.
  2. テンソル積の普遍性に慣れていない方は, 基底で直接具体的に定めるのが分かりやすいかもしれません. UEU^{\tensor E} の基底は ec=iEeci\displaystyle e_{c} = \bigotimes_{i \in E}e_{c_i} (cFqEc \in \mathbb{F}_{q}^{E}) なので,基底上で mE(ec)iEZcim_{E}(e_{c}) \coloneqq \prod_{i \in E}Z_{c_{i}} と定め,これを線形に延長します.

参考文献

  1. [Gre78] Werner Greub. Multilinear algebra. Springer-Verlag, New York-Heidelberg, pp. vii+294, 1978
  2. [Rom08] Steven Roman. Advanced linear algebra. Springer, New York, vol. 135, pp. xviii+522, 2008
  3. [HJ91] Roger A. Horn and Charles R. Johnson. Topics in matrix analysis. Cambridge University Press, Cambridge, pp. viii+607, 1991. doi:10.1017/CBO9780511840371
  4. [Van00] Charles F. Van Loan. The ubiquitous Kronecker product. J. Comput. Appl. Math., vol. 123, no. 1-2, pp. 85–100, 2000. doi:10.1016/S0377-0427(00)00393-9
  5. [MS77] F. J. MacWilliams and N. J. A. Sloane. The theory of error-correcting codes. II. North-Holland Publishing Co., Amsterdam-New York-Oxford, vol. Vol. 16, pp. i–ix and 370–762, 1977
  6. [Tol85] R. Tolimieri. The algebra of the finite Fourier transform and coding theory. Trans. Amer. Math. Soc., vol. 287, no. 1, pp. 253–273, 1985. doi:10.2307/2000409

この連載

MacWilliams恒等式で学ぶシリーズ · 第3回 / 全12回

連載一覧へ戻る

免責事項

当サイトの記事は、運営者個人の理解・調査・研究メモに基づいて作成しています。内容については正確であるよう努めていますが、誤りや不十分な記述が含まれる可能性があります。正確性・完全性・有用性・最新性を保証するものではありません。

当サイトの情報の利用は、利用者ご自身の判断と責任において行ってください。当サイトの情報を利用したこと、または利用できなかったことにより生じた損害、損失、不利益等について、運営者は法律上許される範囲において責任を負いません。

ただし、記事内容の誤り、不明確な記述、リンク切れ、出典の不備等にお気づきの場合は、運営者までご連絡いただけると幸いです。内容を確認し、必要に応じて訂正・追記・削除等の対応を行います。