PyTorch1.7发布,支持CUDA11分布式训练( 三 )
下面让我们以流程图的方式来解释:
文章插图
search 函数的流程图
下一步是进行 alpha-beta 的剪枝来优化执行速度 。
文章插图
来自维基百科的 alpha-beta 剪枝说明
代码如下:
def alphabeta(alpha, beta, depthleft):bestscore = -9999if (depthleft == 0):return quiesce(alpha, beta)for move in board.legal_moves:board.push(move)score = -alphabeta(-beta, -alpha, depthleft - 1)board.pop()if (score >= beta):return scoreif (score > bestscore):bestscore = scoreif (score > alpha):alpha = scorereturn bestscore
现在 , 让我们用下面给出的流程图来调整 alphabeta 函数:
文章插图
现在是静态搜索 , 这种搜索旨在仅评估静态位置 , 即不存在致胜战术移动的位置 。 该搜索需要避免由搜索算法的深度限制所引起的水平线效应(horizon effect) 。
代码如下:
def quiesce(alpha, beta):stand_pat = evaluate_board()if (stand_pat >= beta):return betaif (alpha < stand_pat):alpha = stand_patfor move in board.legal_moves:if board.is_capture(move):board.push(move)score = -quiesce(-beta, -alpha)board.pop()if (score >= beta):return betaif (score > alpha):alpha = scorereturn alpha
简单总结一下 quiesce 函数:
文章插图
quiesce 函数流程图 。
测试 AI
开始测试前 , 需要导入一些库:
测试有 3 项:
- AI 对弈人类;
- AI 对弈 AI;
- AI 对弈 Stockfish 。
文章插图
AI 选择从 g1 到 f3 , 这是一个很明智的选择 。
2. AI 对弈 AI:
文章插图
3. AI 对弈 Stockfish:
文章插图
可以得出:AI 还不够智能 , 不足以打败 stockfish 12 , 但仍然坚持走了 20 步 。
接口测试
上述测试方式看起来代码很多 , 你也可以写一个接口测试 AI 。
然后执行:
文章插图
最终输出
- 光晕|PS插件:Oniric Glow Generator (光晕效果)支持ps 2021
- Blade|售价2798元 中兴Blade 20 Pro 5G手机发布 骁龙765G配四摄
- 无国界|嘴上说着支持华为,却为苹果贡献了2000亿!还真是科技无国界啊?
- 承受|折叠屏iPhone已开始测试?要求能承受10万次折叠,或在2年后发布
- 早报:高通骁龙888正式发布 嫦娥五号传回首张图片
- 建设|《青岛市城市云脑建设指引》发布
- 优化|微软亚洲研究院发布开源平台“群策 MARO” 用于多智能体资源调度优化
- 自动驾驶汽车|海外|自动驾驶无法可依?美国多个团体联合发布自动驾驶立法大纲
- 中国视频|人日评论点赞!OPPO成视频手机先行者,新技术或下月发布
- 全新|首批支持5款机型,vivo开启OriginOS首批体验官招募