2048 游戏AI实现,轻松达到8192
2048 游戏AI实现
访问地址
使用wasm加载到浏览器
https://tool.tushuoit.com/2048/index.html
Expectimax AI:优化的游戏策略算法
架构
该 AI 使用 4 个 Web Worker,每个都是通过 Emscripten 从 C++ 编译的 WebAssembly 模块。这些 Worker 执行所有可能移动的 Expectimax 搜索,并选择得分最高的那个。并行搜索结合了 位板表示 和 查找表 等优化,使得它能够在极短的时间内进行深度搜索(默认深度为 7)。
性能基准
深度 | 游戏数 | 分数 | % 32768 | % 16384 | % 8192 | % 4096 | 时间 | 每秒移动数 |
---|---|---|---|---|---|---|---|---|
3 ply | 1000 | 216159 | 0.8 | 43 | 85.4 | 98.1 | 3s | 2343 |
5 ply | 300 | 283720 | 2 | 66.33 | 96 | 100 | 17s | 648 |
7 ply | 100 | 353368 | 12 | 85 | 98 | 100 | 87s | 158 |
主要特点
- 64 位位板表示
- 移动和评估的查找表
- 基于位置的 迭代加深
- 顶级并行性(仅限网页版本)
- 剪枝低概率节点
- 动态概率阈值
- 80MB 的转置表,使用 Zobrist 哈希(网页版本为 320MB)
启发式增强
启发式不仅增强了 AI 的强度,还简化了评估过程,从而显著提高了速度。新提出的启发式方法包括 平滑性(方便合并)和 漂浮瓦片(避免平坦局面)。然而,由于无法进行数学优化的权重调优,因此使用了来自先前 AI 实现的现有启发式。