范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

星际争霸传统AI机器人源码分析(2)建造顺序搜索

  星际争霸中,玩家需要按照合理的顺序去建造单元,以尽快形成所需的战斗力。不过,找到最优的建造顺序并不简单,需要做权衡。例如,玩家可以先建造一些工人,让工人去采集资源,工人越多收集资源的速度就越快,从而尽快达成建造的条件,然而建造工人也需要消耗时间,太多工人也是浪费,因此需要找出一个合理的建造方法。
  本文内容主要结合UAlbertaBot的代码和相关的论文《Build-order Optimization in StarCraft》进行分析,论文地址如下:
  https://www.aaai.org/ocs/index.php/AIIDE/AIIDE11/paper/viewFile/4078/4407
  星际争霸游戏中,工人在采集矿石
  建造目标的产生
  UAlbertaBot的策略管理器(StrategyManager)会根据当前局势去选择一种策略(具体方法后续再探讨,这里先关注建设相关),每种策略包含该策略下需要有哪些单元。
  例如,如果AI选择神族(protoss),策略管理器有可能产生一个叫ZealotRush的策略,这个策略对应以下的建造目标,包含一些Probe(工人)、Pylon(水晶塔)、Gateway(兵营)和Zealot(狂热者,一种攻击单位)。
  ["Probe", "Probe", "Probe", "Probe", "Pylon", "Probe", "Gateway", "Gateway", "Probe", "Probe", "Zealot", "Pylon", "Zealot", "Zealot", "Probe", "Zealot", "Zealot", "Probe", "Pylon", "Zealot", "Gateway", "Probe", "Pylon", "Probe", "Zealot", "Probe", "Zealot", "Zealot", "Zealot", "Zealot", "Pylon", "Probe", "Zealot", "Zealot", "Zealot" ]},
  Probe相当于工人
  当AI选择的策略有变更、或者玩家某些单元被歼灭时,就需要更新建造顺序。而ProductionManager便会根据StrategyManager的建造目前去建设。源码中,上层通过如下接口给ProductionManager设置建设目标。 void ProductionManager::setBuildOrder(const BuildOrder & buildOrder);
  再通过performBuildOrderSearch方法做深度搜索,最终获得最优建造顺序。 ProductionManager::performBuildOrderSearch()对游戏的抽象
  程序将游戏的建造部分抽象成"游戏状态"和"动作",并使用搜索算法来计算最优解。
  状态
  对于游戏状态,抽象成 S=(t,R,P,I) ,各含义如下: t是一个数值,代表游戏的时间(帧数) R是一个向量,代表各种资源占用情况,例如当前游戏有3个兵工厂,其中两个是可用的,另一个进行生产,一分钟后才变为可用 P是一个向量,存放已经安排但尚未执行的动作,例如正在建造补给站,还需30秒才能建完 I是一个向量,指示工人的状态。例如有8个工人正在挖晶体矿(mineral),另有3个正在收集油矿(gas)
  通过抽象,程序便能够使用较为简单的数值来表达游戏状态,虽然这样的表达简化了很多内容,却也降低了计算量,游戏AI程序的运行速度不能太慢,才能够做到实时操控
  动作 对于建造有关的操作,使用 a=(δ,r,b,c,p) 来抽象,各个符号的含义如下 δ 是一个数值,代表动作的持续时间(帧数),例如建一个士兵需要10秒 r、b、c代表执行该动作的各种先决条件,其中 r 指required(需要建好哪些东西),b指borrowed(需要借用哪些资源),c指consumed(需要消耗的资源)。 p指执行该动作后会产生的东西
  举例来说,对于"生产一个神族的龙骑兵"(Produce Protoss Dragoon)这么一个动作,而言 生产总共需要600帧,所以δ = 600 必须先有建有控制核(Cybernetics-Core)才能建造,所以r = {Cybernetics-Core} 建造过程中需使用兵营,"借用"兵营的生产力一小段时间,因此b = {Gateway} 建造它需要消耗125个晶体矿,50个铀矿,还算2个人口,因此c = {125 minerals, 50 gas, 2 supply} 动作执行完毕会产生一个龙骑士,因此p = {1 Dragoon}
  玩法的抽象
  在实际的游戏中,建造过程和收集资源的过程都较难用数学去表达,因为建造和收集过程中,需要派遣工人,让工人走到目的地,然后建造或收集,对于收集,工人还需要把矿物拿回基地,这个过程会涉及资源的位置、地图寻路,比较复杂。因此,做了一些适当的简化,如下所示。 对于晶体矿收集,固定设置为每个工人每帧收集0.045个 对于油矿收集,固定设置为每个工人每帧收集0.07个 对于每个建筑,默认加上4秒的建造时间,以模拟工人走路花费的时间
  状态转换
  对于游戏的状态转换,做出如下三种抽象: S′←Sim(S,δ) ,模拟从状态S开始,没有操作的经过δ时间,最后变为S"状态 δ←When(S,R) ,当前状态为S,它需要R资源,该抽象计算出达成该资源所需的时间δ,例如有3个工人在收集矿石,它需要多少时间才满足建一个兵营 S′←Do(S,a) ,当前状态为S,且执行动作a的条件已满足,执行动作a,使状态变为S"
  综合起来即可得到状态转换函数 S′=Do(Sim(S,When(S,a)),a),既想执行动作a,先计算满足条件所需的时间,然后等待条件满足,最后执行。 搜索算法
  在做好抽象定义之后,即可从当前游戏状态(S)开始,找出达成建造目标(G)的方法,具体是通过深度优先搜索(depth-first recursive search),递归遍历当前状态下可能的发生的动作,具体算法如下:
  2-4行:其中的TimeElapsed是为算法效率考虑,限制它执行的时间,以适应游戏的实时性; 9-17行:递归搜索的过程,遍历S下可能执行的动作(while S has more children do),针对该动作形成的新局面S",递归调用( DFBB(S") )。其中h←eval(S")是启发式评估的过程,目的是加快搜索速度,只对S"+h
规模将超3万亿元户外运动产业成新赛道国家体育总局等八部门联合印发的户外运动产业发展规划(20222025年)提出,到2025年,我国户外运动场地设施持续增加,普及程度大幅提升,参与人数不断增长,户外运动产业总规模超过壹号本公布OneXPlayer2外观手柄可拆卸设计,采用Xbox手柄布局据之前报道,壹号本放出OneXPlayer2宣传视频,并预告产品将于2023年发货。近日壹号本放出OneXPlayer2照片并公布了具体发货时间。图片来源壹号本从图片中可以很明显看稳赚不赔?终身复利3。5?这类保险产品火了,这些tips要注意稳赚不赔终身复利3。53。5的利率白纸黑字写进合同收益比理财产品高今年以来,由于保额稳定增长,兼具保险和理财属性,增额终身寿险走进更多投资者的视野,但这类保险产品果真无懈可击吗?近真金不怕火炼!试驾16。98万元起的全新欧蓝德征战国家级越野赛道全网都在等的全新欧蓝德终于来了!原本产品力的飞跃提升,就已经让全新欧蓝德成功了一大半。而在不久前,全新欧蓝德以16。98万22。98万元的诚意定价正式上市,直接引爆了车圈热点,这也创业100从农产品经营转型投资旅游,他用13年打造两家4A级景区19岁从商洛地区农校毕业后,他主要从事食药用菌及农产品生产经营,26岁时他放远眼光,开始转型投资旅游业,经过13年的积淀,目前打造出了两家国家4A级旅游景区。他就是陕西丰阳旅游开发跨境电商12月营销日历来啦!一文读懂10个关键节点,助您旺季大卖时间悄然流逝,一转眼,12月已经在向我们招手。12月,对跨境卖家来说,意味着一年之中最后的爆单机会。如何抓住关键营销节点,提前做出相应准备?今天Shoptop就给大家梳理一下12月使用两周后的真实体验,华为PocketS多项提升体验拉满!这回买对了华为PocketS小折叠手机的发布已经过去半个月时间了,近期小编一直在亲自体验这款实力卓越的小折叠手机,想要为换购折叠屏手机的消费者带来真实的体验分享。体验之后,不得不说华为Poc场上队员拼命竞技,场下辣妹争芳斗艳,世界杯是力量和美的盛宴男足世界杯向来是惹人关注的体育竞技,卡塔尔世界杯也不例外。赛场上球员拼个你死我活,场外小姐姐们花式斗艳,放出各种福利。怪不得有些球迷,为了看世界杯可以熬夜,可以狂欢,甚至可以辞职,世界杯B组最后决战伊朗VS美国,威尔士VS英格兰伊朗VS美国(北京时间11月30日3点)这场比赛前发生一个小插曲,美国队方面似乎有意无意地在社交媒体上用错了伊朗队国旗,导致了伊朗队抗议。美伊两国的关系众所周知,因此在足球场上两队作为一个从不赌博的足球小白,他如何在世界杯中逐渐沉沦为赌徒昨晚跟一个朋友喝酒,当下酒局必聊的两个话题,疫情跟世界杯!要说世界杯,不得不提赌球。借着酒意,他跟我吐了一肚子的苦水,阐述了他怎么一步步入坑的!我这朋友算不上球迷,只能说对足球有点世界杯预测厄瓜多尔vs。塞内加尔塞内加尔主教练阿利乌西塞对阵厄瓜多尔的世界杯A组比赛而绞尽脑汁。在首场比赛中输给了荷兰队后,31胜利卡塔尔保持了非洲冠军晋级16强的希望,厄瓜多尔的平局让南美人在哈利法国际体育场占
幼儿园阶段,孩子是否要提前为一年级的学习做准备?我是高中学校的老师,对这个问题谈几点看法。先聊聊跑步的规则大家上学的时候,是不是都上过体育课?是不是参加过学校的运动会?在体育课上或者运动会上,跑是一个必不可少的项目。百米跑两百米孩子上学可以教育和体罚吗?感谢邀请!个人觉得没有惩罚就没有奖励!惩罚的方式有多种,体罚只是其一,但是如果把体罚当锻炼有时是必须就去人体的锻炼,但一定切记适度!!!尊敬的网友朋友,您好!您提出的问题,似乎没有周杰伦和泰勒斯威夫特谁更有音乐才华?这典型的引战帖啊两个人都是天才出名都比较早,都属于出道即巅峰系列两个人的歌也都蜜汁好听,我都喜欢在两人都是天才的情况下才华这种东西就是仁者见仁了,你要非让我选一个鉴于老周是我15年当年玩诺基亚游戏,你玩过最精彩的系列动作游戏是什么?在安卓和苹果还没有流行的年代,智能机以塞班为主,那时候的手机游戏就已经是百花齐放,让手机游戏直接进入了百家争鸣时代。而在这期间,诞生了大量的极品游戏,虽然此时大部分的手机屏幕都很小switch上买的数字版游戏,如果在以后该游戏下线了,那是不是就不能下载了?游戏下线停服不能下载的情况只存在于网络游戏,单机游戏不存在下线不能下载一说。数字版游戏数字版游戏的购买信息是与你的账号相关联的,只要你的账号还在,且游戏公司以及任天堂没有倒闭,就一现在的广东队,怎么了?广东队有点急功近利尤其广东队这两场球打的输球又输人发怒蓝协应该整顿一下球风,尤其是个别队。要不优秀球员都给整废了咋去国际上拼搏为国争光啊加油一句话就是没有夺冠的实力但还有夺冠的梦!巩晓彬现在特训张子宇,2。26的张子宇未来会进入中国女篮吗?新赛季随着山东高速入主,巩晓彬也随之辞去了山东男篮主帅一职,没有巩大帅的凝聚力,如今山东男篮战绩可谓一落千丈,以6胜7负的成绩勉强排在12强之内,在球迷心里都非常希望巩晓彬能重新回从目前结束的比赛,归化球员对中国足球有帮助吗?早这样玩,就没后面的事了。感觉就是斗地主,手上有炸被闷死了。这个时候,你问我炸有没有用,你让我怎么回答?这个问题以后拒绝回答,这是最后一次,中国足球强大样那一天,就是中国复兴之日,严鼎皓和吴少聪入选中国金球奖,新晋国脚值得中国足球怎么学习?就是那么优秀,年轻成为广州队未来的特色,也是争冠的希望。广州队!相信很多中国球迷都担心这一支昔日的亚洲顶级球队,能否成功出现在2022赛季。值得一提的就是,有粤媒爆料称广州队的疑似恭喜中国女排!曝排超冠军功勋踏上留洋路,李盈莹会紧随其后吗?希望莹盈能出国打球,在国际排球比赛中取得好成绩,为国争光,为自己证明!加油李盈莹!祝李赢莹飞的更高!!愿梦想成真,一是锻炼自己的球技,二来可以增加个人收入。当然也可以练练语言肯定是为何银行大楼高达几十层,除了一楼营业厅外,其余都是做什么的?现实生活中,我们看到的银行大厦,少则十几层,多则几十层,而我们去办理业务时,银行却往往只有一楼在对外营业,那么除一楼外,银行大厦的其余楼层又都是干嘛用的呢?冠名权除了省级分行外,目