【发布时间】:2016-05-18 16:58:36
【问题描述】:
如果出现以下情况,多线程使用 alpha beta 剪枝的效果如何:
多线程被反复使用。例如,线程一会查看第一个分支,第二个线程会查看第二个线程,依此类推。我相信这应该只在第一个深度(AI 做出的下一步动作)进行,因为其他深度可能是隔断。
一个线程在第一次“移动”生成时搜索到生成的移动集的一半,第二个线程在最后一次“移动”生成并搜索回移动集的一半。在这里,我认为可以提高加速,因为最后一步可能被认为是最好的一步,因此,第二个线程可能会导致第一个线程无法中断。
多线程被用来考虑对手的时间。例如,假设对手花了一些时间思考并采取行动。 AI 可以在对手思考时迭代地加深搜索并找到结果,我想,这不一定会导致加速,但有更多时间进行极小极大分析。
我想可能还有其他优化,但这些是我想到的少数几个。不过,我不知道他们是否真的会有所改善。
【问题讨论】:
标签: multithreading minimax alpha-beta-pruning