滁州学院本科毕业设计
对异构智能体的研究日益受到重视。本章首先介绍了在线教练的设计,以完成异构智能体的选择和辨识功能,接着详细描述了我们对异构智能体的评价标准和分配算法,最后给出了辨识算法。
表4-3是对异构智能体分配算法的测试结果,两队的基础都是UvA,只是一支队伍使用在线教练进行异构智能体的选择,另一支不使用在线教练仅使用默认类型球员,共比赛10场。因为比赛环境存在随机特性,而且异构智能体的参数也是随机产生的,根据一场比赛无法作出适当的评价。但是,10场比赛的结果足以让我们更倾向于使用在线教练进行异构智能体的选择与辨识。
表4-3使用异构智能体/默认智能体的10场比赛测试结果
赢(场) 平(场) 输(场) 总进球数 总失球数 10 0 0 59 0 使用在线教练 0 10 0 59 不使用在线教练 0 定性分析,由于选用的异构智能体跑动速度更快,更有利于截球,得到更多的控球时间;而默认智能体由于缺乏对足球的控制权,不仅射门机会极少,而且后卫退防的速度也不及异构前锋,形成防守漏洞给予对方更多的射门机会。
5智能体间的配合与对抗
在混合型的智能体体系结构中,规划决策模块在知识库的指导下,根据当前的世界模型,推理出最佳动作,交由动作模块执行。而动作模块对动作的实现方法又反过来影响推理过程。因此,我们把动作分成执行和分析两个部分,执行部分即动作模块所调用的;分析部分则是为规划决策模块服务,推理选择出更优的动作。执行部分和分析部分相互关联,共同构成了一个动作,也将动作模块和规划决策模块紧密的联系在一起。
本章主要研究了和足球相关的几个动作。由于UvA底层已经将截球模块设计的很好,在此对于截球方法就不在作过多的介绍,主要介绍本方智能体间的传球配合,如何根据场上千变万化的形式来决定传球对象。最后,利用智能体对抗中的领先一步优势,实现了射门算法
5.1智能体间的配合——传球
传球建立在截球和加速球的基础上,传球的分析部分需要记性在线的计算,而传球的执行部分则由加速球动作来完成。传球涉及到两个球员,传球者和接球者。传球者即处于控球状态的球员,由他判断最佳接球者,并将足球向接球者传去。从这个意义上说,长距离带球是传球的一个变种,只是接球者是智能体自身而已。本节首先介绍了传球的基本无遗漏无重复的搜索空间,然后对可行传球路线进行选择,以强化学习RL(reinforcement learning)[14]进行选择优先级的调整;最后在传球的基础上简单讨论了更大范围内的配合情况。
5.1.1传球路线的搜索
在足球比赛中,传球路线的选择至关重要。所谓的传球路线就是选择一个传球角度,同时
赋予足球一定的速度大小从该角度被踢出。很难想象一个球员总是可以从后场开始带球,长途跋涉一直到射门成功。只有通过流畅的传接球配合,才能更有效率的推进足球。如果不能搜索出有效的传球路线,足球将始终被压制在我方半场,既没有本队的射门机会,又增加对方的射门机会。
一旦涉及到传球,一个很自然的想法是首先确定接球者,然后搜索接球者附近区域,判断是否
21
滁州学院本科毕业设计
存在可行的传球路线,所谓可行的传球路线是指足球传出后将被接球者最快接到,而不会提前被其他球员抢去,因此,对传球路线的可行性分析其实就是分析截球问题。对接球者附近区域的搜索,实际就是对其可能的接球点进行离散化,而且,每个接球点还可能对应着很多不同的传球末速度,所谓传球末速度是指足球到达接球点时的速度,这两个因素离散化后的组合非常之多。为了降低组合维数,可以通过接球者来推出传球末速度:接球者到达接球点的时间Cyc可以计算得出,只要让足球也同样在Cyc时间内到达该接球点就可以完成一次成功的传球,根据足球和接球点的距离、Cyc即可推出传球末速度。这样,当对某一个接球者考虑时,只需要对接球点进行搜索即可,传球末速度可以通过理论计算得到。但是,还会存在传球路线重复搜索问题。因为一个传球速度在不同的位置具有不同的速度大小,所以不同点的不同足球速度可能对应同一个传球速度,对这两种情况的搜索就是重复的过程。而且,接球者区域的具体范围很难确定,如果太小则会造成可行路线的丢失;而如果较大又会造成不同接球者搜索区域的重叠,从而导致传球路线的重复搜索。这种以目标为导向的,考虑接球点或者接球者的搜索方法,极有可能造成传球路线的搜索重复或搜索丢失。
考虑传球的另外一个想法是以传球速度为导向,因为传球路线本质上是由传球初速度决定的,所谓的传球初速度是指足球刚被传出时的速度,也即其获得的传球速度。足球速度是最大值为2.7的360度范围矢量,对这个速度空间的离散化方法是后继搜索的关键基础。比如先粗略的离散速度方向,然后在每个方向上考虑所有的球员计算可行的传球速度范围,该方法[15]对截球问题进行了最大限度的简化(简单的通过中垂线分析穿越速度),只考虑了足球的位置和速度、球员的位置这六个因素,其化简程度远大于5.1.2节讨论的对复杂数值算法的简化;而异构球员能达到的最大速度是不同的,以中垂线来构造穿越速度已不再合适。总的来说,对传球速度空间的离散化方法完全的取决于截球分析的计算量。但是由于场上的信息本身就是带有一定噪声的,截球分析也只是计算一个大概的值,因此,我们在此基础上提出了一种新的离散搜索空间的方法,可以基本覆盖解空间,也可以符合决策的计算量要求。
由于简单数值算法的快速性,对传球速度搜索空间进行了较为密集的离散化,离散间距是不均匀的,因为当速度绝对值比较大时,微小的速度变化(方向和大小),都可能导致不一样的结果,因此,此时的离散化更加密集。也可以根据具体情况增加或缩小离散间距,实际上,由于世界模型和运动模型存在的噪声,更密集的离散是没有必要的,只需更为粗糙的离散化即可。
5.1.2传球路线的决策
传球上使用的算法不是很多,很多都是凭借经验得出,没有一个量化的标准,所以在进行传球决策时我们将每个球员看做是一个相同的个体,再根据球员位置、场上形势以及球员角色等等信息来进行权值的大小调整,最后选出最好的传球者。传球方式有两种,一种是预设提前量的传球,是将球传到目标球员前面某一位置,用于加快进攻节奏。另一种是正常的传球,是将球直接传到指定球员的脚下。
传球的决策包括以下几步:
(1)首先对于场上的队友进行遍历找出可以进行传球的队员,并对每个可以传球的队友设定相
22
滁州学院本科毕业设计
同的权值,其余球员一律设定为0。
(2)判断传球目标球员的位置,根据位置调整权值,如果其位置如果比较靠前或者比较接近对
方球门则相应的增加权值大小,反之减小权值的大小。
(3)判断传球目标球员距离自己的距离大小,距离过大或者过小都要减小权值的大小。 (4)找出权值最大的队友,进行传球。
如果是进行提前量传球则在第(3)和(4)步之间判断可以进行传球的提前量大小,我们现在
主要是将提前量设定为固定的几个值,判断所要传球的目标球员前方空挡大小,如果前方空档比较大的时候则传球的提前量设定为较大的值,反之设定为较小的值。传球决策伪代码如下:
for(按照dConf大小对场上队友进行遍历)
{ }
上述dConf表示可信度,由于球员的视力是有限的,所以每一个队员都对应一个权值,表示其可信度大小,distance_to_me表示目标距离自己的距离,此种方法好处在于把场上所有的球员(包括自己)按照统一的标准进行计算,然后进行权值的比较,如果自己的权值最大则表明不用传球,这
23
if(可以进行传球) { }
if(传球目标是后卫)
权值减10
if(distance_to_me>30)
根据distance_to_me相应减少权值
if(传球目标在自己后方)
相应减少权值
if(传球目标周围对手球没有对手) else
权值减10 权值加2
if(传球目标在我方禁区)
权值减20
if(传球角度过大)
权值减10
if(自己体力不支)
权值加10
……
滁州学院本科毕业设计
样避免了由于决策的失误导致传球过多或者是乱传球。
5.1.3更多的配合
传球是产生配合的基础,如果接球者能够主动配合传球者,可以形成“二过一”或者“三过二”战术[17]。甚至更进一步的,如果有更多的球员参与配合,则可以形成防守体系、进攻体系等,UvA提出用协调图的方法来实现多个智能体间的配合。难点在于如何对状态和动作进行提炼和评价,以及研究新的学习方法进行离线/在线的多智能体间协作的训练。
5.2智能体间的对抗——射门
足球比赛除了要求球员之间进行配合外,还要研究和对手之间的对抗。射门是典型的对抗动作,射门的好坏直接决定了比赛结果。一般来说,射门时和对方守门员相距非常近,为了更准确的对射门进行分析,采用数值计算方法。而且,由于每场比赛中出现的射门次数都比较少,需要抓住每次的机会才行,所以,最好不要进行在线的调整,以免因为探索而丧失了绝佳的射门机会。而射门的执行部分则是建立在加速球的基础上,只是要求在一个周期内完成踢球动作,多个周期的踢球动作可能会造成丢失稍瞬即逝的机会。
5.2.1领先一步模型
控球者在对抗环境下,存在着领先一步的优势。因为在仿真平台中,本周期所执行的动作是无法被观察到的,只有在下个周期才能观察到该动作执行后产生的效果。因此,在面对守门员时,射门者可以有无数的射门点进行选择(速度绝对值要尽可能的大),而守门员却无法知道射门者要选择哪个射门点的。因此,守门员不能预测射门者的动作从而提前进行相应的防守。
所以说,领先一步模型是建立在知道对方不知道自己决策结果的基础上。根据这个假设前提,我们预测对方的状态只可能非常平缓的变化,相对于本周期状态而言;而射门者则可以忽然发力踢球,让足球状态在下个周期时有突然的较大变化,甚至可能直接穿过了守门员的防线。这样,对方守门员防不胜防,因为控球者可选动作的多样化导致对方只能选择最保守的防守动作。到了下个周期,对方才能观察到足球的新状态,进而对本周期的我方动作产生应对动作,所以,我方在此时已经领先了一个周期,即领先一步模型。顺便提一下,在传球的分析过程中,也应该做这样的预处理考虑。
5.2.2射门成功率分析
根据领先一步模型,对射门成功率的分析应该是以下个周期时足球、守门员的状态为基准的,足球状态是能达到的最大速度,守门员状态则是估计的(根据平缓原则)。然后,按照截球中所介绍的复杂数值算法进行后继分析,不同的是普通截球函数以可踢范围kickable_area作为判断标准,而守门员由于可以使用catch指令扑球,半径(catchable_area>kickable_area)的圆内均为守门员的控球范围。
仿真比赛中球门的长度为14.02,如图5-3线段AB所示,我们以1为步进量进行射门点的搜索。对于每一个搜索点,计算足球能够在一个周期内获得的最大射门速度作为下个周期的状态,然后按照数值计算方法对足球和守门员进行运动模拟,得出在射门过程中,足球和守门员的最近距离d。
24
滁州学院本科毕业设计
显然,当d>catchable_area时,该射门点是可行的,只要选择搜索过程中最大d值对应的射门点即可。但是,这样选择出的射门点基本落在球门的两个端点附近,由于噪声的存在,往往造成射门偏差,射门点被干扰到球门外侧;另一方面,噪声还可能将射门点干扰得离守门员更近,守门员可能因此而成功扑球,从而减少了进球机会。如图5-3,假设当前搜索到C点,在一个周期内足球能够获得的最大射门速度为
。由于噪声的存在,将被干扰为图中矩形范围内的某点(干扰方式见公式5-4)
当射门速度向量处于阴影部分时,将会出现射门点偏离球门的情况;当射门速度向量为矩形内某些点时,也有可能使实际的d不满足d>catchable_area的要求。因此,每个射门点都具有两个属性,射门过程中足球和守门员的最近距离d,由复杂数值算法推得;射门概率prob,因为干扰造成的偏离球门和更近守门员的情况,详见接下去的分析过程。
假设足球所获取的射门速度为,根据kick模型,结合公式2-27、2-28,可以知道此时kick指令的噪声对足球的速度影响为(由于射门速度要尽可能的大,所以对应kick命令的Power为max_power):
(5-4)
其中,rx,ry是独立的,在[-kick_rand kick_rand]符合均匀分布。
而足球运动模型表示,足球速度在每个周期都会根据公式2-8被加噪,其噪声最大值是ball_rand=0.05,在[-ball_rand ball_rand]符合均匀分布。
足球的运动模型和kick模型中的随机量共同构成了足球噪声。由于ball_rand每个周期伴随足球运动,其运动噪声的期望值为0,因此,在射门分析过程中不考虑ball_rand的影响,仅考虑起脚时kick_rand的影响。根据公式5-4,如图5-3所示,期望值为
的射门速度将分布在以D为中心,边
长为2×kick_rand的正方形区域中,服从均匀分布,而图中的阴影部分为射门偏离的情况。因此,出现偏离球门的概率prob1:
prob1=阴影部分面积/整个正方形面积×100%
图5-3射门分析示意图
偏离球门的概率简单的由足球的速度角度决定,而考虑加噪后的射门速度是否将被守门员扑取时,需要考虑足球速度的角度和大小的两方面因素。因此,在干扰矩形中均匀的取若干个点,设共
25
5-5