一直想给这个游戏加一个RL的大脑。
我为了确定要用到哪些状态,和动作,以及奖励,回合的定义。
我设想了一个最简单逻辑,此处存活的敌机群它们的x坐标的平均值avg_x,以及我方飞机的x坐标m_hero.m_X,让我方飞机向敌机群靠近打击,avg_x比m_hero.m_X小则向右移动,avg_x比m_hero.m_X大则向左移动。
动作:action:一维,0表示不动,1表示向左移,2表示向右移。
奖励:子弹碰到一架敌机则记1分
回合结束:我方飞机的机身与敌方飞机的机身发生碰撞。
状态的设置可以是很多情况:
Atari游戏是直接把游戏界面的像素点组成的数组作为状态,数据量太大了。必须要用带神经网络的RL算法。
我想的状态是:敌机群的平均x坐标,我那个游戏界面有多宽就有多少种状态,外加我方飞机的x坐标。
还可以进一步简化状态:0:敌机群在我方飞机左边;1:敌机群在我方飞机右边;
目前的问题:我还没有交互呢,只是把Q-learning的python脚本嵌入进去了,让他不报错,它就卡的不要不要的。
我在C++里面实例化