信息发布

NEWS AND EVENTS

平台动态/最新公告 学术动态 业界动态/赛事

庙算·陆战平台面向AI算法研发,新增训练环境“环境复制”和“任意态势载入”功能

应广大AI开发者们提出的需求,环境新增“任意态势载入”和“环境复制”功能。“任意态势载入”功能给开发者提供了复现某个盘面的能力。该功能可使AI开发者以自己关注的盘面开始推演,在代码中打断点进行代码debug,更准确的掌握自己的AI在做某一时刻决策时的逻辑流。“环境复制”功能使开发者可以在推演过程中的任意时刻复制一份完全相同的当前环境,包括随机数生成器的内部状态。通过复制环境,开发者可以使用MCTS(蒙特卡洛搜索树)的相关技术去探索在某一时刻下,不同的动作选择可能带来的不同结果。为开发者调试时提供平行的决策过程,从而可以达到决策最优化。陆战兵棋AI开发包,训练引擎下载地址:访问:http://wargame.ia.ac.cn/aiinfo     点击“庙算·智胜 社区开发版(LINUX)”下方的“下载”按钮下载下载并解压缩后,使用解压后的新工程目录,或将解压后目录中的landwar/core文件夹拷贝覆盖当前所使用AI工程的相同文件夹环境复制功能使用“环境复制”功能以环境接口TrainEnv::duplicate的形式出现,开发者通过“TrainEnv”实例调用接口。环境复制功能主要用于训练AI,使用MCTS(蒙特卡洛树搜索)算法时需要对环境进行复制的需求。复制出来的环境实例将和主环境一模一样。如果两个环境输入同样的动作到推演结束,应当得到相同的推演结果(分数,盘面)。此功能可以在任何步数使用。接口说明TrainEnv::duplicate功能:复制一个一摸一样的环境参数说明:无返回值:TrainEnv环境实例使用示例(局部)# 略。。。 while not done:     actions = red1.step(state[RED])     actions += blue1.step(state[BLUE])     state, done = env1.step(actions)     if state[-1]['time']['cur_step'] == 200: # 当200步时,复制一份当前环境         env2 = env1.duplicate()     if state[-1]['time']['cur_step'] > 200:         state2, done = env2.step(actions) # env2得到和env1一样的动作 env1.save_replay(game_id) env2.save_replay(game_id+'_env2') env1.reset() env2.reset() # 略。。。任意态势载入环境功能使用此功能的作用是让环境可以载入任意态势并从此态势开始推演。开发AI时,可以复现复盘中的某一时刻,用来训练AI在特定条件下的决策。合法的载入态势格式为某个复盘文件中的某一帧的绿方态势。此功能有两个相关接口:TrainEnv::save_snapshot和TrainEnv::load_snapshot。两个接口可搭配使用。接口说明TrainEnv::save_snapshot功能:保存一个在当前步数的环境快照,快照可用于复现环境,从此快照开始推演。保存的快照是json文件格式参数说明:参数名数据类型说明filenamestring保存快照的地址和文件名返回值:无TrainEnv::load_snapshot功能:根据提供的快照,将一个环境实例还原成和快照一致的状态。参数说明:参数名数据类型说明sourcedictsource是某一时刻的完整态势里的绿方态势,或通过Train:save_snapshot保存下来的快照json文件中读取出来的字典返回值:无使用示例(局部)# save_snapshot while not done:     actions = red1.step(state[RED])     actions += blue1.step(state[BLUE])     state, done = env1.step(actions)     if state[-1]['time']['cur_step'] == 200:         env1.save_snapshot('output/snapshot.json')# load_snapshot env1 = TrainEnv() with open('output/snapshot.json', "r", encoding="utf-8") as file: source = json.load(file) env1.load_snapshot(source) while not done:     actions = red1.step(state[RED])     actions += blue1.step(state[BLUE])     state, done = env1.step(actions)

庙算·陆战兵棋平台更新:新增“同格交战”规则

陆战兵棋推演平台更新引擎内核,增加“同格交战”规则。在该规则下,敌我双方算子在进入同一六角格中时,会自动触发“同格交战”规则:处于“同格交战”状态的算子,会自动向敌方算子进行高频率射击;且在该状态下的算子不再接受新指令的控制,直到退出同格交战状态为止;同格交战的射击也不受到如某些算子不能行进间射击的规则限制。同格交战详细规则如下:详细同格交战规则当同一六角格内存在双方地面算子时,触发同格交战规则,格内地面算子处于同格交战状态,自动按距离为0格进行直瞄射击裁决:坦克单位使用直瞄炮,战车(含无人战车)单位使用速射炮(亦称近射炮),人员单位使用步兵轻武器,裁决顺序按照先进入该六角格的算子先实施打击,其打击目标的选择按照“坦克”-“战车”-“其他车辆”-“人员”的优先顺序自动选择;当存在同类型多个目标时,优先选择班组数少的算子进行打击(同类目标班组数相同则随机选择)。自动同格交战直瞄射击裁决间隔为25秒,同格状态下射击裁决不受武器冷却时间、机动状态和压制状态的限制,但武器未展开的算子(行军中)、未下车的人员不得实施射击。当同格交战发生时,处于格外的算子不能对处于同格交战状态的算子进行直瞄射击;处于同格交战状态的算子依然会受到间瞄火力的打击。处于同格交战状态的算子不会接受和执行新的指令,正在执行的机动和行军动作仍将继续;此外,同格交战状态会中断“上下车”,“转隐蔽”,“武器展开和锁定”的转换过程,但不会影响算子已经进入的状态如:机动、行军、掩蔽、压制、堆叠等。同格交战状态的解除:当前无敌我双方算子处于同六角格。可能的情况包含:处于同格交战状态的一方算子机动离开同格交战所在六角格;或同格中的一方算子被全部歼灭。同步更新:步兵轻武器裁决同步更新步兵轻武器的射击裁决,增加步兵轻武器对车辆单位打击的能力。在使用步兵轻武器对车辆单位实施打击时,攻击等级见《步兵轻武器对车辆攻击等级表》,战斗结果见《直瞄武器对人员/步兵轻武器对车辆战斗结果表》,战果修正见《车辆战损结果修正》。        在同格交战中,当人员和车辆发生同格交战时,人员使用步兵轻武器进行打击。 《步兵轻武器对车辆攻击等级表》《直瞄武器对人员/步兵轻武器对车辆战斗结果表》《车辆战损结果修正》

陆战平台新增面向强化学习的三个MiniGame

  兵棋作为具有战争迷雾特性的即时战略任务被广受关注,但由于其巨大的动作空间和状态空间让普通研究人员望而却步,为促进兵棋推演学习及兵棋AI研究,便于更多兵棋爱好者研发兵棋AI算法,庙算·智胜陆战兵棋平台推出三个MiniGame对抗场景,同时提供其对应的离线训练工具包,欢迎兵棋爱好者下载使用。下载地址:http://wargame.ia.ac.cn/aiinfo通过在Mini想定对算法开展研究,了解兵棋AI技术背后的魅力!(一)单Agent对抗场景 想定简介:该场景为山岳丛林中23*13大小地域上的一场坦克遭遇对抗。红蓝双方使用相同型号配置的坦克,其目的均为攻占地图中心的任务夺控点(将夺控点上绿色旗帜变为己方颜色,夺控点上绿色旗帜变为己方颜色时表明已完成夺控)。双方在攻防过程中需要利用地形的遮蔽保存自己,同时尽可能杀伤对手。(二)多Agent对抗场景1 想定简介:该场景为红蓝两支小队在山岳丛林中23*13大小地域上执行任务,遭遇的一场对抗(地图与单Agent场景相同)。红蓝双方小队各配备一辆“重型坦克”、一辆“重型战车”,以及一组人员“步兵小队”,其目标均为攻占并控制地图中心的两个夺控任务点(夺控点上绿色旗帜变为己方颜色时表明已完成夺控)。坦克、战车和人员有各自不同的武器和对抗特点,在利用地形的同时通过相互协同配合歼灭对手,尽可能在消耗敌方有生力量的同时保存自己的战力,夺取任务点,取得对抗的胜利。(三)多Agent对抗场景2 想定简介:此对抗场景与多Agent对抗场景1相同,为红蓝两支小队在山岳丛林中23*13大小地域上执行任务,遭遇的一场对抗,其差别在于中型战车携带的武器不同。在本场景中,中型战车携带“重型导弹”,该类武器具有“引导射击”功能,可利用步兵的观察和引导,对位于“重型导弹”火力范围内,战车无法直接瞄准但步兵具有瞄准条件的敌方目标实施攻击。与多Agent对抗场景1相比,本对抗中增加了步兵与战车之间的协同攻击的方式,期待可以被强化学习探索获得。(四)对抗场景中的地图与地形两个Mini Game对抗场景均使用同一张地图。地图上的最小里程单位以六角格表示,对抗场景地图大小为长23格,宽13格。每个六角格上带有不同的地形属性,具体如下:高程:高程代表该位置的相对于基准海平面而言的高度,在六角格上用颜色和数字标识,颜色越深表示高程越高,数字表示具体的高程值。高程影响算子的机动值与机动速度(相邻两六角格,高差越大,所需机动值越多,机动速度越慢);会形成对视野的遮挡而产生隐蔽的效果;还会对射击的效果产生影响,通常来说从高处打低处会取得更好的对敌毁伤效果,反之则削弱对敌的毁伤。 地物:地物包括特殊地形(居民地,从林地,湖泊,河流,松软地等),公路、铁路等,如下图所示。每种地形都会对算子动作造成一定的影响,比如降低通行速度,改变被观察距离,降低打击效果等。而当沿公路或铁路机动时,则不会受到高程、从林地、松软地等特殊地形对机动速度的影响;车辆“行军”动作必须沿着公路线或铁路线才能实施(行军速度可达到普通机动速度的2倍)。                                          夺控点:夺控点用旗帜标识,算子到达夺控点,当夺控点上及夺控点相邻格(六边)没有对手算子时,可发出“夺控(occupy)”动作,将夺控点上的旗帜变更为己方颜色,视为控制夺控点。当游戏结束时刻,夺控点上旗帜颜色一方将获得高分奖励。                                                                                                                                                                                  (五)对抗场景中的算子与武器两个Mini Game涉及坦克、战车和步兵三类算子。每类算子又各自携带不同的武器。  坦克:· 坦克携带中号直瞄跑,车载轻武器和炮射导弹,装备高等级的复合装甲。· 中号直瞄炮可以行进间射击,对车辆单位造成大量伤害。车载轻武器是对人员打击的主要武器,可以行进间射击。炮射导弹也可以对车辆单位造成大量伤害,但是坦克必须处于静止状态才可使用。· 坦克有拥有高机动能力,并具有行进间射击(可在机动中实施射击)的能力,是战场上最灵活的算子。  战车:· 战车携带车载轻武器,小号直瞄炮,近射炮,车载导弹,装备重型装甲。· 车载轻武器和近射炮是对人员打击的主要武器。小号直瞄炮和车载导弹是对车辆打击的主要武器。车载导弹具有打击目标距离约远伤害越高的特点。· 战车拥有高机动能力,但不可以行进间射击,所有打击动作必须在静止状态下完成。· 战车还具备携带人员的能力,可携带最多一个步兵算子,将步兵快速送达任务地点。但是当携带人员的战车算子受到伤害时,车上的步兵算子同样收到相同的伤害。      步兵:· 步兵携带步兵轻武器,火箭筒,便携导弹。· 轻武器主要对人员打击,火箭筒和便携导弹主要对车辆单位进行打击。· 步兵单位机动力较差,需要配合战车才能快速到达任务地点,步兵机动速度不受地形影响。· 步兵无装甲,但是由于步兵目标小,大部分针对车辆单位的武器无法对步兵造成大量伤害,因此在实际中步兵的生存能力较强,常用于在不利车辆机动地形上前出侦察,或是坚守夺控点。· 由于步兵目标小,其隐蔽性好,步兵最远被观察距离为10格,车辆则最远可以被距离25格的敌方观察到,当步兵在隐蔽地形(居民地、从林地)实施“掩蔽”动作后,对手需要接近到2格的范围内才能发现隐藏的步兵,因此能发挥很好的侦察、引导打击以及埋伏打击作用。· 步兵单位不可行军,但是可以进行一级冲锋二级冲锋,可以更快的速度机动,但是步兵冲锋后会很快疲劳,无法长时间实施冲锋。(六)一些常用的算子动作          掩蔽:坦克、战车、人员均可实施“掩蔽”动作,完成掩蔽动作后自身被观察距离会减半,但如果敌方从更高的高处往下观察,则掩蔽作用无效。          行军:坦克、战车可实施“行军”动作,行军动作机动速度为普通机动的两倍,但是要求在武器必须为“锁定”的状态,只能沿公路进行行军,在行军状态下遭受攻击会产生更大的战损,且行军状态下由于武器锁定,不能实施射击。          行进间射击:坦克在机动过程中,发现目标在射程范围内即可在机动的状态下实施间射击          引导射击:在战车配备重型导弹情况下,且满足可发射导弹的条件(静止状态、武器展开且冷却完毕),其所属步兵可以引导战车使用重型导弹实施打击。引导射击的执行条件为:步兵可以观察到敌方,且位于战车中型导弹的火力范围内,此时即时战车无法直接瞄准敌方,仍然可以通过步兵引导实施打击。更多详细的推演规则请见完整推演规则手册 (七)资源链接开发包、编程开发指南文档下载链接见:http://wargame.ia.ac.cn/aiinfo 
推荐阅读
问题反馈
请将您的宝贵意见反馈给我们