【摘要】随着计算机技术的发展, 分布式人工智能中多智能体系统(mas multi-agent system)的理论及应用研究已经成为人工智能研究的热点,robocup(robot world cup),即机器人世界杯足球锦标赛,是一个在异步,有噪声的对抗环境下,研究多智能体的决策和合作的问题。本文详细介绍了计算机仿真足球机器人竞赛中进攻和防守的设计与实现。
【关键词】进攻;组织性;准确;快速;防守;灵活性
robocup(robot world cup),即机器人世界杯足球锦标赛。它是国际上一项为提高相关领域的教育和研究水平而举行的大型比赛和学术活动,通过提供一个标准任务来促进分布式人工智能、智能机器人技术、及其相关领域的研究与发展。训练和制造机器人进行足球赛,是当前人工智能和机器人领域的研究热点之一。在比赛中,当确定了球队的阵型后,每个队员分配了相应的角色,开始讨论球队的整体和局部攻防战术。
全队进攻战术
全队进攻战术是指比赛中一方获得球后,通过队员之间的传递配合达到射门的目的而采用的配合方法。与局部进攻战术相比较,全队进攻战术的进攻面比较广,参加进攻和快速反击等。主要有边路进攻,中路进攻,快速反击等。
1、边路进攻:利用球场两侧地区发起进攻的方法叫做边路进攻。边路进攻是全队进攻战术的主要形式之一,其主要特点是有利于发挥进攻速度,打破对方防线制造缺口。
2、中路进攻:中路进攻是利用球场中间区域组织的进攻,这种进攻虽然能直接射门,但难度最大,因为中路防守最为严密,突前的攻击手必须是反应极其敏锐,意识强而且技术高,敢于冒险,速度快和善于路位策应的队员。WWW.133229.cOM
3、快速反击:比赛中当攻方进攻时,后卫线往往压至中场附近,防守人数也由于插上进攻和助攻而相对减少,此时抓住对方防区空隙比较大和回防较慢的机会,趁其失球发动快速反击,往往能取得良好的效果,快速反击是最有威胁的进攻手段,有效发动快速反击。能有效得分,但其有一定的冒险性。所以要掌握准确快速的原则。配合要有组织性,要非常有默契,需要多次练习。否则很难在比赛中实施。
全队防守战术
防守战术可分为两种基本类型:盯人紧逼防守(人盯人防守),即在规定的范围内盯人紧逼,不交换看守:区域紧逼防守(盯人和区域相结合),即现今流行的综合防守,紧逼和保护相结合,在个人的防区内紧逼,作交替看守。盯人防守即各自都有明确的防守对象。防守最根本的原则是紧逼和保护。只有紧逼才能有效地主动断抢,压制对方技术的优势而获得主动权:保护是为了更好地紧逼和控制空档,为赢得比赛准备时机。防守可以被解释成一个布置的事件。在清华设计地队伍中它是使用一个类型,基于情况的策略布置理论。布置最重要的一点是在基本的编队中,哪个确定一个队员的位置通过标准的角色分配,球的位置和球的控制状态。在这个防守问题上,基本的信息提供作为一个标准,命名的,一个相同的角色,因为角色分配和任务评价。另外一个重要的事实是在防守的位置灵活性,这个测量多么危险,如果一个对手站在给定的位置。防守位置灵活性因为任意的点在球场上的是先前已经知道在所有的队友中间。
四种类型的防守动作:
1、lock(妨碍):交叉一个对手的占有这个球在我们球门的外围,阻止他向前推进。
2、press(压力):跑,在一个对手占有这个球,并且在我们球门的附近,保持对他有威胁
3、mark(盯人):盯住一个没有球的对手,因此他的队友不可以传球给他
4、point defend(位置防御):站在基本的信息位置,这个将有好处,当一个附近的队友在1vs1中失败了,或者当这个队重新夺回了球的控制权。
为了简化这个问题,我们设置一个规则,一个防守队员不可以防守两个对手在相同的时间里面,还有两个防守队友不应该防守相同的对手。这个互斥的操作被提供在相同的这些情况下。这个冲突的操作没有在这里使用。那里有一个二中择一,就是block和press被设置成冲突,替代了互斥,提供一个不同的防守策略。因此另外一个也是可以的,我们不再进一步深入讨论。在分解一个防守任务到防守每个进攻的对象,和站在基本的信息点,安排被产生通过链接每个防守队员到每个子任务。那时候,这个程序到达一个评价个体的效用。
我们定义了一个评价函数为了每种类型的动作。这些变量被用来每个评价函数的输入:剧烈,测量时间间隔从队员的当前位置到防守位置,背离,测量距离从防守的点到队员的基本的编队位置,威胁,也就是这个防守位置灵活性对手当前的位置。这个函数输出增加随着威胁和减小随着距离和背离。为了点防守,只有威胁作为输入。为了获得每个函数的实际的值,我们设置一些典型的情景,从他们之间摘录输入值,然后赋予输出值到这个函数。这个值被小心的装入来保持轻微的变化。在这个方式下,一个输入和输出的列表数据就生成了。
在清华设计中,他们使用bp网络神经去编码评价函数。这个列表产生被使用作为训练网络神经的设置。在训练之后,网络被测试去确保他们适合在先前的段中要求的,因此评价函数就确定了,但我们队伍还在改进中。剩下的计划到一个标准的程序现在上面和没有需要更进一步的讨论。还留下一个补救计划的产生。有时候这个队维持一致失败了。例如,当一个对手和两个防守队员的位置的距离相同,而且在相同的时间里面。编队的点。这两个安排将有相似的评价,这两个防守队员可能冲突。我们的设计利用这个绝对的反馈存在这个系统中。因为球将保持移动在这个比赛中,和对手必须向前移动去进攻,另外这个基本的信息位置或者防守的点将改变在下个周期。那里有一个小小的改变使得这两个安排仍然保持相同的评价。一旦这两个安排不同的时候足够明显为两个防守队员去分辨出来。这个预先防守队员将执行这个防守动作,更接近的移动到对手。然后另外一个将移动到另外一个方向。因此,这个对照增加,这个系统提取一个状态分离来自先前的进退两难的局面。因此又可以完成一致了。
防守算法的实现
1、防守算法的初始想法
第一步:找球的位置,即时更新
第二步:判断球是否在可踢范围:
如果可踢,则根据自己所在的位置作出相应的动作,具体是:
如果再罚球去内,马上把球踢出去,且尽量传给队友;如果再罚球区外,可以适当的带球,把球送往中场;
如果不可踢,则进入第三步;
第三步:判断自己是不是有责任去断球:
有,则毫不犹豫的去断球,断球也要分区域,在罚球区,则要以全力跑过去断球,如果身后有自己的队友,则可以考虑铲球,如果自己在进攻球员的后面(他已经过了我),则要马上从后面铲球;
没有,则要进行协防,进入第四步;
第四步:是协防,这步我觉得是最难的,因为这种情况太多了,现在只有大概的一点思想:还是要把后半场分区,针对各区采取各种mark策略
第五步:根据队形调整自己的位置
2、防守算法的实现流程:
|-->如果没有开球:
| |-->如果是本方开球且球员自己是9号:
| | |->如果球在可踢范围:则以最大力把球kick出去;
| | |->如果球不可踢: 则抢断;
| |-->如果当前队形不是初始化队形或者球员自己的实际位置偏离队形规定位置(以下称为策略位置)1m以上:则导入初始队形,球员直接移到自己的策略位置;
| |-->如果是7号或者8号:则准备移动到9号kickto的点,并把头转向球;
| |-->其他情况:则把身体对向(0,0),并把头转向球;
|-->如果已开球:则先导入防守的433队形,
| |-->如果球的信息不是最新的:则搜索球,并转动头以助以寻找;
| |-->如果球在可踢范围:
| | |-->如果在球员自己的罚球区:则以最大力把球以相对安全的角度kick出罚球区;
| | |-->如果在自己前方5m,角度为(-80,80)的扇形区域内有对方球员:则以最大力把球转移,即clearball;
| | |-->如果在自己前方5m,角度为(-80,80)的扇形区域内没有对方球员 :则以不大的力把球kick出去;
| | |-->其他:则带球前进;
| |-->如果球员自己是队友中最快可以到达球的位置的球员,即球员自己最有责任断球:
| | |-->如果球正被对方带向球门:
| | | |-->如果球员自己和球的距离小于2。5m:则铲球;
| | | |-->否则:则加速跑向球;
| | |-->否则:则抢断;
| |-->如果球员自己的当前位置偏离他的策略位置(1。5+(球员与球的距离)/10。0)m:则即时调整自己的位置;
| |-->如果球员在自己的半场:则进入mark状态,
| | |-->如果球员在自己的罚球区内:则采用 mark_goal 的mark方法(防止被防球员接球射门);
| | |-->如果球员在自己罚球区两侧:则采用 mark_bisector 的mark方法(既防止被防球员接球,又防止其接球射门);
| | |-->在其他区域 :则采用 mark_ball 的mark方法(防止被防球员接球);
| |-->如果球员自己与球的相对角度大于1:则把身体转向球,并把头转向球;
| |-->其他情况:转头(观察);
注:以上的流程遇到“;”就返回,得到一个soc(命令),最后将soc返回。
【参考文献】
[1]李实、徐旭明、叶榛、孙增圻编著,《综述:国际机器人足球比赛及其相关技术》,清华大学计算机系国家智能技术与系统重点实验室,1999 年。
[2]孙增圻、李实编著,《robocup 与智能自动化》,清华大学计算机科学与技术系,1999 年。