《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 利用优化人工鱼群算法构建游戏动力系统研究
利用优化人工鱼群算法构建游戏动力系统研究
来源:微型机与应用2012年第17期
邬厚民1,余凤翎2
(1.广州科技贸易职业学院,广东 广州 511442; 2.广东技术师范学院 工业中心,广东 广州
摘要: 人工鱼群算法是一种新型仿生优化算法,着重构造自治体寻优模型,其研究应用已经渗透到多个领域。对人工鱼群算法模型进行深入研究,并对其实施优化和扩展用于构建游戏动力系统,为游戏AI运动引擎的设计与实现提供技术与理论参考。
Abstract:
Key words :

摘  要: 人工鱼群算法是一种新型仿生优化算法,着重构造自治体寻优模型,其研究应用已经渗透到多个领域。对人工鱼群算法模型进行深入研究,并对其实施优化和扩展用于构建游戏动力系统,为游戏AI运动引擎的设计与实现提供技术与理论参考。
关键词: 人工鱼群算法;动力系统;人工智能;搜索行为

 人工智能技术在游戏设计中的应用越来越广泛,已经成为游戏设计成功与否的关键因素。游戏角色的运动控制是游戏AI设计中的核心问题之一。复杂的游戏角色运动行为需要创建一个由多种不同规则和方法组成的游戏动力系统来实现控制。一个智能游戏动力系统可以为不同角色提供动力,这些动力用于影响角色的行为方式,完成游戏角色既定的各种任务行为。例如,包括漫游、追捕、搜寻、规避、群体等行为。本文对人工鱼群算法模型进行深入研究,并对其实施优化和扩展用于构建一个游戏动力系统,从而为游戏AI运动引擎的设计与实现提供技术与理论参考。
1 游戏动力系统
 动力系统[1]是一个数学概念,始于19世纪末庞加莱常微分方程定性理论的研究。在动力系统中存在一组固定的规则,描述了几何空间中的一个点随时间变化的情况。在动力系统中以状态的概念描述一个对象,状态是一组可以被确定下来的实数。对象状态的微小变动对应这组实数的微小变动。这组实数也是一种流形的几何空间坐标。动力系统的演化规则是一组函数的固定规则,它描述未来状态如何依赖于当前的状态。这种规则是确定性的,即对于给定的时间间隔内,从现在的状态只能演化出一个未来的状态。例如描述天体的运动、河流中水的流动、湖中不同季节鱼的数量,凡此等等的数学模型都属于动力系统。
 游戏动力系统其核心思想是基于动力系统的数学模型,是动力系统应用研究的实例,也是游戏引擎的重要组成部分。电子游戏需要创造一个虚拟的游戏环境世界,让游戏对象在虚拟环境中进行信息交互、运动碰撞从而产生了游戏性。游戏环境及对象都是建立在对现实世界抽象和仿真的基础上。游戏动力系统就是为游戏世界中对象运动提供的数学模型。游戏动力系统利用不同的规则来约束游戏对象不同的状态运动,如图1所示。游戏动力系统的优劣在于约束规则划分是否合理,其对应设计的运动控制算法能否具有低耗性和高效性。

2 基本人工鱼群算法(AFSA)[2]
 在一个特定的水域中,鱼往往根据区域食物的浓度和鱼群的密度选择游向,鱼数量与食物浓度成正比关系。AFSA算法就是根据这一自然现象建立数学模型,模仿鱼群的觅食、追尾、聚群和随机等行为,从而实现特定环境下对象寻优运动。
 AFSA算法最早是由李晓磊博士于2002年提出的,此算法以一个多维向量X=(x1,x2,x3,…,xn)定义人工鱼个体的状态,xi(i=1,2,...,n)是向量X的的第i个分量,分别作为各条鱼在寻优过程中的变量。人工鱼当前位置的食物浓度表示为Y=f(x),如i和j为随机的两条鱼,则它们的距离表示为Di,j=║xi-xj║,Visual表示人工鱼的感知范围,Step表示人工鱼移动的步长,δ表示拥挤度因子,N为鱼群中鱼的数目。具体行为描述如下:
 (1)觅食行为[3]。在人工鱼当前状态xi的Visual距离邻域内搜索出更优的解,则向该位置前进一步,如果经过trynum次搜索,无法找到更优的解,则执行随机行为。
 (2)聚群行为。若发现人工鱼当前状态xi的Visual距离邻域内中心位置的食物浓度更高且不太拥挤,则向中心位置前进。
 (3)追尾行为。搜索人工鱼当前状态xi的Visual距离邻域内伙伴的最优解,如果发现该位置的食物浓度Y值更高且不太拥挤,则向其前进一步。
 (4)随机行为。人工鱼在Visual距离邻域中随机选择一个状态,然后向该方向移动,它是觅食行为的一个缺省行为。
 (5)约束行为。在寻优过程中,若出现无效状态,就需要加入相应的约束来对其进行调整,由无效状态或不可行状态转变成可行的。
 (6)公告板。记录当前对象所属的类和当前最优的函数值,若发现当前对象聚类要求达到满意值,则可以停止搜索。
 (7)选择策略。根据获得更优解的原则选择合适的行为方式,即只要任何一种行为能够得到比当前更优的解,则选择该种行为。
 AFSA算法采用自下而上的设计方法,着重构造自治体寻优模型,该模型对实现游戏动力系统仿真自治运动效果良好。AFSA算法的行为方式为实现游戏动力系统的行为提供依据。可见,AFSA算法的数学模型可以作为构建游戏动力系统的基础。
3 优化AFSA构建游戏动力系统
 游戏动力系统中的对象具有自治性、交互性、多样性的特点,基本AFSA算法对决定对象交互性和多样性运动的控制不够理想。例如,玩家控制游戏对象的某些运动行为以及对象在特定任务下的复杂运动方式,AFSA算法的行为模型很难满足其要求。可见,要利用AFSA算法构建完整的游戏动力系统,需要对基本AFSA算法进行优化和扩展。

 

 

3.3 聚群与追尾行为的优化与扩展
 基本AFSA算法的聚群和追尾行为是紧密联系的,其构建的模型需要对象遵守局部相互作用的规则,分别是:(1)分离。尽量避免与临近伙伴过于拥挤;(2)排队。调整相邻对象的平均速度;(3)内聚。尽量朝临近伙伴的中心移动。这些规则为实现游戏动力系统群体行为奠定了良好的基础。聚群行为是建立在食物浓度差异的基础上的,所以在动力系统中可以主动动态改变环境食物浓度值来实现群体的运动变化。此外,设置不同类型的对象适应不同的食物,这样可以通过控制不同食物浓度来实现多种群的运动。
 此外,可以通过建立领头对象实现群体运动。领头对象是群体运动的核心和领导,具有最高碰撞级别,无需执行运动对象规避行为,其Ymax具有最高值。其他对象需向领头对象靠近执行追尾行为并遵守分离和排队等规则,而且不能阻挡领头对象的路径,若对象处在领头对象速度的前方要先执行规避行为。
 动力系统是游戏引擎的重要组成部分,其核心AI算法跟一般程序的算法要求不同的是,除了要考虑时间复杂度与空间复杂度的因素,还要满足游戏仿真性、交互性、可玩性等要求。本文在对人工鱼群算法进行优化和扩展的基础上构建一个简单的游戏动力系统,对几种动力模型进行了分析研究。对相关游戏程序设计具有一定的应用参考价值。
参考文献
[1] ROBINSON R C.动力系统导论[M].北京:机械工业出版社,2007.
[2] 李晓磊.一种新型的智能优化方法—人工鱼群算法[D].杭州:浙江大学,2003.
[3] 苏锦旗,吴慧欣,薛惠锋.基于人工鱼群算法的聚类挖掘[J].计算机仿真,2009,26(2):147-150.
[4] PETERS K. Flash ActionScript3.0动画高级教程[M].北京:人民邮电出版社,2010.
[5] STAHLER W.游戏编程数学和物流基础[M].北京:机械工业出版社,2008.

此内容为AET网站原创,未经授权禁止转载。