我只是想学的算法名..谢谢目前已知的计算机象棋最佳算法?
回答
如果您需要在深入了解AI算法,我想"artificial intelligence modern approach"书是最好的来源。
这将是一个*棋*算法的一部分。但是,minimax本身不是一个象棋算法。 – Tarydon 2010-01-08 08:22:58
游戏算法中的一般策略是minimax策略,增加了alpha-beta pruning。 minimax算法找到最好的移动,alpha-beta修剪可以防止它进入游戏树的分支,不会产生比以前的分支更好的结果。
但是,象棋游戏树太大,无法完全检查。这就是为什么电脑国际象棋引擎只检查一定深度的树,然后使用各种方法来评估位置。这些方法中的很多都是基于启发式的。此外,一个严肃的国际象棋程序将有一个开放的图书馆,以便它可以在开始时参考图书馆而不必检查游戏树。最后,许多终极游戏已经完全解决,并且这些游戏也被编程为图书馆。
一个等价的极大极小称为negamax。不同之处在于树的每次深度变化都会抵消分数。通过这种方式,两个玩家都试图最大限度地提高分数(在minimax中试图使其最小化)。我不确定这对alpha/beta窗口会有什么影响。它变成了一个单一的价值吗? – phkahler 2010-01-08 19:07:07
应该注意的是,位置评估函数在确定其强度时可能是国际象棋引擎最重要的一个方面。事实上,它可能是目前大多数国际象棋引擎中新颖性唯一的领域。 例如,Rybka职位评估功能被设计超过5年(如果irc)非常强大的玩家。 从某种意义上说,评价函数是计算机对棋盘位置的直觉,这是任何棋类游戏的基本重要部分,并与游戏中的其他问题(如战术)正交。 – ldog 2010-01-09 21:05:08
@gmatt - 只有部分真实......积极的修剪是Rybka如此强大的一部分,而且这方面的研究不算太旧。扩展的无用修剪,有限的修剪和自适应零移动修剪是不到十年前的现状 – tbischel 2010-06-22 21:31:58
看看一些免费的国际象棋代码,比如Crafty或者更好的水果怎么样?它几乎与Rybka的强度几乎相同。但是那里有很多新的算法。人类国际象棋棋手将必须说我不是在玩这个引擎,而这篇文章几乎总结了这一点 - >http://www.mychessblog.com/man-versus-machine-when-a-computer-will-become-world-chess-champion/
在国际象棋程序中使用的很多算法都在http://chessprogramming.wikispaces.com/网站上有描述。有几个可用的开源程序正在实现这些算法。
- 1. 计算跳棋的最佳举动
- 2. 最佳算法
- 3. 最佳格言计算机科学
- 4. React.js - 计算值的最佳做法
- 5. 通过算法的计算机运算
- 6. 最佳算法2.0
- 7. 最佳spritesheet算法
- 8. 目标计算机
- 9. 将文件复制到SQL Server计算机的最佳方法
- 10. 从本地计算机浏览mdf文件的最佳方法?
- 11. 结算订单的最佳算法
- 12. 计算基于已知的宽度和高度最佳嵌入大小?
- 13. 算法计算机n元树的最优布局?
- 14. 确定远程计算机的最佳方式已启动并正在运行
- 15. 计算最佳计时器间隔(timer_settime)
- 16. 最快的算法来计算数量
- 17. 最佳分配算法
- 18. '最佳'差异算法
- 19. 什么是计算直线最小斯坦纳树的最佳算法?
- 20. 云计算的最佳实践
- 21. 计算机AI算法写句子?
- 22. 简单计算机硬件清单的最佳数据库?
- 23. 计算最大配对数算法
- 24. 算法计算最大点在点集
- 25. 优化(python)算法的最佳方法?
- 26. 已发布的项目不适用于所有计算机?
- 27. 最佳最短路径算法
- 28. 如何计算最佳titleView宽度?
- 29. dd:如何计算最佳块大小?
- 30. 计算最佳库存长度
在进入他们的“算法”模式之前,大多数(但不是全部)国际象棋程序依赖于启发式算法,即一个广泛的国际象棋开放库。 – mjv 2010-01-08 08:24:50