黄鼠狼程式(Weasel program),或说道金斯的黄鼠狼(Dawkins' weasel,或者the Dawkins weasel),是一个思想实验,并且有许多计算机模拟可以解释。 这个实验的重点是澄清一个演化系统 — 随机的突变混合上一些非随机的天择 — 与纯粹的随机机率是不同的。
简介黄鼠狼程式(Weasel program),或说道金斯的黄鼠狼(Dawkins' weasel,或者the Dawkins weasel),是一个思想实验,并且有许多计算机模拟可以解释。 这个实验的重点是澄清一个演化系统 — 随机的突变混合上一些非随机的天择— 与纯粹的随机机率是不同的。
这个思想实验是由理查德·道金斯提出,并且也是由他写出第一个模拟。各种其他的程式模拟则是由其他人写出。1
批评一个常见的批评是这类程式必须要倚赖"锁住"已知正确的字母才能运作。 创造论者宣称"一旦字母落入属于它的位置,道尔金的程式就确认这字母不会因突变而被改掉。",但是,如下面的范例所表示的,这个限制其实并不存在。1
算法范例虽然道金斯本人没有提供他的程式码,但是一个"黄鼠狼"式的算法可以操作如下:
从一条具有28个字母的随机字串开始
复制100个相同的字串,然后每个字母有5%的机率会换成另一个随机的字母
将每个字串与目标 "METHINKS IT IS LIKE A WEASEL"作比较,给每个字串进行评分(正确的字母出现在正确的位置上此字串得一分)。
如果任何字串达到28分,也就是满足条件时,程式停止
否则,取用分数最高的字串,然后回到步骤2
在这里,一个"字母"指的是大写的字母或空白。 在道金斯的书里面没有明确指出字串的复制数目跟突变机率,这里的100个复制跟5%的突变机率只是个范例。另外值得注意的是,正确的字母并没有被"锁住":也就是说,即使一个字母已经出现在正确的位置,还是有可能在下一代突变的时候被改掉。1
相关条目遗传算法
本词条内容贡献者为:
王海侠 - 副教授 - 南京理工大学