2

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

我知道如何预测给定位置的最佳移动:

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

但这只能预测排名第一的最佳举动。我想要一个包含第二个、第三个... X 最佳动作的列表。

我该怎么做?

4

1 回答 1

0

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

您可以更改搜索功能以返回多个 PV,基本上收集和报告多个下一个最佳移动序列。但请注意,这通常需要较低效率的根搜索,其中使用更宽的 alpha-beta 窗口搜索后续移动。

或者,您可以在搜索期间通过附加任何提高 alpha 的移动来保存每个“最佳移动”。这不会给你多个 PV,但至少会给你一个原始的“最佳移动”列表。

于 2020-03-04T12:45:00.667 回答