我正在编写一个程序来播放点和框,并且我想通过在迭代深化方案中基于它们的启发式值来订购我在alphaBeta中考虑的动作来提高我的时间效率。本质上,我想进入搜索树,每次迭代增加深度,并用alphaBeta评估每个节点。在每次连续迭代中,我认为节点的顺序将由先前迭代中的节点的启发式值决定。但是,我无法理解这将如何实施。有人可以提供一个标准alphaBeta程序如何使用迭代加深进行搜索的伪代码?谢谢!如何通过alpha beta修剪实现迭代加深
1
A
回答
1
那么,Iterative Deepening是不是很难实现。如果你已经有一个函数来执行搜索,姑且称之为alphaBetaAtRoot
,其执行与固定的距离搜索,你只需要调用它反复,从距离1:
for(int distance = 1; distance < MAX_DISTANCE && !outOfTime(); distance++) {
bestmove = alphaBetaAtRoot(position, distance);
}
play(bestmove);
什么是重要的,虽然是你实施了一个Transposition Table。否则,您不会从更好的移动排序中受益,因为每次搜索都只是从零知识开始。
0
我发现了以下链接:https://github.com/nealyoung/CS171/blob/master/AI.java 我希望能帮到你。
+0
欢迎来到SO。请注意,只有链接的答案不符合本网站的标准。见http://stackoverflow.com/help/how-to-answer –
+0
哇!非常感谢! –
相关问题
- 1. Alpha beta修剪在matlab中的实现
- 2. 通过alpha beta修剪了解minimax
- 3. 如何实现高效的Alpha-Beta修剪游戏搜索树?
- 4. Alpha beta修剪根移动
- 5. python中的alpha beta修剪
- 6. Othello Alpha-Beta修剪玩pyly
- 7. 如何在minimax算法中应用alpha-beta修剪实现2048 AI代理?
- 8. alpha beta搜索迭代加深驳斥表
- 9. alpha-beta prunning与换位表,迭代加深
- 10. 我坚持alpha-beta修剪算法实现
- 11. 为什么我的alpha-beta修剪的实现不起作用?
- 12. Negamax与深度的alpha-beta修剪bug 0
- 13. 将Minimax修改为Alpha-Beta修剪伪代码
- 14. Minimax与Alpha-beta修剪,得到结果
- 15. 移位表和Alpha-Beta修剪
- 16. 带跳棋的Alpha-beta修剪
- 17. 奥赛罗Alpha Beta修剪问题
- 18. 实现迭代深化
- 19. TicTacToe Alpha Beta修剪RuntimeError:pygame的最大递归深度超出了python
- 20. 带Alpha-Beta修剪的Minimax;类变量或通过递归发送它们?
- 21. 如何迭代加深搜索在haskell中实现高效?
- 22. 迭代深化搜索Java实现
- 23. CGImage的修剪alpha
- 24. alpha/beta修剪,应从哪个角度进行评估?
- 25. 测试MinMax与alpha-beta修剪和发挥战略
- 26. Alpha-beta修剪与克隆不工作Java
- 27. 卡住用alpha beta修剪的minmax算法
- 28. 什么时候Alpha-Beta修剪效率低下
- 29. Alpha-beta修剪连续移动为同一个球员
- 30. Alpha Beta修剪搜索未能最大限度地减少
谢谢!我没有意识到换位表的必要性。我已经做了更多的阅读,这对我有很大的帮助。 –