Python国际象棋-让引擎预测一个位置上的最佳移动列表



我现在有一块木板,然后我把我的e2典当移到e4。我正在寻找一种方法,让引擎预测黑色最佳移动的X数量。

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

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

但这只能预测出排名第一的最佳走势。我想要一个包含第二个、第三个。。。X个最佳动作。

我该怎么做?

您没有提供任何关于搜索功能的详细信息,但通常它应该返回一系列移动(主要变体,也称为PV(,您的引擎认为这些移动是最好的,因此希望能够发挥作用。

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

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

相关内容

最新更新