2.4 戈莱码

现在介绍戈莱于 1949 年发现的两个完全线性码, 后人称作戈莱码. 一个 \(p\) 元完全码的最小距离 \(d\) 一定是奇数 \(2 l+1\) (\(1.3\) 节习题 \(6\))并且达到汉明界,即

\[p^{n-k}=\sum_{i=0}^l(p-1)^i\binom{n}{i}, \]

其中 \([n, k, d]\) 是码的参数. 满足这个等式的正整数 \(n, k, d(=2 l+1)\) 和素数 \(p\) 是很少的. 戈莱首先找到此等式的 \(3\) 组解 \((p, n, k, d)=(2,23\), \(12,7),(2,90,78,5)\)\((3,11,6,5)\), 然后他证明了参数为 \([n, k, d]=[90,78,5]\) 的二元码, 线性或非线性码都不存在(留作习题). 最后利用巧妙的组合结构和代数结构, 给出参数 \([n, k, d]=\) \([23,12,7]\) 的二元完全码和参数 \([11,6,5]\) 的三元完全码, 并且都是线性码. 本节讲述戈莱码的结构.

先介绍二元戈莱线性码 \([23,12,7]\). 已经知道, 若存在参数 \([24,12,8]\) 的二元线性码, 则将所有码字“适当地”去掉某一列, 便 “限制”成一个参数为 \([23,12,7]\) 的二元线性码. 戈莱采用如下方式首先构造了一个参数为 \([24,12,8]\) 的二元线性码:
定理 1 (戈莱) 考虑如下的二元的 \(12\) 阶方阵:

\[\boldsymbol{P} =\left[\begin{array}{llllllllllll} 0 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & 1 & 0 \\ 1 & 1 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 1 \\ 1 & 1 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 \\ 1 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 \\ 1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 1 \\ 1 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 1 \\ 1 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 1 & 0 \\ 1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 1 & 0 & 0 \\ 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 1 & 0 & 0 & 0 \\ 1 & 0 & 1 & 1 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & 1 \end{array}\right] \]

记右下角方阵为 \(\boldsymbol{P}^{\prime}\), 即

\[\boldsymbol{P} =\left[\begin{array}{llllllllllll} 0 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 1 & & & & & & & & & & & \\ 1 & & & & & & & & & & & \\ 1 & & & & & & & & & & & \\ 1 & & & & & & & & & & & \\ 1 & & & & & & & & & & & \\ 1 & & & & & & {\LARGE P^{\prime}} & & & & & \\ 1 & & & & & & & & & & & \\ 1 & & & & & & & & & & & \\ 1 & & & & & & & & & & & \\ 1 & & & & & & & & & & & \\ 1 & & & & & & & & & & & \end{array}\right] \]

则以 \(\boldsymbol{G}=\left[\boldsymbol{I}_{12} \boldsymbol{P}\right]\) 为生成矩阵的二元线性码 \(G_{24}\),其参数为 \([n, k, d]=[24,12,8]\), 并且是自对偶码.
证明: 首先需要说明一下 \(F_2\)\(12\) 阶方阵 \(\boldsymbol{P}\) 的构造方式. 这个方阵左上角元素为 \(0\) , 第 \(1\) 行和第 \(1\) 列的其余元素均为 \(1\) . 剩下的 \(11\) 阶方阵记为 \(\boldsymbol{P}^{\prime}\). \(\boldsymbol{P}^{\prime}\) 的第 \(1\) 行为 \((11011100010)\), 而以下诸行依次为上一行向左循环移位, 如第 \(1\) 行是第 \(1\) 行向左循环移位, 即把第 \(1\) 位的 \(1\) 移到最末 \(1\) 位, 从而其他诸位都向左移了一位, 即 \(\boldsymbol{P}^{\prime}\) 的第 \(2\) 行为 \((10111000101)\). 注意 \(\boldsymbol{P}^{\prime}\)\(\boldsymbol{P}\) 均是对称方阵.

事实上,不难看出:左循环构造出的方阵均是对称方阵。

由于生成矩阵 \(\boldsymbol{G}\)\(12\)\(24\) 列的矩阵, 并且包含子方阵 \(\boldsymbol{I}_{12}\) (\(12\) 阶的单位方阵), 所以 \(\operatorname{rank}(\boldsymbol{G})=12\). 这表明生成的二元线性码 \(G_{24}\) 参数为 \([n, k]=[24,12]\), 并且 \(\left[P^T I_{12}\right]=\left[P I_{12}\right]\)\(G_{24}\) 的一个校验矩阵, 只需再证线性码 \(G_{24}\) 的最小距离为 \(d=8\). 证明分以下 \(4\) 步进行:
\((1)\) \(G_{24}\) 是自对偶码. 由于 \(G_{24}\) 和它的对偶码维数都是 \(12\) , 只需证明 \(G_{24}\) 是自正交码. 这只需验证生成矩阵 \(\boldsymbol{G}\) 的任意两行 (包括每行和它自身)都是正交的. 由于 \(\boldsymbol{G}\) 的每行都有偶数个 \(1\) (\(\boldsymbol{G}=\left[\boldsymbol{I}_{12} \boldsymbol{P}\right]\) 的第 \(1\) 行有 \(12\)\(1\) ,其余诸行均有 \(8\)\(1\)), 可知每行都是自正交向量. 只需再证 \(\boldsymbol{G}\)的任意两个不同行向量均正交. 由于 \(\boldsymbol{G}\) 的左半为 \(I_{12}\), 它的任意两个不同行均正交,所以只需证 \(\boldsymbol{G}\) 的右半 \(\boldsymbol{P}\) 的任意两个不同行均正交. 由于 \(\boldsymbol{P}^{\prime}\) 中每行都有 \(6\)\(1\) , 可知 \(P\) 的第 \(1\) 行与其余诸行均正交, 所以只需再证 \(P\) 的后 \(11\) 行彼此正交. 由于这后 \(11\) 行的第 \(1\) 位都是 \(1\) , 所以只需证明 \(P^{\prime}\)\(11\) 行彼此的内积都是 \(1\) , 即对于 \(\boldsymbol{P}^{\prime}\) 的任意两个不同的行, 它们的相同位的个数都是奇数. 现在利用方阵 \(\boldsymbol{P}^{\prime}\) 的诸行依次循环移位的构造方式, 可知对每个 \(1 \leqslant i<j \leqslant 11, \boldsymbol{P}^{\prime}\) 的第 \(i\) 行和第 \(j\) 行的内积等于第 \(1\) 行和第 \(j-i+1\) 行的内积. 因此,只需证明 \(\boldsymbol{P}^{\prime}\) 的第 \(1\) 行和其他 \(10\) 行的内积都是 \(1\) (即相同位个数都是奇数). 到了这一步,读者可自行逐个验证确实如此. 这就证明了 \(G_{24}\) 是自对偶码

(实际上我们可以什么都不验证就先验地知晓 \(P^{\prime}\) 的诸行的相同位是奇数,详见习题).

\((2)\)\(F_2^{24}\) 中向量表成 \((\boldsymbol{x} \mid \boldsymbol{y})\),其中, \(\boldsymbol{x}\)\(\boldsymbol{y}\)都是长为 \(12\) 的向量, 则当 \((\boldsymbol{x} \mid \boldsymbol{y}) \in G_{24}\) 时, \((\boldsymbol{y} \mid \boldsymbol{x})\)也属于 \(G_{24}\). 这是因为 \(\boldsymbol{H}=\left[\boldsymbol{P I}_{12}\right]\)\(G_{24}\) 的校验矩阵,而 \(G_{24}\)是自对偶码, 所以 \(\left[\boldsymbol{P I}_{12}\right]\) 也是 \(G_{24}\) 的生成矩阵.但是 \(\boldsymbol{G}=\left[\boldsymbol{I}_{12} \boldsymbol{P}\right]\)\(G_{24}\) 的生成阵.
\((3)\) \(G_{24}\) 中每个码字的汉明重量都是 \(4\) 的倍数. 证明可见例 \(2.3.8\) 中的推理.
\((4)\) \(G_{24}\) 中没有汉明重量为 \(4\) 的码字. 设 \(c=(x \mid y)\)\(G_{24}\) 中汉明重量为 \(4\) 的码字, \(x, y \in\) \(F_2^{12}\). 则 \(w(\boldsymbol{x})+w(\boldsymbol{y})=w(\boldsymbol{c})=4\). 从而有如下 \(3\) 种可能:
\((i)\) \(w(\boldsymbol{x})=0, w(\boldsymbol{y})=4\).显然不可能,进而 \(w(\boldsymbol{x})=4, w(\boldsymbol{y})=0\) 也不可能.
\((ii)\) \(w(\boldsymbol{x})=1, w(\boldsymbol{y})=3\). 把 \(G_{24}=\left[\mathbf{I}_{12} \boldsymbol{P}\right]\)\(12\) 行表成 \(\left(\boldsymbol{x}_i \mid \boldsymbol{y}_i\right)\).由 \(w(\boldsymbol{x})=1\) 可知 \(\boldsymbol{x}\) 必是某个 \(\boldsymbol{x}_i\), 从而 \(\boldsymbol{y}\) 必是 \(\boldsymbol{y}_i\).但是 \(\boldsymbol{P}\) 的每行 \(\boldsymbol{y}_i\) 均有 \(\geqslant 7\)\(1\) , 与 \(w(\boldsymbol{y})=3\) 相矛盾, 所以 \(w(\boldsymbol{x})=1, w(\boldsymbol{y})=3\) 不可能. 于是 \(\boldsymbol{w}(\boldsymbol{x})=3, \boldsymbol{w}(\boldsymbol{y})=1\) 也不可能.
\((iii)\) \(w(\boldsymbol{x})=w(\boldsymbol{y})=2\). 这时 \(\boldsymbol{x}\) 必为两个 \(\boldsymbol{x}_i\) 之和, 于是 \(\boldsymbol{y}\) 必为 \(\boldsymbol{P}\) 的两行之和. 可直接验证 \(\boldsymbol{P}\) 的任意两行之和的汉明重量都不是 \(2\)(后面我们会专门介绍这种循环移位构作的码的理论,从而可以先验地知道这个结果). 这与 \(\boldsymbol{w}(\boldsymbol{y})=2\) 相矛盾. 所以不可能 \(\boldsymbol{w}(\boldsymbol{x})=w(\boldsymbol{y})=2\).
综合上述, 便知 \(G_{24}\) 中没有汉明重量为 \(4\) 的码字.
\((ii)\)\((iii)\) 便知 \(G_{24}\) 的最小距离 \(d \geqslant 8\). 但是生成阵的第 \(2\) 行为 \(G_{24}\) 的码字, 汉明重量为 \(8\). 这表明 \(d=8\). 从而完成了定理 \(1\) 的证明. 证毕.

定理 2\(G_{24}\) 中所有码字去掉最后一位得到的集合 \(G_{23}\) 是参数为 \([n, k, d]=[23\), \(12,7]\) 的二元完全线性码.

证明:易知 \(G_{23}\) 是线性码, 生成矩阵可取为将 \(\boldsymbol{G}=\left[\boldsymbol{I}_{12} \boldsymbol{P}\right]\) 去掉最后一列而得到的矩阵. \([n\), \(k]=[23,12]\) 也是显然的. 由 \(G_{24}\) 的最小距离为 \(8\) 可知 \(G_{23}\) 的最小距离 \(d \geqslant 7\). 由于 \(\boldsymbol{G}\) 的第 \(3\) 行去掉最后一位之后是 \(G_{23}\) 中码字, 它的汉明重量为 \(7\) ,于是 \(d=7\). 最后由

\[\begin{aligned} \sum_{i=0}^3\binom{n}{i} & =1+23+\frac{23 \cdot 22}{2}+\frac{23 \cdot 22 \cdot 21}{2 \cdot 3} \\ & =2^{11}=2^{n-k} \end{aligned} \]

所以 \(G_{23}\) 是完全码. 证毕.

几乎用类似的方法来构造戈莱的三元完全线性码 $G_{11}$, 参数为 $[11,6,5]$.

定理 3
\((1)\)

\[\boldsymbol{G}=\left[\boldsymbol{I}_6 \boldsymbol{P}\right]=\left[\begin{array}{lllllll} & 0 & 1 & 1 & 1 & 1 & 1 \\ & 1 & 0 & 1 & 2 & 2 & 1 \\ {\large I_6} & 1 & 1 & 0 & 1 & 2 & 2 \\ & 1 & 2 & 1 & 0 & 1 & 2 \\ & 1 & 2 & 2 & 1 & 0 & 1 \\ & 1 & 1 & 2 & 2 & 1 & 0 \end{array}\right] \]

为生成阵的三元线性码 \(G_{12}\) 是参数为 \([12,6,6]\) 的自对偶码.
\((2)\)\(G_{12}\) 中所有码字去掉最后一位, 所得集合 \(G_{11}\) 是参数为 \([11,6,5]\) 的三元完全线性码.
证明: \((1)\) 依照二元情形定理 \(1\) 的证明思想,可以得到:
\((i)\) \(G_{12}\) 是参数 \([n, k]=[12,6]\) 的三元自对偶线性码从而 \(\left[-\boldsymbol{P} \mathbf{I}_6\right]\) 也是 \(G_{12}\) 的一个生成矩阵.
\((ii)\)\(F_3^{12}\) 每个向量表成 \((\boldsymbol{x} \mid \boldsymbol{y})\), 其中, \(\boldsymbol{x}\), \(\boldsymbol{y} \in F_3^6\). 若 \((\boldsymbol{x} \mid \boldsymbol{y}) \in G_{12}\), 则 \((-\boldsymbol{y} \mid \boldsymbol{x}) \in G_{12}\).
\((iii)\) \(G_{12}\) 中每个码字的汉明重量都是 \(3\) 的倍数. 这是由于在 \(F_3\)\(1^2=2^2=1\). 如果 \(G_{12}\)中码字 \(\boldsymbol{c}=\left(c_1, \cdots, c_{12}\right)\) 的汉明重量为 \(l\), 由于 \(\boldsymbol{c}\) 是自正交的,于是 \(0=(\boldsymbol{c}, \boldsymbol{c})=\sum_{i=1}^{12} c_i^2=l \in F_3\),即 \(l\)\(3\) 的倍数.
\((iv)\) \(G_{12}\) 中没有汉明重量为 \(3\) 的码字. 这是因为设 \(\boldsymbol{c}=(\boldsymbol{x} \mid \boldsymbol{y}) \in G_{12}\). 如果 \(w(\boldsymbol{x})=0, w(\boldsymbol{y})=3\) , 由于 \(\boldsymbol{G}=\left[\boldsymbol{I}_6 \boldsymbol{P}\right]\)\(G_{12}\) 的生成矩阵可知 \(\boldsymbol{y}=0\),与 \(w(\boldsymbol{y})=3\) 矛盾. 同样由 \(\left[-\boldsymbol{P} \boldsymbol{I}_6\right]\)\(G_{12}\) 的生成矩阵可知 \(w(\boldsymbol{x})=3, w(\boldsymbol{y})=0\) 也不可能. 类似地, \(w(\boldsymbol{x})=1, w(\boldsymbol{y})=2\)\(w(\boldsymbol{x})=2, w(\boldsymbol{y})=1\) 也不可能.
\((iii)\)\((iv)\) 便知 \(d \geqslant 6\). 由于 \(\boldsymbol{G}\) 的第 \(1\) 行是 \(G_{12}\) 中汉明重量为 \(6\) 的码字, 所以 \(G_{12}\) 的最小距离为 \(6\) .
\((2)\) 类似于定理 \(1\) 可证 \(G_{11}\) 是参数为 \([11,6,5]\) 的三元线性码. 由

\[\begin{aligned} \sum_{i=0}^2(3-1)^i\binom{11}{i} & =1+2 \cdot\binom{11}{1}+4 \cdot\binom{11}{2} \\ & =3^{11-6} \end{aligned} \]

可知 \(G_{11}\) 是完全码. 证毕.

问题的历史
\(1960\) 年以前, 人们猜想已经找到了所有的完全码. 确切地说,猜想每个完全码或者是平凡的 (在 \(2.2\) 节开篇我们介绍了平凡完全码的两种形式), 或者必等价于汉明码或者戈莱码 \(G_{23}\)\(G_{11}\) 当中的一个. 但是在 \(1962\)\(1968\) 年, 人们对每个素数 \(p\) 都陆续得到 \(p\) 元非线性完全码,参数和汉明码相同,但是不和汉明码等价. 后来人们又提出一个较弱的猜想: 每个非平凡的 \(p\) 元码 (线性或非线性), 其参数必与汉明码或戈莱码的参数一致,这个猜想在 \(1973\) 年被证明, 使用了初等但是复杂的数论演算和组合技巧.
\(1975\) 年证明了具有参数 \([23,12,7]\) 的二元线性码必等价于 \(G_{23}\), 具有参数 \([12,6,5]\) 的三元 (线性或非线性)码必等价于 \(G_{11}\). 另一方面, 具有汉明码参数 \(\left[\frac{p^m-1}{p-1}, \frac{p^m-1}{p-1}-m, 3\right]\)\(p\) 元码到底有多少个彼此不等价, 是一个至今不清楚的问题. 人们相信有上千个彼此不等价的非线性二元码, 其参数均为 \([15,11,3]\) (二元汉明码的参数).

习题

\(1.\) 避免繁复的计算验证,尝试证明定理 \(1\) 中的 \(P^{\prime}\) 诸行相互之间内积均为 \(1\).(提示 \(1\):转化为证明诸行间相异位数为偶数,而向量 \(c_1\)\(c_2\) 的相异位数 \(=w(c_1+c_2)\))(提示 \(2\)\(w(c_1+c_3)=w(c_1+c_2+c_2+c_3)\);\(w(c_1+c_2)=w(c_1)+w(c_2)-2w(c_1\cap c_2)\);\(w(c_1+c_2)=w(c_2+c_3)\))

posted @ 2024-07-03 02:41  沙棘数学社  阅读(99)  评论(0)    收藏  举报