首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增加MInimax算法在国际象棋中的平均深度?

增加MInimax算法在国际象棋中的平均深度?
EN

Stack Overflow用户
提问于 2020-10-19 04:03:16
回答 1查看 488关注 0票数 1

我最近在p5.js中使用带有alpha beta剪枝的Minimax算法构建了一个国际象棋引擎,但我能够实现的最大铺层深度是4,增加到5几乎需要10秒才能走一步,所以有人能建议一些增加铺层深度和减少搜索时间的方法吗?任何帮助都将非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2020-10-19 04:29:08

我最近也构建了一个国际象棋引擎,并且能够使它达到5甚至6的深度。然而,我是用Python构建的,但我认为我可以给出一些通用的建议,这些建议可能适用于您的项目。

  1. 编辑您的代码,将检查棋盘状态和获取所有有效移动的功能减少几微秒。

当你分析数以百万计的位置时,这些微秒加起来就是相当多的时间!我记得有几个晚上,我试图让我的代码尽可能快。最后,它在深度为5的情况下将运行时间减少了几秒钟。

  1. 在分析板子边缘之前先分析板子的中心。

alpha-beta修剪的优点在于,它不会调查明显更糟糕的动作。因此,你必须尽快找到最好的走法。与其先检查两边的移动,不如告诉算法从中间开始(列D或E),然后向外工作。这些移动通常是最好的,因此算法将修剪更多的分支。

  1. 降低了检查主板状态的复杂性

对于每个引擎,都需要在速度和准确性之间进行权衡。看一下这个启发式方法来分析板子的位置:https://www.chessprogramming.org/Simplified_Evaluation_Function。像这样定义位置优势是获得一个一半像样的引擎的快速方法。尽管它往往会在中端游戏中崩溃。

希望这对你有所帮助,祝你好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64417780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档