我读过(例如,http://radagast.se/othello/Help/order.html http://radagast.se/othello/Help/order.html)首先搜索每个级别的最佳动作(可以使用迭代加深找到)使得搜索速度更快。
如何在不使用太多额外内存和 CPU 时间的情况下搜索可能的最佳走法?
基本上有两种策略:
- 静态移动排序
- 动态移动排序
动态移动排序使用以前搜索中的信息,因为您再次调换到同一位置,或者您已经在之前不太彻底的搜索中到达了该位置。就是你提到的迭代加深的思想,不断增加搜索距离。
动态移动排序非常强大。有很多方法可以做到这一点,但最常见的两种是换位表和杀手招:
但是如果之前的搜索没有任何信息怎么办?通常,您拥有一些可用于静态移动排序的特定领域知识。例如,在国际象棋中有许多经验法则。一是占领棋比非占领棋更有可能成为最佳棋步。有更复杂的策略(例如,静态重新捕获分析),但您必须小心,因为更复杂的计算也会减慢搜索速度。
通过结合静态和动态走法顺序,国际象棋引擎通常可以猜测该位置的最佳走法,命中率超过 90%。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)