《伟大的计算原理》一信息的转换
本节书摘来华章计算机《伟大的计算原理》一书中的第3章 ,[美]彼得 J. 丹宁(Peter J. Denning)
克雷格 H. 马特尔(Craig H. Martell)着 罗英伟 高良才 张 伟 熊瑞勤 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
信息的转换
一个单纯的通信系统只是简单地将信息从一处传输到另一处,但是计算机会做更多的工作,即转换信息。转换就带来了更多可能,其中最显着的产品就是新信息的出现。简单的转换包括将一个数平方、计算π至指定小数位数、对一列数字按照升序排列,每一次转换都是将一种信息模式作为输入,并创建一种信息模式作为输出。
因为二进制模式可以被解析为数,所以一次转换在数学上看来就像是一个输入数到输出数的映射函数。能够被机器计算的函数被称为可计算函数。图灵和他同时代的人们用这个概念来定义计算。图灵表示一个简单的抽象计算机——图灵机,足以实现任何可计算的函数(Turing 1937)。图灵机遵循一个非常简单的指令程序来实现这些转换。因为每一条指令显然可以被机器实现,那么计算机转换二进制的时候并不考虑它们的含义。这类似于香农所强调的,信道可以被设计得完全可靠并且不考虑传输信息的含义。
当我们稍微深入了解机器如何转换输入时,就会发现程序设计的一个重要方面,称之为含义保留(meaning-preserving)。设想两个数a和b相加,两个数相加意味着什么呢?这意味着我们要遵循一系列加法算法的步骤。这个步骤包括连续对a和b的两个对应的数字位相加,然后将其进位结果传递到更高位。我们对于属于{0,1,2,…,9}中的数字对有明确的加法规则,并且会产生进位0或者1。当为这个算法设计程序时,我们需要注意让每条指令都能够产生正确的加法结果。如果成功了,我们可以相信机器能够正确做出两个数的加法。若失败了,我们会说机器坏了。
换句话说,设计过程本身就是将我们脑中的加法过程转换为机器执行加法的指令模式,加法的含义就存在于机器和其算法的设计之中。
这对于任何其他的可计算函数也是适用的。我们把大脑中想法的具体含义转换成可计算的函数,将它输出到程序中,从而控制机器实现这个想法。这个过程也就是将具有我们想法含义的函数转变为对机器的设计。
从这个角度看,机器和通信系统不考虑二进制数据含义进行信息处理的概念有些站不住脚。算法和机器被工程师和程序员植入了含义,我们设计机器从而使得每个计算步骤和输出都是我们想要的含义,假设输入也具有我们想要的含义。仔细精确的设计就是为了不用担心机器曲解我们想要表达的含义。
计算机将计算函数和信道结合,一个信道将输入送到执行计算函数的机器,另一个信道将输出送到目的地。这种情况下信道和计算机似乎只完成了运输和操作信息位的工作。然而从人类的角度来看,计算带来了新的信息,无论计算机输出比输入更多还是更少的信息。例如,前文提到的一个计算π的函数,在输入一个三位数“900”时能生成900位的π的值,输出扩展了300倍的信息量。一个排序函数的输出和输入具有同样的位数,但是具有不同的顺序。一个平均函数能够计算出少量的数字来代表大量数据的平均值。
数字表示和机器操作都依赖于物理过程,每个机器操作都需要花费少量的时间和功耗。有些我们希望计算的函数需要花费太多的步骤以至于在有生之年无法等到机器返回结果。计算所需的物理处理严重限制了我们能够计算的内容。
计算的逻辑也会带来限制,其中最有名的就是我们想计算但无法计算的函数。图灵在1936年提到了停机问题——不存在一个程序,可以检查任何程序并且判断其在给定输入上是否包含无限循环。一个现在的实例是恶意软件检测,即不存在一个程序能够检测任意给定程序是否嵌入了恶意软件检测程序。我们在第6章检验计算的物理和逻辑局限性的时候,还会再回到这个话题。
即使当我们将注意力限制在可以计算并且很快返回有用结果的函数,也可以发现一些有趣的问题。当一个函数在计算我们没有见过的数据位时,这些数据位是新的信息吗(见图3.6)?或者它们只是现有信息的结果?DNA包含信息吗?很多生物学家认为包含。若DNA是一种信息,那它的信息源和接收端又是什么呢?如果对DNA解码,我们能得到什么信息呢?解码的DNA可以用来寻找治愈遗传疾病的治疗方案,也可以识别犯罪现场的行为人。将DNA与数据库匹配仅仅揭示了现有的信息还是生成了新的信息呢?经典的信息论无法回答这样的问题。
图3.6 哈勃太空望远镜的集光传感器阵列编码TB级数据并传输到地球,这些数据再被处理成为图像。计算理论将这个图像处理过程描述为方程Y = F(X),其中输入数据X在函数计算后产生输出图像Y。这个机器实现的功能(将信号发给它,它又生成信号)不依赖于望远镜传输的信息的含义,然而人类看到Y输出的是一张美丽的图片——船底座星云的实际展示(图片来源:NASA)
最后更新:2017-06-26 12:31:42