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 中使用

LGPL-3.0-or-later

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 内置支持以下游戏: CramChomp(2个模型)、Grundy的游戏。为其他游戏添加支持仅归结为实现适当的特性。

依赖项

~1.8–3MB
~52K SLoC