用遗传算法加强足球游戏的人工智能

本文介绍了如何利用遗传算法改进足球游戏的人工智能。通过对球员站位的优化,遗传算法能提高游戏的策略性和对抗性,使比赛更加激烈和精彩。通过模拟生物进化过程,遗传算法在游戏中的应用显示出增强AI决策能力的潜力。
摘要由CSDN通过智能技术生成

终于等够了三个月,杂志的约定已经到期,可以把这篇文章发表到网络跟大家分享。本文原发表于《游戏创造》杂志www.chinagcn.com,如蒙转载,请保留原文和本声明完整,并注明转载自恋花蝶的博客:http://blog.csdn.net/lanphaday

用遗传算法加强足球游戏的人工智能

广州网易互动娱乐 赖勇浩

 

项目背景

         一直都想用遗传算法(Genetic Algorithms)实现足球游戏的人工智能,但因为实现一个足球游戏的对战平台太过于繁琐而没有动手。直到在《Programming Game AI by Example》一书中看到一个SimpleSoccerdemo(以下简称demo),实现了一个red-blue两队进行机器与机器对抗的简单足球游戏。在读过它的源码之后,我决定在demo上进行二次开发——为它加入遗传算法,实验遗传算法在实时战略游戏(RTS)性质的体育游戏中的威力。

       demo的架构非常好,采用了状态机来实现游戏流程,并分开计算游戏决策。因此加入遗传算法非常容易,只要在原来的状态机中增加一两个状态即可。red-blue两个队伍相互对抗,每队有五位球员,其中一位是守门员。这个demo的足球规则是简化的,除了只有五个球员外,没有手球也没有越位等规则,甚至连边界球都没有——球碰到边界就反弹回球场。简化的规则有利于我们简化实验的过程,不必把很多精力花费在过于复杂的规则上。

图一

       demo的实现中,球场被分割为18块大小相等的区域(见图一)。每一个球员都一个属于自己的区域(称为HomeRegion),如图一中blue队的10号在自己的HomeRegion(Region5)中处于Wait状态(球员的状态之一)。当一个球员不处于进攻状态(Attacking)、助攻(SupportAttacker)、逐球(ChaseBall)、运球(Dribble)、踢球(KickBall)及返回(ReturnToHomeRegion)时,他就进入Wait状态——等待球队发出的下一个行动指令。显然,就像人类进行足球比赛时需要排兵布阵一样,demo中球员站在哪个位置也相当重要,能否组织起有效的进攻或者防守,决定因素之一就是在合适的位置有没有球员可以快速有效地执行命令。在书中自带的demo中,球员的站位都是固定的,因此难以组织有效的进攻和防守,在某一时间段内容易形成一边倒的局势。使用遗传算法来对球员的站位进行决策分析,可以找出对当前局势就有利的位置编排方案。从而使得球队与球队之间的对抗趋于激烈、策略更加有效、攻守都更精彩。

 

遗传算法概述

       遗传算法因为它在解决许多生产、生活中的问题上的卓越性能而经久不衰。随着计算机的计算能力日益增强和玩家对游戏中的人工智能的强烈需求,目前在单机游戏中已经开始应用遗传算法、人工神经网络等现代优化计算方法来增强游戏中的人工智能,并且形成了趋势。可见以后为加强机器的对抗性能,遗传算法、人工神经网络等都会越来越多地应用到游戏中。

       遗传算法是模拟自然界中的生物对自然界的适应而不断进化这一客观事实的算法。为了解决某一个问题,在遗传算法中,我们虚拟一个物种(即解的表现形式或者称为解的编码),并将其放到“自然环境”中天下繁殖、进化,根据优胜劣汰、适者生存的自然法则,繁衍若干代之后,种群中的佼佼者将非常适应“自然环境”,这个佼佼者就是我们求得的解了。关于生物学与遗传算法之间的概念的对应关系可以用表一的形式来表示:

生物遗传概念

遗传算法中的作用

适者生存

在算法停止时,最优目标值的解有最大的可能性被留住

个体

染色体

解的编码(二进制形式或者十进制形式的串即向量,或者字符串)

基因

解中每一分量的特征(如各分量的值)

适应性

适应函数的返回值

群体

选定的一组解(其中解的个数为群体的规模)

种群

根据适应函数选取的一组解

交配

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值