Alpha-Beta Pruning
Rust 实现的泛型 α-β 剪枝搜索算法,支持并行评估、自定义游戏状态和走法。
特性
- 泛型设计: 通过
AlphaBeta<T>trait 适配任意博弈游戏 - α-β 剪枝: 忽略不可能影响决策的搜索分支,将复杂度从 O(bd) 降至 O(b(d/2))
- 并行评估: 根层走法使用
rayon并行评估 - 零依赖核心: 仅依赖
rayon实现并发
用法
将你的游戏状态实现 AlphaBeta<T> trait:
use ;
// 找到最佳走法
// let best = game.run(9); // 深度 9 的搜索
API
AlphaBeta<T> Trait
| 方法 | 说明 | 必需 |
|---|---|---|
evaluate() |
评估当前局面评分 | 是 |
get_moves() |
返回当前可用的走法列表 | 是 |
set(&mut self, m: &T) |
应用走法到局面 | 是 |
unset(&mut self, m: &T) |
撤销走法 | 是 |
run(depth) |
搜索最佳走法(带默认实现) | 否 |
alpha_beta(alpha, beta, depth, is_max) |
α-β 递归搜索(带默认实现) | 否 |
Grade 枚举
通过 Ord 派生,Grade 支持比较:Min < Score(n) < Max。
许可证
MIT