1701025903
1701025904
海明码及随后出现的功能更加强大的错误校正码,推动了信息工程学的发展。构建有重重保护和双重检查模式的系统以确保信息传输无误,已经不再是人们追求的目标。海明与香农的研究足以将错误发生的频率降至非常低的程度,无论有什么样的噪声,灵活机动的错误校正码都可以消除它们造成的影响。火星轨道飞船“水手9号”在把火星表面的照片发回地球时使用的阿达玛码,就是具有这种效果的错误校正码。光盘在编码时采用的是里德所罗门码,即使光盘上有擦痕也不会有多大影响。(1990年之后出生的读者,如果对光盘不太了解,可以想一想闪盘驱动器的情况。在这些驱动器中,人们为了防止数据损毁,使用了与里德所罗门码类似的博斯–乔赫里–霍克文黑姆码。)银行的汇款路线号码由一种叫作“检验和”(checksum)的简单编码构成。这种编码不是错误校正码,而是与“每个比特重复两遍”的信息协议比较相似的错误检测码。如果一个数字输入错误,执行汇款交易的计算机可能无法知道我们真正想要输入的数字是几,但是它至少知道出了问题,从而避免我们把钱汇到错误的银行账户中。
1701025905
1701025906
我们不清楚海明是否全盘了解他的这项新技术的适用范围,但是在他准备发表这项研究成果时,他发现贝尔实验室的老板精于此道。
1701025907
1701025908
专利部一定要等到申请了专利之后才同意我发表这个成果……我不相信一堆数学公式也能申请专利。我告诉他们,这是不可能的。但是他们说:“看我们的吧。”他们成功了。从此以后,我知道我对专利法的理解太肤浅了,因为我觉得某些东西应该不能申请专利(或者为这些东西申请专利是不道德的),但他们却常常能成功地申请到专利权。
1701025909
1701025910
数学前进的步伐比专利办公室快。瑞士数学家、物理学家马塞尔·戈利(Marcel Golay)从香农那里听说了海明的想法之后,发明了大量的新编码。但他不知道海明本人已经开发了很多相同的编码并且申请了专利,他发表了自己的编码,导致双方就这项荣誉的归属权产生了纠纷,直到现在尚无定论。贝尔实验室得到了这项专利权,但是,依据1956年一个反垄断协议的条款,他们失去了有偿授权的权利。
1701025911
1701025912
海明码为什么能够奏效呢?要理解这个问题,我们必须反过来思考:在什么情况下,海明码无法发挥作用?
1701025913
1701025914
别忘了,最让错误校正码头疼的问题是,一个代码块与两个代码字都非常接近。收到这串令人讨厌的比特之后,接收方会无所适从,因为没有任何基于既定规则的方法可以帮助他们判断原始信息中包含的到底是哪一个代码字。
1701025915
1701025916
我们似乎使用了比喻这种修辞格,因为代码块和代码字都没有固定位置,为什么我们可以说一个代码块“接近”另一个代码字呢?海明在信息论概念方面的伟大贡献之一,就是强调这个说法不仅仅是比喻,甚至不需要冠上“比喻”之名。他为距离赋予了一个新的含义,现在人们称之为“海明距离”(Hamming distance)。海明距离在年轻的信息数学中的意义,同欧几里得和毕达哥拉斯心目中的海明距离在平面几何中的意义没有任何不同。海明给出的定义非常简单:两个代码块的海明距离就是把一个代码块变成另一个代码块时需要改变的比特数。比如,代码字0010111与0101011的间距是4,因为要把第一个代码字变成第二个代码字,我们需要改变排在第二、第三、第四和第五位的比特。
1701025917
1701025918
海明用8个代码字构建的海明码之所以能取得非常好的效果,是因为任何包含7个比特的代码块与两个不同代码字之间的海明距离不可能都小于1。否则,这两个代码字彼此之间的海明距离就会小于2。但是,两个代码字之间仅有两个比特不同的情况是不存在的。事实上,任意两个代码字的海明距离至少是4。我们可以把代码字想象成被束缚在原子核周围的电子,或者电梯中性格孤僻的人。他们都位于一个狭窄的空间中,并且尽可能地保持彼此之间的距离。
1701025919
1701025920
经受得住噪声干扰的所有通信方式都是以这个原则为基础的,我们日常使用的语言就是这样。如果我把“language”(语言)写成了“lanvuage”,你们肯定知道我想要说什么,因为在英语中没有其他单词与“lanvuage”仅有一个字母不同。但是,如果你写的是一些比较短的单词,例如,“dog”(狗)、“cog”(齿轮)、“bog”(沼泽)和“log”(木材),前面的推理方法就不管用了,因为这些事物在英语中出现的频率都不少,如果噪声掩盖了第一个字母的发音,你就不大可能知道对方到底说的是哪一个单词。但是,即使在这种情况下,你仍然可以借助语境修正错误。咬人的很可能是“dog”,你可能是从“log”上面掉下来的,等等。
1701025921
1701025922
我们有可能提高语言的效率,但是,如果我们真的这样做,就会破坏香农发现的那种严格的平衡性。很多书呆子和(或者)有数学信仰的人曾历经艰辛,创造了可以准确传递信息的简洁语言,这种语言没有英语等语言中存在的冗长、同义和歧义等问题。1906年,牧师爱德华·鲍威尔·福斯特(Edward Powell Foster)创造了一门叫作“罗欧语”(Ro)的人造语言。他的目的是弃用英语的海量词汇,代之以可根据逻辑由读音推导出语义的单词。麦尔威·杜威(Melvil Dewey)的“杜威图书十进制分类法”虽然把公立图书馆的书架管理得井井有条,但该分类法就像罗欧语一样严格死板,因此,杜威热衷于罗欧语这个事实可能并不令人吃惊。罗欧语的确非常简洁,英语中很多比较长的单词,例如“ingredient”(配料),在罗欧语中就简短得多,写作“cegab”。但是,简洁也是要付出代价的,罗欧语失去了错误校正这个英语与生俱来的特点。电梯里空间狭小,人多拥挤,因此乘客并没有多少个人空间,也就是说,罗欧语中的每个单词都会与其他很多单词相近,很容易发生混淆。罗欧语表示“颜色”的单词是“bofab”,如果换一个字母,把它变成“bogab”,就会得到表示“声音”的单词。“bokab”的意思是“电”,而“bolab”的意思是“味道”。更糟糕的是,罗欧语的逻辑结构导致发音相近的单词也具有相近的意思,导致我们几乎无法根据上下文的语境来判断到底是哪个词。“bofoc”“bofof”“bofog”“bofol”的意思分别是“红”“黄”“绿”“蓝”,用相近的发音来表示相似的事物有一定道理,但是,也会导致人们在嘈杂的派对上无法使用罗欧语谈论颜色,“对不起,我没有听清楚,你说的是bofoc还是bofog?”
1701025923
1701025924
与之相反,某些现代人造语言走到了另一个极端,过度使用了海明与香农提出的那些原则。当代最成功的人造语言之一——“逻辑语”(Lojban),严格规定所有的基本词根(或者叫作“ginsu”)都不允许有相近的发音。
1701025925
1701025926
海明的“距离”观与法诺的哲学观一脉相承,他认为,如果一个量与距离有相似的特点,那么这个量也可以被称作“距离”。很显然,海明并没有就此止步。在欧几里得几何学中,与给定中心点的距离小于或等于1的点集叫作圆;在维度大于2时,叫作球体。因此,我们把与某个代码字的海明距离不超过1的代码块的集合叫作“海明球体”,该代码字位于海明球体的中心。要想具有错误校正能力,编码中的所有代码块(如果真的要用几何学来类比,就是所有的点)与两个不同代码字的海明距离就不能都小于或等于1,换言之,我们要求以不同的代码字为中心的海明球体不能有交叉点。
1701025927
1701025928
因此,在构建错误校正码时,与经典几何学一样,也需要解决“球体填充”
1701025929
1701025930
(sphere packing)的难题,即如何把一堆大小相同的球体填充到狭小的空间中,使它们尽可能地紧密排列而且所有球体互不重叠。换一个更简洁的说法:盒子中可以装多少个橙子?
1701025931
1701025932
球体填充问题由来已久,比错误校正码出现的时间要早得多,甚至可以追溯至天文学家约翰尼斯·开普勒(Johannes Kepler)的时代。1611年,开普勒写了《关于六角雪花》(Strena Seu De Nive Sexangula)的小册子。尽管这个书名非常具象化,但是开普勒在书中思考的却是天然形状的起源这个大问题。雪花与蜂巢为什么是六边形,而苹果的种子却是五五排列呢?现在,与我们关系最密切的此类问题是:为什么石榴的种子通常有12个面呢?
1701025933
1701025934
下面是开普勒的解释:石榴希望在果实中装入尽可能多的种子,也就是说,它在尝试解决球体填充问题。如果我们认为大自然总能找到解决问题的最佳途径,石榴就应该是球体填充的范例。开普勒认为,下面的结构是最紧密的球体填充方式。从平面图来看,第一层的种子应该是以下图所示的规则、整齐的方式排列在一起的。
1701025935
1701025936
1701025937
1701025938
1701025939
第二层与第一层相同,不过每颗种子都非常巧妙地置身于由位于下一层的3颗种子所构成的三角形的狭小空间中。然后,以同样的方式添加其他层。我们需要注意的是:每层有一半的间隙要用于盛放上一层的“球体”。因此,在填充每一层时,我们需要选择在哪些间隙中填充这些球体。最常见的选择方案叫作“面心立方晶格”(face-centered cubic lattice),该方案有一个非常好的特性:每层球体的位置正好位于自该层起下方第三层球体的正上方。开普勒认为,这是球体填充最紧密的方法。在面心立方晶格中,每个球体正好接触12个球体。开普勒猜想,石榴种子在逐渐长大的过程中,每颗种子会挤压与之相邻的12颗种子,因此接触点附近的表面会变平,最终形成他观察到的十二面形。
1701025940
1701025941
我不知道开普勒的石榴论是否正确,但是,几百年来,他的“面心立方晶格是最紧密的球体填充方式”的论断,一直为数学界津津乐道。开普勒没有提供任何证明,很显然,在他看来,面心立方晶格理论是不可能被推翻的。一代代的食品杂货商都与开普勒的观点一致,他们在堆放橙子时一直采用面心立方晶格这种方法,而从来不考虑这是不是最佳做法。不过,苛求的数学家希望能找到铁证,而且,他们关心的不仅限于圆与球体。进入理论数学的研究领域之后,我们自然会超出圆与球体的范畴,研究维度超过三维的所谓超球体填充问题。射影几何学的研究成果拓展了错误校正码理论的视野,那么高维的球体填充问题也会推动编码理论的发展吗?这一次的情况与人们的初衷几乎背道而驰,人们深入研究编码理论取得的突出成果,反过来对解决球体填充问题起到了推动作用。20世纪60年代,约翰·里奇(John Leech)利用戈利发明的一种编码,构建了一种紧密程度令人叹为观止的24维球体填充方法,人们称之为“里奇晶格”(Leech lattice)。在里奇晶格这个拥挤的空间里,每个24维球体同时接触196 560个其他球体。我们仍然不知道这种填充方法是不是最紧密的24维球体填充法,但是,2003年,微软研究院的亨利·科恩(Henry Cohn)与阿比纳夫·库玛(Abhinav Kumar)证明,如果存在更紧密的晶格,那么这种晶格的与里奇晶格的紧密程度的比值最多为:
1701025942
1701025943
1.000 000 000 000 000 000 000 000 000 001 65
1701025944
1701025945
也就是说,两者非常接近。
1701025946
1701025947
你无须关心24维球体以及如何将它们排列在一起的问题,但是,你必须知道,像里奇晶格这种令人惊叹的数学对象肯定有非常重要的价值。事实证明,里奇晶格具有大量奇特的对称性。1968年,杰出的群理论学家约翰·康威在接触到里奇晶格之后,经过12个小时的计算,用了很多张纸,才找出了其所有的对称性。后来,这些对称性成了有限对称群的一般理论的组成部分,这些一般理论是代数学家在20世纪大部分时间里潜心研究的内容。
1701025948
1701025949
至于古老的三维橙子问题,研究证明开普勒说的没错,他的填充法的确是最佳方法。但是,直到大约400年之后,托马斯·黑尔斯(Thomas Hales)才于1998年完成了证明。黑尔斯当时在密歇根大学任教,他将这个问题简化为只有几千种排列方式的球体,然后借助计算机处理大量计算步骤,才完成了这个艰难的证明。数学界对于艰难的证明早就习以为常了,对于他们而言这不是问题。人们很快就发现并验证了黑尔斯的证明过程的准确性,但是,计算机完成的大量计算则难以验证。我们可以从头到尾详细检查证明过程,但是计算机程序与证明过程不同。即使人们可以检查每个代码行,又如何才能确定这些代码运行起来没有问题呢?
1701025950
1701025951
数学家普遍认可了黑尔斯的证明,但是黑尔斯本人却面临着一个问题。当初,证明过程对计算机的依赖让他感到有些不安,现在,虽然开普勒猜想的证明工作顺利完成了,但他依然无法释怀。于是,黑尔斯离开了让他一举成名的几何学领域,投身到对证明过程进行验证的研究中,他希望未来的数学与我们现在看到的有很大不同。他认为,无论是借助计算机还是使用纸笔完成的数学证明,都已经变得十分复杂,而且各个证明过程相互依赖,以至于我们再也没有充分的理由相信这些证明过程是正确的。康维尔对里奇晶格的分析成为“有限单群分类”的一个重要组成部分,有限单群分类这个研究项目目前已经完成,其成果表现为几百名作者撰写的几百篇论文,这些论文的篇幅总计超过1万页。据说,到目前为止还没有人能够理解其全部内容。那么,我们如何才能确定这些内容都是正确的呢?
1701025952
[
上一页 ]
[ :1.701025903e+09 ]
[
下一页 ]