在 Q-Learning 中获取 TicTacToe 棋盘的状态
Get state of TicTacToe board in Q-Learning
我刚开始接触强化学习和 q-learning,我想尝试创建一个 Tic-Tac-Toe AI。使用 Q-Table,我需要找到板的 "state",但我找不到方法来做到这一点。
为了进一步说明,状态是代表当前棋盘的数字,包括九个方格中每个方格的值。
板子看起来像:
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
将是状态 0,因为它是第一块板。除此之外,我不确定如何根据数组计算板的状态。
[编辑]
我来这里是因为我真的不知道从哪里开始;我在网上找不到任何东西,如果你不喜欢我的问题,你至少可以告诉我原因。
我想你需要这样的东西。
import numpy as np
max_number = 10
L = [[1, 0, 0],
[0, 0, 0],
[0, 5, 0]]
L_1d = sum(L, [])
print(L_1d)
# [1, 0, 0, 0, 0, 0, 0, 5, 0]
degrees = max_number ** np.arange(len(L_1d))
print(degrees)
# [ 1 10 100 1000 10000 100000 1000000 10000000 100000000]
state = L_1d @ degrees
print(state)
# 50000001
我刚开始接触强化学习和 q-learning,我想尝试创建一个 Tic-Tac-Toe AI。使用 Q-Table,我需要找到板的 "state",但我找不到方法来做到这一点。
为了进一步说明,状态是代表当前棋盘的数字,包括九个方格中每个方格的值。
板子看起来像:
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
将是状态 0,因为它是第一块板。除此之外,我不确定如何根据数组计算板的状态。
[编辑] 我来这里是因为我真的不知道从哪里开始;我在网上找不到任何东西,如果你不喜欢我的问题,你至少可以告诉我原因。
我想你需要这样的东西。
import numpy as np
max_number = 10
L = [[1, 0, 0],
[0, 0, 0],
[0, 5, 0]]
L_1d = sum(L, [])
print(L_1d)
# [1, 0, 0, 0, 0, 0, 0, 5, 0]
degrees = max_number ** np.arange(len(L_1d))
print(degrees)
# [ 1 10 100 1000 10000 100000 1000000 10000000 100000000]
state = L_1d @ degrees
print(state)
# 50000001