游戏中优化模糊逻辑的决策体系齐平辽宁工程技术大学土木建筑工程学院,辽宁葫芦岛(123000)E-mail:qipingws@163.com摘要:本文着重讲述游戏中各个自治体如何通过一个被动的事件处理系统,相互交流信息并作出决策。系统的核心决策过程建立在模糊逻辑基础上,模糊逻辑许多属性使它能够被很好地用于游戏开发中。从概念上来讲,模糊学与经典逻辑不同的地方在于它可以针对真实度进行模拟建模。游戏开发的许多方面都与模糊逻辑密切相关,这其中包括决策过程。比如在人物对另一个对象喜恶程度的不同、距离的远近而选择不同的武器。本文简单介绍了模糊逻辑在实际游戏开发中的一种应用方式.模糊逻辑为实现游戏系统,尤其是决策和行为选择方面,提供了一种强有力的工具。关键词:模糊逻辑,决策体系,优化中图分类号:tp301.引言模糊逻辑是数学的一个分支,它所处理的对象是那些我们不能简单地认为对或者错的概念。模糊逻辑在1965年被人们所认识,刚开始时,它今局限与极少数应用领域,直到最近十几年,才在研究和工程领域得到长足的发展。在游戏中常常使用的经典逻辑只能用精确数值来建模,即不是”是”就是”非”。从概念上来讲,模糊学与经典逻辑不同的地方在于它可以针对真实度进行模拟建模。游戏开发的许多方面都与模糊逻辑密切相关,这其中包括决策过程。比如在人物对另一个对象喜恶程度的不同、距离的远近而选择不同的武器。在本文中,假设读者对模糊逻辑已经有一个基本的概念,如果需要详细了解,可以参考文章最后给出的参考文献。[2]2.决策体系和模糊决策2.1一般决策体系结构首先我们定义一个体系结构,在这个体系结构里,游戏中的每个角色都能根据它周围的环境,作出相应的判断并有所行动。这里,“环境”制游戏所创造的虚拟空间,包括这个空间中所有的人和物。游戏中的角色能够与环境相互交流,它具有内在的存储结构,能够感知环境,跟踪其他角色的状态,并随之变化。在一个典型的游戏当中,自治角色通常作为AI的敌人或者系统控制角色(即NPC:非玩家角色)出现。下图是自治角色决策系统的一个抽象图示。自治角色决策系统注:1.角色察觉到环境的变化,作为输入事件。2.这些事件改写角色的存储信息.3.角色独立完成有定时器调度的决策过程.4.决策过程访问存储器.5.决策过程决定角色接下来的动作.6.角色完成动作,并对环境作相应改变.“事件”是系统的事务对象。当某个角色通过完成一个动作与环境进行交互,动作的结果将以事件的形式广播给所有其他角色。一个事件对象包括事件类型、源角色以及目标角色。观察到该私见的角色将检查其“事件处理表”,寻找匹配项,即对给出的时间是否存在处理方案。如果存在角色将试着在自身存储器中寻找动作源角色与目标角色的索引,根据事件性质,处理方案负责更新源角色与目标角色的存储器。[1]注意到,对事件的感知仅仅改变角色的存储器,并不直接出发角色的动作。这一点与传统的基于事件的系统有所不同。在事件高发地区,如果限制角色不能遗漏环境中任何突发事件,则比较以前的方法,这种模式是一个很大的进步。独立于事件处理步骤,角色将完成有定时器调度的决策过程,决定下一步需要完成的动作。决策进程选择一块存储区域,对其表示的自治角色选取合适的动作。如果是无目标动作,则存储区域表示为做决策角色本身,作为动作的默认对象。决策过程可以用不同的AI技术实现,我们的方法则是从模糊逻辑演变而来。决策系统返回动作以及动作的对象。这个动作将被映射到它的实现方法上去。称这些实现方法为“动作代码”,动作代码除完成指定动作外,还负责将所有有关该动作的时间广播出去。对系统而言,这相当与将状态机的状态转移到制定动作上去。以上构成了图1体系结构中一个完整的事件循环。定时器决策动作感知存储器环境134256模糊决策为了解释模糊决策过程是以何种方式工作的,假定一个简单的游戏场景:自治角色Lan进入地牢并碰到了它的老对手Wally,一个由游戏者控制的角色。Lan收到一个事件,告诉它Wally进入了它的实现区域。Lan搜索它的存储区,并找到指向Wally的一个引用。同时找到的是它对Wally憎恨程度的一个介于0.0~1.0之间的量化值,Lan发现是0.77。Lan与Wally的距离是0.75,将这些值作为模糊系统的输入,表1和表2定义了可能的输入范围。映射输入范围值形成模糊隶属度(图2)。注意到集合之间允许存在相互重叠。隶属度将系统输入模糊化,通常它们被用于表示那些定性的概念。表1“距离”输入范围距离值就在边上非常接近接近有点远非常远0.00~0.150.10~0.350.30~0.700.60~0.900.85~1.00表2“憎恨”输入范围憎恨程度值不憎恨有点憎恨憎恨非常憎恨0.00~0.200.20~0.500.40~0.800.75~1.00就在边上很近有点近有点远非常远Wally0.00.100.150.300.350.600.700.750.850.901.0(a)距离之间的距离,以及它对Wally的憎恨程度,从它的动作集中选择一个攻击方式。表3给出一个简单的例子,其中,格斗是近距离的攻击,弩与燃烧弹是远距离的攻击。燃烧弹比弩有更为强大的杀伤力。表3动作集攻击行为无(None)格斗(Melee)弩(Crossbow)燃烧弹(Fireball)Lan将它的输入与规则集(ruleset)比较,从中选择恰当的攻击方式。规则集定义了选用一个动作所需要的规则,或者称为条件。[1]表4列举隶属集所有组合,并给出每个组合可能采取的动作。对于以数值方式输入的值,系统首先将其映射为隶属集中的变量(如果存在这个映射的时候)。当规则集中所有的条件都被满足时,与之相关联的动作被返回给角色,由角色从所偶候选动作中选择一种方案。对Lan而言,它与Wally的距离是“有点远”,对Wally的憎恨程度是处于“恨”与“非常恨”之间,表4中有两项规则满足条件,他们被单独的列出(表5)。主义到,对于0.77的憎恨程度既可以将其映射为“恨”,也可以映射为“非常恨”,也就是说,“恨”与“非常恨”之间并不存在着明确的界限,这也是为什么称之为“模糊”的由来。表4“攻击方式”的规则矩阵距离攻击方式憎恨程度在边上很近有点近有点远很远不恨无无无无无有点恨格斗格斗弩无无恨格斗格斗弩弩燃烧弹非常恨格斗格斗弩燃烧弹燃烧弹候选“攻击方式”规则集“攻击方式”规则如果“距离”为“有点远”,憎恨程度为“恨”,那么使用弩如果“距离”为“有点远”,憎恨程度为“非常恨”,那么使用燃烧弹现在Lan有两个选择,或者使用“弩”,或者使用“燃烧弹”,Lan必须在两者之间作出一个选择。一种方案是计算相关输入变量的质心,得到动作的模糊加权平均,作为动作选取的依据。大型模糊系统允许同时选取多种动作。例如,角色可以一边移动,一边对敌人发起攻击。Lan最后选择了“燃烧弹”,这是因为对决策系统而言,“燃烧弹”具有更高的模糊加权平均,对游戏而言,这说明Lan非常憎恨Wally,以至于对其动用“燃烧弹”。这个时候的模糊模型识别主要遵循两个原则:一个是最大隶属原则,另一个是择近原则。这两个原则在本文最后给出的参考文献中有详细叙述,这里就不赘述了。[2]3.模糊系统的优化在我们所举的模糊系统包含两个输入,一个4×5大小的规则矩阵,共计20条规则。每一次决策过程系统都要对这20条规则进行估计。系统中规则的数目随和输入与输出的数目呈指数增长,即使是一个只有8个输入的系统,也可以拥有成千上万条规则。对于实时性要求很高的游戏,如果对每一条规则都进行评估这是难以想像的。因此,需要找到一种优化方法,能够减少需要估计的规则数。3.1单一输出状态模糊系统早已蕴涵了一种优化方法,即限制决策系统只能返回一个单一的非模糊行为。[3]不需要决策系统浪费时间去计算一些额外的信息,比如,在格斗中需要多大的力气,或者要以多快的速度躲避追捕,对模糊系统而言,这些额外的信息也许是自然而然形成的,但目前的游戏设计却没有用到它们。一般地,决策引擎只需要计算角色状态机的下一步转移,即为角色选择合适的行为。也许以后的游戏会取消这项限制,允许决策系统拥有多项模糊输出功能,驱动更为复杂的游戏和动画。3.2层次行为该优化方法的出发点是减少当前决策循环中需要考虑的行为树木,进而避免对与之相关联的规则的评估。通过将属于同一组行为的规则组织起来,得到一个曾册规则树,对于公共的规则,层次规则树,只需要进行一次评价,并排除掉不符合规则的整个分支。3.3并行行为层如果能够将角色的行为分解为不同的并行曾,且它们之间是相互独立的,则可以进一步减少需要估计的规则数,每个曾册可以有其自身的估计频率。[3]例如,可以将运动层的估计频率设为1秒10次,即在每0。1秒的时间内,决策系统需要完成一次对所有属于运动层的规则的估计。同理,攻击层的估计频率可以设为1秒1次。这使得我们可以暂时推迟对各种攻击规则的检查,而继续以较高的频率完成对较小的运动规则集合的估计。3.4规则的学习模糊逻辑允许我们像专家查询,并让专家以自然的方式告知系统是如何人工作的。从所有这些信息当中,可以构造相关的隶属集和规则。模糊系统折中输入-输出映射方式与机器学习非常类似,可以很容易地将机器学习中的方法运用到模糊系统当中。可以这样构造学习系统:它的输入是目前正在玩的游戏,包括角色的状态以及周围环境,它的输出是玩家设定的角色的动作,输入输出之间映射是需要学习的。为了使机器学习能够使用于绝大多数游戏,训练者需要玩遍游戏中所有的角色,包括敌人。3.5Combs方法模糊逻辑的规则数随着输入呈指数增加,即使在输入并不多的情况下,系统也会变得让人难以忍受的庞大。通常,希望规则树木与输入之间呈线性关系,从而限制系统的规模。Combs便是这样一种方法,它虽然不能够让你把一个原有的“如果-那么”系统改造为另一个线性系统,但是在一开始便采用Combs方法,它就能够帮助控制系统中的规则数目。另外,由Combs方法得到的结果与传统的模糊逻辑得到的结果略微不同,这可以视为一种折中,即Combs方法牺牲了解答的精度,换来系统复杂性的降低。4.结论模糊逻辑为实现游戏系统,尤其是决策和行为选择方面,提供了一种强有力的工具。随着游戏复杂度的提高,角色真实感的增强,我们相信模糊逻辑在未来的游戏设计中将发挥更大的作用。参考文献[1]AlexJ.Champandard《人工智能游戏开发》[M],陈贵敏冯兰胜李萌萌译.北京:北京希望电子出版社.2004.12[2]李鸿吉.《模糊数学基础及实用算法》[M],北京:科学出版社,2005。2。[3]SteveRabin《人工智能游戏编程真言》[M],庄越挺吴飞译,北京:清华大学出版社。2005.1.Thedecision-makingSystembasiconfuaaylogicQiPingInstituteofcivilEngineering,LiaoningTechnicalUniversity,LiaoningFuxin(123000)AbstractInthispaper,it'llshowthatTheautonomyofthegamehowtoexchangetheinformationandmakedecisionthroughapassivetreatmentsystemevents..Thecoredecision-makingprocessbasedonfuzzylogic.manyattributesofthefuzzylogicdetermineitcanbeusedwe