2010-01-08 62 views

回答

1

Wikipedia是一个安全的赌注,作为一个起点。你看过那里吗?

Rybka似乎是一个竞争者。

+0

我同意维基百科是一个很好的地方看,但Rybka是封闭的源,所以可能没有太大的帮助 – 2010-01-08 08:29:45

+0

@Dave:是的,但它解决了anarhikos问题*只是想学习算法名*。 – Tarydon 2010-01-08 08:51:20

+1

@Tarydon - Rybka是_chess engine_的名称。由于它是封闭源代码,除了作者之外,没有人知道它使用哪种算法。 – 2010-01-08 10:38:57

20

游戏算法中的一般策略是minimax策略,增加了alpha-beta pruning。 minimax算法找到最好的移动,alpha-beta修剪可以防止它进入游戏树的分支,不会产生比以前的分支更好的结果。

但是,象棋游戏树太大,无法完全检查。这就是为什么电脑国际象棋引擎只检查一定深度的树,然后使用各种方法来评估位置。这些方法中的很多都是基于启发式的。此外,一个严肃的国际象棋程序将有一个开放的图书馆,以便它可以在开始时参考图书馆而不必检查游戏树。最后,许多终极游戏已经完全解决,并且这些游戏也被编程为图书馆。

+0

一个等价的极大极小称为negamax。不同之处在于树的每次深度变化都会抵消分数。通过这种方式,两个玩家都试图最大限度地提高分数(在minimax中试图使其最小化)。我不确定这对alpha/beta窗口会有什么影响。它变成了一个单一的价值吗? – phkahler 2010-01-08 19:07:07

+2

应该注意的是,位置评估函数在确定其强度时可能是国际象棋引擎最重要的一个方面。事实上,它可能是目前大多数国际象棋引擎中新颖性唯一的领域。 例如,Rybka职位评估功能被设计超过5年(如果irc)非常强大的玩家。 从某种意义上说,评价函数是计算机对棋盘位置的直觉,这是任何棋类游戏的基本重要部分,并与游戏中的其他问题(如战术)正交。 – ldog 2010-01-09 21:05:08

+0

@gmatt - 只有部分真实......积极的修剪是Rybka如此强大的一部分,而且这方面的研究不算太旧。扩展的无用修剪,有限的修剪和自适应零移动修剪是不到十年前的现状 – tbischel 2010-06-22 21:31:58