我对最近在游戏中应用的蒙特卡罗树搜索感兴趣。
我已经阅读了几篇论文,但我使用了“蒙特卡罗树搜索”Chaslot,G的博士论文,因为我发现更容易理解蒙特卡罗树搜索的基础知识
我试过编码,并坚持某些问题。该算法尝试将每个模拟的一个节点扩展到游戏树中。这很快升级为内存问题。我已经快速阅读了这篇论文,但似乎没有解释该技术如果遇到某些内存限制会怎么做。
如果达到某个内存限制,你可以建议该技术应该做些什么吗?
你可以在这里看到论文: http://www.unimaas.nl/games/files/phd/Chaslot_thesis.pdf
答案 0 :(得分:3)
一种非常有效的方法是使树更慢地生长。也就是说,每次到达叶节点时,不是展开树,而是在它至少具有 k 次访问时展开它。这将显着减缓树的增长,并且通常不会降低性能。 Fuego Go计划的一位作者告诉我,他尝试了这种方法,并且在实践中运作良好。
这个想法最初在本文中描述:
Remi Coulom。 monte-carlo树搜索中的高效选择性和备份操作符。在计算机和游戏中,第72-83页。施普林格,2007年。
它也用于:
Max Roschke和Nathan Sturtevant。 UCT增强中国跳棋使用终局数据库,IJCAI计算机游戏研讨会,2013年。答案 1 :(得分:1)
您可以丢弃所有节点,其访问次数小于最近未访问的某个阈值(之前有多少播放)。 这是一个快速但不高效的解决方案。 最好也实施渐进式扩展。
答案 2 :(得分:0)
论文Memory Bounded Monte Carlo Tree Search评估了针对该问题的各种解决方案: