Python Chess - 获取引擎以预测某个位置的最佳移动列表

PythonChess - Get engine to predict a list of the best moves in a position

我目前有一个棋盘,然后我将我的 e2 棋子移到 e4。我正在寻找一种方法来让引擎预测黑色最佳移动的 X 数量。

我知道如何预测给定位置的最佳着法:

result = engine.play(board, chess.engine.Limit(time=0.1))
board.push(result.move)

但这只能预测 1 号最佳棋步。我想要一个包含第二个、第三个……X 最佳动作的列表。

我该怎么做?

您没有提供有关您的搜索功能的任何详细信息,但通常它应该 return 您的引擎认为最佳并因此期望的一系列移动(主要变体,也称为 PV)玩过。

您可以将您的搜索功能更改为 return 多个 PV,基本上收集和报告多个下一个最佳着法序列。但请注意,这通常需要效率较低的根搜索,其中使用更宽的 alpha-beta window.

搜索后续移动

或者,您可以在搜索过程中通过附加任何提高 alpha 的移动来保存每个 "best move"。这不会给你多个 PV,但至少会给你一个原始的 "best move" 列表。