所以我的问题是要了解为每个状态(如robocode)具有更多参数的状态创建Q-table
。 99%的在线示例都太简单了,很难想象在如此复杂的环境中使用它。
根据我在Q学习中所了解的,创建了states/actions
的2D表...因此,对于每个游戏状态,都会有一些动作。在FrozenLake
之类的游戏中,这确实很简单。在每个正方形(X / Y点)上,您有4种可能的动作(上,下,左,右)。这意味着在4x4 FrozenLake字段中,您有16种可能的状态,每种状态有4个动作(Q表16x4)。就是这样。
但是在robocode中,您要牢记:炮塔角度,X / Y坐标,能量和敌人状态包含相同的参数。这些所有参数代表1状态,对吗?因此算法必须考虑所有这些值。另外,如果我想在合理的时间内在i5-4210H 2.9GHz
上进行训练,那么所有这些值都必须简化。
所以
1)如何为robocode创建Q表,它的外观如何?
2)简化所有这些状态值的最佳方法是什么?
PS:我们将其作为学校项目,并使用Java / C#进行,因为robocode支持这两种语言。