游戏编程中的人工智能技术-演化算法入门

   buckland大神的每一章都很经典,少了任何一章都会感到不完整。今天先介绍第十章-演化算法。因为这是人工生命的基础。大名鼎鼎的tierra就是采用了演化算法。(什么是Tierra?看这里点击打开链接

    演化算法的思路就是让弱小的生命体“死亡”,再让强大的生命体代替“死亡”的生命体,从而保证种群的一直延续,并且,生命体基于求生的本能,避免被“死亡”,会衍生出各种叹为观止的新行为,称之为生物的多样性。因此,演化算法的思路可以概括为:如何筛选弱小的生命体进行“死亡”操作(Tierra里称之为“死神”、“收割机”),以及如何用强大的生命体进行替代。

    若想让生命体“死亡”,除了创建一个std::vector作为种群外,还必须创建另一个向量std::multiset,称之为“池”。“池”中的生命体不是显示在游戏屏幕上的,而是在后台运作的一个“母体”,因为游戏画面上所有的生命体都是从“池”中孵化得来的,弱小的即将被杀死的生命体也会丢弃到这个池中等待“死神”“收割”。替代死亡生命体也是从“池”中选出的最强壮的生命体。因此,“池”必须具备两个特征:

    (1)“池”中生命体的数量必定比游戏画面上“种群”中生命体的数量要大的多。

    (2)“池”必须是有序向量,这样才能简便的分辩谁是弱小生命体,谁是强壮生命体。

    ok,闲话不多说,直接进入代码。本节中只介绍关于演化的那一部分,其他部分,例如外星人部分,

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值