4个版本
0.1.4 | 2023年12月31日 |
---|---|
0.1.3 | 2023年11月21日 |
0.1.1 | 2023年6月13日 |
0.1.0 | 2023年5月30日 |
#1848 in 算法
40 每月下载量
在 igsolve 中使用
340KB
6.5K SLoC
igs
(公平游戏求解器) 是Piotr Beling编写的Rust库,用于解决公平游戏。目前只支持正常玩法,但计划支持misère游戏。
igs
可以确定任何游戏位置的结果类别(即拥有胜利策略的玩家)和 nimber。求解器高度可配置,可以使用许多高级技术来加速计算,包括
- 使用以下方法剪枝搜索树分支:
- P. Beling, M, Rogalski, 关于公平游戏搜索树的剪枝,Artificial Intelligence 283 (2020),doi: 10.1016/j.artint.2020.103262;
- J. Lemoine, S. Viennot, Nimbers are inevitable,Theoretical Computer Science 462 (2012) 70–79,doi: 10.1016/j.tcs.2012.09.002。
- 通过 Sprague–Grundy定理 对可分解游戏位置组件的独立分析。
- 使用哈希(提供多种实现,包括非常紧凑的实现)的 转换表,并可选项定期保存到磁盘,以便在中断后继续计算。
- 使用基于 完美哈希、huffman压缩 或整数压缩的方法,使用非常少的空间的 残局数据库。
- 游戏特定的方法,例如启发式移动排序。
igs
内置支持以下游戏: Cram、Chomp(2个模型)、Grundy的游戏。为其他游戏添加支持仅归结为实现适当的特性。
依赖项
~1.8–3MB
~52K SLoC