我正在編寫一個程序來播放點和框,並且我想通過在迭代深化方案中基於它們的啓發式值來訂購我在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修剪搜索未能最大限度地減少
謝謝!我沒有意識到換位表的必要性。我已經做了更多的閱讀,這對我有很大的幫助。 –