使用旧的 Rust 2015
0.0.1 |
|
---|
#54 in #棋类游戏
6KB
Hazel
Hazel 是一个用 Rust 编写的混合经典/机器学习导向的国际象棋引擎。
摘要
大多数国际象棋引擎都使用一种“经典”方法来玩国际象棋。这种方法非常强大,并且能够经常击败人类。Stockfish 是这类引擎中最著名的例子之一,它的 ELO 分数 为 3390。相比之下,世界最好的国际象棋选手的 ELO 分数 为 2837。
最近,谷歌的 AlphaZero 项目被用来轻易击败 Stockfish。在 100 场比赛中赢了 25 场,其余比赛均平局。AlphaZero 是谷歌的“DeepMind”项目的一部分,使用 Tensorflow 库来实现各种深度学习技术来完成这一目标。
Hazel 不是这些程序中的任何一个。
Hazel 永远不会是这些程序中的任何一个。
Hazel 是一个将 Stockfish 方法与 AlphaZero 方法相结合的实验。具体来说,Hazel 的目标是
- 使用机器学习技术尝试实现更好的近似位置排序来评分。
- 使用经典评估技术精确评估由第 1 点排序的棋步集合。
- 使用机器学习评估搜索深度之外的内容,以发现局部较差但提供更好“长期”选择的线路——本质上利用机器学习在更高的“战略”水平上评估位置。
- 使用经典评估进一步细化这些结果,从第 1 点开始重复,直到超出分配的时间。
此外,Hazel 还打算
- 实现常见的国际象棋协议。
- 允许相对容易地开发“策略”插件,使用上述工具。
- 相对快速
- 理想情况下能够与相对高级的选手(2400+ ELO)竞争
- 能够识别和评估位置以及它们所采用的各种“战术”(因此它可以用作训练和分析工具,而不仅仅是标记大多数工具提供的“失误/错误”)。
Hazel 是一个单人研究项目;它不太可能实现所有目标。最终,很可能 这份文档充满了谎言,当作者认为不再是这种情况时;这些声明将被删除。
依赖项
~1MB
~13K SLoC