地图很适合帮助我们更深入地理解数字和模型之间的关系。地图以很直接的方式忽略了细节,并且和游戏一样,都是人类最早的模型。而且,我们的长远目标——找到涌现过程的普适框架,也正是某种形式的地图,所以对地图的深入理解将有助于我们明确这个目标。
我们先来考虑一幅简单的地图,如一幅交通图(见图3-1)。如果一幅交通图具有大多数州级交通图的细节完备程度,那么市、镇、村等居民中心就会在图上用不同尺寸的圆点或正方形来表示,连接这些居民中心的道路则会用不同颜色的线段表示,不同颜色表示不同的道路等级。交通图上也许还会显示一些湖泊或河流,但一般说来,这类图的显示重点是居民点和道路。在交通图上,有两类关系被保留了下来。
图3-1 道路图模型
· 居民中心和图上的圆点呈一一对应关系,每个市、镇、村都用图上的一个圆点表示。
· 地图上的每个圆点都放在恰当的位置上,也就是与它所表示的居民中心在州中的实际地理位置一致。那些在州内距离较近的大型城市,在地图上用相互靠近的较大圆点表示,而靠近城市边界的某个小城镇,在地图上会用一个靠近边缘的小圆点表示,等等。但是,所有的距离都按比例大大缩小了,因此现实中相距32千米的两个城市在地图上可能仅仅相隔约5厘米。地图上的弯路、直路、道路的交叉关系也都按相同比例缩小了。
略加思索就会发现,这类交通图上保留的具体细节很少。我们行车时所看到的景物在地图上基本上都没有呈现出来。地图甚至忽略了那些小的弯道和小的转弯,因为它们同道路的大方向相比太小了,在地图上根本表现不出来,更不用说那些小城镇的景致细节了。在地图上保留下来的只有在正常情况下从一个地方到另一个地方重要的道路信息。道路建设施工和一场暴风雨都能使地图所提供的路线失效。
显然,比例在绘制地图的过程中扮演了重要角色。当我们把视野从地图扩展到其他类型的模型时,比例同样具有很大的作用。我们马上就会讨论被称作“比例模型”的一大类模型,如轮船模型、铁路模型、飞机模型等。尽管像拉什莫尔山这样的雕像模型可能是按比例放大的,但大多数雕像和有代表性的雕塑却常常比现实中对应物的尺寸要小。但是,如果我们更深入地研究,就会发现比例在其中的作用很小或根本不起作用的另一类模型。按比例缩放只是一个更深层次概念的特例,这个概念就是对应性(correspondence)。
当我们制作比例模型时,对应性是自动保持的,然而保持对应性并不一定需要按比例缩放。在利用对应性来构造模型时,我们先选择需要表示的细节或特征,然后开始构建模型,以便使模型的某些部分同现实对应物的每个细节都一一对应(见图3-1)。想一想制作蛋糕的食谱。它就是对实际制作蛋糕的整个过程的建模。食谱中的每一个步骤,如加一勺糖,都同现实中某个复杂动作相对应,这个复杂动作往往包括了一系列的实际动作和测量。
塞缪尔的国际跳棋模型正是这样的一个例子。该模型并没有引入比例。在这里,对应性体现在游戏特征同计算机程序中相应部分之间的对应。例如,与“领先棋子数”这个特征对应的是计算机中实实在在运行的一段计算棋子数量的指令。我们将在后面的章节中详细论述棋类游戏特征和计算机子程序之间的对应性,而在这里先做一些基本介绍。
借助符号,我们能更好地解释对应性。用X={x1,x2,…,xn}代表被建模细节的序列,用Y={y1,y2,…,yn}代表模型中与这些细节相对应的模型构成要素的序列,那么我们只要简单地将这两个序列整齐地排列在一起,便可以表示其中的对应性。用数学方法表示,就是一个一一对应的函数f:X→Y,这个函数将所描述对象的细节映射到模型的构成要素上。左边的对象(x)叫作这个函数的自变量(arguments),右边的对象(y)叫作函数值(values)。有趣的是,工程技术术语制图(mapping),在数学中被用来精确定义函数,对应的概念为“映射”。函数或映射的概念,是许多数学领域的核心概念。因为模型的构建依赖于这种对应性的建立,而函数概念的引入让我们得以掌控建模的精确性。这样一来,我们就可以借助这些重要的数学工具,对涌现系统建模。
我们没有必要做更多的数学研究,就可以领会用函数来讨论模型的好处。引入数字可以提高模型的清晰性和精确性。要描述“经济状况”,可以用某种修辞术语,比如说“生产部门很吃紧”;也可以用报纸上常用的图表来描述。它们的效果截然不同。图表能描绘国民生产总值随时间的变化,例如,把代表生产总值的货币金额同相应的年份一一对应起来(见图3-2)。这样的数与数的对应也是一种函数关系,它的精确性足以让我们判断趋势,做出预测。
图3-2 函数和对应关系
我们在周围的现实世界和各种仪表的实时读数之间建立了一种对应关系。例如,轮胎气压计的读数对应轮胎的充气量。就连日历也是这样一种工具,同报纸上的图表一样,它将流逝的时间信息转换为数字表示出来。正是这样的转换机制使各种仪器成为实验科学的核心角色。利用这些仪器,我们才能够为所研究的现象建立数字化的模型。因为计算机本身是一种处理数字的仪器,这种将现实世界进行数字化的转换正是建立计算机模型的关键。
函数和对应性之间的这种关系,还为我们提供了建模过程中剔除细节的一种方法。国际跳棋程序中的特征就是这样的一个例子:许多棋局对应同一个特征值。比如,对手比机器棋手多一枚棋子的特征,可能会在很多不同的棋局中出现,这是一种多对一(many-to-one)的对应关系。定义这种对应关系的函数是将同一个数值赋予多个不同对象。用刚刚介绍过的准确术语可表示为:多个不同的自变量对应同一个函数值。在建模过程中,我们可以利用多对一的函数将多个细节不同的对象映射到模型中的同一个要素值上。