遗传运算法则
如何进行遗传和进化的模拟试验呢?这种灵感来自一种人工智能步骤,它是计算机科学家约翰·霍兰的研究成果,称为遗传运算法则(Holland,1975;Holland,1980;Goldberg,1989)。如果需要遗传运算法则方面较全面的入门知识,不妨参考霍兰和里奥卢的研究成果(Holland,1992;Riolo,1992)。遗传运算法则的概念基于染色体实现双重目的的方式:它表述生物的未来形态,同时也是能被改变的材料,为下一代产生新的遗传物质。
在讨论细节之前,简单地介绍遗传运算法则的运行方式可能会有所帮助。第一步,用染色体上的一串基因,为每一个许可策略指定一种表述方法。该染色体可以经历基因转变,比如突变。然后,从许可策略的集合中建立最初的群体(也许用简单的随机挑选方法)。每一代中,通过个体在当前策略环境中的表现来判断每个个体在群体中的有效性。最后,用相对成功的策略产生类似母体的后代。挑选成对的成功后代交配产生下一代的后代。每个后代从父母双方各获得部分遗传物质。而且通过突变,偶尔有全新的遗传材料引入。经过许多代相对成功策略的挑选,结果产生的群体很可能在给定的策略环境中比原来的群体远为成功。
如要说明遗传运算法则在博弈环境中如何运作,我们可以先考虑重复囚徒困境过程中可采用的策略。更具体地说,就是考虑决定性策略的集合,并使用前三步的结果为当前行为做出选择。因为每一步有4个可能结果,所以前三步行为有4×4×4=64种不同的历史状况。因此,要决定选择合作还是背叛,一种策略只需决定在每种可能出现的情景中如何行事。这可以通过64个C和D(C代表合作,D代表背叛)的清单来详细说明。例如,64个基因之一表示,在已成惯例的三次相互背叛之后,个体会合作还是背叛。染色体的其他部分处理所有其他可能出现的情景。
为了在博弈开始时启动策略,也有必要明确,在博弈开始前策略的三步假设的初始前提。这就需要另外6个基因,那么染色体上总共有70个座位。[2]这串为数70的C和D具体说明个体在每种可能情景下的行为,因此完全地定义了某种具体策略。这串为数70的基因也是个体用于繁殖与突变的染色体。
用这种方法可表述大量策略。事实上,具体数目是2的70次方,大约是10的21次方。[3]很明显,不可能非常彻底地在如此巨大的策略集合中搜索出良好的策略。如果一台计算机从宇宙形成之初以每秒100的速度检查这些策略,那么到现在也不过检查了不到1%。
在如此巨大的集合中寻找有效的策略,需要一种非常强大的技术。这就是霍兰的“遗传运算法则”起作用的地方。它最初的灵感来自生物遗传学,但后来经过修改,成为解决一类问题的通用技术。在目前的环境下,我们可以把它看成“极微遗传学”的模型,应用于研究丰富环境中进化的理论问题。我们设计的模拟项目大致分成5个阶段。见表1.2。
表1.2 基本模拟
Ⅰ.用随机染色体建立初始群体。 |
Ⅱ.对50代中每一代 |
A.对20个个体中每一个 |
1.对8个代表策略中每一个 |
(a)把染色体的前提部分作为个体对前三步行动的假设 |
(b)151步行动中每一步 |
(1)前三步行动已知情况下如何行事,根据含有该密码的基因作出个体合作(C)或背叛(D)的选择 |
(2)根据到目前为止博弈历史中应用的自身策略,作出代表C或D的选择 |
(3)根据这一步行动的结果更新个体的分数(如果双方合作加3分,如果代表策略合作而个体背叛,加5分,等等。) |
B.繁殖下一代 |
1.根据尺度函数(scaling function)(平均分数为1,超出平均分一个标准差的分数为2,等等),给予每个个体可能的交配次数 |
2.10次交配的每一次中,用交叉和突变造出两个选定父母的两个后代 |
1.选择初始群体。在当前环境下,可用70个C和D的随机串代表初始个体。
2.在当前环境中运行每个个体,以判断其有效性。在当前环境下,这意味着每个个体参与者使用由其染色体定义的策略,与其他策略进行一场重复的囚徒困境,个体的分数是它参与所有比赛的平均分。[4]
3.选出相对成功的个体来产生更多的后代。方法是一个中等的个体得到一次交配,比中等个体有效性多一个标准差的个体得到两次交配。比群体平均水平低一个标准差的个体没有交配。
4.成功的个体随机配对,每次交配产生两个后代。为方便起见,群体数目维持不变。后代的策略取决于父母双方的策略。通过以下两种遗传操作手段做到这一点:交叉和突变。
a.交叉这种方法从父母双方的染色体产生两个后代的染色体。可以这样说明:以父母双方为例,一个在染色体上有70个C(表明它将在可能出现的每种情景中合作),另一个在染色体上有70个D(表明它将总是背叛)。交叉将选出一个或更多的地方打断父母的染色体,以便产生的两个后代拥有来自父母双方的某些遗传物质。在此例中,如果在第三个基因后发生一次打断,那么一个后代将有3个C和67个D,另一个后代将有3个D和67个C。
b.随机地把很小一部分C改成D,或反过来,由此产生后代的突变。
5.产生新的群体。该新群体的行为模式将更类似上一代中成功的个体,而不太类似那些不成功的个体。在每一代新群体中,相对高分的个体更有可能把自己的策略部分地传递给下一代,而相对来说不成功的个体这样做的可能性低一些。