计算机专业来扯一下淡,虽然在大佬面前献丑了。
理论上应该可以,不过操作起来工作量天大。
首先是训练环境,需要搭建一个地图模拟器,这个模拟器不是游戏界面,只进行数据运算,不进行动画运算,设计地图的时候需要把地图里弯弯绕绕的路线全部拉伸呈直线,然后有重合路线就将直线合并,这样可以加快一场战斗的速度。然后模拟器实时不断的给出数据,这些数据封装成一个向量:【当前费用、敌方位置、干员受到的攻击量、每个位置的buff效果、每个位置的debuff效果、干员技能cd】。由于其中的很多数据都是非一维数据,所以把它编码之后才可以形成向量化数据参与运算。
接下来是策略选择,这方面可以考虑一下强化学习(Reinforcement Learning)。策略选择的话可以直接从150多个干员里面选择放在场上,但是最高可以挑选12到13个,同时在场只能是按照地图要求进行。具体策略有以下几个内容:【干员上场时间、干员开技能时间、干员撤退时间】。
由于输入数据量和输出数据量过于庞大,所以要开几个神经网络来学习,否则一个的话无法有更好的训练效果。
暂时脑测一下:
干员挑选一个神经网络model_choose,干员操作一个神经网络model_operate。choose负责在150个干员中挑选那些在那个时候上场,接受operate反馈回来的信息。operate骂choose,但是只能操作choose给出的内容。
这样看来operate的工作量还是太大,收敛效果可能不好。要不上场时间、开技能时间、撤退时间都来一个网络?具体网络之间的顺序和训练内容就要在做的时候摸索了。

