xqbase / eleeye

ElephantEye - a XiangQi (Chinese Chess) Engine for XQWizard with Strong AI
http://www.xqbase.com/
GNU Lesser General Public License v2.1
321 stars 106 forks source link

关于重复裁剪的问题 #4

Closed peteryuanpan closed 7 years ago

peteryuanpan commented 7 years ago

仔细的阅读了你们的代码,关于重复局面裁剪,你们采用了判断长捉和长将的方法来裁剪。 的确,如果不裁剪,程序会出现死循环。 我认为裁剪的一个思路就是:如果该点 在博弈树中该点到根的路径上 出现过,则这个点就没有意义再搜索下去。换句话说,如果对手下了一步棋给我,这个局面 在到根路径上 出现过,则对手下这步棋一定是没意义的。 那么,我有个疑问。我看了你们的代码,你们是在递归搜索函数一开始的时候就进行重复裁剪的。可是为什么不选择在生成着法的时候就进行裁剪呢。虽然后者会有其他的代价,但总的来说,还是后者的“搜索剪枝能力”更强。