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

星际争霸传统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
异地就医结算便民利民惠民图江西省丰城市人民医院康复科医生在为患者进行康复训练。目前,康复治疗在当地可以实现医保报销。周亮摄(人民视觉)图江苏省常州市市民在医保便民服务区办理医保业务。胡平摄(人民视觉)图四公交医生站头问诊从待诊到巡诊的转变确保乘客顺利出行半岛全媒体记者尹彦鑫通讯员胡振随着绿色出行理念越来越深入人心,选择乘坐公共交通出行的人们越来越多。出行的安全乘坐的便捷和车辆的状态随之成为公交从业者孜孜不倦的追求。公交车大多具有运牢记总书记的嘱托企业调研记乳业逆袭来源经济日报从北京驱车前往河北张家口市察北管理区,一路向西向北。行至海拔1450米的坝上,天高云低,视野陡然开阔。君乐宝乳业集团旗帜婴儿乳品有限公司就坐落在这片草原之上。2017年江苏泰州姜堰警民共建微网格守护社区平安来源新华每日电讯居民2548户8647人,寄住和外来流动人口占比高达98。5江苏省泰州市姜堰区三水街道锦联社区设立于2018年,是一个大型拆迁安置小区。作为社区党委书记居委会主任,郑州富士康再掀返乡潮,5天10000补贴难掩招工乱象郑州富士康再次陷入舆论漩涡,从10月底大批员工徒步返乡后,富士康看似在招工方面顺利地解决了问题,但随之而来的一系列操作,却让富士康面临着信誉崩塌的危险。天价高薪难留员工之后,富士康52岁墨西哥女子出国投奔新男友,失踪后陈尸海滩,器官全被掏空墨西哥女子布兰卡阿拉诺(BlancanArellano)相信,自己在50岁那年找到了真爱。那是疫情刚发生的时候,阿拉诺整天呆在家里打游戏。一次偶然,她在游戏里遇到一个秘鲁网友,名叫任泽平对谈管清友老百姓炒股能赚钱吗?以下为11月17日任泽平博士和如是金融研究院院长管清友老师的直播速记整理。任泽平今天我和管老师的连麦,第一我们没对过笔记,第二不设禁区。首先,管老师,我做了一个投票,结果显示有相当政观察歼15十年砥剑海天,昂首挺进三航母时代撰文韩静11月23日,这是值得纪念的一天11月23日,这是值得纪念的一天。十年前的今天,歼15首次在航母辽宁舰上成功起降,搭载着中国强军梦的飞鲨战斗机一飞冲天,开启了舰载机的新时代来重庆,你不来一碗河水豆花,那就太遗憾了来重庆,你不来一碗河水豆花,那就太遗憾了。北碚豆花土沱酒,好耍不过澄江口。嘉陵江沿岸的码头上,这段顺口溜已经在当地流传了50多年,据说,抗战年代期间晏阳初老舍郭沫若梁漱溟等人都垂涎东北黑土地上的丰收密码秋收与护土同步积极推行田长制东北地区是我国秋粮的主要产区,在这里分布着珍贵的耕地资源黑土地。目前东北地区的秋粮收获已经结束,眼下,种植户们正采取多项保护性作业措施,提升黑土地的耕地质量,为来年耕种打基础。吉林资治通鉴从今天起,世事洞明,打开格局如果说哪本书最让我相见恨晚,一定是资治通鉴!如果早10年或20年读到此书,也许我会有不同的人生。惭愧自己30多年的书龄,到今天才看到这本史学巨著,如果早点看到该多好!我忍不住打电话
中日甲午战争赔款近四亿日元的后果助力日本成世界第三军事强国1894年爆发的甲午战争,不是一次普通的战争,而是中日发展的一次分水岭。巨额赔款让中日差距越来越大,一个沦落一个腾飞。甲午海战日本人总共得了多少钱?马关条约不仅让中国割让了台湾,经沃尔暴揍詹姆斯言论引热议!小托马斯大笑回应骑士当时最怕奇才?北京时间1月19日,快船后卫沃尔近日的播客采访引起热议,他不但吐槽了老东家火箭,而且还表示201617赛季,他率领的奇才本有望暴揍勒布朗詹姆斯。小托马斯在社媒上用大笑符号回应这段言湖人对阵国王赛前快报,詹姆斯萨博尼斯出战成疑,湖人占据优势伤病情况上场比赛詹姆斯打出了赛季最佳表现,他26投16中,拿到48分9次助攻,很多球迷都在期待湖人再接再厉,在对阵国王的比赛再下一城,如此一来湖人就能追上太阳的成绩并列西部的第十二专家名师齐聚!探索创新人才培养,助力教师团队发展现代快报讯(记者黄艳)教师是实现STEM教育育人目标的关键,STEM教师团队的高品质发展直接关系到拔尖创新后备人才的高质量培养。近日,来自高校和教科研部门的专家,南京外国语学校教育青岛出台提振文旅消费12条!8000万真金白银助力文旅市场复苏为深入贯彻中央和省委市委经济工作会议精神,全面落实省委山东消费提振年决策部署,把恢复和扩大消费摆在优先位置,提振消费信心稳定消费预期,青岛市研究出台关于大力提振文化和旅游消费的政策美媒美国禁用抖音海外版的州越来越多美联社近日发文称,美国禁止TikTok(抖音海外版)的州越来越多,至少有24个州禁止在国有设备上使用流行的社交媒体应用TikTok,包括密西西比州印第安纳州路易斯安那州和南达科他州他是雍正的九世孙,一生低调,住在简陋的房子里,与妻子相依为命他是雍正的九世孙,一生低调,住在简陋的房子里,与妻子宝琛相依为命。一天,他连叫了几声宝琛没人应,却看到书桌上的字条,顿时心痛不已。启功,1912年出生,我国著名的书画大家和国学大家古代社会中,家庭生活的未嫁女性,具有哪些困境?对于古代社会的家庭研究而言,人口普查报告和教区登记册通常被视为唯一最好和最准确的信息来源。然而,尽管在整个希腊和罗马帝国时期都进行了定期的人口普查,但普查数据并没有在古代世界的大部春晚进行时杨紫赵今麦颜值和穿搭被吐槽,王冰冰意外出色备受大家关注的春晚已经进入倒计时,而春晚进行时节目也已经开播,众多流量明星都出现在了这次的节目上面,不过诸多网友发现,央视的镜头果然不是谁都能够扛得住的,甚至很多大家心目中的流量小球迷心中的优秀主教练球迷心中的优秀主教练谁是球迷心中最优秀的主教练?作为一个业余球迷,觉得这五点应该是优秀主教练必须具备的。一丶有驾驭球队的魄力和能力。能维护自己在球队中的绝对权威,能把球队捏成一个整苹果AppleTV4K用户反馈SiriRemote遥控器出现连接问题IT之家1月20日消息,不断有苹果第三代AppleTV4K用户在Reddit社区MacRumors论坛苹果官方支持论坛Twitter等社交媒体上反馈SiriRemote遥控器存在连