滁州学院本科毕业设计
间、比分、比赛模式(如界外球模式、任意球模式)等。
其他智能体通讯规划决策知识库建模感知反应动作外部环境 图3-2混合型智能体结构 世界模型规划动作模型的维护预测决策感知通讯 图3-3 建模模块的内部结构
智能体在生存期间,通过感知、队友间的通讯(包括教练指示)以及已请求执行的动作来修正模型,感知信息包括sense_body消息、视觉消息和裁判消息,其中队友间的通讯和裁判消息构成了智能体的听觉消息。
sense_body消息用来更新智能体本身的一些物理状态,比如视觉模式参数、速度绝对值、体力值、头颈的相对角度、各基本指令的已执行次数等。根据动作模块中记录的已请求执行指令的次数,对照sense_body消息中反馈的基本指令已执行次数,可以推知该指令是否被仿真平台丢失,决策规划模块可以据此决定是否需要重发该指令,反应模块也据此进行发送时机的动态调整。
裁判消息主要用来广播比赛状态,在每次裁判鸣哨时,都会将相关情况(如犯规、进球、开球等)通报至所有的智能体。通讯模块是和其他智能体的交流,由于是经由仿真平台间接转发,而且是低带宽不可靠的,我们只是作为对维护世界模型的一个有益补充。
最重要的是视觉消息,视觉消息中的数据都是基于智能体(观察者)的相对坐标。因此,智能体首先根据视觉消息中静止对象信息完成自定位,然后进行对其他运动对象的更新。由于视觉消息的局部性,不可能保证所有对象都是最近一个周期看到的,因此,还需要记录下每个对象的最近观
11
滁州学院本科毕业设计
察时间以供可信度分析。同时视觉消息是带有噪声的,UvA以Particle Filter的方法降低噪声[10],提高自定位准确性。
模型除了被规划模块用来建立行动计划外,还提供了预测的基础。根据当前世界模型预测将可能出现的情况,并将行动的建议递交给决策模块。在仿真比赛中最典型的预测是截球技术,给定足球的位置和速度,预测智能体最快的截球时间;预测模块还体现在对对手的行为建模上,比如经过学习发现对方4号球员拿球后,总是传球给6号,那么当4号控球时,就预测认为即将传球给6号,这样的预测结果对决策模块有更大的帮助,比如预先去盯防对方6号。
3.2.2 通讯
可通讯是智能体的基本特征之一,而且通讯语言的完善程度和灵活性直接影响到智能体表现出的智能程度,通讯模块包括语言理解、语言生成、物理通信,以及词法库、语法库、语义库等多个部分。这些都是多智能体理论的基础,但仿真比赛为了能够体现分布式多智能体的特点,避免由于通讯过度成为实质上的集中式控制,因此,仿真平台对通讯做了诸多限制。
在3.1.2节中描述的局部通讯模型可以保证系统的鲁棒性,在通讯功能故障时,不会很大的影响系统的表现性能。但是,由于最多只能传送10个字节的可见字符,还存在相当大的编码量化误差,通讯仅仅起到辅助功能,世界模型的完备更多的依赖于视觉动作的请求。目前通讯还用来辅助决策信息的交流,如果较好的解决了完备世界模型和知识库战术,那通讯将主要被用作战术模式在触发、切换和中止时的多智能体交流。
3.2.3 动作
动作模块是智能体在外部世界能完成的可能动作集合。决策给出最终选择的动作后,需要分解成更基本的符合仿真平台动作接口的指令序列,这个工作由动作模块完成。由于仿真比赛动态实时的特点,一般情况下动作模块并不保存指令序列,每个周期从新决策,将指令序列最前面的基本动作发送至仿真平台请求执行。决策的连续一致性由规划决策模块维护。
仿真比赛中主要包括以下的动作,这些动作建立了智能体的个人技术。
跑位:智能体根据阵型和角色计算出自己的期望位置,向其靠拢。向某个目标点移动的技术被称为跑位。跑位的一个重要参数是跑动速度,因为奔跑命令需要耗费体力,而体力对队员技术的发挥有很大的影响。
截球:智能体根据足球和本身的状态,试图抢在其他队员之前追逐到足球。 带球:智能体保证对足球控制的同时,推进足球的位置。
加速球:将足球按期望速度(矢量)踢出。原先由于仿真平台的参数限制,需要多个周期才能将足球加速到最大速度,现在基本可在1-2个周期内实现任意的期望足球速度。
传球:传球建立在加速球的基础上,给定传球路线后,调用加速球动作完成,关键在于传球路线如何选择。
过人:一对一的技术体现,在晃过对手的同时,保持对足球的控制。和带球的不同在于,过人需要突破近距离对手的封锁,带球则避免出现近距离对手的情况。
12
滁州学院本科毕业设计
射门:临门一脚,是进球赢得比赛、检验团队整体性能的最后一环。
护球:在不能射门、过人、传球、带球的最后情况下,维持足球在控制范围内不被对方抢去,等待机会。
封断:封球和断球,当对方控球时,封死其传球、带球路线,必要时可以从其脚下抢断足球,进而反击。
盯人:盯防对方的无球队员,避免其接应控球队员。
3.2.4知识库
知识库是对实际足球知识的认识,通过请教专家,事先建立的规则。针对前锋、中场、后卫等角色的职责,给出其实现战术,包括局部配合的进攻与防守战术、全队的进攻与防守战术以及定位球战术。
局部配合进攻包括“二过一”战术配合、“三过二”战术配合和反切配合等。“二过一”是两个进攻球员,通过传球配合突破一个防守队员,是更多配合的基础,可以在任何位置上运用这种方法来摆脱对方的抢截或突破防线。“二过一”一般由相距10米左右的队员进行配合,传球的目标尽可能是接球者位置或者稍微靠前一点。“三过二”是比赛中局部区域内三个球员通过连续的配合突破两个防守者的战术。由于这种配合有两个队友可以同时接应传球,因此使控球者的传球路线更多,且进攻面扩大,但是较难在机器人足球比赛中达到流畅的配合实现。局部配合防守战术包括补位、围抢和造越位战术。补位是指当防守过程中一个防守队员被对手突破时,另外一个队员立即上前进行封堵,即动态角色变换。围抢是指在某局部位置上,防守一方利用人数上的相对优势(通常是两三个球员)同时围堵对方的控球队员,以求在短暂时间内达到抢断或者破坏对方的目的。造越位技术是利用规则而设计的一种防守战术,但由于其配合难度大,一旦不成功会给对手很大的机会,因此较少使用。
全队进攻战术是指比赛中一方获得足球后,通过队员之间的传递配合达到射门的目的而采用的配合方法,包括边路进攻、中路进攻、快速反击。与局部进攻战术相比,全队进攻战术的进攻面比较广。利用球场两侧地区发起进攻的方法叫边路进攻,是全队进攻的主要形式之一,其主要特点是有利于发挥进攻速度,打破对方防线制造缺口,下底传中是其代表方法。中路进攻是利用球场中间区域组织的进攻,由于中路防守最为严密,因此难度较大。比赛中当对方进攻时,后卫线往往压至中场附近,防守人数也由于插上进攻和助攻而相对减少,此时如能抓住对方防守空隙较大和回防较慢的机会,趁其失球发动快速反击,往往能够取得良好效果,但是实现难度也比较大。中路进攻和快速反击都比较冒险,要求有准确、快速的传球配合,还要求配合默契,有善于跑位策应的队友。
全队防守战术可以分成两种基本类型,盯人紧逼防守和区域紧逼防守。盯人紧逼防守即人盯人防守,各自都有明确的防守对象,在规定的范围内盯人紧逼,不交换看守,此方法主要用户在非play_on模式下使用来阻止对手顺利拿到球。区域紧逼防守是盯人和区域相结合的方法,紧逼和保护相结合,在个人的防区内紧逼。防守最根本的原则就是紧逼和保护,只有紧逼才能有效的主动抢断,压制对手技术的优势而获取主动权;保护是为了更好的紧逼和控制空当。
定位球战术是指在比赛中,利用“死球”后重新开始比赛的机会组织进攻与防守配合的战术方法。
13
滁州学院本科毕业设计
定位球战术包括中圈开球、角球、任意球、界外球等,有时起决定胜负作用。在配合上要利用简练的一次配合取得射门机会,配合越复杂成功率就越低。故要进行专门性的研究,利用足球的先验知识,预先计划详细的分解序列,才能在比赛中奏效。
3.2.5 规划决策
智能体的规划模块负责建立中短期的行动计划,再经决策得出动作的选择结果。智能体的规划是一个局部的规划。局部性体现在两个方面,一方面,每个智能体根据自身维护的世界模型,以及已往的知识规划自身行为,而不是由某个智能体对全局进行规划并将命令分发给其他智能体;另一方面,智能体并不需要对它的目标作出完全的规划,而只要生成近期的动作序列就可以了。因为世界是不断变化的,很多情况无法预料,长期的规划很可能会因为情况的变化而失去意义。
在自主式智能系统中,一般遵循“感知-推理-动作”的基本规律进行决策,根据实现手段的不同,仿真比赛中有两种比较典型的结构:“从上到下”和“从下到上”。“从上到下”是传统的层次结构,层次向上,智能增加,但是精度降低;层次向下则相反。在最高层只有一个任务,经逐层分析规划,生成越来越多的子任务,低层模块往往只需要考虑专门范围内的局部问题;在高层往往使用智能推理方法,低层模块则采用数值算法。这种结构体现了分而治之和逐层求精的原则,较好的解决了智能和控制精度的关系,但是反应性较差。“从下到上”则基于行为主义的思想,首先遍历智能体所有的可能动作,给出可行动作的评价值,进而决策模块在可行动作集中仲裁出一个最佳动作,TsinghuAeolus[11]就是采用这种结构进行决策。考虑到我们一开始对领域知识缺乏透彻的理解,难以找到有效的评价函数,所以从整体上选择了从上到下的决策结构,也借鉴了从下而上的思路完成对某些动作的评价和选择,以更好的进入机器人足球仿真比赛领域。
足球队中每一个队员都扮演着一个角色,所有的角色被分成两种状态,非控球状态和控球状态。所谓的控球状态是指智能体能够踢到足球(两质点间距不大于kickable_area),也叫控球者;否则为非控球状态,即非控球者。
对非控球状态的队员,分别考虑下面的两种情况,以决策树形式进行规划。 (1)自己是本方能最快截球的队员
这种情况意味着我方尚无其他人控制足球,所以足球处于无人控制状态或者足球已被对方队员所控制。而如果足球处于无人控制状态则又可以分解为两种情况,自己是所有人中的最快截球队员或者某个对手能比自己更快的截球。所以一共分成三种情况:足球已被对方控制、自己是所有队员中最快截球的、某个对手是所有队员中最快截球的。
如果足球已经被对方控制,则选择封断动作,尽可能的封住对方的带球、传球路线,如果可能的话,靠近对方控球者后进行拼抢,将足球从对方脚下断下。如果自己是所有队员中最快截球的,那么执行相应的截球动作即可。对第三种情况,则直接实行对对手预计截球点的封断,但是考虑到对手可能存在截球失误,有时候我们不进行对预计截球点的封断,仍然执行截球动作。
(2)自己不是本方最快截球的队员
这意味着对足球的处理将交由本方最快截球的队友来完成,所以候选动作成为了跑位和盯人。
14
滁州学院本科毕业设计
一般情况下选择跑位,跑位的依据是当前的足球位置和自身扮演的角色。当足球靠近我方禁区附近,就需要先考虑盯人,由于我们采用433阵型,有四个后卫,必要时三个中场也可以回撤,防守人数将超过对方进攻人数,因此,只要实现人盯人的防守,就可以减少对方的传接球配合,降低被破门的概率。
盯防对象的选择是个需要全局考虑的结果,既要保证在禁区附近的对手都被盯防,又不能出现我方两个队员去盯防同一个对手的情况。通过对距离远近的排序,然后依次对应得到盯防对象。这里的关键是世界模型的完备性,利用局部通讯模型进行世界模型的共享和辅助决策信息的共享,较好的完成了防守任务。
对于控球状态的队员,则体现在带球、传球、过人、射门等动作的选择上,对各个动作的选择采用从上到下结构,而每个动作内部的参数调整则参考从下到上的思路。决策主要是建立的角色的基础上,同时会考虑球员所处位置等情况,球队的整体决策树如图3-4所示。
找球射门传球带球跑位截球防守跑位球不可知球可知&球可踢球可知&球不可踢Play_on模式进攻防守图3-4球队决策树
上图中play_on代表是正常踢球模式,如果是非play_on模式(例如角球、界外球等)则执行相应模式下的决策过程,主要是采用绕前盯人防守,最后,不管是控球者还是非控球者,都会因为执行(dash power)指令奔跑而消耗体力,而体力充沛与否对队友的后续表现有极大的影响,所以dash指令的power参数需要进行最后的调整:
adjust_power=power×f(stamina, agent_pos, ball_pos, action_type)
其中stamina是智能体的当前体力值,agent_pos是智能体的当前位置,ball_pos则是足球的当前位置,action_type是智能体所选择的动作类型(跑位、盯人、截球等),f函数的返回值介于[0.0,1.0]。如果现有stamina非常充足,则f函数直接返回1.0;如果action_type是截球动作,则尽可能的满足power的要求,f返回值接近1.0;如果agent_pos和ball_pos相距较远,而且智能体不处于重要位置,则函数f的返回值向0靠拢。
4异构智能体的选择和辨识
从仿真平台版本7开始,引入了异构智能体的概念,可以根据球队的整体策略,配备更能发挥特长的异构智能体。异构智能体的选择标准和领域知识密切相关,要在团队整体策略的指导下才能进行有效的使用。因此,本章从结构上说,属于3.1.1节的阵型和角色、3.2.5节的规划决策两部分
15