你應該看看蒙特卡洛樹搜索,它的聲音,如果將適合在大您的問題。
不是使用啓發式,利用在每個分支隨機玩家展開樹之前,它運行一個完整的遊戲。關於這一點的好處是,你實際上正在構建一個概率樹,並且你不必將樹擴展到最後,或者像MinMax一樣使用啓發式方法來截斷。
MCTS也是在遊戲GO在玩未知的遊戲規則,目前最好的方法,目前最好的。爲了獲得額外的效果,可以使用一些有限狀態機代理而不是隨機播放器來使概率更加準確。你也可以通過使用機器學習派生啓發式方法,通過使用跳過某些分支的決策器來減少分支因子。 (但是,這是你最後會做的事情,以提高技術的速度)
如果你可以做MinMax,你可以做MCTS沒有太多麻煩:)和MCTS可以發揮比MinMax以往任何時候都要複雜得多的遊戲,因爲它比較複雜性大大降低。 (好,如果你打算擴大遊戲規則汽車無)
如果你有興趣看看這裏:
http://www.aaai.org/Papers/AIIDE/2008/AIIDE08-036.pdf
是的,你必須在每一個動作,每做這個播放器。所以MinMax和MCTS都會很慢;所有基於遊戲樹的技術都很慢。
使用MinMax,您可以保留一些樹;移動到您的新狀態的分支,並刪除其父節點和連接到它的子樹。然後在剩下的子樹中展開一個深度。但這是猜測;我以前從來沒有時間這樣做:)(然而,您將保留概率計算中的錯誤)
關於這些技術的好處是,當您構建它們時,它們就可以工作。機器學習技術,運行速度快了很多,但需要時間,如果之前使用的培訓不是幾天;)
那是戰鬥或一門功課? – 2011-03-26 20:32:07