【发布时间】:2019-06-19 17:06:01
【问题描述】:
我通过 q-learning 实现了一个 3x3 OX 游戏(它在 AI vs AI 和 AI vs Human 中完美运行),但我无法更进一步进行 4x4 OX 游戏,因为它会占用我所有的 PC 内存并且崩溃。
这是我目前的问题: Access violation in huge array?
在我的理解中,一个 3x3 OX 游戏总共有 3(空格、白色、黑色)^ 9 = 19683 种可能的状态。 (相同图案不同角度仍算)
对于 4x4 OX 游戏,总状态为 3 ^ 16 = 43,046,721
对于常规围棋游戏,15x15 棋盘,总状态为 3 ^ 225 ~ 2.5 x 10^107
第一季度。我想知道我的计算是否正确。 (对于 4x4 OX 游戏,我需要一个 3^16 数组?)
第二季度。由于我需要计算每个Q值(对于每个状态,每个动作),我需要这么多的数组,是预期的吗?有什么办法避免吗?
【问题讨论】:
-
@foreknownas_463035818 也许你应该从这些 cmets 中做出正确的答案;)
-
4x4 实际上是 3^16,而不是 4^16。
-
如果电路板足够大,您最终将达到任何预定义的限制。你的目标板是什么?希望不是 19x19..
-
首先需要解决4x4数组大小问题,目标是15x15或者19x19。我有一个工作站资源(XEON cpu + 64GB),但似乎仍然很难解决这类问题。
-
那么我们已经远远超过了
int的大小。有maybe a way 来减少编号(对于 N=9,它给出 6045,而不是 6046),但对于板 N=19,它 still requires 的最大值为 894*10^168(约 568 位)的数量。
标签: c++ machine-learning reinforcement-learning