阿尔法贝塔用方格修剪

2024-10-01 13:25:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为跳棋游戏实现一个人工智能。我一定不能理解α-β剪枝的原理,因为没有什么是有效的!!
我希望算法在某个时间(5或10秒)停止。但是,我认为我的算法永远不会停止。此外,该算法从不截断分支。在

编辑:
我有这些错误:

    File "player.py", line 61, in min_value
    v = min(v, self.max_value(pBoard, single_move, pDue, alpha, beta))
    File "player.py", line 44, in max_value
    v = max(v, self.min_value(pBoard, single_move, pDue, alpha, beta))
    File "player.py", line 61, in min_value
    [...]  
    File "player.py", line 61, in min_value
    v = min(v, self.max_value(pBoard, single_move, pDue, alpha, beta))
    File "player.py", line 44, in max_value
    v = max(v, self.min_value(pBoard, single_move, pDue, alpha, beta))
    File "player.py", line 61, in min_value

    TypeError: unorderable types: NoneType() < float()

如果有人能清楚地解释实施过程,我将不胜感激。 以下是我用python编写的:
“evaluation”函数提供一个相对于棋子在棋盘上的位置的值。在

^{pr2}$

谢谢你的帮助。在


Tags: inpyselfalphamovevaluelinemin
1条回答
网友
1楼 · 发布于 2024-10-01 13:25:43

File "player.py", line 61, in min_value和{}是重要的提示。您应该考虑到实际的错误消息比您所说的关于您遇到的问题的任何其他消息都重要。在

由于您没有阅读错误消息,所以您留给我们来猜测哪一行是第61行。在

在这个函数中有一些比较(例如,min()if v <= alpha)似乎是相关的。在

错误消息表明vNone。在

由于v可以来自return self.evaluation(move, CELL_OWN)的值,因此看起来self.evaluation正在返回{}。这通常是因为没有return或没有表达式的return。在

相关问题 更多 >