无限存储

发表于《科幻世界》2005年第5期 

无限存储

作者:杨贵福

存储记忆

存储于北极星原子中的能量亿万年前爆发出的光辉,终于在百万年前到达我们的星球,指引我们迷失于森林中的祖先走向文明。当他们仍然笨拙的双手开始用高温、烟熏、腌渍的方法长期保存食物的时候,当秉笔直书的史官用刀在竹片上艰难刻下第一个字的时候,我们的文明就开始拥有了共同的回忆。

“凡走过的,必留下痕迹。”从那个下腭还突出的祖先第一次有意识地把那块顺手的石器留在身边的时候,从他用古拙的风格把颜料涂在阴暗的洞壁上勾勒出第一头野牛开始,人类就在探索这样一条道路,把事实和情感记录下来,在以后的日子里一次次重新感受,同时也彰显出自己的存在。即使透过遥远的岁月,烈日的正午,《荷马史诗》里那位看不到自己身影的老人也仍一直徘徊在残破的城墙燃烧的战船间,歌唱英雄的传说。

即使是同一信息,如果使用不同的存储方法,也正如反射同一缕阳光的宝石,闪耀着完全不同的璀粲光芒。

刘慈欣先生的小说《诗云》中,伟大的外星艺术家为了创造出世界上所有的诗歌,要用整个太阳系物质的状态来存储这些数量巨大的闪光语句。而如果采用最简单的字典压缩算法的话,则只需要一张在容量上已经过时的1.44M软盘(?)就足以容纳同样的诗句。再极端一点儿,我们请一位任何计算机语言的初学者按这位外星艺术家的想法编写一个具有多重循环的程序,用来生成这些记录了诗人李白或者十六个“啊”字的思想,这个短短的程序中就存储了与用整个太阳系的物质状态表示的巨大信息相同的内容。

第谷穷其一生仰望星空记录下了连篇累椟的数据,开普勒那三个简洁的数学公式也同样存储了这些信息,而且公式中太阳系之外的星空更加广阔和壮美。

维纳斯的手臂在风中轻扬,完美的形像在雕塑师的心中挥之不去,他用物质和艺术向世人再现光芒中的神祗。当美神的手臂淹没在历史的尘埃中,我们仍然能看到雕像的明眸和容颜,而她手臂的姿态只能成为世人梦中的猜想。如果那时的艺术家使用全息摄影来存储他梦中美神的风姿,那么即使岁月只给我们留下其中一个小小的碎片,激光的频率与相位记录的信息也能让每一个碎片都独立重现出美神全部的细节。如果艺术家使用数字化的方法记录美神的笑容,无论时光之刀如何切削,千百年后维纳斯的笑靥也会仍如最初的回忆一样清晰。只是在某些数字化存储方法中,哪怕丢失一个比特的信息,都可能导致整部作品在风中消逝无形。

时间与载体

满是期冀地托起爱人的脸,我们多么希望海誓山盟与青春的面容都能够像最动人的回忆一样永恒不变。人们把爱的誓言寄托于恒久远的钻石,可是当我们的灵魂都已在风中飘散的时候,无尽岁月之后,那个在温暖的阳光里被钻石中流动的光线吸引的孩子,他会了解在这片异彩中的我们爱的故事吗?如果珍宝比爱情更稳定,在我们心中所珍视的又到底是什么?

让我们的回忆长久地在世界中保存,直到地老天荒。

烈烈风中,漫漫黄沙,仗剑的窦宪燕然勒石,希望自己的功绩与山石一样不朽流传。最初冲出太阳系的旅行者号,外壳上系挂着人类与外星文明交流的信息,合金板上永久保存着地球召唤的声音。

这些记录介质虽然稳定,但是每次存储的成本都过于高昂,而且存储所需要花费的时间也都较长。另一种存储的方案却刚好相反。民间自古口头流传的故事,虽然成本低廉、记录快捷,但是故事在口口相授中不断变形,有时到期完全失去了原本的风貌,最后无论是古希腊的神话还是中国古老的《诗经》都以凝结为纸张上的文字。至于赫拉克勒斯的须发如何戟张、窈窕淑女的眉眼如何柔和,都只有靠我们的想像来补充其中的细节。

由于制版费用等原因,西方早期的《圣经》经常在书后附有勘误,而不能在书中直接修改,甚至还有勘误的勘误。

人类一直尝试用各种载体存储信息。现在,我们仍能触摸到雕像拉奥孔里形体突显出的绝望和愤怒,仍能感受到绘画《日出·印象》里有生命的色彩中流动的光与影,仍能从《梁祝》的乐谱中隐约听到弓与弦在哀婉地诉说蝴蝶斑斓的翅膀间飞翔的传说。同样是常用汉字,当它们组合在一起,有的记录了小女儿浅唱低吟的短调,有的则向我们描绘出宇宙里最广阔的画卷,让地球成为我们流浪的飞船,让大地在心中燃起不息的火焰,用几颗雨花石勾勒出恒星间无尽的缠绵。

计算机的发展,为存储介质带来最剧烈的变化。

由最初以打孔的纸带存储程序和数据,到后来使用磁带记载机器律动的脉搏。科幻电影《铁人计划》(?)中,发明者就在录音机的磁带上录制了在别人的耳朵中只是音乐,而只有机器人才能读懂的信件。接踵而来的磁盘和光盘发展的速度更令计算机的世界中充满了吸引力和斑斓的五彩。

1956年,第一台计算机诞生十年的时候,IBM公司向世界展示了第一台磁盘存储系统,容量只有5M的,由50个直径为24英寸的磁盘组成。5M的容量在现在看来是可笑的,任何一个MP3播放器的容量都是它的十倍以上。它的体积更是令人联想起当年占据整个房间的大型机,当年耗费电力巨大的大型机,却远不及如今指甲盖大小的CPU功能之一毫。但是正如对第一个在龟甲上刻下文字的先人一样,这古老笨重的设备中凝结的智慧是值得我们敬重的。对文字创造的敬仰在祖先们的心中留下了深刻的印象。仓颉造字,“天雨粟,鬼夜哭”;神话传说中普遍存在神奇的咒语,这些功能被夸张的语言,是不是也隐约体现出人们最初对能够承载信息的平凡的文字和语言的敬畏呢?计算机存储介质的飞速发展,在不久的未来,也许就能激发出信息时代新的美丽的神话。

20年后问世的温盘(Winchester硬盘),就已经拥有了很多现代硬盘的基本特征。不进行数据读写的时候,磁头悬浮在高速转动的盘片上方,而不与盘片直接接触,读写数据的时候,磁头沿高速旋转的盘片上做径向移动。这种工作模式沿用至今。

硬盘磁头在加电后飞行于高速旋转的盘片之上,飞高间隙只有0.1μm~0.3μm,人的头发直径约是其百倍,是真正的“间不容发”。现在,即使是低速硬盘转速也达到了5400/秒。这个速度意味着,假使以这样的频率发出啸叫,它甚至超出人耳所能听闻极限的两倍。

对于信息存储,计算机世界的介质,对于同样长度的信息,提供越来越廉价的方案,存储信息所需的时间越来越短,而信息保存的时间却越来越长。即使一张普通的光盘,也能让其中的回忆稳定存在百年以上,而写满整张光盘的速度则以分钟进行计算。对比古老的石刻,其间的差别不言而喻。

但是,时间还远远不是我们在信息存储中要考虑的全部问题。

不列颠落日余晖里的巨大的石阵、复活节岛眺望大海的石雕忧郁的面孔,虽然经历了漫长的时间,都仍然忠实记录着创造者一斧一凿的痕迹,只是我们却早已无法得知,当初的人们想要通过这些坚实的介质向我们传递什么样的感情和故事。今天用DVD存储的数据,在十年后是否还能顺利找到设备读取其中的精彩?

为了提高访问速度,计算机中一段时间最常用的数据采用一种称作cache的技术,存储在较为昂贵但是却容量较小的空间里。在抛弃一个变量的时候,计算机甚至都不屑于删除它,而是完全的忽略,再次使用同一空间时,只是无情地写入。如果这是对待爱情和回忆的态度,该多么令人伤怀?

对于已存储的信息的解读,如何处理信息存储中空间与时间的矛盾,这也是存储中应该讨论的问题。

空间与速度

当人们在美索不达米亚平原的泥板上演算书写的时候,当人们用汗牛充栋来形容藏书量巨大的时候,当人们热切地讨论一个针尖上能够站立几个天使的时候,他们一定没有想到,后世的人们能够撰写出《大英百科全书》这样浩繁的巨著,他们一定更难以想象,这部巨著可以全部清晰地刻写在一根针的尖端之上。对于现代缩微技术而言,尖细的针的顶端,是一个硕大无比的平面,足够书写那样的作品。

如果有无限的精度,在《从惊讶到思考——数学悖论奇景》一书的世界里,能够用更小的空间存储近乎无限的信息。

还以《大英百科全书》为例。我们把书中的全部文字以某种方式编码,表示为数字的形式(学过程序设计的读者可能想到了ASCII编码,或者用莫尔斯电码)。让我们在头脑中展开这串数字,然后再数字的前方点上一小数点,前面加上0,它便形成了一个小于1的纯小数。这个数字很长吗?那么它与圆周率π相比如何,与根号2相比,或者与自然对数e相比呢?作为一个有限长度的小数,在无限精度的假设下,它的长度不足道也,甚至连无理数的资格都没有。取一根小棍,我们从它的一端量取《大英百科全书》编码形成的那个数字所表示的长度(可能0.3472……米),在这里轻轻划下一道印迹。

这个印迹,就代表《大英百科全书》的全文。同样的道理,我们能够用这样一个印迹记录人类有史以来全部知识,甚至在可以预见的未来岁月里产生的知识。当然,前提是,在数学的世界里,一个有无限精度的假设。

上面的方法在实际操作中,除了精度的要求无法满足外,还有一个问题。如果这个存储了大量信息的印迹与小棍末端的长度发生了哪怕一点点变化,我们不妨假设是由于运输、由于热胀冷缩、由于时光流逝,这一点点变化,就足以摧毁我们精心测量并记录下的全部内容。因为,那个重要的纯小数的数值不再精确了,很难确定从哪一位起,后面数字解码所得的文字都是胡言乱语了。

现代数字化信息存储,正在不断向在有限的空间内存储近乎无限信息的理想境界逼近。包含有图片、声音、影像的《大英百科全书》,仅使用三张CDROM就能完整的存储,而且光盘中除了数据外还包括一些辅助程序。在绿色或金色的光盘中,一根近6公里的螺旋线盘绕在50100纳米厚薄得可以透过光线的黄金箔片上。

与低成本的海量存储方案同时存在的,是这样一个问题,我们如何在海量的数据中找到我们想要的那一条?茫茫人海中,你能一眼找到心中热切盼望的那个人吗,还是错拉住另一个匆匆而过的身影?在以G为单位的计算机虚拟空间中,怎样才能迅速定位那个与众不同的变量,也许下一秒,他就消失在数字的海洋之中,从此相隔参商?

计算机科学把完成某个任务(比如搜索)的算法执行所需要的时间量级称为时间复杂度;而把这个算法在运行中数据结构和所需要额外占用的空间的量度,称为空间复杂度。对一个任务,找到空间复杂度和时间复杂度都很小的算法,正是计算机科学家的任务之一。

一个极端的例子能在一定程度上说明这个问题——如果我们想在长长的一队人中找到你的心上人,而你只知道他的身高。最一般的查找方法,是顺序地读取每个人的身高,并判断这是否等于你心上人的身高。不要妄图一眼扫过去就阅遍弱水三千,这是在计算机的世界里。显然,最幸运的时候,我们遇到的第一个人就紧紧拉住你的手儿,述说从昨天分别后三秋的思念;最不幸的时候,“众里寻他千百度”,队尾的那个家伙已经“为伊消得人憔悴”,我们却要在一生中最后的时刻才遇到他。

数字化的世界里,也有不这么笨的方法。比如把每个人的身高(精确到微米吧)按一种称做哈希(Hash)的算法处理一下,然后在地上划出许多编号的小格子。让1750000微米——即175厘米身高的那位站在第1750000号格子里,1550000微米的那位站在第1550000号格子里。这样,我们不必再挨个比较,只要知道意中人的身高,你就能第一时间定位到那个格子,格子里站着的十有八九就是他。除非刚好两个人的身高在微米级仍然相同,这时需要更复杂一点儿的算法来处理。可能有的读者已经注意到了这个方法的一个问题,1米以下的格子可能大部分都要空着,这就浪费了巨大的存储空间。

顺序查找的方法,拥有最小的空间复杂度,而时间复杂度比较糟糕;哈希查找,时间复杂度相对较低,但是有时空间复杂度令人难以忍受。当然,也有折衷的算法存在。

这种最一般的讨论,看起来很愚蠢,各种对身高的查找方法都不如大喊一声心上人的名字来得快捷。但是这种抽象为一般的方法,能够适用于所有能抽象为这个模型的问题。

记得吗,数学家解决问题的方法?

一个数学家去做消防队员。队长问,“如果你这里起火了,你怎么办?”数学答,“用消火栓。”

“那么如果这里没有起火呢?”

“很简单,先把这里点着,然后这个问题就转化为一个我已经解决了的问题。”

在计算机科学中,有这样一个问题,在一幅由许多顶点和连接顶点的线条组成的图中中,寻找从某顶点到另一顶点最短路径。有人提出这样的方法,按这幅制作一个真空玻璃管道,并在其中充满稀薄的惰性气体。当在两个顶点间放电时,我们就会看到霓虹灯般美丽的电光立即勾勒出那条最短的路径。

也许,这种得到最短路径的速度比IBM的深蓝还要快。但是,这种方法却失去了解决问题最重要的方面,灵活性和一般性。按这个方法,我们要为每个要寻径的图构造一台这样的设备,而这样的设备可能只能使用一次。这时,计算机科学中最一般最笨的方法,也要比它节省成本了。

数字化存储方案中,还有一些算法能够带来其他的便利。经常用来存储照片的JPEG格式采用的算法,能把显示在我们面前的图片对存储空间的需求降低为原来的二十分之一,虽然损失了一些人眼几乎无法察觉的细节。我们常见的MP3Real格式的影视作品,也是采取了类似的有损压缩算法。

所有的文艺作品,都记录了人们的内心深处对外部世界的感受。

每个人的心中都有一个无限美丽的世界,而我们的头顶闪烁着同一片广袤无垠的星空。如果用这个宇宙中全部物质的状态来存储我们的感受,不知道是不是足够?

解读存储

DNA和蛋白质中存储了生命从无限远古进化而来的信息,记录了我们与其他生命间或远或近的亲缘关系。

遥远的星辰和悠久的化石,其中存储了多少信息,又有多少信息失落在了无尽的距离与岁月之中?

大地的咆哮里,你可听到了地壳运动规律的声音,可听到南亚次大陆拱起喜马拉雅乐章的中一个音符?地质学家告诉我们,每一次地震,都在向我们展示存储于大陆板块内部深层的消息。

同样一张古画,存储着画家的风格、古代的风土人情、造纸技术的发展、矿物颜料的使用、数学和技术的发展;如果借助于工具,我们还可以根据C14半衰期准确鉴定这张纸的制造年代。

正如罗丹所说,世界不是缺少美,而是缺少发现美的眼睛。星空一直在头顶向我们昭示宇宙全部的历史和状态,大地一直在脚下向我们传递最深的召唤,我们的心灵也一直与我们同在,期待我们发现每个行为揭示出的内部最原始和最高尚的情操。

世界中存储了太多的信息。解读这些信息,不禁令人重发庄周的慨叹,吾生也有涯,而知也无涯。

环视我们身处的自然与宇宙,甚至我们自身,都以某种特殊的方式为我们存储了无尽的信息,等待我们去解读。

也许有一天,我们终于发现存储于这个世界中的全部秘密,能够解答这世界上的所有问题。

那一天,整个世界,就是我们自由翱翔的翅膀。

------------------

   我是《无限存储》的作者杨贵福。感谢您指出《无限存储》BUG,写得如此粗糙,我非常惭愧。
敬受教。
  这些BUG里,有的,我完全错了;有的,您的提议非常好,只是我笔力有限,在文章中难以采用您说的写法,而又不显得太无聊;有的,我完全不懂。

>[quote>那么即使岁月只给我们留下其中一个小小的碎片,激光的频率与相位记录的信息也能让每一个碎片都独立重现出美神全部的细节>[/quote>
>全息图记录的是激光的幅度与相位信息(大体上可以这么说),而不是频率与相位,呵呵。同时,越小的全息图在再现时会附加上越大的噪声>,或者可以认为其分辨率降低了,是不是能再现全部的细节,那还得看那碎片有多大咯。
1.全息照片记录的确实是振幅和相位,而不是我所写的相位。
2.关于“全部的细节”,我想那已经是学术讨论范畴了:)


>[quote>现在,即使是低速硬盘,转速也达到了5400转/秒。这个速度意味着,假使以这样的频率发出啸叫,他甚至超出人耳所能听闻极限的两>倍。[/quote>
>首先需要指出的,5400转硬盘的转速是每分钟5400转,而不是每秒钟。“5400Rpm”中“Rpm”是Round per minuter的缩写。其次,5400Hz在人耳>>的听觉极限(20~20000Hz)之内。
谢谢您指出我如此愚蠢的错误。

>[quote>即使一张普通的光盘,也能让其中的回忆稳定存在百年以上[/quote>
>现在人们才发现光盘的可靠性远远不及先前所料,反射层的氧化是一方面,聚碳酸酯的化学稳定性也不容乐观。
跟《完美通信》时光纤的带宽上限一样,某些参考文献支持我的观点(尽管那是旧资料)。
我想,也许您的资料更新、更正确,但是,在我找到支持您的数据的关于光盘寿命的资料前……

>[quote>顺序查找的方法...当然也有折衷的算法存在[/quote>
>这里杨先生说的倒是基本正确,不过杨先生其实也可以讲一下那个最大路的方法--先排序,然后再用二分法查找。
  您的提议让我有遇到知音的感觉。
  在写《无限存储》的时候,确实想采用二分法作为例子。但是,我的笔力太低,不能足够漂亮的写法来描述它。既能说清楚,又能不让读者觉得无聊。我只想到了用类似文中HASH算法的写法,但是二分法似乎不像HASH那么容易描述、与顺序查找的差明也不那么戏剧化。
  真心希望您有更好的写法,请您一定不吝赐教。

>[quote>也许,这种得到最短路径的方法比IBM的深蓝计算机还要快...节省成本了[/quote>
>没错,但是杨先生大概不知道,量子计算机大致上就是如此解决这类问题的。
我真的不知道。

>[quote>如果用这个宇宙中全部物质的状态来存储我们的感受,不知道是不是够?[/quote>
>这个问题我觉得挺有趣,如果这些感受不是存储在宇宙中,那又是存储在哪里呢?
  :)
  这确实是个有意思的问题。
  “所有的文艺作品,都记录了人们的内心深处对外部世界的感受。
  每个人的心中都有一个无限美丽的世界,而我们的头顶闪烁着同一片广袤无垠的星空。如果用这个宇宙中全部物质的状态来存储我们的感受,不知道是不是足够?”
  1.我想我的笔太笨,没有说清楚吧。那个“宇宙”指的是“外部世界”或者说“我们的头顶闪烁着同一片广袤无垠的星空”,这个外部世界不包括我们本身。当然,是我希望这么指代,我的笔力不够,可能最后那个指代没有按我的意愿发生作用。
  2.回想在过去发生过的事情--美好的、令人沮丧的、幼稚的、还有像写出《无限存储》这样糟糕的文章在这里惭愧的感受--我们真的能回忆出所有的细节吗?(也许还有存储在脑中,但没有提取出来的吧)或者,另一个问题,我们的感受真的完全被保存下来了,没有一点儿丢失?我们全部的记忆,爱和其他种种感情,还有所有的感受,真的能用一个宇宙完全存储吗?
我们所有人的感受呢?

>ps:新论坛实在不好看,所有东西都挤在屏幕左边,我觉得原来的论坛看起来更舒服
PS:完全同意您的看法。而且论坛慢得很,我用了整整一个晚上的时间注册这个帐号,好表达对您的感谢和我的惭愧。
PS:能否告知您的邮箱,以后再写这类东西的时候,如果您有时间,想请您指正。

读过《无限存储》的读者,由于我的学术修养和认真态度不够,造成了《无限存储》一文的BUG。
非常抱歉!