所以我的问题是理解为Q-table
每个状态创建更多参数的状态,比如robocode。网上 99% 的例子都太简单了,很难想象像这样复杂的环境。
根据我在 Q-learning 中的理解,创建了states/actions
...的 2D 表,因此对于每个游戏状态都会出现一些动作。在游戏中喜欢FrozenLake
它真的很简单。从每个正方形(X/Y 点)你有 4 个可能的动作(上、下、左、右)。这意味着在 4x4 FrozenLake 字段中,您有 16 个可能的状态,每个状态有 4 个动作(Q 表 16x4)。就是这样。
但在 robocode 中,您要记住:炮塔角度、X/Y 坐标、能量和敌人状态,其中包含相同的参数。这些所有参数代表 1 个状态,对吗?所以算法必须考虑到所有这些值。当然,如果我想在我的i5-4210H 2.9GHz
.
所以
1) 如何为 robocode 创建 Q-table,它会是什么样子?
2)简化所有这些状态值的最佳方法是什么?
PS:我们把它作为一个学校项目,我们用 Java/C# 来做,因为 robocode 支持这两种语言。