線形符号 (特に projective codes) の符号語と射影空間の超平面には深い繋がりがあるのでまとめていきます。
今回はわかりやすくするために 2 元符号を使いますが、基本的にどの有限体上でも同じです。
r r r 次元のシンプレックス符号 (simplex codes) は P G ( r − 1 , q ) {\rm PG}(r-1, q) PG ( r − 1 , q ) の全ての点を列ベクトルとした生成行列で表される符号であり、
特に 2 元シンプレックス符号 (binary simplex codes) は、非零ベクトルを列ベクトルとして並べたものを生成行列としてもつ [ 2 r − 1 , r , 2 r − 1 ] 2 [2^r-1, r, 2^{r-1}]_2 [ 2 r − 1 , r , 2 r − 1 ] 2 線形符号です。
ここでは例として、[ 7 , 3 , 4 ] 2 [7, 3, 4]_2 [ 7 , 3 , 4 ] 2 シンプレックス符号 C C C を考えます。C C C の生成行列 G G G は次ようになります:
G = ( 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 ) . G=\begin{pmatrix}
1 & 0 & 0 & 1 & 1 & 0 & 1 \\
0 & 1 & 0 & 1 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 & 1 & 1 \\
\end{pmatrix}. G = ⎝ ⎛ 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 ⎠ ⎞ .
次に射影空間の超平面について考えていきます。
射影空間 P G ( r − 1 , q ) {\rm PG}(r-1, q) PG ( r − 1 , q ) における任意の超平面 H H H は双対性により、ある点 v ∈ P G ( r − 1 , q ) v \in {\rm PG}(r-1, q) v ∈ PG ( r − 1 , q ) が存在して次のように書くことができます:
H = { p ∈ P G ( r − 1 , q ) ∣ v ⋅ p = 0 } . H = \{p \in {\rm PG}(r-1, q) \mid v \cdot p = 0\}. H = { p ∈ PG ( r − 1 , q ) ∣ v ⋅ p = 0 } .
つまり、点 v v v に対して直交するベクトルを集めたものになります。
例として、P G ( 2 , 2 ) {\rm PG}(2, 2) PG ( 2 , 2 ) 上の v = ( 1 , 1 , 1 ) T v=(1, 1, 1)^\mathsf{T} v = ( 1 , 1 , 1 ) T に対応する超平面 H H H は次のようになります:
H = { ( 1 1 0 ) , ( 1 0 1 ) , ( 0 1 1 ) } . H = \left\{
\begin{pmatrix}
1 \\ 1 \\ 0
\end{pmatrix},
\begin{pmatrix}
1 \\ 0 \\ 1
\end{pmatrix},
\begin{pmatrix}
0 \\ 1 \\ 1
\end{pmatrix}
\right\}. H = ⎩ ⎨ ⎧ ⎝ ⎛ 1 1 0 ⎠ ⎞ , ⎝ ⎛ 1 0 1 ⎠ ⎞ , ⎝ ⎛ 0 1 1 ⎠ ⎞ ⎭ ⎬ ⎫ .
ファノ平面で考えると確かに超平面である直線になってることがわかります:
ファノ平面
勘のいい方は気付いたかもしれませんが、シンプレックス符号の生成行列は射影空間の全ての点を並べたものであるため、v T G v^\mathsf{T}G v T G を計算して 0 0 0 となっている列のベクトルを集めると超平面になります。
つまり、シンプレックス符号における符号語 c = v T G c=v^\mathsf{T}G c = v T G の 0 の列と超平面が対応していることがわかります。 (符号語の情報ベクトルの直交補空間が超平面になる)
具体的には、生成行列の i i i 列目のベクトルを g i g_i g i 、符号語 c = v T G c=v^\mathsf{T}G c = v T G に対して s u p p ( c ) : = { i ∣ c i ≠ 0 } {\rm supp}(c) := \{i \mid c_i \neq 0\} supp ( c ) := { i ∣ c i = 0 } 、E n : = { 1 , 2 , … , n } E_n:=\{1, 2, \dots, n\} E n := { 1 , 2 , … , n } とすると、
H = { p ∈ P G ( r − 1 , q ) ∣ v ⋅ p = 0 } = { g i ∣ i ∈ E n ∖ s u p p ( c ) } \begin{aligned}
H &= \left\{p \in {\rm PG}(r-1, q) \mid v \cdot p = 0\right\}\\
&= \{g_i \mid i \in E_n \setminus {\rm supp}(c)\}
\end{aligned} H = { p ∈ PG ( r − 1 , q ) ∣ v ⋅ p = 0 } = { g i ∣ i ∈ E n ∖ supp ( c )}
となります。
このことから、次の事が射影幾何から示すことができます:
定理
r r r 次元の 2 元シンプレックス符号の符号語は零ベクトルを除いて重みが 2 r − 1 2^{r-1} 2 r − 1 となる。
証明
シンプレックス符号の零ベクトルを除く任意の符号語 c c c の 0 0 0 の数は、射影空間 P G ( r − 1 , q ) {\rm PG}(r-1, q) PG ( r − 1 , q ) における超平面 H H H に含まれる点の個数に対応しているため
w t ( c ) = 2 r − 1 − ∣ H ∣ = 2 r − 1 − ( 2 r − 1 − 1 ) = 2 r − 1 . \begin{aligned}
wt(c) &= 2^{r} - 1 - |H| \\
&= 2^{r} - 1 - (2^{r-1} - 1) \\
&= 2^{r-1}.
\end{aligned} wt ( c ) = 2 r − 1 − ∣ H ∣ = 2 r − 1 − ( 2 r − 1 − 1 ) = 2 r − 1 .
projective codes とは、射影空間上の点を列ベクトルとして集めたものを生成行列とする符号です。
最大な projective codes がシンプレックス符号になります。
シンプレックス符号から列ベクトルを削除しただけのものなので、符号語 c c c が 0 0 0 となるものを集めたものは生成行列からなるマトロイドのフラットに対応します。
また、次のような命題を示すことができます:
命題
[ n , r ] q [n, r]_q [ n , r ] q projective codes C C C の生成行列を G G G 、P G ( r − 1 , q ) {\rm PG}(r-1, q) PG ( r − 1 , q ) 上における G G G の列ベクトルに対応する点の集合を S S S とする。
k k k 個の符号語 c 1 , c 2 , … , c k c_1, c_2, \dots, c_k c 1 , c 2 , … , c k に対して、⋃ i = 0 k s u p p ( c i ) = E n \bigcup_{i=0}^{k} {\rm supp}(c_i) = E_n ⋃ i = 0 k supp ( c i ) = E n であることと、P G ( r − 1 , q ) ∖ S {\rm PG}(r-1, q)\setminus S PG ( r − 1 , q ) ∖ S に r − k − 1 r-k-1 r − k − 1 次元射影空間が存在することは同値である。
証明
P G ( r − 1 , q ) {\rm PG}(r-1, q) PG ( r − 1 , q ) における任意の r − k − 1 r-k-1 r − k − 1 次元部分空間 Π r − k − 1 \Pi_{r-k-1} Π r − k − 1 は k k k 個の超平面 H i H_i H i の交わりによって表現でき、任意の k k k 個の超平面の交わりは r − k − 1 r-k-1 r − k − 1 次元部分空間を含む。
ここで、P G ( r − 1 , q ) ∖ S {\rm PG}(r-1, q) \setminus S PG ( r − 1 , q ) ∖ S 上の全ての点を G G G の列ベクトルに加えた生成行列を G ′ G' G ′ とすると、G ′ G' G ′ から生成される符号はシンプレックス符号 C ′ C' C ′ になる。
[ n ′ , r ] [n', r] [ n ′ , r ] シンプレックス符号の符号語 c i ′ c'_i c i ′ に対して超平面 H i H_i H i は E n ′ ∖ s u p p ( c i ′ ) E_{n'} \setminus {\rm supp}(c'_i) E n ′ ∖ supp ( c i ′ ) に対応することから、
⋂ i = 0 k H i = ⋂ i = 0 k { g j ′ ∣ j ∈ E n ′ ∖ s u p p ( c i ′ ) } = { g j ′ | j ∈ E n ′ ∖ ⋃ i = 0 k s u p p ( c i ′ ) } . \begin{aligned}
\bigcap_{i=0}^{k} H_i
&= \bigcap_{i=0}^{k} \{g'_j \mid j \in E_{n'} \setminus {\rm supp}(c'_i)\} \\
&= \left\{g'_j\ \middle|\ j \in E_{n'} \setminus \bigcup_{i=0}^{k} {\rm supp}(c'_i)\right\}.
\end{aligned} i = 0 ⋂ k H i = i = 0 ⋂ k { g j ′ ∣ j ∈ E n ′ ∖ supp ( c i ′ )} = { g j ′ ∣ ∣ j ∈ E n ′ ∖ i = 0 ⋃ k supp ( c i ′ ) } .
したがって、
∃ c 1 , c 2 , … , c k ∈ C s . t . ⋃ i = 0 k s u p p ( c i ) = E n ⇔ ∃ c 1 ′ , c 2 ′ , … , c k ′ ∈ C ′ s . t . E n ′ ∖ ⋃ i = 0 k s u p p ( c i ′ ) ⊆ E n ′ ∖ E n ⇔ ∃ Π r − k − 1 ⊆ P G ( r − 1 , q ) ∖ S . \begin{aligned}
&{}^\exists c_1, c_2, \dots, c_k \in C {\rm \ s.t.\ } \bigcup_{i=0}^{k} {\rm supp}(c_i) = E_n \\
&\Leftrightarrow {}^\exists c'_1, c'_2, \dots, c'_k \in C' {\rm \ s.t.\ } E_{n'} \setminus \bigcup_{i=0}^{k} {\rm supp}(c'_i) \subseteq E_{n'} \setminus E_n \\
&\Leftrightarrow {}^\exists\Pi_{r-k-1} \subseteq {\rm PG}(r-1, q) \setminus S.
\end{aligned} ∃ c 1 , c 2 , … , c k ∈ C s.t. i = 0 ⋃ k supp ( c i ) = E n ⇔ ∃ c 1 ′ , c 2 ′ , … , c k ′ ∈ C ′ s.t. E n ′ ∖ i = 0 ⋃ k supp ( c i ′ ) ⊆ E n ′ ∖ E n ⇔ ∃ Π r − k − 1 ⊆ PG ( r − 1 , q ) ∖ S .
線形符号 (特に projective codes) の符号語と射影空間の超平面の関係について説明しました。
線形符号と射影幾何の繋がりをこれからもまとめていければなと思います。🙃