我最近对蒙特卡洛树搜索在游戏中的应用产生了兴趣。
我读过几篇论文,但我还是使用了Chaslot的博士论文“蒙特卡洛树搜索”,因为我发现更容易理解蒙特卡洛树搜索的基础知识
我试着对它进行编码,并纠结于某些问题。该算法尝试为每个模拟将一个节点扩展到博弈树中。这很快就会升级为内存问题。我已经快速阅读了这篇论文,但它似乎没有解释如果达到一定的内存限制,该技术将会做什么。
如果达到了一定的内存限制,你能建议这项技术应该怎么做吗?
你可以在这里看到论文:http://www.unimaas.nl/games/files/phd/Chaslot_thesis.pdf
发布于 2016-02-27 13:49:27
一种非常有效的方法是让树生长得更慢。也就是说,不是在每次到达叶节点时都扩展树,而是在它至少有k次访问时扩展它。这将显著减慢树的生长速度,并且通常不会降低性能。Fuego Go程序的一位作者告诉我,他尝试了这种方法,在实践中效果很好。
这一想法最初是在本文中描述的:
雷米·库伦。蒙特卡洛树搜索中的高效选择性和备份运算符。计算机和游戏,第72-83页。施普林格,2007。
它还用于:
Max Roschke和Nathan Sturtevant使用Endgame数据库在中国跳棋中的UCT增强,IJCAI计算机游戏研讨会,2013。
发布于 2013-04-20 01:15:00
您可以丢弃访问次数小于某个阈值的所有节点,这些阈值最近没有被访问过(之前有多少次播放)。这是一个快速但效率不高的解决方案。最好也实现渐进式加宽。
发布于 2019-04-22 18:09:21
论文Memory Bounded Monte Carlo Tree Search评估了这个问题的各种解决方案:
H217<重新开始搜索/code>
Garbage收集:当您达到内存限制时,删除未访问过给定数量的节点的所有节点:添加节点时,删除未访问时间最长的节点
https://stackoverflow.com/questions/16100226
复制相似问题