虚拟人足球比赛模拟就是主要依据现实足球比赛的场景进行的模拟活动,需要考虑的就是整个球队的战略思想和球员个体的思想活动。作为虚拟人足球比赛的“大脑”的决策系统的根本任务就是根据比赛场上的实际情况,对虚拟人的下一步的行为作出决策,而虚拟人就是按照该决策作出动作,以此达到最终的防守或者进攻得分的目的,进而实现对真实球员活动的模拟和仿真。很大程度上决定了对现实足球比赛所进行的模拟和仿真的可靠程度。国内外对虚拟人足球比赛的研究相对较少,对虚拟人足球比赛决策系统研究更是少之又少,而与此对比的就是对机器人足球比赛仿真的研究相对较多,可以通过借鉴对机器人足球比赛研究中比较成熟的经验,设计出较为成熟的模型。
为了解决机器人足球比赛中决策系统在虚拟人足球比赛决策系统中所存在的缺陷,本文提出了一系列的全新决策的生产方法,通过该决策最终指导虚拟人的动作。
为了简化决策系统的设计,以此降低球员之间的耦合度,本文中的决策系统不考虑守门员的角色,只对其他的10名球员做出决策,并且这10名球员的角色都是固定不变的,每名球员拥有三种任意的角色供自己选择,即后卫、中场、前锋三种角色,而且对于确定阵型下的球员之间所形成的协作关系也是固定不变的。
1策略库
虚拟人足球比赛决策系统的决策库主要包括两种,即全局策略库和个体策略库。
1.1全局策略库
全局策略作为球队的“大脑”,对整个球队的阵型和战略战术能够起到协调的作用。在全局策略库中所存在的一些信息,都可以成为决策系统做出决策时所参考的依据。其中,防守本位点主要是在某一阵型下每个球员的防守区域的重心下进行。
1.2个体策略库
个体决策库是根据角色制定的,不同的角色应该有着不同的个体策略库。因为各个角色之间的战术分配对象也是不一样的,例如在4-4-2阵型中,球员之间的协作关系如图1所示。
根据上述分析,不难看出,对不同的球员采取不同的个体策略库是很有必要的。每个个体决策库中存储了与球员角色相关的个体信息。本文中的决策系统对球队的10明球员(不包括守门员),分别有10个不同的个体策略库。
由于每个球员都是一个独立的智能体(Agent),具有自主学习能力,其个体决策库是随着时间的推移而变化的。球员个体的学习过程如图2所示。
虚拟人足球比赛如同现实足球比赛一样,场上的情况瞬息万变,错综复杂。为了能在这种复杂环境中做出对虚拟人球员的动作决策,可以结合虚拟人足球比赛的特点加以改进,如图3所示。
在该决策系统分层结构模型中,整个决策过程分为两层,分别是推理层和动作层。在做出决策之前,先获取比赛场上的态势数据。其中,在选择攻防的时候,要根据全局策略库和态势数据的实际情况对防守或者进攻做出选择。
2虚拟人足球比赛决策系统的设计
基于以上所提出的分层结构模型,对该决策系统的设计如下:
2.1攻防选择
攻防选择主要是为了确定球队的整体策略是进攻还是防守。每一位球员个体都是球队整体中的一份子,他们必须遵守球队的整体战略,因为每一个球队中所有球员的进攻策略都是相同的。因此,在选择攻防的时候,要根据全局策略库进行当前形式的分析,是易守还是易攻,进而产生出后续的指导决策。
攻防选择的过程设计如下:IF己方控球THEN选择进攻策略ELSEIF对方控球THEN选择防守策略ELSE球处于无人运动状态IF最近一次的控球方是己方THEN选择进攻策略ELSE最近一次的控球方是对方THEN选择防守策略
2.2行为选择
在攻防选择确定了防守进攻策略之后,可以根据具体的攻防策略选择具体的行为。首先说明一下区域划分的概念。
在全局策略库中存储有某一阵型下的区域划分图,如图4所示为4-4-2阵型下的区域划分图。通过这种分区的方法,可以确定每个球员负责的区域范围(称为自治域),自治域有重叠(重叠部分区域称为协防区域)的两个球员之间存在合作关系,防守的时候他们可以根据场上态势进行协防,进攻的时候他们可以根据场上态势进行传接球配合。
2.2.1防守策略
对于防守策略,主要的目的就是阻挡和断球。因此选择跑位目标,即策略点和跑位速度,就显得尤为重要了。
根据场上态势数据和全局策略库中的区域划分,并根据球员的具体角色,从其中个体策略库中计算出球员的防守跑位决策。该计算过程设计如下:IF球在个体的自治域中IF对方球员带球THEN局部跑位盯人防守ELSE对方球员传球或者射门THEN向着球的运动轨迹跑位断球ELSE球不在个体的自治域中IF个体的自治域中无对方球员IF相邻队友需要协防THEN选择一个相邻队友进行协防跑位(向他们共同的协防区域跑位)ELSE相邻队友不需要协防THEN防守策略跑位(向自治域中防守本位点跑位)ELSEIF个体自治域中有1个对方球员THEN局部跑位盯人防守ELSE个体自治域中有多个对方球员THEN选择威胁度最大(离己方球门最近)的对方球员做局部。
2.2.2进攻策略
对于进攻策略而言,其主要的目的就是球员如何带球到对方门下进行射门得分,因此选择带球的方向和速度是十分有必要的。还可以根据场上的具体形式和全局的策略库数据中的区域划分,对场上每位球员的具体角色进行进攻决策分析。例如个体的角色是前锋,则该计算过程设计如下:IF个体不是持球球员THEN进攻策略跑位(向自治域中离对方球门近、球员分布稀疏位置跑位)LESE个体是持球球员IF射门系数等于或大于阈值(阈值作为判断是否进行射门的标准)THEN选择射门ELSE射门系数小于阈值IF丢球危险程度高(危险程度由球员个体周围某一范围的对方球员数量决定)THEN选择一个相邻队友传球ELSE丢球危险程度低THEN向进攻本位点带球
2.3动作规划
为了确定球员之间的具体行为,就主要根据球员的角色从其中对应的个体策略库中选择合适的策略,在动作规划阶段为球员的具体行为选择合适的行为规范。对于防守策略中的跑位,就需要先确定跑位方向、跑位速度;对于进攻策略中的射门,则需要确定射门方向、踢出球的初速度;对于进攻中的带球,则需要确定跑位目标(策略点)、到达策略点时的速度等等。而对于进攻中的传球,需要确定传球方向、传球初速度,因为需要与队友共同配合以完成传接球的目的,因此确定传球方向和传球初速度比较复杂。在这里使用一种较为简洁的传球动作规划策略,对于如图5所示的一种的典型的传球场景,计算过程如下:
2.4路径规划
基于弗格森参数三次曲线[5]的计算量较小的特性,这里所使用的是弗格森参数三次曲线作为路径曲线的,其中计算弗格森参数三次曲线所需的参数(两个端点及其切矢,分别用p(0),p(1),-p(0),-p(1)表示)。这种避障路径分割方法如图6所示。
3结束语
为了满足虚拟人足球比赛特殊性的要求,本文在机器人足球决策系统的基础上,提出了全局策略库与个体策略库相结合使用的决策生成方法,以此建立虚拟人足球比赛的决策系统的分层结构模型,并根据4-4-2阵型给出了各层次的设计过程。决策系统的个体自主学习的过程设计还有待完善,这将是下一步的工作重点。
参考文献:
[1]赵逢达,孔令富,李贤善.基于分层结构模型的机器人足球决策系统设计[J].哈尔滨工业大学学报,2005,37(7):933-935.
[2]潘凌寒,楚威,程显毅.基于角色的RoboCup足球策略[J].计算机工程与应用,2004,26:66-67.
[3]QiZhang,YimingYang,YingLi.AMulti-agentCooperativeSystemofSoccerRobot[C].Proceedingsofthe4thWorldCongressonIntelligentControlandAutomation.Shanghai,P.R.China:June10-14,2002:510-514.
[4]董青.现代足球比赛身形探析[J].辽宁体育科技,2004,26(4).
[5]李建伟,洪炳镕,郝宗波,高全胜,郭崎.机器人足球仿真比赛平台的改进[J].哈尔滨工业大学学报,2003(09).
[6]秦双,张番,陈颖,冯秀娟,郑国磊,温文彪,孙红三.虚拟人行为仿真智能化探讨[J].系统仿真学报,2002(09).
[7]曹成才.机器人足球仿真系统的研究[D].四川大学,2005.
[8]余斌,李龙澍,李学俊.多智能体的角色与结构设计分析[J].计算机技术与发展,2006,07:73-75.
[9]施法中.计算机辅助几何设计与非均匀有理B样条(CAGD&NURBS)[M].北京:北京航空航天大学出版社,1994:56-65.
[10]马军,闫琪,毛新军,王戟,齐治昌.基于角色的多Agent系统软件设计方法[J].计算机工程与应用,2004,06:118-120.