#国际象棋 #国际象棋引擎 #游戏 #棋类游戏

已撤回 hazel

混合经典/机器学习导向的国际象棋引擎

使用旧的 Rust 2015

0.0.1 2017年12月28日

#54 in #棋类游戏

MIT 许可证

6KB

Hazel

Hazel 是一个用 Rust 编写的混合经典/机器学习导向的国际象棋引擎。

Build Status Coverage Status crates.io Maintenance Status

摘要

大多数国际象棋引擎都使用一种“经典”方法来玩国际象棋。这种方法非常强大,并且能够经常击败人类。Stockfish 是这类引擎中最著名的例子之一,它的 ELO 分数 为 3390。相比之下,世界最好的国际象棋选手的 ELO 分数 为 2837。

最近,谷歌的 AlphaZero 项目被用来轻易击败 Stockfish。在 100 场比赛中赢了 25 场,其余比赛均平局。AlphaZero 是谷歌的“DeepMind”项目的一部分,使用 Tensorflow 库来实现各种深度学习技术来完成这一目标。

Hazel 不是这些程序中的任何一个。

Hazel 永远不会是这些程序中的任何一个。

Hazel 是一个将 Stockfish 方法与 AlphaZero 方法相结合的实验。具体来说,Hazel 的目标是

  1. 使用机器学习技术尝试实现更好的近似位置排序来评分。
  2. 使用经典评估技术精确评估由第 1 点排序的棋步集合。
  3. 使用机器学习评估搜索深度之外的内容,以发现局部较差但提供更好“长期”选择的线路——本质上利用机器学习在更高的“战略”水平上评估位置。
  4. 使用经典评估进一步细化这些结果,从第 1 点开始重复,直到超出分配的时间。

此外,Hazel 还打算

  • 实现常见的国际象棋协议。
  • 允许相对容易地开发“策略”插件,使用上述工具。
  • 相对快速
  • 理想情况下能够与相对高级的选手(2400+ ELO)竞争
  • 能够识别和评估位置以及它们所采用的各种“战术”(因此它可以用作训练和分析工具,而不仅仅是标记大多数工具提供的“失误/错误”)。

Hazel 是一个单人研究项目;它不太可能实现所有目标。最终,很可能 这份文档充满了谎言,当作者认为不再是这种情况时;这些声明将被删除。

依赖项

~1MB
~13K SLoC