滁州学院本科毕业设计
2.3 球员客户端
一个球员客户端程序通过UDP接口连接到服务器端。通过这个接口,客户端程序可以发送命令来控制场上的一个球员行动以及接收到这名球员的感知信息。换句话说,一个球员客户端就是球员的大脑:从服务器端接收到感知信息,并且发送命令到服务器端[5]。
如果球员程序都是独立的进程,通过一个特定的端口和服务器端连接。当一个球员程序和服务器端建立好连接以后,所有通讯信息都通过这个端口传输。一个球队最多可以连接12名队员,其中包括11名队员(其中一个是守门员)和1名场上教练。这些球员程序向服务器端发送请求执行相应行为(如踢球、转身、跑步等),服务器端分析处理这些请求,相应的更新场上比赛状态。另一方面,服务器端给所有队员提供他们可以感知到的信息,如球员可以看到的视觉信息、球员自身的状态信息等。由于服务器端实际上是一种以离散时间片(或称为周期)为时间单位工作的实时系统,球员程序必须在每个指定仿真周期内及时做出决策并及时将请求发送给服务器端,否则将错过执行动作的机会。这就要求球员决策要有比较高的实时性。
正式比赛中每个客户端程序只能控制一个场上队员。因此,要组成一支球队就需要同样数量的程序分别控制每个队员。球员之间的通讯必须经过比赛平台按照say和hear命令协议执行,而且通讯环境具有单信道、窄带宽等特点。仿真比赛平台的一个目的就是要评估多智能体系统,智能体之间的高效通讯也是其中的一个判别标准。
为了尽可能模拟现实环境,比赛平台还加了很多限制。比如,每个队员都有一定的视野范围,每次只能获得局部信息,即包括可视范围内的对象信息,而且是有随机噪音的;每个球员都有自己的体力值,随跑动衰减,每周期可以自动恢复一些,这样就限制球员要注意调整跑动速度,合理分配体力,也更符合现实。另外,为了反映出实际比赛中球以及球员运动的不确定性,server还引入了风及噪声的干扰及对行为参数的干扰,使比赛更趋于真实,正如现实比赛很难无风和噪声的干扰,快速跑动中的队员不太可能急转弯等等,但这也增大了准确建模的难度[6]。
2.4 仿真平台主要特点
通过上面的介绍可以看到,RoboCup仿真平台提供了一个很好的、全分布的、包括合作与对抗的多智能体实时环境,非常有挑战性。其具体特点总结如下:
(1)状态空间极大:仅仅考虑22个球员的位置和速度情况:每个队员的位置范围处于68×105的赛场上,最大速度为1.0,保留到小数点后一位,再加上速度方向的考虑,共有680×1050×10×360=109种可能,这样就存在(109)22=10198个状态,如果再增加足球状态等信息,则状态空间将更为巨大。
(2)动态、实时、不确定的环境:在服务器端,整个系统按照100毫秒的周期运转,所有的球员都必须按照则个周期运行,意味着球员的所有决策必须实时完成,由于多智能体的存在,环境在动态的变化,无法预知。
(3)感知和行为异步:由于比赛时间以周期为单位离散,感知和行为就无法同步,所以光靠传统人工智能方法使用感知来激发行动是远远不够的。
(4)球员能力受限:场上所有球员的能力都是参照真实球员有所限制的,如体力、加速度、最
6
滁州学院本科毕业设计
大速度、惯性等。
(5)视觉受限:每个球员的视觉都是局部的,受到球员视角和视距的限制,也就是说球员在任何时刻都只能获得一部分球场上的信息,这就给球员正确分析场上形势,进而产生决策带来了困难。
(6)通讯受限:球员之间的通讯环境具有单信道、窄带宽等特点,即每队球员公用一条信道,每个球员一个周期内只能“听”到队友一条消息,而且信道容量很有限(缺省为10字节)。
(7)多智能体的对抗与合作:本方智能体是合作关系,要协调个体目标与全局目标的冲突;而对抗智能体的竞争关系则意味着执行任务时要遇到更多的障碍。
RoboCup仿真比赛充分体现了人类足球的特点,也集中了许多人工智能领域关注的重点问题。用户可以运用包括数学建模、搜索推理、数据挖掘、机器学习、动态规划等各种知识、技术来开发球队,并通过该平台进行实践、检验,很好的推动了相关学科理论的研究。
3 多智能体系统架构
多智能体系统是多个自主智能体的集合,当这些智能体为了一个共同的目标协调合作时,称之为形成了一个团队。一个有共同目标的多智能体系统需要在设计之初就从整体上考虑其协作方法[7]。本章首先站在团队整体的高度,结合具体的领域知识,探讨基于站位和通讯的协作策略;然后介绍了智能体所采用的混合型体系结构;最后从程序设计的角度说明系统架构的具体实现。
3.1 团队整体策略
足球比赛是个集体的项目,由11个场上队员共同完成多进球赢得比赛的任务。但是,每个智能体只拥有局部的视觉,而且其执行的动作也只能直接影响到局部的环境。如何进行全局决策,达到多智能体间的配合,必须是基于领域知识的合作,可以通过预定义模式或实时通讯完成。在仿真比赛中,预定义模式一般由阵型体现,通过阵型的概念对智能体进行角色分配,使其在全场比赛中保持协调。阵型通过提供一个事先制定的准则从宏观上对智能体行为进行控制,让所有的智能体都按照该准则行动,从而整个球队体现出一定的协调性。另一方面,由RoboCup中通讯带宽受到极大限制,仿真比赛的实时动态特性让通讯只能是作为配合的辅助作用。
3.1.1 角色和阵型
角色的概念和真实人类足球比赛中的概念相仿,代表一个球员在比赛中承担的责任,如前锋、中场、后卫、守门员等。每种角色都包括了这个角色的一些性质,如活动区域、初始位置等,当然不同角色的活动区域可以相互重叠。每个角色都有不同的行为模式,每个智能体的行为决策会受到它当前扮演角色的影响。
阵型是一组特定角色的集合,如果把参加足球比赛的球员进行角色细分,可以分为诸如左前锋、右后卫等11个不同的角色。阵型最主要的任务是定义各个角色的场上位置,使智能体的分布能对赛场有尽可能大的覆盖,同时维护在比赛过程中阵型的衔接。我们基于FCP的SBSP策略进行站位的训练,SBSP要求阵型在定义角色的同时,定义每个角色的基本位置Home(x,y),对足球的吸引权重Weight(x,y),还有对双方越位线的考虑等。如果足球的位置为Ball(x,y),简化的说,角色的场上位置应该是:
7
滁州学院本科毕业设计
Positioning(x,y)=Home(x,y)+Weight(x,y)*Ball(x,y)
这种方法保证了比赛过程中队形的协调,不会出现很多智能体集中于某一处(比如围着足球)导致其他的空当,基本可以覆盖场上大概空间。但是,这种加权和的方法缺少灵活性,如果需要对某些敏感区域进行细节调整,比如重新考虑双方禁区范围内的站位,就需要增加(条件,规则)进行补充。
基于SBSP的站位系统是预定义的,而比赛情况总是千变万化的,智能体扮演的角色和对应的站位还可以根据实际情况变换。比赛时,由于控球、盯人等原因,使智能体偏离原扮演角色所处的区域,导致场上出现空当无人防守,此时就需要其他智能体能够弥补这个角色缺失引起的危险。偏离原角色的智能体因位置的改变选择了其他角色的行为,比如中场球员在带球长驱直入后,考虑到实际情况(比如单刀等)选择前锋行为,此时,一方面前锋的角色会出现重叠,另一方面中场线也会因为该球员的缺失减弱了中场能力,应该让被重叠的前锋或者其他的不重要角色去扮演缺失的中场角色,以免被对方乘虚反击。除了基本确定位置的方法,球员站位时还应该考虑一些场上的基本情况,如是否越位,实际站位的时候就应该把上述情况综合起来考虑,如图3-1所示为完整的站位策略。同时为了应对场上千变万化的情况,还应该制定多种站位策略,在不同的情况下采用不同的站位策略,增强球队的实战能力。
智能体除了因为角色变化产生站位调整外,智能体的异构类型也可作调整。阵型规定了角色的任务,也间接的提出了对角色的素质要求,选择更符合角色能力要求的异构智能体可以在比赛开始时确定,更佳方法则应该根据比赛情况进行微调。比赛过程中可以进行最多三次换人,将更符合要求的异构智能体换上场,充当对应角色,这一点可以通过在线教练来完成。
3.1.2 局部通讯模型
RoboCup仿真平台模拟了低带宽不可靠的通讯能力,每条消息最多包括10个字节的可见字符(共1074种可能),而且在50米之内只能听到分别来自每一个队伍的最多一条消息。因此,队员间的合作无法主要依靠通讯完成,通讯只能作为配合的辅助作用。由于智能体对环境的感知是局部的,不同的智能体可能拥有对环境的不同认识,因此通讯的主要作用是保证每个智能体所独立维护的世界模型的一致性。另外,在某些时候,通讯还被用于传递辅助决策信息。
解决以局部视觉来维护全局世界模型是一个非常迫切的问题,因为,当所有智能体都按照相同的整体策略框架来进行决策时,如果基于相同的世界模型作为决策依据,对其他智能体的预测就比较准确,那么就会使整个球队体现出一定的协调性。通过视觉参数的设置和视觉动作的调整来维护世界模型是智能体的底层工作。根据智能体的决策结果,即他要做的基本动作(奔跑、转身、踢球等)以及他所希望观察到的多个目标,每个目标赋予一定的收益,在不和基本动作冲突前提下的综合收益最大的视线即为目标方向[8],这使得智能体能够维护场上的大部分信息。我们借用图5-2的分区方式,以图中的10个边界点和其他22个运动对象的实时位置作为期望目标,根据目标的重要程度和目标在世界模型中的更新程度综合给出其收益,选择能获取最大收益的视觉动作,以转头指令(turn_neck)实现这个动作。但是,先验知识相对动态比赛存在的缺陷,最大收益视觉动作必定会
8
滁州学院本科毕业设计
放弃某些目标位置,为了弥补可能缺失的信息,以通讯的方式进行有益补充。
通过球的位置及吸引力得到站位位置Y位置是否超出边场把边场设置为Y位置是否需要在球后面是否在球的后面把球的X位置设置为自身的X是否超出X最大值 把X最大值设置为自身的X是否小于X最小值把X最小值设置为自身的X是否越位把越位线设置为自身的X得到最终站位位置 图3-1 阵型决定站位流程图
由于每条通讯消息长度的限制,不可能交流全部的世界模型;另一方面,智能体的全局协调由阵型指导,而智能体的动作只能影响局部环境。因此,我们将通讯作为对小范围局部配合的补充,由于消息内容是局部区域的世界模型,运动对象(足球和球员)的位置比较接近,因此,采用类似于差分的近距离编码方式,可以传递更多的信息量,比如每次可以传送四个球员的位置信息。为了进一步的提高通讯效率,避免重复交流同样的内容,计划按照FCP的智能通讯思想[9](FCP提出该方法时通讯长度限制为512字节),构建一个听觉世界模型。听觉世界模型唯一的由听觉消息来维护,
9
滁州学院本科毕业设计
已在听觉世界模型中存在的信息将不再被重复广播。除了对世界模型的共享外,通讯还用来提供部分的辅助决策信息,用来对某些非正常队友的提醒,如接球点。
重要区域确定 编码 图3-1局部通讯模型
图3-1中的听觉世界模型唯一的由队友间的通讯来维持,它删减世界模型中的重复消息,然后局部区域内的对象位置被编码,最后叠加可选的部分决策信息封装,广播消息。
封装发送
听觉世界模型 辅助决策信息 3.2 智能体体系结构
智能体如何扮演团队成员,作为团队的一部分而共同达成团队目标,不仅和团队的整体策略相关,也和智能体本身的体系结构有关。智能体体系结构研究的是如何推理决策的问题,即协调智能体各功能模块进行从感知序列到智能体动作的映射。
基于符号推理系统的慎思体系结构采用传统人工智能中符号推理的基本原理,试图通过建立比较完整的符号系统进行知识推理来使智能体具有自主思考的能力以及与其他智能体和环境进行协调行动的能力。基于行为主义的体系结构在快速性和实时性上有长处,但是难以产生复杂、高级的智能行为。针对仿真比赛实时、不确定的环境特点,将基于符号推理系统和行为主义的体系结构结合起来的混合系统成为了多智能体体系结构的一个趋势,以实现系统快速、有效的运行。
混合型结构的智能体中包含感知、建模、通讯、动作、知识库、规划决策和反应等模块,如图3-2所示。智能体通过感知模块来获取外部环境,并对环境信息做出一定的抽象,根据信息的类型,感知模块将经过抽象的信息送到不同的处理模块。智能体间的交流依赖于通讯模块,通过通讯模块共享相互的世界模型和决策信息。建模模块根据对外界环境的感知、智能体间的通讯以及对发送动作的预测来建立整个外部环境的描述。规划决策模块在知识库的指导下,根据当前世界模型和智能体间的交流进行决策,选择最佳动作。智能体在感知的基础上条件反射产生动作,构成了反应模块。智能体所选择的最终动作作用于外部环境,进而影响智能体将来的感知。
3.2.1 建模
建模模块有两个功能,一是维护和更新智能体对外部环境(包括其他智能体)的认识,二是根据当前的世界模型对近期的情况做出预测,并由决策模块调用分析。图3-3表示了建模模块的内部结构,世界模型只是智能体对整个世界的认识和反映,它既不一定正确,也不一定全面。
在仿真比赛中,世界模型在初始化时就产生了很多静止对象,比如球门、边线以及固定标志等,这是用来自定位的。在比赛过程中,还维护着场上运动对象的状态,包括足球的位置、速度,其他智能体(10个队友,11个对方)的位置、速度、身体朝向、头部朝向等,以及智能体本身的位置、速度、身体朝向、头部朝向、视觉参数、体力、基本指令执行次数等,还有比赛状态,例如比赛时
10