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