阿克塞尔罗德于1987年发表了他的研究成果,他结合进化模拟和博弈论开展了一系列富有成果的研究。6克里斯蒂安·林格伦(Kristian Lindgren)建立的模型对这项研究作出了贡献,他是来自瑞典查尔姆斯理工大学和哥德堡大学的一名物理学家。7林格伦的模型特别有趣,他没有让成对的参与者在锦标赛中相互对抗,上演囚徒困境,相反,他让多个参与者同时进行游戏,如同糖域中相互作用的参与者那样。
林格伦对不断演变的囚徒困境的模拟为我们提供了一个相对简单的大肠杆菌模型,该模型捕捉了进化如何在经济的复杂适应系统中展开的几个关键方面。第一,合作与竞争之间的内在权衡产生了一种中心矛盾,使系统持续处于不平衡状态。这种矛盾导致了合作结构的转变,这种结构会随着时间的推移自我组织、成长和解体,就像在现实经济中一样。第二,与我们在第6章的讨论一致,林格伦的模型中面对囚徒困境的参与者没有办法全局优化他们的行为。他们所能做的就是审视自己的情况和历史,然后尽力而为。第三,正如前面所讨论的,参与者的动态交互通常会导致复杂的紧急行为模式,其中许多行为模式是不可预测的,林格伦的模型也不例外。第四,也是最有趣的一点,这是一个创新的模型。就像卡尔·西姆斯探索能游泳的生物的进化一样,林格伦利用进化来寻找囚徒困境中的成功策略。实际上,我们可以把林格伦模型看作利用进化探寻所有可能的囚徒困境策略的巨大设计空间。
林格伦模型的整体结构实际上结合了两个游戏:囚徒困境和生命游戏。生命游戏是由数学家约翰·霍顿·康威(John Horton Conway)开发的,这个游戏在一个像是大棋盘的二维网格上进行(见图10-2)。网格上的每个方块都代表一个小细胞,每个细胞在游戏中的任何一点都可以打开或关闭。如果一个细胞处于打开状态,它将变为黑色;如果处于关闭状态,它将变为白色。每个细胞有8个相邻的细胞,4个紧邻的细胞和4个位于对角线上的细胞。一个细胞是打开还是关闭取决于其相邻细胞的状态,每个细胞都遵循一个简单的规则:计算有多少相邻的细胞处于打开状态。如果数字是2,那么中心的细胞将在下一轮保持它现在的状态。如果数字是3,那么中心的细胞将在下一轮中打开,不管它现在的状态如何。在其他情况下,细胞将会在下一轮关闭。
图10-2 生命游戏
生命游戏之所以得名,是因为它用简单的规则建立了细胞网格,人们能看到细胞组成的图案,有时一闪一闪就好像细胞是活的。有时网格看起来像是一团乱闪的光,有时细胞在复杂的图案中自我组织,看起来像是在培养皿中生长的细菌。你可能会注意到生命游戏和考夫曼的布尔网络之间存在相似性,两者都属于细胞自动操作,这是约翰·冯·诺依曼在20世纪60年代开发的一类高度通用的计算系统。
林格伦在他的模型中创建了一个生命游戏,但是他没有按照生命游戏的正常规则让格子上的细胞闪烁,而是让它们根据细胞之间进行囚徒困境博弈的情况打开或者关闭。我们把网格上的细胞称为行为者,每个行为者都会与最近的4个邻居玩囚徒困境的游戏(见图10-3)。每个行为者都有可能采取不同的游戏策略。例如,一个可能采取“以牙还牙”策略,另一个可能正相反(总是做与对手相反的事),一个可能总是合作,等等。林格伦根据占领细胞的行为者所采用的策略给每个细胞染色,他获取了每个行为者在4场游戏中的分数,计算了它们的平均分。一轮中平均分最高的行为者被称为胜利者。然后,胜利者会像病毒一样占领邻近细胞的中心位置,然后将其获胜策略注入这个细胞,实际上是进行了自我复制。9例如,一个反“以牙还牙”的行为者赢得了一轮比赛,中间的玩家就会被注入反“以牙还牙”策略,然后在下一轮中使用这个策略。
图10-3 将生命游戏和囚徒困境博弈结合在一起
那么,网格上的每个行为者是如何决定使用哪个策略的呢?我们可以在网格中随机设定不同的策略,看看会发生什么。这样做会产生一个相当无聊的结果,因为最终格子会进入某种均衡状态,或者重复循环某种简单的模式。这对林格伦寻找比“以牙还牙”更好的策略的问题帮助不大,因为通过测试随机产生策略找到好东西的概率很低。
林格伦转而决定让进化搜索所有可能的囚徒困境博弈的设计空间,寻找高分策略。网格上的每个行为者都被赋予一个概要,一个由1和0组成的计算机DNA字符串,用来编码策略。林格伦认为行为者会通过归纳作出战略决策,也就是说,他们回顾了游戏历史中的行动和反抗行动,并利用这一历史模式预测在下一轮中获得成功的策略是什么。因此,输入每个行为者的计算机DNA都是历史中的行动和反抗行动,输出的是是否合作或背叛的决定。
林格伦初始化游戏时设置的是只能记得前一行动的行为者。对于一个只记得前一行动的行为者来说,可能采取的策略只有四种:
1.永远背叛,永远背叛,不管对手做了什么。
2.永远合作,永远合作,不管对手做了什么。
3.以牙还牙,总是做对手做过的事情。
4.反以牙还牙,总是做和对手相反的事情。
在游戏开始的时候,林格伦给每个行为者随机赋予了这四种可能策略中的一种。然后,他借助随机突变周期性地破坏它们的DNA,使其经历进化变异的过程。林格伦的模型采用了三种类型的突变。第一种,点上的突变,仅仅是行为者计算机DNA中的某一单一位置发生了改变,比如01变成了00。第二种是基因复制,DNA中的一段被复制然后增加到了尾部,比如01变成011。基因复制的一个效用是行为者的记忆会扩充,从而记住更多的历史行动。因此,行为者不仅能看到前一步的行动,还可能看到前两步或三步的行动。有了更多的记忆,行为者就能想出更复杂的策略,“如果我的对手背叛了,那么我也背叛,然后我的对手会再次背叛,我就会合作”。第三种,分开的突变,DNA的一段或另一段被砍掉了,比如011101000110001变成了011011。这将缩小内存大小,从而降低策略的复杂性。
除突变外,林格伦还会让行为者犯错来制造随机的改变。一个行为者的策略可能表明要合作,事实上它却会“意外地”背叛。