代数系统在计算机科学中的应用(new)讲述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

17
代数系统的应用
设Sn是长度为n的字集,即
Sn={x1x2…xn|xi=0或1,i=1,2,…,n}
在Sn上定义二元运算ο为: X,Y∈Sn,X=x1x2…xn,
Y=y1y2…yn,
Z=X οY=z1z2…zn
其中,zi=xi +2 yi(i=1,2,…,n)而运算符+2为模2加运算 (即0+21=1+20=1,0+20=1+21=0), 我们称运算ο为按位 加。 显然,< Sn,ο>是一个代数系统,且运算ο满足结 合律,它的幺元为00…0,每个元素的逆元都是它自 身。因此, < Sn,ο>是一个群。
min
例如, dmin(S2)= dmin(S3)=1, dmin(C2)=2, dmin(C3)=3。
利用编码C的最小距离,可以刻画编码方式与 纠错能力之间的关系,我们有以下两定理:
22
代数系统的应用
〖定理2.1〗一个码C能检查出不超过k个错误 的充分必要条件为dmin(C)≥ k+1。
〖定理2.2〗 一个码C能纠正k个错误的充分必 要条件是dmin(C)≥ 2k+1。
18
代数系统的应用
定义2.2 Sn的任一非空子集C,如果是<C,ο>群,
即C是Sn的子群,则称码C是群码(Group Code)。
定义2.3 设X=x1x2 … xn 和Y=y1y2 …yn 是Sn中的两个
元素,称
H ( X , Y ) ( x i 2 yi )
i 1 n
为X与Y的汉明距离(Hamming Distance)。
第一个码元错成11 第一个码元错成00
01
第二个码元错成00
10
第二个码元错成11
13
代数系统的应用
可见,这种编码有一个缺点,即它只能
发现错误而不能纠正错误,因此我们还需要
选择另一种能纠错的编码。
14
代数系统的应用
例2.2
考虑长度为3的字
它们一共可有23=8个,它们所组成的字集 S3={000,001,010,011,100,101,110,111} 选取编码C3={101,010}。利用此编码我们不 仅能发现错误而且能纠正错误。 因为码字101出现单个错误后将变为:001, 111,100;而码字010出现错误后将变为110,000, 011。故如码字101在传递过程中任何一个码元出 现了错误,整个码字只会变为111、100或001,但 是都可知其原码为101。对于码字010也有类似的 情况。故对编码C3,我们不仅能发现错误而且能 纠正错误。
编码理论的数学基础,在通讯中发挥了重要作用。
在计算机算法设计与分析中,代数算法研究占有 主导地位。
4
代数系统的应用
一、纠错码概述
纠错码
我们知道,在计算机中和数据通信中, 经常需要将二进制数字信号进行传递,这 种传递的距离近则数米、数毫米,远则超 过数千公里。在传递住处过程中,由于存
在着各种干扰,可能会使二进制信号产生
表 2- 1
a1 a2 a3 a4 a 5 a6 a7 a1 a2 a3 a4 a5 a6 a7
0
0 0 0 0
0
0 0 0 1
0
0 1 1 0
0
1 0 1 0
0
0 1 1 1
0
1 0 1 1
0
1 1 1 0
1
1 1 1 1
0
0 0 0 1
0
0 1 1 0
0
1 0 1 0
1
1 0 0 0
1
0 1 0 0
23
代数系统的应用
例子2.3
对于C2={01,10},因为dmin(C2)=2=1+1,所以 C2可以检查出单个错误; 对于C3={101,010},因dmin(C3)=3,故C3能 够发现并纠正单个错误;
对于S2和S3分别包含了长度为2、3的所有码, 因而dmin(S2)= dmin(S3)=1,从而S2、S3既不能检查 错误也不能纠正错误。从而我们知道一个编码如 果包含了某个长度的所有码字,则此编码一定无 抗干扰能力。
字成为00时,由于00也是S2中的字,故我们
不能发现传递中是否出错。
12
代数系统的应用
当我们选取S2的一个子集如C2={01,10}作为
编码时就会发生另一种完全不同的情况。
因为此时00和11均为废码,而当01在传递过
程中第一个码元由0变为1,即整个字成为11时,
由于11是废码,因而我们发现传递过程中出现了 错误。对10也有同样的情况。
计算机科学的发展对抽象代数学又提出了新的要
求,促使抽象代数学不断涌现新概念,发展新理 论。
3
代数系统的应用
格与布尔代数的理论成为电子计算机硬件设
计和通讯系统设计中的重要工具。半群理论在自
动机和形式语言研究中发挥了重要作用。关系代
数理论成为最流行的数据库的理论模型。格论是 计算机语言的形式语义的理论基础。抽象代数规 范理论和技术广泛应用于计算机软件形式说明和 开发,以及硬件体系结构设计。有限域的理论是
i
定就与xi相等,从而产生了二进制信号的传递错误。 发送端
X=x1x2 …xn
接收端 干扰
x X x1 2 ...x n
6
图2.1
代数系统的应用
由于在计算机中和数据通信系统中的
信号传递是非常的频繁与广泛,因此,如何
防止传输错误就变得相当重要了,当然,要
解决这个问题可以有不同的途径。人们所想
i 1 i 1
H ( X , Y ) H (Y , Z )
21
代数系统的应用
定义2.4 一个码C中所有不同码字的汉明距 离的极小值称为码C的最小距离(Minimum Distance),记为dmin(C)。即
d min (C ) X , Y C ( H ( X , Y ))
X Y
24
代数系统的应用
例子2.4 奇偶校验码(Parity code)的编码
我们知道,编码S2={00,01,10,11}没有抗 干扰能力。但我们可以在S2的每个码字后增加一 位(叫奇偶校验位),这一位是这样安排的,它 使每个码字所含1的个数为偶数,按这种方法编码 后S2就变为 S2′={000,011,101,110}
查出一个错误。这种方法在计算机中是使用
很普遍的一种纠错码,它的优点是所付出的
代价较小(只增加一位附加的奇偶校验位),
而且这种码的生成与检查也很简单Hale Waihona Puke Baidu它的缺
点是不能纠正错误。
26
代数系统的应用
三、纠错码的选择
前面分析,我们发现S2无纠错能力,但 在S2中选取C2后,C2具有发现单错的能力。 同样,S3无纠错能力,但在S3中选取C3后, C3具有纠正单错的能力。从这里可以看出, 如何从一些编码中选取一些码字组成新码, 使其具有一定的纠错能力是一个很重要的课 题。 下面我们介绍一种很重要的编码——汉 明编码,这种编码能发现并纠正单个错误。
代数系统的应用
1
代数系统的应用
人们研究和考察现实世界中各种现象或过程,
往往要借助某些数学工具。在代数中,可以用正
整数集合上的加法运算来描述企业产品的累计数, 可以用集合之间的“并”、“交”运算来描述单 位与单位之间的关系等。我们所接触过的数学结 构,连续的或离散的,常常是对研究对象(自然
数、实数、多项式、矩阵、命题、集合乃至图)
20
代数系统的应用
(3)H(X,Y)+H(Y,Z)≥H(X,Z)的证明 证明:定义 H(xi,yi)=
则 从而
0 xi=yi 1 xi≠yi
H(xi,zi)≤H(xi,yi)+H(yi,zi)
n n i n
H ( X , Z ) H ( x i , z i ) H ( x i , yi ) H ( yi , z i )
19
代数系统的应用
从定义可以看出,X和Y的汉明距离是
X和Y中对应位码元不同的个数。设S3中两
个码字为:000和011,这两个码字的汉明距
离为2。而000和111的汉明距离为3。关于汉
明距离,我们有以下结论:
(1)H(X,X)=0;
(2)H(X,Y)=H(Y,X);
(3)H(X,Y)+H(Y,Z)≥H(X,Z)。
到的第一个途径是提高设备的抗干扰能力和
信号的抗干扰能力。但是,大家都知道,这 种从物理角度去提高抗干扰能力并不能完全 消除错误的出现。
7
代数系统的应用
第二个途径就是我们所要谈到的采用采用纠
错码(Error Correcting Code)的方法以提高抗
干扰能力。这种纠错码的方法是从编码上下功夫, 使得二进制数码在传递过程中一旦出错,在接收 端的纠错码装置就能立刻发现错误,并将其纠正。 由于这种方法简单易行,因此目前在计算机中和
但是,为什么纠错码具有发现错误、纠 正错误的能力呢?纠错码又是按什么样的原 理去编的呢?为了说明这些问题,我们首先 介绍一些基本概念。
10
代数系统的应用
定义2.1 由0和1组成的串称为字(Word),一 些字的集合称为码(Code)。码中的字称 为码字(Code Word)。不在码中的字称为 废码(Invalid Code)。码中的每个二进制
1
0 0 1 1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
30
代数系统的应用
上述的编码C能发现一个错误并纠正单个错误。 因为如果C中码字发生单错,则上述三个方程必定至
少有一个等式不满足;当C中码字发生单错后,不同
而它的最小距离dmin(S2′)=2,故定理2.1可知, 它可想出单个错误。而事实也是如此,当传递过 程中发生单个错误则码字就变为含有奇数个1的废 码。
25
代数系统的应用
类似地,增加奇偶校验位使码字所含1 的个数为奇数时也可得到相同的效果。 我们可以把上述结果推广到Sn中去,
不管n多大,只要增加一奇偶校验位总可能
定义各种运算(加、减、乘,与、或、非,并、 交、补),然后讨论这些对象及运算的有关性质。
2
代数系统的应用
针对某个具体问题选用适宜的数学结构去进
行较为确切的描述,这就是所谓“数学模型”。
可见,数学结构在数学模型中占有极为重要的位
置。而代数系统是一类特殊的数学结构——由对 象集合及运算组成的数学结构,我们通常称它为 代数结构。它在计算机科学中有着广泛的应用, 对计算机科学的产生和发展有重大影响;反过来,
失真现象,即在传递过程中二进制信号0可
能会变成1,1可能会变成0。
5
代数系统的应用
图2.1是一个二进制信号传递的简单模型,它有
一个发送端和一个接收端,二进制信号串
X=x1x2…xn 从发送端发出经传输介质而至接收端。
由于存在着干扰对传输介质的影响,因而接收端收 x 到的二进制信号串 X x1 2 ...x n中的 x 可能不一
数据通信系统中被广泛采用。采用这种方法后,
二进制信号传递模型就可以变为图2.2所示的模型
了。
8
代数系统的应用
该模型按功能分为信源、编码器、信道、译码器、信宿 信 源 编 码 信 道 编 码 信 道 译 码 信 源 译 码
信 源
加 密
信道
解 密
信 宿
密 钥 源
噪声
密 钥 源
9
图2.2 通信系统模型
代数系统的应用
信号0或1称为码元(Code Letter)。
我们下面举出几个关于纠错码例子。
11
代数系统的应用
例2.1 设有长度为2的字,它们一共可有22=4 个,它们所组成的字集S2={00,01,10,
11}。当选取编码为S2时,这种编码不具有
抗干扰能力。因为当S2中的一个字如10,在
传递过程中其第一个码元1变为0,因而整个
28
a5= a1 +2 a2 +2 a3
a6= a1 +2 a2 +2 a4
a7= a1 +2 a3 +2 a4
代数系统的应用
因此,a1,a2,a3,a4一旦确定,则校验位a5,a6,a7 可根据上述方程唯一确定。这样我们由S4就可 以得到一个长度为7的编码C,如表2-1所示。
29
代数系统的应用
15
代数系统的应用
当然,上述编码还有一个缺点,就是 它只能发现并纠正单个错误。当错误超过两 个码元时,它就既不能发现错误,更无法纠 正了。
16
代数系统的应用
二、纠错码的纠错能力 前面例子中我们发现C2编码仅能发现 错误,按C3编码可发现并纠正单个错误。 可见,不能的编码具有不同的纠错能力。下 面介绍编码方式与纠错能力之间的联系。
27
代数系统的应用
(一)汉明编码的特例 设有编码S4,S4中每个码字为a1a2a3a4, 若增加三位校验位a5a6a7,从而使它成为长度 为7的码字a1a2a3a4 a5a6a7。其中校验位a5a6a7 应满足下列方程:
a1 +2 a2 +2 a3 +2 a5=0(2-1) a1 +2 a2 +2 a4 +2 a6=0 (2-2) a1 +2 a3 +2 a4 +2 a7=0 (2-3) 也就是说要满足:
相关文档
最新文档