书:游戏开发中的人工智能(P314):遗传算法的初步认识以及代码实现

本文介绍了遗传算法的来源,并通过代码实现展示了如何找到最优解。在游戏开发中,这种算法可以用于寻优和问题解决。文章提供了具体的代码示例,解释了选择最优秀个体作为父母本与选择最差个体作为父母本对演化过程的影响。
摘要由CSDN通过智能技术生成

1.算法的来源

我感觉:遗传的来源就是达尔文的物种起源,由于适者生存这一准则。粗略来说,生存的好的物种就有好的基因,生存的不好没有好的基因,直接死亡,好的基因传给下一代,下一代就能更好的生存,因为对环境不适应的逐渐死亡了。再此过程中,还有基因突变,基因突变也许会使物种更适应环境,也许不会,不会的又会死亡。这样,逐渐形成对环境非常适应的物种。
逐渐形成对环境非常适应的物种
意味着
这个算法是可以用于找到最优解。

那么其中,好的基因是如何传给下一代的呢?
通过杂交。就是从父本和母本各取一个染色体(包含所有基因)。通过这样方式,有可能获取到父本和母本的最佳基因。


2.用代码实现该算法

用 植物生命演化 演示这一过程。


1:花生长的最高代表生长的最好。
2:花有六种属性(每个属性代表一个基因),

分别是:temperature,

water,

sunlight,
nutrition,
beneficalInsect,
harmfulInsect.
3.当前环境也有这6个属性,如果某花的属性值离环境的属性值越近,那么就应该生长的越高,代表生长的越好。


4.生长过程为
第一代初始化:初始化花的属性,相当于基因
适合度分等:根据花的属性与环境的差距,可以知道花生长的等级情况,画出花的最终生长图。
选择:选出最好的两朵花
演化:交配,这里,我们就是从父本那里取3个基因,再从母本那里取另外3个基因。最后,生出同等数量的花,其中不要忘了还要进行基因突变,处理过程的每个基因有5%增加或者减少5。
重复适合度分等至演化的过程。


当交配生殖了几代之后,花将会越来越高,表示生长的越来越好,也就是其属性值越来越接近环境值。

这样就找到了最优解。

请先稍稍理解一下代码里的图:如下图所示




代码运行结果:

有两份事例子,第一个是每次都选出最优秀的作为父母本,最后经过很多的代的繁殖后,所有的花生长状况变好,也可以说是找到最优解。

请看下面两张图:


出现最佳:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值