我为射击游戏编写了一个非常简单的环境,其中2个玩家(正方形)以5 x 5的网格相互射击。它们从左或右方向开始,并且当迈向某个方向时,玩家的方向将设置为此方向。玩家下次射击时,子弹将朝这个方向前进。
我正在尝试为此简单的游戏创建DQN(RL)。目前,我的状态表示是:对于每个对象(玩家1,玩家2,玩家1的项目符号,玩家2的项目符号),我将x位置,y位置和方向保存为4数组(第一个索引向上,第二个索引向右等等) )-方向设置为1,其余方向设置为0。每个玩家的子弹数为4。
[x1,y1,0,1,0,0,x2,y2,1,0,0,0,x_bul1,y_bul1,0,0,1,0 ...]
我让1个玩家(敌人)留在原处,而特工在每个时间步长都获得-1的奖励,其目标是杀死敌人。
例如,当我训练特工并在每50集之后与训练有素的特工一起运行游戏时,我发现特工学会杀死敌人,但是经过更多的训练后,它可能会留在原地或做其他随机的事情,而不是杀死敌人。
例如,在第500集后,特工以最快的路线杀死了敌人,但是当达到第5000集时,特工仍留在原地。培训可能会花费很长时间吗?
如果您发现这些设置有任何问题或有任何建议,将不胜感激。
Noam。