国际象棋引擎编程的替代方法


14

据我了解,大致来说,国际象棋引擎的工作原理是:

  1. 计算所有可能的变化(游戏树)直至一定深度
  2. 根据一些标准(材料,零件活动...)评估最终位置
  3. 基于此评估,决定采取最佳措施

我完全理解,要拥有一个高效的引擎,可以采用一些方法来修剪某些线条,限制深度等。但这不是我的问题。

问题是:是否有其他尝试对不遵循此方案的(不一定是强的,但也不是随机的)象棋引擎进行编程?


博特文尼克(Botvinnik)尝试通过让计算机仅搜索最佳候选者的动作来修剪根本动作。还没有成功的尝试,而国际象棋则更好。
弗雷德·奈特

Answers:


13

在计算机国际象棋的最初几年,人们实际上试图以与人类相同的方式来教授计算机象棋,解释诸如健康典当结构或主动性之类的战略概念。这些尝试很快就被放弃了,因为您描述的方法更加成功。

最近,又有一种尝试让引擎通过深度学习自学国际象棋(可能是由于Google的Go AI的成功所鼓舞)。根据我所链接的文章,它们非常成功,并设法达到IM的实力。


1
根据我的理解,Alpha Go的工作方式与上述OP完全相同,只有(2.)中的eval函数是基于/通过深度学习创建的。另一个答案似乎是同意的。
HermannDöppes17年

According to the article I linked to, they were quite successful and managed to reach IM strength但是,如果您阅读原始论文,则会发现该文章大大夸大了成功之处。
萨尔瓦多·达利

1
@HermannDöppes不,AlphaGo基于蒙特卡洛树搜索。
HelloWorld

3

@Glorfindel并没有错,但是对国际象棋的深度学习方法确实是国际象棋编程中参数调整的一个花哨的术语。

深度学习允许象棋引擎学习评估功能,这通常是程序员手写的。在游戏中,它像普通的国际象棋引擎一样工作。

其他可能性:

  • GPU国际象棋编程
  • 蒙特卡洛树搜索

您的大多数答案应该是在[Glorfindel的答案](Chess.stackexchange.com/a/16293/2789之下的评论。实际解决该问题的部分仅由七个词组成,这远远不够答案。 ,“ GPU国际象棋编程”只是一种并行化您可能使用的任何算法的方式,因此从问题的意义上讲,我认为这并不是一种“方法”;相反,它只是一种实现方法。
David Richerby

-2

当然!如果您真的是这么说的话...。“理论上,还有其他方法来编码国际象棋引擎吗?”……那么,是的!

例如...。一个人可以在国际象棋中存储每个可能位置的副本(我知道数量很多),并对每个位置进行评估。然后,只需查找该板,即可立即知道它对任何给定问题的答案(即“在X位置上白色的最佳移动”)。计算机硬件的当前状态是否有意义?没事 但是你没有问。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.