2010-01-08 44 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