换位表算法

时间:2018-04-23 14:51:07

标签: chess alpha-beta-pruning

我正在创建下棋算法,我使用换位表,但是在更深层次上花费大量时间之前搜索发生的位置。

我的比较只是创造了Zobrist的位置哈希值并通过我的表格添加了先前的位置。

有没有办法改善这种比较?它看起来像这样(下面的值)还是我做错了什么?我的搜索计算了7层。

以下是一些数字: 没有换位表: 4928ms中的577576个节点(每毫秒117个节点)

第3层和第4层的转置表搜索: 3852ms中的407658个节点(每毫秒105个节点)

ply 3,4,5上的转置表搜索: 2695ms中的243348个节点(每毫秒90个节点)

在ply 3,4,5,6上的转置表搜索: 197984节点在2757ms(每毫秒71个节点)

1 个答案:

答案 0 :(得分:0)

你必须做一些令人讨厌的事情,因为你使用表的实现比不使用更慢!在国际象棋中有很多很多的换位,你的结果没有任何意义。

  • 检查您是否有错误
  • 检查生成散列密钥的时间是否显着,必须非常高效
  • 检查访问实际表格的代码