gpt4 book ai didi

Python Reversi/Othello AI 在 1 秒内工作

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:24 24 4
gpt4 key购买 nike


在最近的一项任务中,我们的任务是创建Reversi/Othello AI,它可以在 1s 下做出有效的移动。我从一个简单的机器人开始,它采用所有可用的 Action 并根据带有值的棋盘对它们进行评分。在第二个机器人上,我还为排名添加了移动性值(value)。现在我制作了一个机器人,它使用 minmax 3 向前移动并根据分数评估移动。我的问题是,它在得分/机动性方面领先了机器人一步。有可能还是我对 AI 的编码有误?是因为我只搜索了前面 3 步吗?

我的机器人以此开头:

possible_moves = self.get_available_moves(board,self.my_color,self.opponent_color)
for [x, y] in possible_moves:
new_board = self.make_board_copy(board)
new_board[x][y] = self.my_color
new_alpha = self.minmax(new_board,1,alpha,beta)
if new_alpha > alpha:
alpha = new_alpha
best_move = [x,y]

然后转到这个:

    def minmax(self, board, depth, alpha, beta):
# END NODE
if depth == self.max_depth:
return self.evaluate(board)
else:
# MAX NODE = MY MOVE
if depth % 2 == 0:
possible_moves = self.get_available_moves(board,self.my_color,self.opponent_color)
for [x, y] in possible_moves:
new_board = self.make_board_copy(board)
new_board[x][y] = self.my_color
new_alpha = self.minmax(new_board,depth+1,alpha,beta)
if new_alpha > alpha:
alpha = new_alpha
if alpha > beta:
return alpha
return alpha
# MIN NODE
else:
possible_moves = self.get_available_moves(board,self.my_color,self.opponent_color)
for [x,y] in possible_moves:
new_board = self.make_board_copy(board)
new_board[x][y] = self.my_color
new_beta = self.minmax(new_board, depth + 1, alpha, beta)
if new_beta < beta:
beta = new_beta
if beta < alpha:
return beta
return beta

我检查了很多次代码,仍然无法确定是我的代码有问题,还是因为 AI 搜索不够深入而被打败了。

最佳答案

如果它使用相同的评估,我认为较低深度的搜索不太可能胜过较高深度的搜索,而且很可能是不可能的。

您能否解释一下 alpha 和 beta,以及 minmax 的更多功能,或者显示更多代码? alpha 和 beta 总是正数吗?

我认为你的奇节点函数可能有问题:

if new_beta < beta:
beta = new_beta
if beta < alpha:
return beta

如果 alpha 和 beta 都是正值,那么你希望第一行是

if new_beta > beta:

这还取决于您在棋盘上的位置得分。这显然非常重要 - 我不知道您的 AI 是否试图通过玩耍来学习这一点,或者您是否已经根据各种位置因素和判断对其进行了评估。

关于Python Reversi/Othello AI 在 1 秒内工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40166357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com