第5章 无概率性和复杂引擎
有序和无序有何关联?
见过以前老式的电视机吗?我还有一台。当调到没有台的频道时,屏幕就会显示随机闪现的“雪花”点。换一个有信号的频道,会看到演员表演或很远地方的风景。屏幕上有序和无序的区别很明显。雪花屏幕与有人说话的屏幕的像素是一样多的,但它们的状态不一样。盐晶、病毒和动作电位是自然界中有序的例子;气体和液体则明显缺乏结构。如果组分(像素或分子)之间有关联,我们就会识别出结构。结构体现有序,虽然根据我们的经验有序和结构很常见,它们的定义却比你可能认为的要更难琢磨。
抛硬币是一个很好的例子。如果反复抛,预期有50%是正面,我们说某次为正面的机会是50/50。有许多手法可以改变预期的结果,但只要你使用的硬币匀称,抛1000次大致是500次正面500次反面。显然如果你在硬币正面标H反面标T,抛1000次硬币会得到1000个H和T组成的字符串,这个字符串将是一个“随机”无结构的1维字母排列。但真是这样吗?随机生成就能保证随机序?
回答是否。如果抛硬币实验反复进行许多次,结果偶尔也会表现出明显的模式。如果你抛了一次正面,下次反面的机会是50/50(概率1/2)。如果你先抛了一次正面,又抛了一次反面,下次为正面的机会还是50/50。因此依次抛出正、反、正(H·T·H)的概率为1/2×1/2×1/2,即1/8。抛出H·T·H·T·H·T·H·T·H·T的概率是1/1024。原则上,如果抛1000次硬币,以下结果都有可能出现:1000次交替的正和反,2次正跟着3次反(H·H·T·T·T)重复500次,500次正跟着500次反,甚至1000次反,1次正都没有出现。虽然这些有序的结果理论上是可能的,我们却预计永远也不会看到它们发生。这是因为抛1000次硬币得到特定结果的概率是1/21000,小得难以想象。如果预先选定某个特定的结果,我们一直抛到宇宙终结也无法看到这个结果发生。
抛硬币揭示了一个对所有由组分组成的对象(或系统)都适用的原理:组分的随机排列通常会导致无序,但并不总是这样。这个原理对符号序列、电视机屏幕上的像素以及分子的3维构形都适用。分析表明组分的数量越多,非随机状态在可能状态中的占比就越低。极端条件下,例如2个字符长的H和T排列似乎都有序,要么是相同符号出现两次,要么是交替出现。在另一个极端,无穷长序列中有序的可能性为0。
对这类讨论的一个挑战是对有序的认识有主观性。幸运的是,有严格的方法可以定义随机和非随机,这个方法来自计算理论。根据这个思想,随机序列的元素之间没有内在关联,即没有相关性。我们在第2章讨论过这个思想。例如,假设元素是英文字母,那么对于随机的字母序列,没有什么方法能预测序列中某个特定的字母,就算其他字母都给定了也是如此。而非随机序列则具有内在关联,可以用序列不同部分之间的关联规则来刻画。例如1000个A后面跟着1000个B。存在简单规则能将A和B关联起来。规则“写1000个A接着1000个B”就能得到想要的序列。
在计算机科学中,计算的输入被视为对输出的描述,而有序和无序对象的定义区别是有序对象允许短描述。对于很短的序列,例如H·T,存在关联元素的简单规则,但规则比序列本身更长也更复杂;因此我们无法说这种序列是不是有序。对于H·T·H·T·H·T·H·T·H·T,规则为“重复H·T 5次”,如果我们缩写为5×HT,会比原来的序列短一点。对于1000个交替的H和T,规则“1000×HT”就要短得多,因此我们可以明显认识到这个序列是有序的。
计算有一个不那么容易认识到的特点是,大多数输出都无法用比输出短的输入得到。绝大多数的长序列都是随机的。如果输出存在内在关联,输入就有可能比输出短。“有趣的”计算对象几乎都是那些具有内在关联——即具有结构——的形态。有序的呈现有时候很微妙,很难通过眼睛发现,但如果一个对象(输出)可以用短输入通过确定性计算得出,我们就知道其中存在某种形式的有序。这为有序提供了定量定义:一个对象如果存在比对象本身短(或小)的描述,就具有有序性。
关于对象的随机性还有很重要的一点是有序和随机不是非此即彼的关系。一个对象可以很有序或不那么有序。事实上,很多对象都是既有序又无序。抛一个不匀称的硬币生成的H和T长序列可能是55%的T和45%的H。这样的序列不是非常有序,但还是表现出一定的规律性。我们的身体有许多结构,但在细胞和亚细胞层面上也有许多随机性。
总结一下,有序排列的特点是存在内在关联,而所有物理系统都共有的一个重要特征是绝大多数可能的形态都没有内在关联。对于大系统,有序不符合预期,因此需要解释。