一等奖方案|GoBigger决策智能挑战赛@logic队 解题思路分享

今日分享:Go-Bigger多智能体决策智能挑战赛一等奖获奖方案

分享团队:冠军队伍-logic队

赛题名称:“AI球球大作战:Go-Bigger多智能体决策智能挑战赛”

赛题地址:https://www.datafountain.cn/competitions/549

获奖团队简介

Logic团队照:左到右依次为方苑也、张逸冰、周鹏

张逸冰(逻辑串行,队长):成都国翼电子技术有限公司运筹优化算法工程师,电子科技大学 物流工程专业2020届硕士毕业生,技术方向主要为运筹优化算法的设计与实现,包括优化模型建立,优化算法开发等。挑战赛主要负责方案的设计、实现和效果论证。(55%)

方苑也(逻辑并行,队员):成都国翼电子技术有限公司 深度学习算法工程师,帝国理工学院 控制系统与工程专业2020届硕士毕业生,技术方向主要为深度学习算法的研发和应用,包括模型设计、数据构造与性能提升等。挑战赛主要负责任务定义、部分方案实现和效果论证。(25%)

周鹏(逻辑叉行,队员):成都国翼电子技术有限公司 深度学习数据工程师,四川大学 工程造价专业2016届本科毕业生,技术方向主要为深度学习算法模型训练、开发、调优、测试和数据处理等。挑战赛前期主要负责深度强化学习方案研究探索,中后期协助进行 rule-based 算法方案优化与完善。(20%)

整体方案介绍

对于 Go-Bigger 游戏环境之中的多智能体对抗情景,分析游戏空间设计,对多智能体博弈任务进行解耦,以天梯系统匹配对局中队伍获取更高质量为目标,任务分解定义为智能体的发育、防御、进攻和合并/协作四方面的决策算法开发。

算法解决方案核心为移动机器人路径规划算法中的人工势场法:将智能体视为势力场影响下的质点,被视野内的食物球、荆棘球和孢子球吸引靠近,同时受到敌方智能体排斥远离,最终根据引力势和斥力势之和完成智能体的基础路径规划。按照任务定义,优化完善智能体决策逻辑,进一步序列化动作组合。
设计流程/思路

设计思路/流程

实现细节

进攻模块

在竞争过程中,由于大球速度总是小于小球,难以通过追逐的方式进行进攻,因此使用分裂动作达到进攻的目的。

进攻条件:

我方当前分身球数量小于16

分裂后的分身球半径大于敌方半径

分裂后的位置能够覆盖敌方中心点

分裂后不会因为碰撞到荆棘球而被吃

保证进攻后的收益大于风险

二次进攻条件:

确保能分裂两次

两次分裂后的分身球半径大于敌方半径

分裂后的位置能够覆盖敌方中心点

第一次分裂后不能碰撞到荆棘球

两次分裂的过程中收益大于风险

防御模块

基于人工势场法,当敌方可能对我方产生威胁时,产生斥力,距离越近斥力越大。遍历视野内我方和敌方所有的分身球,计算斥力总和。若总斥力达到一定范围,则触发躲避策略,向斥力方向移动。

斥力场计算依据:

  1. 若敌方半径小于我方,或距离较远时,不产生斥力

  2. 若我方小球受附件大球保护(敌方进攻会被我方反吃),则不产生斥力

  3. 斥力大小与敌我距离及半径比例相关,同时与当前球占我方总分比例相关

  4. 若处于敌方进攻范围内,增大所受斥力

  5. 若敌方吃掉我方后,还能继续攻击附近我方分身球,则增大所受斥力判断

合并/协作模块

在发育过程中,荆棘球能够使我方获得更大收益,同时分裂出多个分身能够提高发育效率,但在与敌方竞争的过程中,质量过于分散容易导致敌方联系进攻,因此需要进行合并操作来聚集我方分身球。

自身合并(中吐)条件:

  • 合并后能够进攻附近的敌方

  • 我方分身球数量较多,且尾部部分分身球半径大于某一范围(官方中吐策略)

  • 我方最大分身球质量占比低于某一范围

  • 合并序列完成,但合并流程并未完全结束(合并到一半后无法继续触发合并条件)

队伍合并(协作):

  • 同一个队伍的多个智能体,若能够将队伍的质量进行聚集,将能够有效增大进攻敌方的机会,且不同的分工也能提高队伍的发育效率。

  • 刻意进行队伍合并反而会在寻找队友的过程中增大潜在的危险,同时也会降低发育的效率。

  • 算法采用佛系协作策略,当且仅当有较近的队友时,放弃发育去跟队友合并,从而保证自身发育的同时起到多智能体协作的作用。

发育模块

基于人工势场法,让周围的食物球(包括孢子球和荆棘球)产生引力。食物球半径越大,距离越近,则相应增大引力。选择与引力合力方向接近且距离最短的食物球,作为下一步的移动目标。

发育策略计算流程:

遍历我方分身球及附件所有食物球:

if 当前食物球半径小于分身球半径:

二者距离较远时不产生引力,距离较近时产生斥力

else:

根据两者相对位置及食物球半径计算引力并更新所受合力

遍历我方分身球及附件所有食物球:

更新我方分身球吃掉该食物球后所处位置

调用斥力计算模块获取与上述位置所受斥力

if 所受斥力大于某一范围:

不考虑当前食物球

else:

计算该食物球方向与引力方向的偏差及到达所需时间

更新方向偏差与到达所需时长最少的食物球作为目标方向

发育过程中需要避免选择在全局视野四个角落的食物球,可能导致智能体无法完成觅食;除此之外,觅食荆棘球前提前进行风险评估,避免分裂后被敌方进攻。

遇到的问题及处理方案

  • 前期探索强化学习方案可行性,包括参数调整、动作空间修改和模仿Rule-based智能体方案等。发现效果不甚理想,故最终选择 Rule-based 算法方案;

  • 游戏环境为多智能体博弈,但队伍中同一智能体玩家动作保持一致。协作决策任务之外,人工势场法计算分身球所受势场合力,能够完成基础路径规划;

  • 人工势场法会导致局部震荡,通过预估未来的智能体所处位置可能受到的斥力,避免可能出现的无效食物球和荆棘球吸引;

  • 难以查看与其他玩家匹配的对战视频,只能大量分析自我博弈的对抗情况,进行方案优化完善。

智能体迭代

智能体迭代

思考与感悟

​总 结

在将近半年的挑战赛中,队伍从多个方向进行了探索研究,最终设计了基于规则的决策AI算法,在这个过程中收获颇丰。这次比赛让我们意识到,机器学习在相对复杂的环境下与真正的狭义人工智能还存在一定的差距,也正是有了这样的差距,才更值得我们为之进行不断地探索创新,未来的道路也将由在座的各位一同探索发现。

感谢主办方提供这样一个平台,让更多人了解和关注决策智能,也让决策智能领域的各个爱好者能够聚在一起交流学习,降低大家的学习成本,同时也为开源生态贡献出自己的一份力量。感谢比赛过程中各位工作人员耐心及时地解答大家所提出的每个问题,希望主办方多多举办类似的比赛,让更多的人参与进来,共同探讨学习。

前往“一碗数据汤”,回复“logic方案”,即可获取冠军解题思路PDF。

—End—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值