较少为正常情况的15。
PAM与PAMPercent控制了系统达到稳定灭亡的速度,FOODMULTIPLE与PLANTGROWSPEED用于平衡个体数目。
3.9 预测结果及理论分析
1. 在设计时个体属性中刻意加入了成年年龄这个属性,但未对该属性加以限制,该属性只对个体造成负面影响,个体在进化过程中应该使该值向趋于0的方向发展。
2. 个体的数量会从0增加到一个非常大的数目,然后因为匮乏资源,大部分死亡。
3. 步骤2的过程会不停的发生,再重复该过程中生物会不停的往不同方向进化,当然适应能力差的个体会优先死亡。
4. 系统的运行结果基本有2种,全部灭绝或者趋于稳定,由于系统中进化突变的概率非常高,系统并不可能显得每一次都能达到稳状态,变异也具有一定不稳定性。但是如果系统能趋于稳定(即在不停的重复2的过程中,越来越适应环境),个体数量的震幅应该会变得越来越小。
5. 加入了肉食性的系统后,由于算法过于复杂,十分影响运行速度(没有加入时我的CPU能在系统有10000个以下个体时运行,加入肉食性后,1000个个体的运算CPU已难以承受),运行时去掉了肉食性,去掉后势必带来一个严重的后果,参考现实世界,在一开始资源较少,个体较容易变异时,虽然竞争力其实不强,但是由于个体小,消耗资源少,非常容易存活下来,所以这样的生物会猛涨,并且无法得到控制,系统的平稳阶段会停留在低级生物的阶段。如果加入肉食性系统,则当该种生物爆发到一定阶段时,植食性动物资源大量减少而具有一定肉食性动物就容易生存,系统容易达到高级生物阶段。
6. 在设定中,刻意将速度对生物的提升设置为高于力量的提升,最终结果应当表现为速度对生物更有价值,会比较高,而力量值会较低。
3.10 运行结果及结论分析
以下图都为程序运行半小时左右得到的结果
图3-4 程序运行半小时后结果图
由于系统运行时间不够长,不能非常好的看出结果,但是可以看到在横坐标300左右开始有平衡在5000左右的趋势,个体数量一开始会震荡的比较厉害,可以看到有几次几乎将要灭绝,但是又会马上增长回来,原因是初始的个体的各项属性设置的较高,需求的食物量较多,所以在没有肉食的情况下,非常容易因缺乏资源而死去,个体数量非常少,很长一段时间都保持在1500以下,每次在生物爆发后,资源量非常小的情况下,能生存下去的个体一定是食物需求量非常小的,之后由于长时间的变异,变异出的个体势必会往小型发展,所以个体数量会不停上升,到个体体型小到一定程度后,由于体型小带来的竞争力下降会使个体在较稳定的环境中更难生存,所以个体会趋于稳定,表现为整个系统处于较稳定状态,个体数目趋于稳定(当然由于不确定性,突然的变异就有可能导致所有个体的灭亡)
如预测,成年年龄由于未加入限制,生物在进化过程中趋向于0,因为该属性设置为越小对个体越有利(在未成年时竞争力按百分比下降),并为加入限制,结果也确实说明个体在系统中的进化结果基本废弃了该属性。因为时间越长越趋于零,到200个时间周期之后几乎就与x轴重合了,所以图中取了较短的时间的横坐标,更好的反应结果曲线。
图3-5 成年年龄随时间变化
图3-6 个体平均速度变化图
图3-7 个体平均力量变化图
图3-8 个体平均体型变化图
可以看到力量,体型,由于肉食性的取消,不断的往小型生物方向发展,而速度由于拥有更高的性价比,个体在进化时任然保留了该属性,这个结果非常的说明问题,速度一直保持在较高的水平,个体一直没有放弃这个属性,而力量对个体的收益远没有速度大,因为几乎在个体的进化中完全消失(当然不能保证每一次运行结果生物都一定会往这个方向发展,这只是一个更高概率的合理解释),显然这也是在这样的系统中趋于稳定的个体自适应过程的结果。
寿命并不能直接影响个体的竞争力,因为在达到基本稳定之前,大部分个体在竞争中已死亡,并非达到寿命再死亡,这个属性需要程序运行时间达到一定长度才能反映出一定问题,在这里并不能说明什么问题。寿命的结果曲线并为给出,但是数据
相关推荐: